diff --git a/Makefile.dryice.js b/Makefile.dryice.js index 4b1dfcb4..a8cf3e68 100755 --- a/Makefile.dryice.js +++ b/Makefile.dryice.js @@ -241,7 +241,7 @@ function buildAce(aceProject, options) { "tomorrow_night_blue", "tomorrow_night_bright", "tomorrow_night_eighties", "twilight", "vibrant_ink" ], - workers: ["javascript", "coffee", "css", "json"], + workers: ["javascript", "coffee", "css", "json", "xquery"], keybindings: ["vim", "emacs"] }; diff --git a/build/demo/kitchen-sink/mode-coffee-uncompressed.js b/build/demo/kitchen-sink/mode-coffee-uncompressed.js index 0e7c3b9f..de5d31b0 100644 --- a/build/demo/kitchen-sink/mode-coffee-uncompressed.js +++ b/build/demo/kitchen-sink/mode-coffee-uncompressed.js @@ -657,7 +657,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-coldfusion-uncompressed.js b/build/demo/kitchen-sink/mode-coldfusion-uncompressed.js index 7c752ee5..4c83e3d1 100644 --- a/build/demo/kitchen-sink/mode-coldfusion-uncompressed.js +++ b/build/demo/kitchen-sink/mode-coldfusion-uncompressed.js @@ -1926,7 +1926,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-css-uncompressed.js b/build/demo/kitchen-sink/mode-css-uncompressed.js index f3d6edbf..07c79a61 100644 --- a/build/demo/kitchen-sink/mode-css-uncompressed.js +++ b/build/demo/kitchen-sink/mode-css-uncompressed.js @@ -483,7 +483,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-groovy-uncompressed.js b/build/demo/kitchen-sink/mode-groovy-uncompressed.js index 2fca0ad9..6576df28 100644 --- a/build/demo/kitchen-sink/mode-groovy-uncompressed.js +++ b/build/demo/kitchen-sink/mode-groovy-uncompressed.js @@ -867,7 +867,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-html-uncompressed.js b/build/demo/kitchen-sink/mode-html-uncompressed.js index cbbe24bd..62e709f7 100644 --- a/build/demo/kitchen-sink/mode-html-uncompressed.js +++ b/build/demo/kitchen-sink/mode-html-uncompressed.js @@ -926,7 +926,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-java-uncompressed.js b/build/demo/kitchen-sink/mode-java-uncompressed.js index 23854c78..dfbf3680 100644 --- a/build/demo/kitchen-sink/mode-java-uncompressed.js +++ b/build/demo/kitchen-sink/mode-java-uncompressed.js @@ -868,7 +868,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-javascript-uncompressed.js b/build/demo/kitchen-sink/mode-javascript-uncompressed.js index 66b47e15..296069a1 100644 --- a/build/demo/kitchen-sink/mode-javascript-uncompressed.js +++ b/build/demo/kitchen-sink/mode-javascript-uncompressed.js @@ -843,7 +843,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-json-uncompressed.js b/build/demo/kitchen-sink/mode-json-uncompressed.js index 17b9d306..144bb932 100644 --- a/build/demo/kitchen-sink/mode-json-uncompressed.js +++ b/build/demo/kitchen-sink/mode-json-uncompressed.js @@ -751,7 +751,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-markdown-uncompressed.js b/build/demo/kitchen-sink/mode-markdown-uncompressed.js index 17e27e45..e8ce538a 100644 --- a/build/demo/kitchen-sink/mode-markdown-uncompressed.js +++ b/build/demo/kitchen-sink/mode-markdown-uncompressed.js @@ -924,7 +924,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-scala-uncompressed.js b/build/demo/kitchen-sink/mode-scala-uncompressed.js index c59a625f..6831517a 100644 --- a/build/demo/kitchen-sink/mode-scala-uncompressed.js +++ b/build/demo/kitchen-sink/mode-scala-uncompressed.js @@ -868,7 +868,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-svg-uncompressed.js b/build/demo/kitchen-sink/mode-svg-uncompressed.js index 45759dc8..3f5053d4 100644 --- a/build/demo/kitchen-sink/mode-svg-uncompressed.js +++ b/build/demo/kitchen-sink/mode-svg-uncompressed.js @@ -1933,7 +1933,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/demo/kitchen-sink/mode-xquery-uncompressed.js b/build/demo/kitchen-sink/mode-xquery-uncompressed.js index 1f35638f..fef5b873 100644 --- a/build/demo/kitchen-sink/mode-xquery-uncompressed.js +++ b/build/demo/kitchen-sink/mode-xquery-uncompressed.js @@ -1,24 +1,44 @@ -/* - * eXide - web-based XQuery IDE - * - * Copyright (C) 2011 Wolfgang Meier +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Wolfgang Meier + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/worker/worker_client', 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { "use strict"; +var WorkerClient = require("../worker/worker_client").WorkerClient; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; @@ -96,9 +116,254 @@ oop.inherits(Mode, TextMode); doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); } }; + + this.deltas = []; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + session.getDocument().on('change', function(evt){ + that.deltas.push(evt.data); + }); + + worker.attachToDocument(session.getDocument()); + + worker.on("start", function(e) { + console.log("start"); + that.deltas = []; + }); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("highlight", function(tokens) { + var firstRow = 0; + var lastRow = session.getLength() - 1; + + var lines = tokens.data; + + for(var i in that.deltas) + { + var delta = that.deltas[i]; + //console.log(delta); + if (delta.action === "insertLines") + { + var newLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 0, undefined); + } + } + else if (delta.action === "insertText") + { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 0, undefined); + } else { + delete lines[delta.range.start.row]; + } + } else if (delta.action === "removeLines") { + var oldLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 1); + } + } else if (delta.action === "removeText") { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 1); + } + delete lines[delta.range.start.row]; + } + } + + session.bgTokenizer.lines = lines; + session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); + }); + + return worker; + }; + }).call(Mode.prototype); exports.Mode = Mode; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/worker/worker_client', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/config'], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; +var config = require("../config"); + +var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { + + this.changeListener = this.changeListener.bind(this); + + if (config.get("packaged")) { + this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); + } + else { + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } + this.$worker = new Worker(workerUrl); + + var tlns = {}; + for (var i=0; i + * Provides an augmented, extensible, cross-browser implementation of regular expressions, + * including support for additional syntax, flags, and methods + */ + +define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + + //--------------------------------- + // Private variables + //--------------------------------- + + var real = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + real.test.call(x, ""); + return !x.lastIndex; + }(); + + //--------------------------------- + // Overriden native methods + //--------------------------------- + + // Adds named capture support (with backreferences returned as `result.name`), and fixes two + // cross-browser issues per ES3: + // - Captured values for nonparticipating capturing groups should be returned as `undefined`, + // rather than the empty string. + // - `lastIndex` should not be incremented after zero-length matches. + RegExp.prototype.exec = function (str) { + var match = real.exec.apply(this, arguments), + name, r2; + if ( typeof(str) == 'string' && match) { + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", "")); + // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed + // matching due to characters outside the match + real.replace.call(str.slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + // Attach named capture properties + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + // Fix browsers that increment `lastIndex` after zero-length matches + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + return match; + }; + + // Don't override `test` if it won't change anything + if (!compliantLastIndexIncrement) { + // Fix browser bug in native method + RegExp.prototype.test = function (str) { + // Use the native `exec` to skip some processing overhead, even though the overriden + // `exec` would take care of the `lastIndex` fix + var match = real.exec.call(this, str); + // Fix browsers that increment `lastIndex` after zero-length matches + if (match && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + return !!match; + }; + } + + //--------------------------------- + // Private helper functions + //--------------------------------- + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + }; + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + }; + +}); +// vim: ts=4 sts=4 sw=4 expandtab +// -- kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License +// -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project) +// -- dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA +// -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License +// -- Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License +// -- kitcambridge Kit Cambridge Copyright (C) 2011 MIT License +// -- kossnocorp Sasha Koss XXX TODO License or CLA +// -- bryanforbes Bryan Forbes XXX TODO License or CLA +// -- killdream Quildreen Motta Copyright (C) 2011 MIT Licence +// -- michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD License +// -- sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License +// -- bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain) +// -- iwyg XXX TODO License or CLA +// -- DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License +// -- xavierm02 Montillet Xavier XXX TODO License or CLA +// -- Raynos Raynos XXX TODO License or CLA +// -- samsonjs Sami Samhuri Copyright (C) 2010 MIT License +// -- rwldrn Rick Waldron Copyright (C) 2011 MIT License +// -- lexer Alexey Zakharov XXX TODO License or CLA + +/*! + Copyright (c) 2009, 280 North Inc. http://280north.com/ + MIT License. http://github.com/280north/narwhal/blob/master/README.md +*/ + +define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { + +/* + * Brings an environment as close to ECMAScript 5 compliance + * as is possible with the facilities of erstwhile engines. + * + * Annotated ES5: http://es5.github.com/ (specific links below) + * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf + * + * @module + */ + +/*whatsupdoc*/ + +// +// Function +// ======== +// + +// ES-5 15.3.4.5 +// http://es5.github.com/#x15.3.4.5 + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + // 1. Let Target be the this value. + var target = this; + // 2. If IsCallable(Target) is false, throw a TypeError exception. + if (typeof target != "function") + throw new TypeError(); // TODO message + // 3. Let A be a new (possibly empty) internal list of all of the + // argument values provided after thisArg (arg1, arg2 etc), in order. + // XXX slicedArgs will stand in for "A" if used + var args = slice.call(arguments, 1); // for normal call + // 4. Let F be a new native ECMAScript object. + // 11. Set the [[Prototype]] internal property of F to the standard + // built-in Function prototype object as specified in 15.3.3.1. + // 12. Set the [[Call]] internal property of F as described in + // 15.3.4.5.1. + // 13. Set the [[Construct]] internal property of F as described in + // 15.3.4.5.2. + // 14. Set the [[HasInstance]] internal property of F as described in + // 15.3.4.5.3. + var bound = function () { + + if (this instanceof bound) { + // 15.3.4.5.2 [[Construct]] + // When the [[Construct]] internal method of a function object, + // F that was created using the bind function is called with a + // list of arguments ExtraArgs, the following steps are taken: + // 1. Let target be the value of F's [[TargetFunction]] + // internal property. + // 2. If target has no [[Construct]] internal method, a + // TypeError exception is thrown. + // 3. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Construct]] internal + // method of target providing args as the arguments. + + var F = function(){}; + F.prototype = target.prototype; + var self = new F; + + var result = target.apply( + self, + args.concat(slice.call(arguments)) + ); + if (result !== null && Object(result) === result) + return result; + return self; + + } else { + // 15.3.4.5.1 [[Call]] + // When the [[Call]] internal method of a function object, F, + // which was created using the bind function is called with a + // this value and a list of arguments ExtraArgs, the following + // steps are taken: + // 1. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 2. Let boundThis be the value of F's [[BoundThis]] internal + // property. + // 3. Let target be the value of F's [[TargetFunction]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Call]] internal method + // of target providing boundThis as the this value and + // providing args as the arguments. + + // equiv: target.call(this, ...boundArgs, ...args) + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + // XXX bound.length is never writable, so don't even try + // + // 15. If the [[Class]] internal property of Target is "Function", then + // a. Let L be the length property of Target minus the length of A. + // b. Set the length own property of F to either 0 or L, whichever is + // larger. + // 16. Else set the length own property of F to 0. + // 17. Set the attributes of the length own property of F to the values + // specified in 15.3.5.1. + + // TODO + // 18. Set the [[Extensible]] internal property of F to true. + + // TODO + // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3). + // 20. Call the [[DefineOwnProperty]] internal method of F with + // arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]: + // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and + // false. + // 21. Call the [[DefineOwnProperty]] internal method of F with + // arguments "arguments", PropertyDescriptor {[[Get]]: thrower, + // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false}, + // and false. + + // TODO + // NOTE Function objects created using Function.prototype.bind do not + // have a prototype property or the [[Code]], [[FormalParameters]], and + // [[Scope]] internal properties. + // XXX can't delete prototype in pure-js. + + // 22. Return F. + return bound; + }; +} + +// Shortcut to an often accessed properties, in order to avoid multiple +// dereference that costs universally. +// _Please note: Shortcuts are defined after `Function.prototype.bind` as we +// us it in defining shortcuts. +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); + +// If JS engine supports accessors creating shortcuts. +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} + +// +// Array +// ===== +// + +// ES5 15.4.3.2 +// http://es5.github.com/#x15.4.3.2 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return toString(obj) == "[object Array]"; + }; +} + +// The IsCallable() check in the Array functions +// has been replaced with a strict check on the +// internal class of the object to trap cases where +// the provided function was actually a regular +// expression literal, which in V8 and +// JavaScriptCore is a typeof "function". Only in +// V8 are regular expression literals permitted as +// reduce parameters, so it is desirable in the +// general case for the shim to match the more +// strict and common behavior of rejecting regular +// expressions. + +// ES5 15.4.4.18 +// http://es5.github.com/#x15.4.4.18 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var self = toObject(this), + thisp = arguments[1], + i = 0, + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (i < length) { + if (i in self) { + // Invoke the callback function with call, passing arguments: + // context, property value, property key, thisArg object context + fun.call(thisp, self[i], i, self); + } + i++; + } + }; +} + +// ES5 15.4.4.19 +// http://es5.github.com/#x15.4.4.19 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var self = toObject(this), + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, self); + } + return result; + }; +} + +// ES5 15.4.4.20 +// http://es5.github.com/#x15.4.4.20 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + result = [], + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, self)) + result.push(self[i]); + } + return result; + }; +} + +// ES5 15.4.4.16 +// http://es5.github.com/#x15.4.4.16 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, self)) + return false; + } + return true; + }; +} + +// ES5 15.4.4.17 +// http://es5.github.com/#x15.4.4.17 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, self)) + return true; + } + return false; + }; +} + +// ES5 15.4.4.21 +// http://es5.github.com/#x15.4.4.21 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var self = toObject(this), + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + // no value to return if no initial value and an empty array + if (!length && arguments.length == 1) + throw new TypeError(); // TODO message + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + + // if array contains no values, no initial value to return + if (++i >= length) + throw new TypeError(); // TODO message + } while (true); + } + + for (; i < length; i++) { + if (i in self) + result = fun.call(void 0, result, self[i], i, self); + } + + return result; + }; +} + +// ES5 15.4.4.22 +// http://es5.github.com/#x15.4.4.22 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var self = toObject(this), + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + // no value to return if no initial value, empty array + if (!length && arguments.length == 1) + throw new TypeError(); // TODO message + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + + // if array contains no values, no initial value to return + if (--i < 0) + throw new TypeError(); // TODO message + } while (true); + } + + do { + if (i in this) + result = fun.call(void 0, result, self[i], i, self); + } while (i--); + + return result; + }; +} + +// ES5 15.4.4.14 +// http://es5.github.com/#x15.4.4.14 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = toObject(this), + length = self.length >>> 0; + + if (!length) + return -1; + + var i = 0; + if (arguments.length > 1) + i = toInteger(arguments[1]); + + // handle negative indices + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} + +// ES5 15.4.4.15 +// http://es5.github.com/#x15.4.4.15 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf +if (!Array.prototype.lastIndexOf) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = toObject(this), + length = self.length >>> 0; + + if (!length) + return -1; + var i = length - 1; + if (arguments.length > 1) + i = Math.min(i, toInteger(arguments[1])); + // handle negative indices + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) + return i; + } + return -1; + }; +} + +// +// Object +// ====== +// + +// ES5 15.2.3.2 +// http://es5.github.com/#x15.2.3.2 +if (!Object.getPrototypeOf) { + // https://github.com/kriskowal/es5-shim/issues#issue/2 + // http://ejohn.org/blog/objectgetprototypeof/ + // recommended by fschaefer on github + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} + +// ES5 15.2.3.3 +// http://es5.github.com/#x15.2.3.3 +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + // If object does not owns property return undefined immediately. + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + + // If object has a property then it's for sure both `enumerable` and + // `configurable`. + descriptor = { enumerable: true, configurable: true }; + + // If JS engine supports accessor properties then property may be a + // getter or setter. + if (supportsAccessors) { + // Unfortunately `__lookupGetter__` will return a getter even + // if object has own non getter property along with a same named + // inherited getter. To avoid misbehavior we temporary remove + // `__proto__` so that `__lookupGetter__` will return getter only + // if it's owned by an object. + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + + // Once we have getter and setter we can put values back. + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + + // If it was accessor property we're done and return here + // in order to avoid adding `value` to the descriptor. + return descriptor; + } + } + + // If we got this far we know that object has an own property that is + // not an accessor so we set it as a value and return descriptor. + descriptor.value = object[property]; + return descriptor; + }; +} + +// ES5 15.2.3.4 +// http://es5.github.com/#x15.2.3.4 +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} + +// ES5 15.2.3.5 +// http://es5.github.com/#x15.2.3.5 +if (!Object.create) { + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = { "__proto__": null }; + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + // IE has no built-in implementation of `Object.getPrototypeOf` + // neither `__proto__`, but this manually setting `__proto__` will + // guarantee that `Object.getPrototypeOf` will work as expected with + // objects created using `Object.create` + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +// ES5 15.2.3.6 +// http://es5.github.com/#x15.2.3.6 + +// Patch for WebKit and IE8 standard mode +// Designed by hax +// related issue: https://github.com/kriskowal/es5-shim/issues#issue/5 +// IE8 Reference: +// http://msdn.microsoft.com/en-us/library/dd282900.aspx +// http://msdn.microsoft.com/en-us/library/dd229916.aspx +// WebKit Bugs: +// https://bugs.webkit.org/show_bug.cgi?id=36423 + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + // returns falsy + } +} + +// check whether defineProperty works if it's given. Otherwise, +// shim partially. +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + + // make a valiant attempt to use the real defineProperty + // for I8's DOM elements. + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + // try the shim if the real one doesn't work + } + } + + // If it's a data property. + if (owns(descriptor, "value")) { + // fail silently if "writable", "enumerable", or "configurable" + // are requested but not supported + /* + // alternate approach: + if ( // can't implement these features; allow false but not true + !(owns(descriptor, "writable") ? descriptor.writable : true) || + !(owns(descriptor, "enumerable") ? descriptor.enumerable : true) || + !(owns(descriptor, "configurable") ? descriptor.configurable : true) + ) + throw new RangeError( + "This implementation of Object.defineProperty does not " + + "support configurable, enumerable, or writable." + ); + */ + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + // As accessors are supported only on engines implementing + // `__proto__` we can safely override `__proto__` while defining + // a property to make sure that we don't hit an inherited + // accessor. + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + // Deleting a property anyway since getter / setter may be + // defined on object itself. + delete object[property]; + object[property] = descriptor.value; + // Setting original `__proto__` back now. + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + // If we got that far then getters and setters can be defined !! + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} + +// ES5 15.2.3.7 +// http://es5.github.com/#x15.2.3.7 +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} + +// ES5 15.2.3.8 +// http://es5.github.com/#x15.2.3.8 +if (!Object.seal) { + Object.seal = function seal(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// ES5 15.2.3.9 +// http://es5.github.com/#x15.2.3.9 +if (!Object.freeze) { + Object.freeze = function freeze(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// detect a Rhino bug and patch it +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} + +// ES5 15.2.3.10 +// http://es5.github.com/#x15.2.3.10 +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// ES5 15.2.3.11 +// http://es5.github.com/#x15.2.3.11 +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} + +// ES5 15.2.3.12 +// http://es5.github.com/#x15.2.3.12 +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} + +// ES5 15.2.3.13 +// http://es5.github.com/#x15.2.3.13 +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + // 1. If Type(O) is not Object throw a TypeError exception. + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + // 2. Return the Boolean value of the [[Extensible]] internal property of O. + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} + +// ES5 15.2.3.14 +// http://es5.github.com/#x15.2.3.14 +if (!Object.keys) { + // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) + hasDontEnumBug = false; + + Object.keys = function keys(object) { + + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError("Object.keys called on a non-object"); + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + + return keys; + }; + +} + +// +// Date +// ==== +// + +// ES5 15.9.5.43 +// http://es5.github.com/#x15.9.5.43 +// This function returns a String value represent the instance in time +// represented by this Date object. The format of the String is the Date Time +// string format defined in 15.9.1.15. All fields are present in the String. +// The time zone is always UTC, denoted by the suffix Z. If the time value of +// this object is not a finite Number a RangeError exception is thrown. +if (!Date.prototype.toISOString || (new Date(-62198755200000).toISOString().indexOf('-000001') === -1)) { + Date.prototype.toISOString = function toISOString() { + var result, length, value, year; + if (!isFinite(this)) + throw new RangeError; + + // the date time string format is specified in 15.9.1.15. + result = [this.getUTCMonth() + 1, this.getUTCDate(), + this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()]; + year = this.getUTCFullYear(); + year = (year < 0 ? '-' : (year > 9999 ? '+' : '')) + ('00000' + Math.abs(year)).slice(0 <= year && year <= 9999 ? -4 : -6); + + length = result.length; + while (length--) { + value = result[length]; + // pad months, days, hours, minutes, and seconds to have two digits. + if (value < 10) + result[length] = "0" + value; + } + // pad milliseconds to have three digits. + return year + "-" + result.slice(0, 2).join("-") + "T" + result.slice(2).join(":") + "." + + ("000" + this.getUTCMilliseconds()).slice(-3) + "Z"; + } +} + +// ES5 15.9.4.4 +// http://es5.github.com/#x15.9.4.4 +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} + +// ES5 15.9.5.44 +// http://es5.github.com/#x15.9.5.44 +// This function provides a String representation of a Date object for use by +// JSON.stringify (15.12.3). +if (!Date.prototype.toJSON) { + Date.prototype.toJSON = function toJSON(key) { + // When the toJSON method is called with argument key, the following + // steps are taken: + + // 1. Let O be the result of calling ToObject, giving it the this + // value as its argument. + // 2. Let tv be ToPrimitive(O, hint Number). + // 3. If tv is a Number and is not finite, return null. + // XXX + // 4. Let toISO be the result of calling the [[Get]] internal method of + // O with argument "toISOString". + // 5. If IsCallable(toISO) is false, throw a TypeError exception. + if (typeof this.toISOString != "function") + throw new TypeError(); // TODO message + // 6. Return the result of calling the [[Call]] internal method of + // toISO with O as the this value and an empty argument list. + return this.toISOString(); + + // NOTE 1 The argument is ignored. + + // NOTE 2 The toJSON function is intentionally generic; it does not + // require that its this value be a Date object. Therefore, it can be + // transferred to other kinds of objects for use as a method. However, + // it does require that any such object have a toISOString method. An + // object is free to use the argument key to filter its + // stringification. + }; +} + +// ES5 15.9.4.2 +// http://es5.github.com/#x15.9.4.2 +// based on work shared by Daniel Friesen (dantman) +// http://gist.github.com/303249 +if (Date.parse("+275760-09-13T00:00:00.000Z") !== 8.64e15) { + // XXX global assignment won't work in embeddings that use + // an alternate object for the context. + Date = (function(NativeDate) { + + // Date.length === 7 + var Date = function Date(Y, M, D, h, m, s, ms) { + var length = arguments.length; + if (this instanceof NativeDate) { + var date = length == 1 && String(Y) === Y ? // isString(Y) + // We explicitly pass it through parse: + new NativeDate(Date.parse(Y)) : + // We have to manually make calls depending on argument + // length here + length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) : + length >= 6 ? new NativeDate(Y, M, D, h, m, s) : + length >= 5 ? new NativeDate(Y, M, D, h, m) : + length >= 4 ? new NativeDate(Y, M, D, h) : + length >= 3 ? new NativeDate(Y, M, D) : + length >= 2 ? new NativeDate(Y, M) : + length >= 1 ? new NativeDate(Y) : + new NativeDate(); + // Prevent mixups with unfixed Date object + date.constructor = Date; + return date; + } + return NativeDate.apply(this, arguments); + }; + + // 15.9.1.15 Date Time String Format. + var isoDateExpression = new RegExp("^" + + "(\\d{4}|[\+\-]\\d{6})" + // four-digit year capture or sign + 6-digit extended year + "(?:-(\\d{2})" + // optional month capture + "(?:-(\\d{2})" + // optional day capture + "(?:" + // capture hours:minutes:seconds.milliseconds + "T(\\d{2})" + // hours capture + ":(\\d{2})" + // minutes capture + "(?:" + // optional :seconds.milliseconds + ":(\\d{2})" + // seconds capture + "(?:\\.(\\d{3}))?" + // milliseconds capture + ")?" + + "(?:" + // capture UTC offset component + "Z|" + // UTC capture + "(?:" + // offset specifier +/-hours:minutes + "([-+])" + // sign capture + "(\\d{2})" + // hours offset capture + ":(\\d{2})" + // minutes offset capture + ")" + + ")?)?)?)?" + + "$"); + + // Copy any custom methods a 3rd party library may have added + for (var key in NativeDate) + Date[key] = NativeDate[key]; + + // Copy "native" methods explicitly; they may be non-enumerable + Date.now = NativeDate.now; + Date.UTC = NativeDate.UTC; + Date.prototype = NativeDate.prototype; + Date.prototype.constructor = Date; + + // Upgrade Date.parse to handle simplified ISO 8601 strings + Date.parse = function parse(string) { + var match = isoDateExpression.exec(string); + if (match) { + match.shift(); // kill match[0], the full match + // parse months, days, hours, minutes, seconds, and milliseconds + for (var i = 1; i < 7; i++) { + // provide default values if necessary + match[i] = +(match[i] || (i < 3 ? 1 : 0)); + // match[1] is the month. Months are 0-11 in JavaScript + // `Date` objects, but 1-12 in ISO notation, so we + // decrement. + if (i == 1) + match[i]--; + } + + // parse the UTC offset component + var minuteOffset = +match.pop(), hourOffset = +match.pop(), sign = match.pop(); + + // compute the explicit time zone offset if specified + var offset = 0; + if (sign) { + // detect invalid offsets and return early + if (hourOffset > 23 || minuteOffset > 59) + return NaN; + + // express the provided time zone offset in minutes. The offset is + // negative for time zones west of UTC; positive otherwise. + offset = (hourOffset * 60 + minuteOffset) * 6e4 * (sign == "+" ? -1 : 1); + } + + // Date.UTC for years between 0 and 99 converts year to 1900 + year + // The Gregorian calendar has a 400-year cycle, so + // to Date.UTC(year + 400, .... ) - 12622780800000 == Date.UTC(year, ...), + // where 12622780800000 - number of milliseconds in Gregorian calendar 400 years + var year = +match[0]; + if (0 <= year && year <= 99) { + match[0] = year + 400; + return NativeDate.UTC.apply(this, match) + offset - 12622780800000; + } + + // compute a new UTC date value, accounting for the optional offset + return NativeDate.UTC.apply(this, match) + offset; + } + return NativeDate.parse.apply(this, arguments); + }; + + return Date; + })(Date); +} + +// +// String +// ====== +// + +// ES5 15.5.4.20 +// http://es5.github.com/#x15.5.4.20 +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + // http://blog.stevenlevithan.com/archives/faster-trim-javascript + // http://perfectionkills.com/whitespace-deviations/ + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +// +// Util +// ====== +// + +// ES5 9.4 +// http://es5.github.com/#x9.4 +// http://jsperf.com/to-integer +var toInteger = function (n) { + n = +n; + if (n !== n) // isNaN + n = 0; + else if (n !== 0 && n !== (1/0) && n !== -(1/0)) + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + return n; +}; + +var prepareString = "a"[0] != "a", + // ES5 9.9 + // http://es5.github.com/#x9.9 + toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError(); // TODO message + } + // If the implementation doesn't support by-index access of + // string characters (ex. IE < 7), split the string + if (prepareString && typeof o == "string" && o) { + return o.split(""); + } + return Object(o); + }; +}); +/* vim:ts=4:sts=4:sw=4: + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Irakli Gozalishvili (http://jeditoolkit.com) + * Mike de Boer + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry = this._eventRegistry || {}; + this._defaultHandlers = this._defaultHandlers || {}; + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + e = e || {}; + e.type = eventName; + + if (!e.stopPropagation) { + e.stopPropagation = function() { + this.propagationStopped = true; + }; + } + + if (!e.preventDefault) { + e.preventDefault = function() { + this.defaultPrevented = true; + }; + } + + for (var i=0; i + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +exports.inherits = (function() { + var tempCtor = function() {}; + return function(ctor, superCtor) { + tempCtor.prototype = superCtor.prototype; + ctor.super_ = superCtor.prototype; + ctor.prototype = new tempCtor(); + ctor.prototype.constructor = ctor; + }; +}()); + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/xquery_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/xquery/xquery'], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var Mirror = require("../worker/mirror").Mirror; +var xquery = require("../mode/xquery/xquery"); + +window.addEventListener = function() {}; + + +var XQueryWorker = exports.XQueryWorker = function(sender) { + Mirror.call(this, sender); + this.setTimeout(200); +}; + +oop.inherits(XQueryWorker, Mirror); + +(function() { + + this.onUpdate = function() { + this.sender.emit("start"); + var value = this.doc.getValue(); + var parser = xquery.getParser(value); + var ast = parser.p_Module(); + if(parser.hasErrors()) { + var errors = parser.getErrors(); + var i = 0; + for(i in errors) { + var error = errors[i]; + this.sender.emit("error", { + row: error.line, + column: error.column, + text: error.message, + type: "error" + }); + } + } else { + this.sender.emit("ok"); + } + var tokens = parser.highlighter.getTokens(); + this.sender.emit("highlight", tokens); + }; + +}).call(XQueryWorker.prototype); + +}); +define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { +"use strict"; + +var Document = require("../document").Document; +var lang = require("../lib/lang"); + +var Mirror = exports.Mirror = function(sender) { + this.sender = sender; + var doc = this.doc = new Document(""); + + var deferredUpdate = this.deferredUpdate = lang.deferredCall(this.onUpdate.bind(this)); + + var _self = this; + sender.on("change", function(e) { + doc.applyDeltas([e.data]); + deferredUpdate.schedule(_self.$timeout); + }); +}; + +(function() { + + this.$timeout = 500; + + this.setTimeout = function(timeout) { + this.$timeout = timeout; + }; + + this.setValue = function(value) { + this.doc.setValue(value); + this.deferredUpdate.schedule(this.$timeout); + }; + + this.getValue = function(callbackId) { + this.sender.callback(this.doc.getValue(), callbackId); + }; + + this.onUpdate = function() { + // abstract method + }; + +}).call(Mirror.prototype); + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +/** + * class Document + * + * Contains the text of the document. Documents are controlled by a single [[EditSession `EditSession`]]. At its core, `Document`s are just an array of strings, with each row in the document matching up to the array index. + * + * + **/ + + /** + * new Document([text]) + * - text (String | Array): The starting text + * + * Creates a new `Document`. If `text` is included, the `Document` contains those strings; otherwise, it's empty. + * + **/ +var Document = function(text) { + this.$lines = []; + + if (Array.isArray(text)) { + this.insertLines(0, text); + } + // There has to be one line at least in the document. If you pass an empty + // string to the insert function, nothing will happen. Workaround. + else if (text.length == 0) { + this.$lines = [""]; + } else { + this.insert({row: 0, column:0}, text); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + + /** + * Document.setValue(text) -> Void + * - text (String): The text to use + * + * Replaces all the lines in the current `Document` with the value of `text`. + **/ + this.setValue = function(text) { + var len = this.getLength(); + this.remove(new Range(0, 0, len, this.getLine(len-1).length)); + this.insert({row: 0, column:0}, text); + }; + + /** + * Document.getValue() -> String + * + * Returns all the lines in the document as a single string, split by the new line character. + **/ + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + + /** + * Document.createAnchor(row, column) -> Anchor + * - row (Number): The row number to use + * - column (Number): The column number to use + * + * Creates a new `Anchor` to define a floating point in the document. + **/ + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + + /** internal, hide + * Document.$split(text) -> [String] + * - text (String): The text to work with + * + ([String]): A String array, with each index containing a piece of the original `text` string. + * + * Splits a string of text on any newline (`\n`) or carriage-return ('\r') characters. + * + * + **/ + + // check for IE split bug + if ("aaa".split(/a/).length == 0) + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + } + else + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + + + /** internal, hide + * Document.$detectNewLine(text) -> Void + * + * + **/ + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + if (match) { + this.$autoNewLine = match[1]; + } else { + this.$autoNewLine = "\n"; + } + }; + + /** + * Document.getNewLineCharacter() -> String + * + (String): If `newLineMode == windows`, `\r\n` is returned.
+ * If `newLineMode == unix`, `\n` is returned.
+ * If `newLineMode == auto`, the value of `autoNewLine` is returned. + * + * Returns the newline character that's being used, depending on the value of `newLineMode`. + * + * + * + **/ + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + + case "unix": + return "\n"; + + case "auto": + return this.$autoNewLine; + } + }; + + this.$autoNewLine = "\n"; + this.$newLineMode = "auto"; + /** + * Document.setNewLineMode(newLineMode) -> Void + * - newLineMode(String): [The newline mode to use; can be either `windows`, `unix`, or `auto`]{: #Document.setNewLineMode.param} + * + * [Sets the new line mode.]{: #Document.setNewLineMode.desc} + **/ + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + }; + + /** + * Document.getNewLineMode() -> String + * + * [Returns the type of newlines being used; either `windows`, `unix`, or `auto`]{: #Document.getNewLineMode} + * + **/ + this.getNewLineMode = function() { + return this.$newLineMode; + }; + + /** + * Document.isNewLine(text) -> Boolean + * - text (String): The text to check + * + * Returns `true` if `text` is a newline character (either `\r\n`, `\r`, or `\n`). + * + **/ + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + + /** + * Document.getLine(row) -> String + * - row (Number): The row index to retrieve + * + * Returns a verbatim copy of the given line as it is in the document + * + **/ + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + + /** + * Document.getLines(firstRow, lastRow) -> [String] + * - firstRow (Number): The first row index to retrieve + * - lastRow (Number): The final row index to retrieve + * + * Returns an array of strings of the rows between `firstRow` and `lastRow`. This function is inclusive of `lastRow`. + * + **/ + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + + /** + * Document.getAllLines() -> [String] + * + * Returns all lines in the document as string array. Warning: The caller should not modify this array! + **/ + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + + /** + * Document.getLength() -> Number + * + * Returns the number of rows in the document. + **/ + this.getLength = function() { + return this.$lines.length; + }; + + /** + * Document.getTextRange(range) -> String + * - range (Range): The range to work with + * + * [Given a range within the document, this function returns all the text within that range as a single string.]{: #Document.getTextRange.desc} + **/ + this.getTextRange = function(range) { + if (range.start.row == range.end.row) { + return this.$lines[range.start.row].substring(range.start.column, + range.end.column); + } + else { + var lines = this.getLines(range.start.row+1, range.end.row-1); + lines.unshift((this.$lines[range.start.row] || "").substring(range.start.column)); + lines.push((this.$lines[range.end.row] || "").substring(0, range.end.column)); + return lines.join(this.getNewLineCharacter()); + } + }; + + /** internal, hide + * Document.$clipPosition(position) -> Number + * + * + **/ + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length-1).length; + } + return position; + }; + + /** + * Document.insert(position, text) -> Number + * - position (Number): The position to start inserting at + * - text (String): A chunk of text to insert + * + (Number): The position of the last line of `text`. If the length of `text` is 0, this function simply returns `position`. + * Inserts a block of `text` and the indicated `position`. + * + * + **/ + this.insert = function(position, text) { + if (!text || text.length === 0) + return position; + + position = this.$clipPosition(position); + + // only detect new lines if the document has no line break yet + if (this.getLength() <= 1) + this.$detectNewLine(text); + + var lines = this.$split(text); + var firstLine = lines.splice(0, 1)[0]; + var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; + + position = this.insertInLine(position, firstLine); + if (lastLine !== null) { + position = this.insertNewLine(position); // terminate first line + position = this.insertLines(position.row, lines); + position = this.insertInLine(position, lastLine || ""); + } + return position; + }; + + /** + * Document.insertLines(row, lines) -> Object + * - row (Number): The index of the row to insert at + * - lines (Array): An array of strings + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}```
+ * If `lines` is empty, this function returns an object containing the current row, and column, like this:
+ * ```{row: row, column: 0}``` + * + * Inserts the elements in `lines` into the document, starting at the row index given by `row`. This method also triggers the `'change'` event. + * + * + **/ + this.insertLines = function(row, lines) { + if (lines.length == 0) + return {row: row, column: 0}; + + var args = [row, 0]; + args.push.apply(args, lines); + this.$lines.splice.apply(this.$lines, args); + + var range = new Range(row, 0, row + lines.length, 0); + var delta = { + action: "insertLines", + range: range, + lines: lines + }; + this._emit("change", { data: delta }); + return range.end; + }; + + /** + * Document.insertNewLine(position) -> Object + * - position (String): The position to insert at + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}``` + * + * Inserts a new line into the document at the current row's `position`. This method also triggers the `'change'` event. + * + * + * + **/ + this.insertNewLine = function(position) { + position = this.$clipPosition(position); + var line = this.$lines[position.row] || ""; + + this.$lines[position.row] = line.substring(0, position.column); + this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); + + var end = { + row : position.row + 1, + column : 0 + }; + + var delta = { + action: "insertText", + range: Range.fromPoints(position, end), + text: this.getNewLineCharacter() + }; + this._emit("change", { data: delta }); + + return end; + }; + + /** + * Document.insertInLine(position, text) -> Object | Number + * - position (Number): The position to insert at + * - text (String): A chunk of text + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}``` + * + (Number): If `text` is empty, this function returns the value of `position` + * + * Inserts `text` into the `position` at the current row. This method also triggers the `'change'` event. + * + * + * + **/ + this.insertInLine = function(position, text) { + if (text.length == 0) + return position; + + var line = this.$lines[position.row] || ""; + + this.$lines[position.row] = line.substring(0, position.column) + text + + line.substring(position.column); + + var end = { + row : position.row, + column : position.column + text.length + }; + + var delta = { + action: "insertText", + range: Range.fromPoints(position, end), + text: text + }; + this._emit("change", { data: delta }); + + return end; + }; + + /** + * Document.remove(range) -> Object + * - range (Range): A specified Range to remove + * + (Object): Returns the new `start` property of the range, which contains `startRow` and `startColumn`. If `range` is empty, this function returns the unmodified value of `range.start`. + * + * Removes the `range` from the document. + * + * + **/ + this.remove = function(range) { + // clip to document + range.start = this.$clipPosition(range.start); + range.end = this.$clipPosition(range.end); + + if (range.isEmpty()) + return range.start; + + var firstRow = range.start.row; + var lastRow = range.end.row; + + if (range.isMultiLine()) { + var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; + var lastFullRow = lastRow - 1; + + if (range.end.column > 0) + this.removeInLine(lastRow, 0, range.end.column); + + if (lastFullRow >= firstFullRow) + this.removeLines(firstFullRow, lastFullRow); + + if (firstFullRow != firstRow) { + this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); + this.removeNewLine(range.start.row); + } + } + else { + this.removeInLine(firstRow, range.start.column, range.end.column); + } + return range.start; + }; + + /** + * Document.removeInLine(row, startColumn, endColumn) -> Object + * - row (Number): The row to remove from + * - startColumn (Number): The column to start removing at + * - endColumn (Number): The column to stop removing at + * + (Object): Returns an object containing `startRow` and `startColumn`, indicating the new row and column values.
If `startColumn` is equal to `endColumn`, this function returns nothing. + * + * Removes the specified columns from the `row`. This method also triggers the `'change'` event. + * + * + **/ + this.removeInLine = function(row, startColumn, endColumn) { + if (startColumn == endColumn) + return; + + var range = new Range(row, startColumn, row, endColumn); + var line = this.getLine(row); + var removed = line.substring(startColumn, endColumn); + var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); + this.$lines.splice(row, 1, newLine); + + var delta = { + action: "removeText", + range: range, + text: removed + }; + this._emit("change", { data: delta }); + return range.start; + }; + + /** + * Document.removeLines(firstRow, lastRow) -> [String] + * - firstRow (Number): The first row to be removed + * - lastRow (Number): The last row to be removed + * + ([String]): Returns all the removed lines. + * + * Removes a range of full lines. This method also triggers the `'change'` event. + * + * + **/ + this.removeLines = function(firstRow, lastRow) { + var range = new Range(firstRow, 0, lastRow + 1, 0); + var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); + + var delta = { + action: "removeLines", + range: range, + nl: this.getNewLineCharacter(), + lines: removed + }; + this._emit("change", { data: delta }); + return removed; + }; + + /** + * Document.removeNewLine(row) -> Void + * - row (Number): The row to check + * + * Removes the new line between `row` and the row immediately following it. This method also triggers the `'change'` event. + * + **/ + this.removeNewLine = function(row) { + var firstLine = this.getLine(row); + var secondLine = this.getLine(row+1); + + var range = new Range(row, firstLine.length, row+1, 0); + var line = firstLine + secondLine; + + this.$lines.splice(row, 2, line); + + var delta = { + action: "removeText", + range: range, + text: this.getNewLineCharacter() + }; + this._emit("change", { data: delta }); + }; + + /** + * Document.replace(range, text) -> Object + * - range (Range): A specified Range to replace + * - text (String): The new text to use as a replacement + * + (Object): Returns an object containing the final row and column, like this: + * {row: endRow, column: 0} + * If the text and range are empty, this function returns an object containing the current `range.start` value. + * If the text is the exact same as what currently exists, this function returns an object containing the current `range.end` value. + * + * Replaces a range in the document with the new `text`. + * + **/ + this.replace = function(range, text) { + if (text.length == 0 && range.isEmpty()) + return range.start; + + // Shortcut: If the text we want to insert is the same as it is already + // in the document, we don't have to replace anything. + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + if (text) { + var end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + + /** + * Document.applyDeltas(deltas) -> Void + * + * Applies all the changes previously accumulated. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`. + **/ + this.applyDeltas = function(deltas) { + for (var i=0; i Void + * + * Reverts any changes previously applied. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`. + **/ + this.revertDeltas = function(deltas) { + for (var i=deltas.length-1; i>=0; i--) { + var delta = deltas[i]; + + var range = Range.fromPoints(delta.range.start, delta.range.end); + + if (delta.action == "insertLines") + this.removeLines(range.start.row, range.end.row - 1); + else if (delta.action == "insertText") + this.remove(range); + else if (delta.action == "removeLines") + this.insertLines(range.start.row, delta.lines); + else if (delta.action == "removeText") + this.insert(range.start, delta.text); + } + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +/** + * class Range + * + * This object is used in various places to indicate a region within the editor. To better visualize how this works, imagine a rectangle. Each quadrant of the rectangle is analogus to a range, as ranges contain a starting row and starting column, and an ending row, and ending column. + * + **/ + +/** + * new Range(startRow, startColumn, endRow, endColumn) + * - startRow (Number): The starting row + * - startColumn (Number): The starting column + * - endRow (Number): The ending row + * - endColumn (Number): The ending column + * + * Creates a new `Range` object with the given starting and ending row and column points. + * + **/ +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + /** + * Range.isEqual(range) -> Boolean + * - range (Range): A range to check against + * + * Returns `true` if and only if the starting row and column, and ending tow and column, are equivalent to those given by `range`. + * + **/ + this.isEqual = function(range) { + return this.start.row == range.start.row && + this.end.row == range.end.row && + this.start.column == range.start.column && + this.end.column == range.end.column + }; + + /** + * Range.toString() -> String + * + * Returns a string containing the range's row and column information, given like this: + * + * [start.row/start.column] -> [end.row/end.column] + * + **/ + + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + /** related to: Range.compare + * Range.contains(row, column) -> Boolean + * - row (Number): A row to check for + * - column (Number): A column to check for + * + * Returns `true` if the `row` and `column` provided are within the given range. This can better be expressed as returning `true` if: + * + * this.start.row <= row <= this.end.row && + * this.start.column <= column <= this.end.column + * + **/ + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + + /** related to: Range.compare + * Range.compareRange(range) -> Number + * - range (Range): A range to compare with + * + (Number): This method returns one of the following numbers:
+ *
+ * * `-2`: (B) is in front of (A), and doesn't intersect with (A)
+ * * `-1`: (B) begins before (A) but ends inside of (A)
+ * * `0`: (B) is completely inside of (A) OR (A) is completely inside of (B)
+ * * `+1`: (B) begins inside of (A) but ends outside of (A)
+ * * `+2`: (B) is after (A) and doesn't intersect with (A)
+ * * `42`: FTW state: (B) ends in (A) but starts outside of (A) + * + * Compares `this` range (A) with another range (B). + * + **/ + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + } + + /** related to: Range.compare + * Range.comparePoint(p) -> Number + * - p (Range): A point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1
+ * + * Checks the row and column points of `p` with the row and column points of the calling range. + * + * + * + **/ + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + } + + /** related to: Range.comparePoint + * Range.containsRange(range) -> Boolean + * - range (Range): A range to compare with + * + * Checks the start and end points of `range` and compares them to the calling range. Returns `true` if the `range` is contained within the caller's range. + * + **/ + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + } + + /** + * Range.intersects(range) -> Boolean + * - range (Range): A range to compare with + * + * Returns `true` if passed in `range` intersects with the one calling this method. + * + **/ + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + } + + /** + * Range.isEnd(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the caller's ending row point is the same as `row`, and if the caller's ending column is the same as `column`. + * + **/ + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + } + + /** + * Range.isStart(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the caller's starting row point is the same as `row`, and if the caller's starting column is the same as `column`. + * + **/ + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + } + + /** + * Range.setStart(row, column) + * - row (Number): A row point to set + * - column (Number): A column point to set + * + * Sets the starting row and column for the range. + * + **/ + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + } + + /** + * Range.setEnd(row, column) + * - row (Number): A row point to set + * - column (Number): A column point to set + * + * Sets the starting row and column for the range. + * + **/ + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + } + + /** related to: Range.compare + * Range.inside(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range. + * + **/ + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** related to: Range.compare + * Range.insideStart(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range's starting points. + * + **/ + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** related to: Range.compare + * Range.insideEnd(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range's ending points. + * + **/ + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** + * Range.compare(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + **/ + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + }; + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + + /** + * Range.compareStart(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ *
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range, or if `isStart` is `true`.
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + * + **/ + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.compareEnd(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range, or if `isEnd` is `true.
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + **/ + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.compareInside(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `1` if the ending row of the calling range is equal to `row`, and the ending column of the calling range is equal to `column`
+ * * `-1` if the starting row of the calling range is equal to `row`, and the starting column of the calling range is equal to `column`
+ *
+ * Otherwise, it returns the value after calling [[Range.compare `compare()`]]. + * + * Checks the row and column points with the row and column points of the calling range. + * + * + * + **/ + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.clipRows(firstRow, lastRow) -> Range + * - firstRow (Number): The starting row + * - lastRow (Number): The ending row + * + * Returns the part of the current `Range` that occurs within the boundaries of `firstRow` and `lastRow` as a new `Range` object. + * + **/ + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) { + var end = { + row: lastRow+1, + column: 0 + }; + } + + if (this.start.row > lastRow) { + var start = { + row: lastRow+1, + column: 0 + }; + } + + if (this.start.row < firstRow) { + var start = { + row: firstRow, + column: 0 + }; + } + + if (this.end.row < firstRow) { + var end = { + row: firstRow, + column: 0 + }; + } + return Range.fromPoints(start || this.start, end || this.end); + }; + + /** + * Range.extend(row, column) -> Range + * - row (Number): A new row to extend to + * - column (Number): A new column to extend to + * + * Changes the row and column points for the calling range for both the starting and ending points. This method returns that range with a new row. + * + **/ + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row == this.end.row && this.start.column == this.end.column); + }; + + /** + * Range.isMultiLine() -> Boolean + * + * Returns true if the range spans across multiple lines. + * + **/ + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + + /** + * Range.clone() -> Range + * + * Returns a duplicate of the calling range. + * + **/ + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + + /** + * Range.collapseRows() -> Range + * + * Returns a range containing the starting and ending rows of the original range, but with a column value of `0`. + * + **/ + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) + else + return new Range(this.start.row, 0, this.end.row, 0) + }; + + /** + * Range.toScreenRange(session) -> Range + * - session (EditSession): The `EditSession` to retrieve coordinates from + * + * Given the current `Range`, this function converts those starting and ending points into screen positions, and then returns a new `Range` object. + **/ + this.toScreenRange = function(session) { + var screenPosStart = + session.documentToScreenPosition(this.start); + var screenPosEnd = + session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + +}).call(Range.prototype); + +/** + * Range.fromPoints(start, end) -> Range + * - start (Range): A starting point to use + * - end (Range): An ending point to use + * + * Creates and returns a new `Range` based on the row and column of the given parameters. + * +**/ +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; + +exports.Range = Range; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +/** + * class Anchor + * + * Defines the floating pointer in the document. Whenever text is inserted or deleted before the cursor, the position of the cursor is updated + * + **/ + +/** + * new Anchor(doc, row, column) + * - doc (Document): The document to associate with the anchor + * - row (Number): The starting row position + * - column (Number): The starting column position + * + * Creates a new `Anchor` and associates it with a document. + * + **/ + +var Anchor = exports.Anchor = function(doc, row, column) { + this.document = doc; + + if (typeof column == "undefined") + this.setPosition(row.row, row.column); + else + this.setPosition(row, column); + + this.$onChange = this.onChange.bind(this); + doc.on("change", this.$onChange); +}; + +(function() { + + oop.implement(this, EventEmitter); + + /** + * Anchor.getPosition() -> Object + * + * Returns an object identifying the `row` and `column` position of the current anchor. + * + **/ + + this.getPosition = function() { + return this.$clipPositionToDocument(this.row, this.column); + }; + + /** + * Anchor.getDocument() -> Document + * + * Returns the current document. + * + **/ + + this.getDocument = function() { + return this.document; + }; + + /** + * Anchor@onChange(e) + * - e (Event): Contains data about the event + * + * Fires whenever the anchor position changes. Events that can trigger this function include `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`. + * + **/ + + this.onChange = function(e) { + var delta = e.data; + var range = delta.range; + + if (range.start.row == range.end.row && range.start.row != this.row) + return; + + if (range.start.row > this.row) + return; + + if (range.start.row == this.row && range.start.column > this.column) + return; + + var row = this.row; + var column = this.column; + + if (delta.action === "insertText") { + if (range.start.row === row && range.start.column <= column) { + if (range.start.row === range.end.row) { + column += range.end.column - range.start.column; + } + else { + column -= range.start.column; + row += range.end.row - range.start.row; + } + } + else if (range.start.row !== range.end.row && range.start.row < row) { + row += range.end.row - range.start.row; + } + } else if (delta.action === "insertLines") { + if (range.start.row <= row) { + row += range.end.row - range.start.row; + } + } + else if (delta.action == "removeText") { + if (range.start.row == row && range.start.column < column) { + if (range.end.column >= column) + column = range.start.column; + else + column = Math.max(0, column - (range.end.column - range.start.column)); + + } else if (range.start.row !== range.end.row && range.start.row < row) { + if (range.end.row == row) { + column = Math.max(0, column - range.end.column) + range.start.column; + } + row -= (range.end.row - range.start.row); + } + else if (range.end.row == row) { + row -= range.end.row - range.start.row; + column = Math.max(0, column - range.end.column) + range.start.column; + } + } else if (delta.action == "removeLines") { + if (range.start.row <= row) { + if (range.end.row <= row) + row -= range.end.row - range.start.row; + else { + row = range.start.row; + column = 0; + } + } + } + + this.setPosition(row, column, true); + }; + + /** + * Anchor.setPosition(row, column, noClip) + * - row (Number): The row index to move the anchor to + * - column (Number): The column index to move the anchor to + * - noClip (Boolean): Identifies if you want the position to be clipped + * + * Sets the anchor position to the specified row and column. If `noClip` is `true`, the position is not clipped. + * + **/ + + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } + else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._emit("change", { + old: old, + value: pos + }); + }; + + /** + * Anchor.detach() + * + * When called, the `'change'` event listener is removed. + * + **/ + + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + + /** internal, hide + * Anchor.clipPositionToDocument(row, column) + * - row (Number): The row index to clip the anchor to + * - column (Number): The column index to clip the anchor to + * + * Clips the anchor position to the specified row and column. + * + **/ + + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + return new Array(count + 1).join(string); +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/xquery/xquery', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQueryLexer', 'ace/mode/xquery/XQueryParser'], function(require, exports, module) { + + var antlr = require("./antlr3-all"); + var org = antlr.org; + var NewLazyTokenStream = antlr.NewLazyTokenStream; + var XQueryLexer = require("./XQueryLexer").XQueryLexer; + var XQueryParser = require("./XQueryParser").XQueryParser; + + exports.getParser = function(code) { + var cstream = new org.antlr.runtime.ANTLRStringStream(code); + var lexer = new XQueryLexer(cstream); + var tstream = new NewLazyTokenStream(lexer); + tstream.jumpToFirstValidToken(); + var parser = new XQueryParser(tstream); + parser.setSource(cstream); + return parser; + }; +}); +/* +Copyright (c) 2003-2008 Terence Parr. All rights reserved. +Code licensed under the BSD License: +http://www.antlr.org/license.html + +Some parts of the ANTLR class: +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +*/ +/* +Some portions: +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.5.1 +*/ +define('ace/mode/xquery/antlr3-all', ['require', 'exports', 'module' ], function(require, exports, module) { +var NewLazyTokenStream = exports.NewLazyTokenStream = function(tokenSource) { + + this.tokenSource = tokenSource; + this.tokens = []; + this.isWsExplicit = false; + this.p = 0; + this.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + + this.LT = function(k) { + if (k == 0) + return null; + if (k < 0) + return this.readReverseNthGoodToken(-k); + + return this.readNthGoodToken(k); + }; + + this.get = function(i) { + if (i >= this.tokens.length) + return org.antlr.runtime.Token.EOF_TOKEN; + else + return this.tokens[i]; + }; + + this.getTokenSource = function() { + return this.tokenSource; + }; + + this.toString = function(start, stop) { + if(start == undefined) { + return this.toString(0, this.tokens.length - 1); + } else + if(start instanceof org.antlr.runtime.Token) { + return this.toString(start.getTokenIndex(), stop.getTokenIndex()); + } else { + if (start < 0) + start = 0; + if (this.p <= stop) { + this.readNTokens(stop - this.p + 1); + } + + var sb = ""; + for (var i = start; i <= stop && i < this.tokens.length; i++) { + sb += this.tokens[i].getText(); + } + return sb; + } + }; + + this.LA = function(i) { + return this.LT(i).getType(); + }; + + this.done = false; + + this.consume = function() { + if (this.done) { + return; + } + this.p++; + if (!this.isWsExplicit) { + this.jumpToFirstValidToken(); + } + }; + + this.getSourceName = function() { + return this.getTokenSource().getSourceName(); + }; + + this.index = function() { + return this.p; + }; + + this.mark = function() { + this.lastMarker = this.index(); + return this.lastMarker; + }; + + this.release = function(marker) { + }; + + this.rewind = function(marker) { + if(arguments.length == 1) { + this.seek(marker); + } else { + this.seek(this.lastMarker); + } + }; + + this.seek = function(index) { + this.p = index; + this.done = false; + }; + + this.size = function() { + return this.tokens.length; + }; + + this.setTokenSource = function(source) { + this.tokenSource = source; + this.setWsExplicit(source.isWsExplicit); + // un-read the unused tokens + // they are different for the new source + if (this.p < this.tokens.length) { + var rIndex = this.p > 0 ? this.tokens[this.p - 1].getStopIndex() : 0; + this.tokenSource.rewindToIndex(rIndex + 1); + for (var i = this.tokens.length - 1; i >= this.p; i--) { + this.tokens.splice(i, 1); + } + } + + // if we ignore WS, jump to next token + if (!this.isWsExplicit) { + this.jumpToFirstValidToken(); + } + }; + + this.setWsExplicit = function(explicit) { + this.isWsExplicit = explicit; + if (!explicit) { + this.jumpToFirstValidToken(); + } + }; + + this.readNthGoodToken = function(n) { + var count = this.tokens.length; + // number of buffered tokens available + var avt = count - this.p; + // i counts good tokens, j counts all tokens + var i = 1, j = 0; + var t = null; + while (i <= n) { + if (j < avt) // read from buffer + t = this.tokens[this.p + j]; + else { // read from source + t = this.tokenSource.nextToken(); + if (t == org.antlr.runtime.Token.EOF_TOKEN) { + return t; + } + t.setTokenIndex(count++); + this.tokens.push(t); + } + if (this.isWsExplicit || t.getChannel() == this.channel) { + i++; + } + j++; + } + return t; + }; + + this.readReverseNthGoodToken = function(n) { + if (n == 0 || (this.p - n) < 0) + return null; + + // i counts good tokens, j counts all tokens + var i = 1, j = 0; + var t = null; + while (this.p - 1 - j >= 0) { + t = this.get(this.p - 1 - j); + + if (this.isWsExplicit || t.getChannel() == this.channel) { + if (i++ == n) + return t; + } + j++; + } + return null; + }; + + this.readNTokens = function(n) { + var t = null; + for (var i = 0; i < n; i++) { + if (this.tokens.length > this.p + i) + continue; + + t = this.tokenSource.nextToken(); + if (t == org.antlr.runtime.Token.EOF_TOKEN) + return; + + t.setTokenIndex(this.p + i); + this.tokens.push(t); + } + }; + + this.jumpToFirstValidToken = function() { + var t = this.LT(1); + if (t != org.antlr.runtime.Token.EOF_TOKEN) { + this.done = false; + this.p = t.getTokenIndex(); + } + }; +}; + +// create org.antlr module +if (typeof org == "undefined" || !org) { + var org = {}; +} +if (typeof org.antlr == "undefined" || !org.antlr) { + /** + * The org.antlr global namespace object. If antlr is already defined, the + * existing antlr object will not be overwritten so that defined + * namespaces are preserved. + * @namespace org.antlr + */ + org.antlr = {}; +} + +/** + * The global JavaScript object. + */ +org.antlr.global = (function() { + return this; +}).call(null); + +/** + * Returns the namespace specified and creates it if it doesn't exist. + * + * Be careful when naming packages. Reserved words may work in some browsers + * and not others. For instance, the following will fail in Safari: + *
+ * org.antlr.namespace("really.long.nested.namespace");
+ * 
+ * This fails because "long" is a future reserved word in ECMAScript + * + * @static + * @param {String*} arguments 1-n namespaces to create + * @return {Object} A reference to the last namespace object created + * @example + * org.antlr.namespace("org.antlr.property.package"); + */ +org.antlr.namespace = function() { + var a=arguments, o=null, i, j, d; + for (i=0; i0 then it's the level of backtracking. + */ + this.backtracking = 0; + + /** An array[size num rules] of Map that tracks + * the stop token index for each rule. ruleMemo[ruleIndex] is + * the memoization table for ruleIndex. For key ruleStartIndex, you + * get back the stop token for associated rule or MEMO_RULE_FAILED. + * + * This is only used if rule memoization is on (which it is by default). + */ + this.ruleMemo = null; + + + // LEXER FIELDS (must be in same state object to avoid casting + // constantly in generated code and Lexer object) :( + + + /** The goal of all lexer rules/methods is to create a token object. + * This is an instance variable as multiple rules may collaborate to + * create a single token. nextToken will return this object after + * matching lexer rule(s). If you subclass to allow multiple token + * emissions, then set this to the last token to be matched or + * something nonnull so that the auto token emit mechanism will not + * emit another token. + */ + this.token = null; + + /** What character index in the stream did the current token start at? + * Needed, for example, to get the text for current token. Set at + * the start of nextToken. + */ + this.tokenStartCharIndex = -1; + + /** The line on which the first character of the token resides */ + // this.tokenStartLine; + + /** The character position of first character within the line */ + // this.tokenStartCharPositionInLine; + + /** The channel number for the current token */ + // this.channel; + + /** The token type for the current token */ + // this.type; + + /** You can set the text for the current token to override what is in + * the input char buffer. Use setText() or can set this instance var. + */ + this.text = null; +}; +org.antlr.runtime.IndexOutOfBoundsException = function(m) { + org.antlr.runtime.IndexOutOfBoundsException.superclass.constructor.call(this, m); +}; + +org.antlr.lang.extend(org.antlr.runtime.IndexOutOfBoundsException, Error, { + name: "org.antlr.runtime.IndexOutOfBoundsException" +}); +/** The root of the ANTLR exception hierarchy. + * + *

To avoid English-only error messages and to generally make things + * as flexible as possible, these exceptions are not created with strings, + * but rather the information necessary to generate an error. Then + * the various reporting methods in Parser and Lexer can be overridden + * to generate a localized error message. For example, MismatchedToken + * exceptions are built with the expected token type. + * So, don't expect getMessage() to return anything.

+ * + *

ANTLR generates code that throws exceptions upon recognition error and + * also generates code to catch these exceptions in each rule. If you + * want to quit upon first error, you can turn off the automatic error + * handling mechanism using rulecatch action, but you still need to + * override methods mismatch and recoverFromMismatchSet.

+ * + *

In general, the recognition exceptions can track where in a grammar a + * problem occurred and/or what was the expected input. While the parser + * knows its state (such as current input symbol and line info) that + * state can change before the exception is reported so current token index + * is computed and stored at exception time. From this info, you can + * perhaps print an entire line of input not just a single token, for example. + * Better to just say the recognizer had a problem and then let the parser + * figure out a fancy report.

+ * + * @class + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @extends Error + * + */ +org.antlr.runtime.RecognitionException = function(input) { + org.antlr.runtime.RecognitionException.superclass.constructor.call(this); + this.input = input; + this.index = input.index(); + if ( input instanceof NewLazyTokenStream ) {//org.antlr.runtime.CommonTokenStream ) { + this.token = input.LT(1); + this.line = this.token.getLine(); + this.charPositionInLine = this.token.getCharPositionInLine(); + } + if ( input instanceof org.antlr.runtime.tree.TreeNodeStream ) { + this.extractInformationFromTreeNodeStream(input); + } + else if ( input instanceof org.antlr.runtime.ANTLRStringStream ) { + // Note: removed CharStream from hierarchy in JS port so checking for + // StringStream instead + this.c = input.LA(1); + this.line = input.getLine(); + this.charPositionInLine = input.getCharPositionInLine(); + } + else { + this.c = input.LA(1); + } + + this.message = this.toString(); +}; + +org.antlr.lang.extend(org.antlr.runtime.RecognitionException, Error, +/** @lends org.antlr.runtime.RecognitionException.prototype */ +{ + /** + * What input stream did the error occur in? + */ + input: null, + + /** What is index of token/char were we looking at when the error occurred? + * @type Number + */ + index: null, + + /** The current Token when an error occurred. Since not all streams + * can retrieve the ith Token, we have to track the Token object. + * For parsers. Even when it's a tree parser, token might be set. + * @type org.antlr.runtime.CommonToken + */ + token: null, + + /** If this is a tree parser exception, node is set to the node with + * the problem. + * @type Object + */ + node: null, + + /** The current char when an error occurred. For lexers. + * @type Number + */ + c: null, + + /** Track the line at which the error occurred in case this is + * generated from a lexer. We need to track this since the + * unexpected char doesn't carry the line info. + * @type Number + */ + line: null, + + /** The exception's class name. + * @type String + */ + name: "org.antlr.runtime.RecognitionException", + + /** Position in the line where exception occurred. + * @type Number + */ + charPositionInLine: null, + + /** If you are parsing a tree node stream, you will encounter som + * imaginary nodes w/o line/col info. We now search backwards looking + * for most recent token with line/col info, but notify getErrorHeader() + * that info is approximate. + * @type Boolean + */ + approximateLineInfo: null, + + /** Gather exception information from input stream. + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + */ + extractInformationFromTreeNodeStream: function(input) { + var nodes = input, + priorNode, + priorPayLoad, + type, + text, + i; + + this.node = nodes.LT(1); + var adaptor = nodes.getTreeAdaptor(), + payload = adaptor.getToken(this.node); + if ( payload ) { + this.token = payload; + if ( payload.getLine()<= 0 ) { + // imaginary node; no line/pos info; scan backwards + i = -1; + priorNode = nodes.LT(i); + while ( priorNode ) { + priorPayload = adaptor.getToken(priorNode); + if ( priorPayload && priorPayload.getLine()>0 ) { + // we found the most recent real line / pos info + this.line = priorPayload.getLine(); + this.charPositionInLine = priorPayload.getCharPositionInLine(); + this.approximateLineInfo = true; + break; + } + --i; + priorNode = nodes.LT(i); + } + } + else { // node created from real token + this.line = payload.getLine(); + this.charPositionInLine = payload.getCharPositionInLine(); + } + } + else if ( this.node instanceof org.antlr.runtime.tree.CommonTree) { + this.line = this.node.getLine(); + this.charPositionInLine = this.node.getCharPositionInLine(); + if ( this.node instanceof org.antlr.runtime.tree.CommonTree) { + this.token = this.node.token; + } + } + else { + type = adaptor.getType(this.node); + text = adaptor.getText(this.node); + this.token = new org.antlr.runtime.CommonToken(type, text); + } + }, + + /** Return the token type or char of the unexpected input element + * @return {Number} type of the unexpected input element. + */ + getUnexpectedType: function() { + if ( this.input instanceof NewLazyTokenStream) {//org.antlr.runtime.CommonTokenStream ) { + return this.token.getType(); + } + else if ( this.input instanceof org.antlr.runtime.tree.TreeNodeStream ) { + var nodes = this.input; + var adaptor = nodes.getTreeAdaptor(); + return adaptor.getType(this.node); + } + else { + return this.c; + } + } +}); +org.antlr.runtime.MismatchedTokenException = function(expecting, input) { + if (arguments.length===0) { + this.expecting = org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } else { + org.antlr.runtime.MismatchedTokenException.superclass.constructor.call( + this, input); + this.expecting = expecting; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedTokenException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedTokenException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedTokenException" +}); +/** An extra token while parsing a TokenStream */ +org.antlr.runtime.UnwantedTokenException = function(expecting, input) { + if (arguments.length>0) { + org.antlr.runtime.UnwantedTokenException.superclass.constructor.call( + this, expecting, input); + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.UnwantedTokenException, + org.antlr.runtime.MismatchedTokenException, { + getUnexpectedToken: function() { + return this.token; + }, + toString: function() { + var exp = ", expected "+this.expecting; + if ( this.expecting===org.antlr.runtime.Token.INVALID_TOKEN_TYPE ) { + exp = ""; + } + if ( !org.antlr.lang.isValue(this.token) ) { + return "UnwantedTokenException(found="+exp+")"; + } + return "UnwantedTokenException(found="+this.token.getText()+exp+")"; + }, + name: "org.antlr.runtime.UnwantedTokenException" +}); +org.antlr.runtime.MissingTokenException = function(expecting, input, inserted) { + if (arguments.length>0) { + org.antlr.runtime.MissingTokenException.superclass.constructor.call( + this, expecting, input); + this.inserted = inserted; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MissingTokenException, + org.antlr.runtime.MismatchedTokenException, { + getMissingType: function() { + return this.expecting; + }, + + toString: function() { + if (org.antlr.lang.isValue(this.inserted) && + org.antlr.lang.isValue(this.token)) + { + return "MissingTokenException(inserted "+this.inserted+" at "+this.token.getText()+")"; + } + if ( org.antlr.lang.isValue(this.token) ) { + return "MissingTokenException(at "+this.token.getText()+")"; + } + return "MissingTokenException"; + }, + name: "org.antlr.runtime.MissingTokenException" +}); +org.antlr.runtime.NoViableAltException = function(grammarDecisionDescription, + decisionNumber, + stateNumber, + input) +{ + org.antlr.runtime.NoViableAltException.superclass.constructor.call(this, input); + this.grammarDecisionDescription = grammarDecisionDescription; + this.decisionNumber = decisionNumber; + this.stateNumber = stateNumber; +}; + +org.antlr.lang.extend( + org.antlr.runtime.NoViableAltException, + org.antlr.runtime.RecognitionException, { + toString: function() { + if ( this.input instanceof org.antlr.runtime.ANTLRStringStream ) { + return "NoViableAltException('"+this.getUnexpectedType()+"'@["+this.grammarDecisionDescription+"])"; + } + else { + return "NoViableAltException("+this.getUnexpectedType()+"@["+this.grammarDecisionDescription+"])"; + } + }, + name: "org.antlr.runtime.NoViableAltException" +}); +/** The recognizer did not match anything for a ()+ loop. + * + * @class + * @param {Number} decisionNumber + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @extends org.antlr.runtime.RecognitionException + */ +org.antlr.runtime.EarlyExitException = function(decisionNumber, input) { + org.antlr.runtime.EarlyExitException.superclass.constructor.call( + this, input); + this.decisionNumber = decisionNumber; +}; + +org.antlr.lang.extend( + org.antlr.runtime.EarlyExitException, + org.antlr.runtime.RecognitionException, +/** @lends org.antlr.runtime.EarlyExitException.prototype */ +{ + /** Name of this class. + * @type String + */ + name: "org.antlr.runtime.EarlyExitException" +}); +org.antlr.runtime.MismatchedSetException = function(expecting, input) { + org.antlr.runtime.MismatchedSetException.superclass.constructor.call( + this, input); + this.expecting = expecting; +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedSetException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedSetException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedSetException" +}); +org.antlr.runtime.MismatchedNotSetException = function(expecting, input) { + org.antlr.runtime.MismatchedNotSetException.superclass.constructor.call(this, expecting, input); +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedNotSetException, + org.antlr.runtime.MismatchedSetException, { + toString: function() { + return "MismatchedNotSetException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedNotSetException" +}); +org.antlr.runtime.MismatchedRangeException = function(a, b, input) { + if (arguments.length===0) { + return this; + } + + org.antlr.runtime.MismatchedRangeException.superclass.constructor.call( + this, input); + this.a = a; + this.b = b; +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedRangeException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedRangeException(" + + this.getUnexpectedType()+" not in ["+this.a+","+this.b+"])"; + }, + name: "org.antlr.runtime.MismatchedRangeException" +}); +/** A semantic predicate failed during validation. Validation of predicates + * occurs when normally parsing the alternative just like matching a token. + * Disambiguating predicate evaluation occurs when we hoist a predicate into + * a prediction decision. + * + * @class + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @param {String} ruleName name of the rule in which the exception occurred. + * @param {String} predicateText the predicate that failed. + * @extends org.antlr.runtime.RecognitionException + */ +org.antlr.runtime.FailedPredicateException = function(input, ruleName, predicateText){ + org.antlr.runtime.FailedPredicateException.superclass.constructor.call(this, input); + this.ruleName = ruleName; + this.predicateText = predicateText; +}; + +org.antlr.lang.extend( + org.antlr.runtime.FailedPredicateException, + org.antlr.runtime.RecognitionException, +/** @lends org.antlr.runtime.FailedPredicateException.prototype */ +{ + /** Create a string representation of this exception. + * @returns {String} + */ + toString: function() { + return "FailedPredicateException("+this.ruleName+",{"+this.predicateText+"}?)"; + }, + + /** Name of this class. + * @type String + */ + name: "org.antlr.runtime.FailedPredicateException" +}); +/** + * A BitSet similar to java.util.BitSet. + * + *

JavaScript Note: There is no good way to implement something like this in + * JavaScript. JS has no true int type, arrays are usually implemented as + * hashes, etc. This class should probably be nixed for something that is + * similarly (in)efficient, but more clear.

+ * + * @class + * @param {Number|Array} [bits] a 32 bit number or array of 32 bit numbers + * representing the bitset. These are typically + * generated by the ANTLR Tool. + */ +org.antlr.runtime.BitSet = function(bits) { + if (!bits) { + bits = org.antlr.runtime.BitSet.BITS; + } + + if (org.antlr.lang.isArray(bits)) { + /** + * An array of Numbers representing the BitSet. + * @type Array + */ + this.bits = bits; + } else if(org.antlr.lang.isNumber(bits)) { + this.bits = []; + } +}; + +org.antlr.lang.augmentObject(org.antlr.runtime.BitSet, { + /** + * Number of bits in each number. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + BITS: 32, + + /** + * Log (base 2) of the number of bits in each number. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + LOG_BITS: 5, // 2^5 == 32 + + /** + * We will often need to do a mod operator (i mod nbits). Its + * turns out that, for powers of two, this mod operation is + * same as (i & (nbits-1)). Since mod is slow, we use a + * precomputed mod mask to do the mod instead. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + MOD_MASK: 31, // BITS - 1 + + /** + * Create mask for bit modded to fit in a single word. + * @example + * bitmask(35) => 00000000000000000000000000000100 + * bitmask(3) => 00000000000000000000000000000100 + * @param {Number} bitNumber the bit to create a mask for. + * @returns {Number} the bitmask. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + bitMask: function(bitNumber) { + var bitPosition = bitNumber & org.antlr.runtime.BitSet.MOD_MASK; + return 1 << bitPosition; + }, + + /** + * Calculate the minimum number of bits needed to represent el. + * @param {Number} el a number to be included in the BitSet. + * @returns {Number} the number of bits need to create a BitSet with member + * el. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + numWordsToHold: function(el) { + return (el >> org.antlr.runtime.BitSet.LOG_BITS) + 1; + }, + + /** + * @param {Number} bit a number to be included in the BitSet + * @returns {Number} the index of the word in the field bits that would + * hold bit. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + wordNumber: function(bit) { + return bit >> org.antlr.runtime.BitSet.LOG_BITS; // bit / BITS + }, + + /** + * BitSet factory method. + * + *

Operates in a number of modes: + *

    + *
  • If el is a number create the BitSet containing that number.
  • + *
  • If el is an array create the BitSet containing each number in the + * array.
  • + *
  • If el is a BitSet return el.
  • + *
  • If el is an Object create the BitSet containing each numeric value + * in el.
  • + *
  • If el is a number and el2 is a number return a BitSet containing + * the numbers between el and el2 (inclusive).
  • + *
+ *

+ * @param {Number|Array|org.antlr.runtime.BitSet|Object} el + * @param {Number} el2 + * @returns {org.antlr.runtime.BitSet} + * @memberOf org.antlr.runtime.BitSet + */ + of: function(el, el2) { + var i, n, s, keys; + + if (org.antlr.lang.isNumber(el)) { + if (org.antlr.lang.isNumber(el2)) { + s = new org.antlr.runtime.BitSet(el2 + 1); + for (i = el; i <= el2; i++) { + n = org.antlr.runtime.BitSet.wordNumber(i); + s.bits[n] |= org.antlr.runtime.BitSet.bitMask(i); + } + return s; + } else { + s = new org.antlr.runtime.BitSet(el + 1); + s.add(el); + return s; + } + } else if(org.antlr.lang.isArray(el)) { + s = new org.antlr.runtime.BitSet(); + for (i=el.length-1; i>=0; i--) { + s.add(el[i]); + } + return s; + } else if (el instanceof org.antlr.runtime.BitSet) { + if (!el) { + return null; + } + return el; + } else if (el instanceof org.antlr.runtime.IntervalSet) { + if (!el) { + return null; + } + s = new org.antlr.runtime.BitSet(); + s.addAll(el); + return s; + } else if (org.antlr.lang.isObject(el)) { + keys = []; + for (i in el) { + if (org.antlr.lang.isNumber(i)) { + keys.push(i); + } + } + return org.antlr.runtime.BitSet.of(keys); + } + } +}); + + + +org.antlr.runtime.BitSet.prototype = { + /** + * Add el into this set. + * @param {Number} el the number to add to the set. + */ + add: function(el) { + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { + this.growToInclude(el); + } + this.bits[n] |= org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Add multiple elements into this set. + * @param {Array|org.antlr.runtime.BitSet} elements the elements to be added to + * this set. + */ + addAll: function(elements) { + var other, + i, + e; + + if ( elements instanceof org.antlr.runtime.BitSet ) { + this.orInPlace(elements); + } + else if ( elements instanceof org.antlr.runtime.IntervalSet ) { + other = elements; + // walk set and add each interval + /* @todo after implementing intervalset + for (Iterator iter = other.intervals.iterator(); iter.hasNext();) { + Interval I = (Interval) iter.next(); + this.orInPlace(BitSet.range(I.a,I.b)); + }*/ + } else if (org.antlr.lang.isArray(elements)) { + for (i = 0; i < elements.length; i++) { + e = elements[i]; + this.add(e); + } + } else { + return; + } + }, + + /** + * Clone this BitSet and then {@link #andInPlace} with a. + * @param {org.antlr.runtime.BitSet} a a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + and: function(a) { + var s = this.clone(); + s.andInPlace(a); + return s; + }, + + /** + * Perform a logical AND of this target BitSet with the argument BitSet. + * + * This bit set is modified so that each bit in it has the value true if + * and only if it both initially had the value true and the corresponding + * bit in the bit set argument also had the value true. + * @param {org.antlr.runtime.BitSet} a a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + andInPlace: function(a) { + var min = Math.min(this.bits.length, a.bits.length), + i; + for (i = min - 1; i >= 0; i--) { + this.bits[i] &= a.bits[i]; + } + // clear all bits in this not present in a (if this bigger than a). + for (i = min; i < this.bits.length; i++) { + this.bits[i] = 0; + } + }, + + /** + * Clear all bits or a specific bit. + * + * If no arguments given, sets all of the bits in this BitSet to false. + * If one argument given, sets the bit specified by the index to false. + * @param {Number} [el] the index of the bit to be cleared. + */ + clear: function(el) { + if (arguments.length===0) { + var i; + for (i = this.bits.length - 1; i >= 0; i--) { + this.bits[i] = 0; + } + return; + } + + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { // grow as necessary to accommodate + this.growToInclude(el); + } + this.bits[n] &= ~org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Cloning this BitSet produces a new BitSet that is equal to it. + * + * The clone of the bit set is another bit set that has exactly the same + * bit set to true as this bit set. + * @returns {org.antlr.runtime.BitSet} a clone of this BitSet. + */ + clone: function() { + var i, len, b=[]; + for (i=0, len=this.bits.length; i= 0; i--) { + word = this.bits[i]; + if (word !== 0) { + for (bit = org.antlr.runtime.BitSet.BITS - 1; bit >= 0; bit--) { + if ((word & (1 << bit)) !== 0) { + deg++; + } + } + } + } + return deg; + }, + + /** + * Compares this object against the specified object. + * + * The result is true if and only if the argument is not null and is a + * BitSet object that has exactly the same set of bits set to true as + * this bit set. That is, for every nonnegative int index k, + *

+     * ((BitSet)obj).get(k) == this.get(k)
+     * 
+ * must be true. The current sizes of the two bit sets are not compared. + * @param {Object} other the object to compare with. + * @returns {Boolean} if the objects are the same; false otherwise. + */ + equals: function(other) { + if ( !other || !(other instanceof org.antlr.runtime.BitSet) ) { + return false; + } + + var otherSet = other, + i, + n = Math.min(this.bits.length, otherSet.bits.length); + + // for any bits in common, compare + for (i=0; i n) { + for (i = n+1; i n) { + for (i = n+1; i= this.bits.length) { return false; } + return (this.bits[n] & org.antlr.runtime.BitSet.bitMask(el)) !== 0; + }, + + /** + * Returns the index of the first bit that is set to true. + * If no such bit exists then -1 is returned. + * @returns {Number} the index of the next set bit. + */ + getSingleElement: function() { + var i; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + return i; + } + } + return -1; //Label.INVALID; + }, + + /** + * Returns true if this BitSet contains no bits that are set to true. + * @returns {Boolean} boolean indicating whether this BitSet is empty. + */ + isNil: function() { + var i; + for (i = this.bits.length - 1; i >= 0; i--) { + if (this.bits[i] !== 0) { + return false; + } + } + return true; + }, + + /** + * If a bit set argument is passed performs a {@link #subtract} of this bit + * set with the argument bit set. If no argument is passed, clone this bit + * set and {@link #notInPlace}. + * @param {org.antlr.runtime.BitSet} [set] + * @returns {org.antlr.runtime.BitSet} + */ + complement: function(set) { + if (set) { + return set.subtract(this); + } else { + var s = this.clone(); + s.notInPlace(); + return s; + } + }, + + /** + * If no arguments are passed sets all bits to the complement of their + * current values. If one argument is passed sets each bit from the + * beginning of the bit set to index1 (inclusive) to the complement of its + * current value. If two arguments are passed sets each bit from the + * specified index1 (inclusive) to the sepcified index2 (inclusive) to the + * complement of its current value. + * @param {Number} index1 + * @param {Number} index2 + */ + notInPlace: function() { + var minBit, maxBit, i, n; + if (arguments.length===0) { + for (i = this.bits.length - 1; i >= 0; i--) { + this.bits[i] = ~this.bits[i]; + } + } else { + if (arguments.length===1) { + minBit = 0; + maxBit = arguments[0]; + } else { + minBit = arguments[0]; + maxBit = arguments[1]; + } + // make sure that we have room for maxBit + this.growToInclude(maxBit); + for (i = minBit; i <= maxBit; i++) { + n = org.antlr.runtime.BitSet.wordNumber(i); + this.bits[n] ^= org.antlr.runtime.BitSet.bitMask(i); + } + } + + }, + + /** + * Performs a logical OR of this bit set with the bit set argument. + * If no argument is passed, return this bit set. Otherwise a clone of + * this bit set is modified so that a bit in it has the value true if and + * only if it either already had the value true or the corresponding bit + * in the bit set argument has the value true. + * @param {org.antlr.runtime.BitSet} [a] a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + or: function(a) { + if ( !a ) { + return this; + } + var s = this.clone(); + s.orInPlace(a); + return s; + }, + + /** + * Performs a logical {@link #or} in place. + * @param {org.antlr.runtime.BitSet} [a] + * @returns {org.antlr.runtime.BitSet} + */ + orInPlace: function(a) { + if ( !a ) { + return; + } + // If this is smaller than a, grow this first + if (a.bits.length > this.bits.length) { + this.setSize(a.bits.length); + } + var min = Math.min(this.bits.length, a.bits.length), + i; + for (i = min - 1; i >= 0; i--) { + this.bits[i] |= a.bits[i]; + } + }, + + /** + * Sets the bit specified by the index to false. + * @param {Number} bitIndex the index of the bit to be cleared. + */ + remove: function(el) { + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { + this.growToInclude(el); + } + this.bits[n] &= ~org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Grows the internal bits array to include at least nwords numbers. + * @private + * @param {Number} nwords how many words the new set should be + * @private + */ + setSize: function(nwords) { + var n = nwords - this.bits.length; + while (n>=0) { + this.bits.push(0); + n--; + } + }, + + /** + * Returns the number of bits capable of being represented by this bit set + * given its current size. + * @returns {Number} the maximum number of bits that can be represented at + * the moment. + * @private + */ + numBits: function() { + return this.bits.length << org.antlr.runtime.BitSet.LOG_BITS; // num words * bits per word + }, + + /** + * Return how much space is being used by the bits array not + * how many actually have member bits on. + * @returns {Number} the length of the internal bits array. + * @private + */ + lengthInLongWords: function() { + return this.bits.length; + }, + + /** + * Is this bit set contained within a? + * @param {org.antlr.runtime.BitSet} a bit set + * @returns {Boolean} true if and only if a is a subset of this bit set. + */ + subset: function(a) { + if (!a) { return false; } + return this.and(a).equals(this); + }, + + /** + * Subtract the elements of the argument bit set from this bit set in place. + * That is, for each set bit in the argument bit set, set the corresponding + * bit in this bit set to false. + * @param {org.antlr.runtime.BitSet} a bit set. + */ + subtractInPlace: function(a) { + if (!a) { return; } + // for all words of 'a', turn off corresponding bits of 'this' + var i; + for (i = 0; i < this.bits.length && i < a.bits.length; i++) { + this.bits[i] &= ~a.bits[i]; + } + }, + + /** + * Perform a {@link #subtractInPlace} on a clone of this bit set. + * @param {org.antlr.runtime.BitSet} a bit set. + * @returns {org.antlr.runtime.BitSet} the new bit set. + */ + subtract: function(a) { + if (!a || !(a instanceof org.antlr.runtime.BitSet)) { return null; } + + var s = this.clone(); + s.subtractInPlace(a); + return s; + }, + + /* antlr-java needs this to make its class hierarchy happy . . . + toList: function() { + throw new Error("BitSet.toList() unimplemented"); + }, + */ + + /** + * Creates an array of the indexes of each bit set in this bit set. + * @returns {Array} + */ + toArray: function() { + var elems = [], //new Array(this.size()), + i, + en = 0; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + elems[en++] = i; + } + } + return elems; + }, + + /** + * Returns the internal representation of this bit set. + * This representation is an array of numbers, each representing 32 bits. + * @returns {Array} + */ + toPackedArray: function() { + return this.bits; + }, + + /** + * Returns a string representation of this bit set. + *

For every index for which this BitSet contains a bit in the set state, + * the decimal representation of that index is included in the result. + * Such indices are listed in order from lowest to highest, separated by + * ", " (a comma and a space) and surrounded by braces, resulting in the + * usual mathematical notation for a set of integers.

+ * + *

If a grammar g is passed, print g.getTokenDisplayName(i) for each set + * index instead of the numerical index.

+ * + * <>If two arguments are passed, the first will be used as a custom + * separator string. The second argument is an array whose i-th element + * will be added if the corresponding bit is set.

+ * + * @param {Object|String} [arg1] an Object with function property + * getTokenDispalyName or a String that will be used as a list + * separator. + * @param {Array} [vocabulary] array from which the i-th value will be + * drawn if the corresponding bit is set. Must pass a string as the + * first argument if using this option. + * @return A commma-separated list of values + */ + toString: function() { + if (arguments.length===0) { + return this.toString1(null); + } else { + if (org.antlr.lang.isString(arguments[0])) { + if (!org.antlr.lang.isValue(arguments[1])) { + return this.toString1(null); + } else { + return this.toString2(arguments[0], arguments[1]); + } + } else { + return this.toString1(arguments[0]); + } + } + }, + + /** + * Transform a bit set into a string by formatting each element as an + * integer separator The string to put in between elements + * @private + * @return A commma-separated list of values + */ + toString1: function(g) { + var buf = "{", + separator = ",", + i, + havePrintedAnElement = false; + + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + if (i > 0 && havePrintedAnElement ) { + buf += separator; + } + if ( g ) { + buf += g.getTokenDisplayName(i); + } + else { + buf += i.toString(); + } + havePrintedAnElement = true; + } + } + return buf + "}"; + }, + + /** + * Create a string representation where instead of integer elements, the + * ith element of vocabulary is displayed instead. Vocabulary is a Vector + * of Strings. + * separator The string to put in between elements + * @private + * @return A commma-separated list of character constants. + */ + toString2: function(separator, vocabulary) { + var str = "", + i; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + if (str.length > 0) { + str += separator; + } + if (i >= vocabulary.size()) { + str += "'" + i + "'"; + } + else if (!org.antlr.lang.isValue(vocabulary.get(i))) { + str += "'" + i + "'"; + } + else { + str += vocabulary.get(i); + } + } + } + return str; + } + + /* + * Dump a comma-separated list of the words making up the bit set. + * Split each 32 bit number into two more manageable 16 bit numbers. + * @returns {String} comma separated list view of the this.bits property. + * + toStringOfHalfWords: function() { + var s = "", + tmp, + i; + for (i = 0; i < this.bits.length; i++) { + if (i !== 0) { + s+=", "; + } + tmp = this.bits[i]; + tmp &= 0xFFFF; + s += tmp + "UL, "; + tmp = this.bits[i] >> 16; + tmp &= 0xFFFF; + s += tmp+"UL"; + } + return s; + }, + */ + + /* + * Dump a comma-separated list of the words making up the bit set. + * This generates a comma-separated list of Java-like long int constants. + * + toStringOfWords: function() { + var s="", + i; + for (i = 0; i < this.bits.length; i++) { + if (i !== 0) { + s+=", "; + } + s += this.bits[i]+"L"; + } + return s; + }, + + toStringWithRanges: function() { + return this.toString(); + } + */ +}; + +/* + * + * +org.antlr.runtime.IntervalSet = function() { + throw new Error("not implemented"); +}; +*/ +org.antlr.runtime.CharStream = { + EOF: -1 +}; +org.antlr.runtime.CommonToken = function() { + var oldToken; + + this.charPositionInLine = -1; // set to invalid position + this.channel = 0; // org.antlr.runtime.CommonToken.DEFAULT_CHANNEL + this.index = -1; + + if (arguments.length == 1) { + if (org.antlr.lang.isNumber(arguments[0])) { + this.type = arguments[0]; + } else { + oldToken = arguments[0]; + this.text = oldToken.getText(); + this.type = oldToken.getType(); + this.line = oldToken.getLine(); + this.index = oldToken.getTokenIndex(); + this.charPositionInLine = oldToken.getCharPositionInLine(); + this.channel = oldToken.getChannel(); + if ( oldToken instanceof org.antlr.runtime.CommonToken ) { + this.start = oldToken.start; + this.stop = oldToken.stop; + } + } + } else if (arguments.length == 2) { + this.type = arguments[0]; + this.text = arguments[1]; + this.channel = 0; // org.antlr.runtime.CommonToken.DEFAULT_CHANNEL + } else if (arguments.length == 5) { + this.input = arguments[0]; + this.type = arguments[1]; + this.channel = arguments[2]; + this.start = arguments[3]; + this.stop = arguments[4]; + } +}; + +org.antlr.runtime.CommonToken.prototype = { + getType: function() { + return this.type; + }, + + setLine: function(line) { + this.line = line; + }, + + getText: function() { + if ( org.antlr.lang.isString(this.text) ) { + return this.text; + } + if ( !this.input ) { + return null; + } + this.text = this.input.substring(this.start,this.stop); + return this.text; + }, + + /** Override the text for this token. getText() will return this text + * rather than pulling from the buffer. Note that this does not mean + * that start/stop indexes are not valid. It means that that input + * was converted to a new string in the token object. + */ + setText: function(text) { + this.text = text; + }, + + getLine: function() { + return this.line; + }, + + getCharPositionInLine: function() { + return this.charPositionInLine; + }, + + setCharPositionInLine: function(charPositionInLine) { + this.charPositionInLine = charPositionInLine; + }, + + getChannel: function() { + return this.channel; + }, + + setChannel: function(channel) { + this.channel = channel; + }, + + setType: function(type) { + this.type = type; + }, + + getStartIndex: function() { + return this.start; + }, + + setStartIndex: function(start) { + this.start = start; + }, + + getStopIndex: function() { + return this.stop; + }, + + setStopIndex: function(stop) { + this.stop = stop; + }, + + getTokenIndex: function() { + return this.index; + }, + + setTokenIndex: function(index) { + this.index = index; + }, + + getInputStream: function() { + return this.input; + }, + + setInputStream: function(input) { + this.input = input; + }, + + toString: function() { + var channelStr = ""; + if ( this.channel>0 ) { + channelStr=",channel="+this.channel; + } + var txt = this.getText(); + if ( !org.antlr.lang.isNull(txt) ) { + txt = txt.replace(/\n/g,"\\\\n"); + txt = txt.replace(/\r/g,"\\\\r"); + txt = txt.replace(/\t/g,"\\\\t"); + } + else { + txt = ""; + } + return "[@"+this.getTokenIndex()+","+this.start+":"+this.stop+"='"+txt+"',<"+this.type+">"+channelStr+","+this.line+":"+this.getCharPositionInLine()+"]"; + } +}; +// NB: Because Token has static members of type CommonToken, the Token dummy +// constructor is defined in CommonToken. All methods and vars of Token are +// defined here. Token is an interface, not a subclass in the Java runtime. + +/** + * @class Abstract base class of all token types. + * @name Token + * @memberOf org.antlr.runtime + */ +org.antlr.runtime.Token = function() {}; +org.antlr.lang.augmentObject(org.antlr.runtime.Token, /** @lends Token */ { + EOR_TOKEN_TYPE: 1, + + /** imaginary tree navigation type; traverse "get child" link */ + DOWN: 2, + /** imaginary tree navigation type; finish with a child list */ + UP: 3, + + MIN_TOKEN_TYPE: 4, // UP+1, + + EOF: org.antlr.runtime.CharStream.EOF, + EOF_TOKEN: new org.antlr.runtime.CommonToken(org.antlr.runtime.CharStream.EOF), + + INVALID_TOKEN_TYPE: 0, + INVALID_TOKEN: new org.antlr.runtime.CommonToken(0), + + /** In an action, a lexer rule can set token to this SKIP_TOKEN and ANTLR + * will avoid creating a token for this symbol and try to fetch another. + */ + SKIP_TOKEN: new org.antlr.runtime.CommonToken(0), + + /** All tokens go to the parser (unless skip() is called in that rule) + * on a particular "channel". The parser tunes to a particular channel + * so that whitespace etc... can go to the parser on a "hidden" channel. + */ + DEFAULT_CHANNEL: 0, + + /** Anything on different channel than DEFAULT_CHANNEL is not parsed + * by parser. + */ + HIDDEN_CHANNEL: 99 +}); + +org.antlr.lang.augmentObject(org.antlr.runtime.CommonToken, org.antlr.runtime.Token); +org.antlr.runtime.tree = {}; +org.antlr.runtime.tree.RewriteCardinalityException = function(elementDescription) { + this.elementDescription = elementDescription; +}; + +/** Base class for all exceptions thrown during AST rewrite construction. + * This signifies a case where the cardinality of two or more elements + * in a subrule are different: (ID INT)+ where |ID|!=|INT| + */ +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteCardinalityException, Error, { + getMessage: function() { + if ( org.antlr.lang.isString(this.elementDescription) ) { + return this.elementDescription; + } + return null; + }, + name: function() { + return "org.antlr.runtime.tree.RewriteCardinalityException"; + } +}); +/** Ref to ID or expr but no tokens in ID stream or subtrees in expr stream */ +org.antlr.runtime.tree.RewriteEmptyStreamException = function(elementDescription) { + var sup = org.antlr.runtime.tree.RewriteEmptyStreamException.superclass; + sup.constructor.call(this, elementDescription); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteEmptyStreamException, + org.antlr.runtime.tree.RewriteCardinalityException, { + name: function() { + return "org.antlr.runtime.tree.RewriteEmptyStreamException"; + } +}); +/** No elements within a (...)+ in a rewrite rule */ +org.antlr.runtime.tree.RewriteEarlyExitException = function(elementDescription) { + var sup = org.antlr.runtime.tree.RewriteEarlyExitException.superclass; + if (org.antlr.lang.isUndefined(elementDescription)) { + elementDescription = null; + } + sup.constructor.call(this, elementDescription); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteEarlyExitException, + org.antlr.runtime.tree.RewriteCardinalityException, { + name: function() { + return "org.antlr.runtime.tree.RewriteEarlyExitException"; + } +}); +org.antlr.runtime.MismatchedTreeNodeException = function(expecting, input) { + if (expecting && input) { + org.antlr.runtime.MismatchedTreeNodeException.superclass.constructor.call( + this, input); + this.expecting = expecting; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedTreeNodeException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedTreeNodeException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedTreeNodeException" +}); +/** A generic tree implementation with no payload. You must subclass to + * actually have any user data. ANTLR v3 uses a list of children approach + * instead of the child-sibling approach in v2. A flat tree (a list) is + * an empty node whose children represent the list. An empty, but + * non-null node is called "nil". + */ +org.antlr.runtime.tree.BaseTree = function() {}; + +org.antlr.runtime.tree.BaseTree.prototype = { + getChild: function(i) { + if ( !this.children || i>=this.children.length ) { + return null; + } + return this.children[i]; + }, + + /** Get the children internal List; note that if you directly mess with + * the list, do so at your own risk. + */ + getChildren: function() { + return this.children; + }, + + getFirstChildWithType: function(type) { + var i, t; + for (i = 0; this.children && i < this.children.length; i++) { + t = this.children[i]; + if ( t.getType()===type ) { + return t; + } + } + return null; + }, + + getChildCount: function() { + if ( !this.children ) { + return 0; + } + return this.children.length; + }, + + /** Add t as child of this node. + * + * Warning: if t has no children, but child does + * and child isNil then this routine moves children to t via + * t.children = child.children; i.e., without copying the array. + */ + addChild: function(t) { + if ( !org.antlr.lang.isValue(t) ) { + return; // do nothing upon addChild(null) + } + var childTree = t, n, i, c; + if ( childTree.isNil() ) { // t is an empty node possibly with children + if ( this.children && this.children == childTree.children ) { + throw new Error("attempt to add child list to itself"); + } + // just add all of childTree's children to this + if ( childTree.children ) { + if ( this.children ) { // must copy, this has children already + n = childTree.children.length; + for (i = 0; i < n; i++) { + c = childTree.children[i]; + this.children.push(c); + // handle double-link stuff for each child of nil root + c.setParent(this); + c.setChildIndex(this.children.length-1); + } + } + else { + // no children for this but t has children; just set pointer + // call general freshener routine + this.children = childTree.children; + this.freshenParentAndChildIndexes(); + } + } + } + else { // child is not nil (don't care about children) + if ( !this.children ) { + this.children = this.createChildrenList(); // create children list on demand + } + this.children.push(t); + childTree.setParent(this); + childTree.setChildIndex(this.children.length-1); + } + }, + + /** Add all elements of kids list as children of this node */ + addChildren: function(kids) { + var i, t; + for (i = 0; i < kids.length; i++) { + t = kids[i]; + this.addChild(t); + } + }, + + setChild: function(i, t) { + if ( !t ) { + return; + } + if ( t.isNil() ) { + throw new Error("Can't set single child to a list"); + } + if ( !this.children ) { + this.children = this.createChildrenList(); + } + this.children[i] = t; + t.setParent(this); + t.setChildIndex(i); + }, + + deleteChild: function(i) { + if ( !this.children ) { + return null; + } + if (i<0 || i>=this.children.length) { + throw new Error("Index out of bounds."); + } + var killed = this.children.splice(i, 1)[0]; + // walk rest and decrement their child indexes + this.freshenParentAndChildIndexes(i); + return killed; + }, + + /** Delete children from start to stop and replace with t even if t is + * a list (nil-root tree). num of children can increase or decrease. + * For huge child lists, inserting children can force walking rest of + * children to set their childindex; could be slow. + */ + replaceChildren: function(startChildIndex, stopChildIndex, t) { + if ( !this.children ) { + throw new Error("indexes invalid; no children in list"); + } + var replacingHowMany = stopChildIndex - startChildIndex + 1; + var replacingWithHowMany; + var newTree = t; + var newChildren = null; + // normalize to a list of children to add: newChildren + if ( newTree.isNil() ) { + newChildren = newTree.children; + } + else { + newChildren = []; + newChildren.push(newTree); + } + replacingWithHowMany = newChildren.length; + var numNewChildren = newChildren.length; + var delta = replacingHowMany - replacingWithHowMany; + var j, i, child, indexToDelete, c, killed, numToInsert; + // if same number of nodes, do direct replace + if ( delta === 0 ) { + j = 0; // index into new children + for (i=startChildIndex; i<=stopChildIndex; i++) { + child = newChildren[j]; + this.children[i] = child; + child.setParent(this); + child.setChildIndex(i); + j++; + } + } + else if ( delta > 0 ) { // fewer new nodes than there were + // set children and then delete extra + for (j=0; j0 ) { + buf += ' '; + } + buf += t.toStringTree(); + } + if ( !this.isNil() ) { + buf += ")"; + } + return buf; + }, + + getLine: function() { + return 0; + }, + + getCharPositionInLine: function() { + return 0; + } +}; +/** A tree node that is wrapper for a Token object. After 3.0 release + * while building tree rewrite stuff, it became clear that computing + * parent and child index is very difficult and cumbersome. Better to + * spend the space in every tree node. If you don't want these extra + * fields, it's easy to cut them out in your own BaseTree subclass. + */ +org.antlr.runtime.tree.CommonTree = function(node) { + /** What token indexes bracket all tokens associated with this node + * and below? + */ + this.startIndex = -1; + this.stopIndex = -1; + + /** What index is this node in the child list? Range: 0..n-1 */ + this.childIndex = -1; + + /** Who is the parent node of this node; if null, implies node is root */ + this.parent = null; + + /** A single token is the payload */ + this.token = null; + + if (node instanceof org.antlr.runtime.tree.CommonTree) { + org.antlr.runtime.tree.CommonTree.superclass.constructor.call(this, node); + this.token = node.token; + this.startIndex = node.startIndex; + this.stopIndex = node.stopIndex; + } else if (node instanceof org.antlr.runtime.CommonToken) { + this.token = node; + } +}; + +/** A tree node that is wrapper for a Token object. */ +org.antlr.lang.extend(org.antlr.runtime.tree.CommonTree, org.antlr.runtime.tree.BaseTree, { + getToken: function() { + return this.token; + }, + + dupNode: function() { + return new org.antlr.runtime.tree.CommonTree(this); + }, + + isNil: function() { + return !this.token; + }, + + getType: function() { + if ( !this.token ) { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } + return this.token.getType(); + }, + + getText: function() { + if ( !this.token ) { + return null; + } + return this.token.getText(); + }, + + getLine: function() { + if ( !this.token || this.token.getLine()===0 ) { + if ( this.getChildCount()>0 ) { + return this.getChild(0).getLine(); + } + return 0; + } + return this.token.getLine(); + }, + + getCharPositionInLine: function() { + if ( !this.token || this.token.getCharPositionInLine()===-1 ) { + if ( this.getChildCount()>0 ) { + return this.getChild(0).getCharPositionInLine(); + } + return 0; + } + return this.token.getCharPositionInLine(); + }, + + getTokenStartIndex: function() { + if ( this.token ) { + return this.token.getTokenIndex(); + } + return this.startIndex; + }, + + setTokenStartIndex: function(index) { + this.startIndex = index; + }, + + getTokenStopIndex: function() { + if ( this.token ) { + return this.token.getTokenIndex(); + } + return this.stopIndex; + }, + + setTokenStopIndex: function(index) { + this.stopIndex = index; + }, + + getChildIndex: function() { + return this.childIndex; + }, + + getParent: function() { + return this.parent; + }, + + setParent: function(t) { + this.parent = t; + }, + + setChildIndex: function(index) { + this.childIndex = index; + }, + + toString: function() { + if ( this.isNil() ) { + return "nil"; + } + if ( this.getType()===org.antlr.runtime.Token.INVALID_TOKEN_TYPE ) { + return ""; + } + if ( !this.token ) { + return null; + } + return this.token.getText(); + } +}); +/** What does a tree look like? ANTLR has a number of support classes + * such as CommonTreeNodeStream that work on these kinds of trees. You + * don't have to make your trees implement this interface, but if you do, + * you'll be able to use more support code. + * + * NOTE: When constructing trees, ANTLR can build any kind of tree; it can + * even use Token objects as trees if you add a child list to your tokens. + * + * This is a tree node without any payload; just navigation and factory stuff. + */ +org.antlr.runtime.tree.Tree = { + INVALID_NODE: new org.antlr.runtime.tree.CommonTree(org.antlr.runtime.Token.INVALID_TOKEN) +}; +org.antlr.runtime.tree.CommonErrorNode = function(input, start, stop, e) { + if ( !stop || + (stop.getTokenIndex() < start.getTokenIndex() && + stop.getType()!=org.antlr.runtime.Token.EOF) ) + { + // sometimes resync does not consume a token (when LT(1) is + // in follow set. So, stop will be 1 to left to start. adjust. + // Also handle case where start is the first token and no token + // is consumed during recovery; LT(-1) will return null. + stop = start; + } + this.input = input; + this.start = start; + this.stop = stop; + this.trappedException = e; +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.CommonErrorNode, org.antlr.runtime.tree.CommonTree, { + isNil: function() { + return false; + }, + + getType: function() { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + }, + + getText: function() { + var badText = null; + if ( this.start instanceof org.antlr.runtime.CommonToken ) { + var i = this.start.getTokenIndex(); + var j = this.stop.getTokenIndex(); + if ( this.stop.getType() === org.antlr.runtime.Token.EOF ) { + j = this.input.size(); + } + badText = this.input.toString(i, j); + } + else if ( this.start instanceof org.antlr.runtime.tree.CommonTree ) { + badText = this.input.toString(this.start, this.stop); + } + else { + // people should subclass if they alter the tree type so this + // next one is for sure correct. + badText = ""; + } + return badText; + }, + + toString: function() { + if ( this.trappedException instanceof org.antlr.runtime.MissingTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.UnwantedTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.MismatchedTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.NoViableAltException ) { + return ""; + } + return ""; + } +}); +/** A TreeAdaptor that works with any Tree implementation. */ +org.antlr.runtime.tree.BaseTreeAdaptor = function() { + this.uniqueNodeID = 1; +}; + +org.antlr.runtime.tree.BaseTreeAdaptor.prototype = { + nil: function() { + return this.create(null); + }, + + /** create tree node that holds the start and stop tokens associated + * with an error. + * + * If you specify your own kind of tree nodes, you will likely have to + * override this method. CommonTree returns Token.INVALID_TOKEN_TYPE + * if no token payload but you might have to set token type for diff + * node type. + */ + errorNode: function(input, start, stop, e) { + var t = new org.antlr.runtime.tree.CommonErrorNode(input, start, stop, e); + return t; + }, + + isNil: function(tree) { + return tree.isNil(); + }, + + /** This is generic in the sense that it will work with any kind of + * tree (not just Tree interface). It invokes the adaptor routines + * not the tree node routines to do the construction. + */ + dupTree: function(t, parent) { + if (arguments.length===1) { + parent = null; + } + if ( !t ) { + return null; + } + var newTree = this.dupNode(t); + // ensure new subtree root has parent/child index set + this.setChildIndex(newTree, this.getChildIndex(t)); // same index in new tree + this.setParent(newTree, parent); + var n = this.getChildCount(t), + i, child, newSubTree; + for (i = 0; i < n; i++) { + child = this.getChild(t, i); + newSubTree = this.dupTree(child, t); + this.addChild(newTree, newSubTree); + } + return newTree; + }, + + /** Add a child to the tree t. If child is a flat tree (a list), make all + * in list children of t. Warning: if t has no children, but child does + * and child isNil then you can decide it is ok to move children to t via + * t.children = child.children; i.e., without copying the array. Just + * make sure that this is consistent with have the user will build + * ASTs. + */ + addChild: function(t, child) { + if ( t && org.antlr.lang.isValue(child) ) { + t.addChild(child); + } + }, + + /** If oldRoot is a nil root, just copy or move the children to newRoot. + * If not a nil root, make oldRoot a child of newRoot. + * + * old=^(nil a b c), new=r yields ^(r a b c) + * old=^(a b c), new=r yields ^(r ^(a b c)) + * + * If newRoot is a nil-rooted single child tree, use the single + * child as the new root node. + * + * old=^(nil a b c), new=^(nil r) yields ^(r a b c) + * old=^(a b c), new=^(nil r) yields ^(r ^(a b c)) + * + * If oldRoot was null, it's ok, just return newRoot (even if isNil). + * + * old=null, new=r yields r + * old=null, new=^(nil r) yields ^(nil r) + * + * Return newRoot. Throw an exception if newRoot is not a + * simple node or nil root with a single child node--it must be a root + * node. If newRoot is ^(nil x) return x as newRoot. + * + * Be advised that it's ok for newRoot to point at oldRoot's + * children; i.e., you don't have to copy the list. We are + * constructing these nodes so we should have this control for + * efficiency. + */ + becomeRoot: function(newRoot, oldRoot) { + if (newRoot instanceof org.antlr.runtime.CommonToken || !newRoot) { + newRoot = this.create(newRoot); + } + + var newRootTree = newRoot, + oldRootTree = oldRoot; + if ( !oldRoot ) { + return newRoot; + } + // handle ^(nil real-node) + if ( newRootTree.isNil() ) { + if ( newRootTree.getChildCount()>1 ) { + // TODO: make tree run time exceptions hierarchy + throw new Error("more than one node as root (TODO: make exception hierarchy)"); + } + newRootTree = newRootTree.getChild(0); + } + // add oldRoot to newRoot; addChild takes care of case where oldRoot + // is a flat list (i.e., nil-rooted tree). All children of oldRoot + // are added to newRoot. + newRootTree.addChild(oldRootTree); + return newRootTree; + }, + + /** Transform ^(nil x) to x */ + rulePostProcessing: function(root) { + var r = root; + if ( r && r.isNil() ) { + if ( r.getChildCount()===0 ) { + r = null; + } + else if ( r.getChildCount()===1 ) { + r = r.getChild(0); + // whoever invokes rule will set parent and child index + r.setParent(null); + r.setChildIndex(-1); + } + } + return r; + }, + + create: function(tokenType, fromToken) { + var text, t; + if (arguments.length===2) { + if (org.antlr.lang.isString(arguments[1])) { + text = arguments[1]; + fromToken = this.createToken(tokenType, text); + t = this.create(fromToken); + return t; + } else { + fromToken = this.createToken(fromToken); + fromToken.setType(tokenType); + t = this.create(fromToken); + return t; + } + } else if (arguments.length===3) { + text = arguments[2]; + fromToken = this.createToken(fromToken); + fromToken.setType(tokenType); + fromToken.setText(text); + t = this.create(fromToken); + return t; + } + }, + + getType: function(t) { + t.getType(); + return 0; + }, + + setType: function(t, type) { + throw new Error("don't know enough about Tree node"); + }, + + getText: function(t) { + return t.getText(); + }, + + setText: function(t, text) { + throw new Error("don't know enough about Tree node"); + }, + + getChild: function(t, i) { + return t.getChild(i); + }, + + setChild: function(t, i, child) { + t.setChild(i, child); + }, + + deleteChild: function(t, i) { + return t.deleteChild(i); + }, + + getChildCount: function(t) { + return t.getChildCount(); + }, + + getUniqueID: function(node) { + if ( !this.treeToUniqueIDMap ) { + this.treeToUniqueIDMap = {}; + } + var prevID = this.treeToUniqueIDMap[node]; + if ( org.antlr.lang.isValue(prevID) ) { + return prevID; + } + var ID = this.uniqueNodeID; + this.treeToUniqueIDMap[node] = ID; + this.uniqueNodeID++; + return ID; + // GC makes these nonunique: + // return System.identityHashCode(node); + } +}; +/** A TreeAdaptor that works with any Tree implementation. It provides + * really just factory methods; all the work is done by BaseTreeAdaptor. + * If you would like to have different tokens created than ClassicToken + * objects, you need to override this and then set the parser tree adaptor to + * use your subclass. + * + * To get your parser to build nodes of a different type, override + * create(Token). + */ +org.antlr.runtime.tree.CommonTreeAdaptor = function() {}; + +org.antlr.lang.extend(org.antlr.runtime.tree.CommonTreeAdaptor, + org.antlr.runtime.tree.BaseTreeAdaptor, { + /** Duplicate a node. This is part of the factory; + * override if you want another kind of node to be built. + * + * I could use reflection to prevent having to override this + * but reflection is slow. + */ + dupNode: function(t) { + if ( !org.antlr.lang.isValue(t) ) { + return null; + } + return t.dupNode(); + }, + + create: function(payload) { + if (arguments.length>1) { + return org.antlr.runtime.tree.CommonTreeAdaptor.superclass.create.apply(this, arguments); + } + return new org.antlr.runtime.tree.CommonTree(payload); + }, + + /** Tell me how to create a token for use with imaginary token nodes. + * For example, there is probably no input symbol associated with imaginary + * token DECL, but you need to create it as a payload or whatever for + * the DECL node as in ^(DECL type ID). + * + * If you care what the token payload objects' type is, you should + * override this method and any other createToken variant. + * + * Tell me how to create a token for use with imaginary token nodes. + * For example, there is probably no input symbol associated with imaginary + * token DECL, but you need to create it as a payload or whatever for + * the DECL node as in ^(DECL type ID). + * + * This is a variant of createToken where the new token is derived from + * an actual real input token. Typically this is for converting '{' + * tokens to BLOCK etc... You'll see + * + * r : lc='{' ID+ '}' -> ^(BLOCK[$lc] ID+) ; + * + * If you care what the token payload objects' type is, you should + * override this method and any other createToken variant. + */ + createToken: function(fromToken) { + if (arguments.length===2) { + return new org.antlr.runtime.CommonToken(arguments[0], arguments[1]); + } else { + return new org.antlr.runtime.CommonToken(arguments[0]); + } + }, + + /** Track start/stop token for subtree root created for a rule. + * Only works with Tree nodes. For rules that match nothing, + * seems like this will yield start=i and stop=i-1 in a nil node. + * Might be useful info so I'll not force to be i..i. + */ + setTokenBoundaries: function(t, startToken, stopToken) { + if ( !org.antlr.lang.isValue(t) ) { + return; + } + var start = 0, + stop = 0; + if ( org.antlr.lang.isValue(startToken) ) { + if (startToken.getTokenIndex) { + start = startToken.getTokenIndex(); + } else if (startToken.getStartIndex) { + start = startToken.getStartIndex(); + } else { + start = startToken.getTokenStartIndex(); + } + } + if ( org.antlr.lang.isValue(stopToken) ) { + if (stop.getTokenIndex) { + stop = stopToken.getTokenIndex(); + } else if (stopToken.getStopIndex) { + stop = stopToken.getStopIndex(); + } else { + stop = stopToken.getTokenStopIndex(); + } + } + t.setTokenStartIndex(start); + t.setTokenStopIndex(stop); + }, + + getTokenStartIndex: function(t) { + if (!t) { + return -1; + } + return t.getTokenStartIndex(); + }, + + getTokenStopIndex: function(t) { + if (!t) { + return -1; + } + return t.getTokenStopIndex(); + }, + + getText: function(t) { + if (!t) { + return null; + } + return t.getText(); + }, + + getType: function(t) { + if (!t) { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } + return t.getType(); + }, + + /** What is the Token associated with this node? If + * you are not using CommonTree, then you must + * override this in your own adaptor. + */ + getToken: function(t) { + if ( t instanceof org.antlr.runtime.tree.CommonTree ) { + return t.getToken(); + } + return null; // no idea what to do + }, + + getChild: function(t, i) { + if (!t) { + return null; + } + return t.getChild(i); + }, + + getChildCount: function(t) { + if (!t) { + return 0; + } + return t.getChildCount(); + }, + + getParent: function(t) { + return t.getParent(); + }, + + setParent: function(t, parent) { + t.setParent(parent); + }, + + getChildIndex: function(t) { + return t.getChildIndex(); + }, + + setChildIndex: function(t, index) { + t.setChildIndex(index); + }, + + replaceChildren: function(parent, startChildIndex, stopChildIndex, t) { + if ( parent ) { + parent.replaceChildren(startChildIndex, stopChildIndex, t); + } + } +}); +/** + * A stream of characters created from a JavaScript string that in turn gets + * fed to a lexer. + * @class + * @param {String} data the string from which this stream will be created. + */ +org.antlr.runtime.ANTLRStringStream = function(data) { + /** + * Location in the stream. + * Ranges from 0 to (stream length - 1). + * @private + * @type Number + */ + this.p = 0; + + /** + * The current line in the input. + * Ranges from 1 to (number of lines). + * @private + * @type Number + */ + this.line = 1; + + /** + * The index of the character relative to the beginning of the line. + * Ranges from 0 to (length of line - 1). + * @private + * @type Number + */ + this.charPositionInLine = 0; + + /** + * Tracks how deep mark() calls are nested + * @private + * @type Number + */ + this.markDepth = 0; + + /** + * An Array of objects that tracks the stream state + * values line, charPositionInLine, and p that can change as you + * move through the input stream. Indexed from 1..markDepth. + * A null is kept at index 0. Created upon first call to mark(). + * @private + * @type Array + */ + this.markers = null; + + /** + * Track the last mark() call result value for use in rewind(). + * @private + * @type Number + */ + this.lastMarker = null; + + /** + * The data being scanned. + * @private + * @type String + */ + this.data = data; + + /** + * The number of characters in the stream. + * @private + * @type Number + */ + this.n = data.length; +}; + +org.antlr.runtime.ANTLRStringStream.prototype = { + /** + * Reset the stream so that it's in the same state it was + * when the object was created *except* the data array is not + * touched. + */ + reset: function() { + this.p = 0; + this.line = 1; + this.charPositionInLine = 0; + this.markDepth = 0; + }, + + /** + * Consume the next character of data in the stream. + */ + consume: function() { + //console.log("prev p="+ this.p +", c="+ this.data.charAt(this.p)); + if ( this.p < this.n ) { + this.charPositionInLine++; + if ( this.data.charAt(this.p)==="\n" ) { + this.line++; + this.charPositionInLine=0; + } + this.p++; + //console.log("p moves to " + this.p + " (c='"+ this.data.charAt(this.p) +"')"); + } + }, + + /** + * Get character at current input pointer + i ahead where i=1 is next int. + * Negative indexes are allowed. LA(-1) is previous token (token + * just matched). LA(-i) where i is before first token should + * yield -1, invalid char / EOF. + * @param {Number} i non-zero amount of lookahead or lookback + * @returns {String|Number} The charcter at the specified position or -1 if + * you fell off either end of the stream. + */ + LA: function(i) { + if ( i<0 ) { + i++; // e.g., translate LA(-1) to use offset i=0; then data[p+0-1] + } + + var new_pos = this.p+i-1; + if (new_pos>=this.n || new_pos<0) { + return org.antlr.runtime.CharStream.EOF; + } + return this.data.charAt(new_pos); + }, + + + /** + * Return the current input symbol index 0..n where n indicates the + * last symbol has been read. The index is the index of char to + * be returned from LA(1) (i.e. the one about to be consumed). + * @returns {Number} the index of the current input symbol + */ + index: function() { + return this.p; + }, + + /** + * The length of this stream. + * @returns {Number} the length of this stream. + */ + size: function() { + return this.n; + }, + + /** + * Tell the stream to start buffering if it hasn't already. Return + * current input position, index(), or some other marker so that + * when passed to rewind() you get back to the same spot. + * rewind(mark()) should not affect the input cursor. The Lexer + * tracks line/col info as well as input index so its markers are + * not pure input indexes. Same for tree node streams. + * + *

Marking is a mechanism for storing the current position of a stream + * in a stack. This corresponds with the predictive look-ahead mechanism + * used in Lexers.

+ * @returns {Number} the current size of the mark stack. + */ + mark: function() { + if ( !this.markers ) { + this.markers = []; + this.markers.push(null); // depth 0 means no backtracking, leave blank + } + this.markDepth++; + var state = null; + if ( this.markDepth>=this.markers.length ) { + state = {}; + this.markers.push(state); + } + else { + state = this.markers[this.markDepth]; + } + state.p = this.p; + state.line = this.line; + state.charPositionInLine = this.charPositionInLine; + this.lastMarker = this.markDepth; + return this.markDepth; + }, + + /** + * Rewind to the input position of the last marker. + * Used currently only after a cyclic DFA and just + * before starting a sem/syn predicate to get the + * input position back to the start of the decision. + * Do not "pop" the marker off the state. mark(i) + * and rewind(i) should balance still. It is + * like invoking rewind(last marker) but it should not "pop" + * the marker off. It's like seek(last marker's input position). + * @param {Number} [m] the index in the mark stack to load instead of the + * last. + */ + rewind: function(m) { + if (!org.antlr.lang.isNumber(m)) { + m = this.lastMarker; + } + + var state = this.markers[m]; + // restore stream state + this.seek(state.p); + this.line = state.line; + this.charPositionInLine = state.charPositionInLine; + this.release(m); + }, + + /** + * You may want to commit to a backtrack but don't want to force the + * stream to keep bookkeeping objects around for a marker that is + * no longer necessary. This will have the same behavior as + * rewind() except it releases resources without the backward seek. + * This must throw away resources for all markers back to the marker + * argument. So if you're nested 5 levels of mark(), and then release(2) + * you have to release resources for depths 2..5. + * @param {Number} marker the mark depth above which all mark states will + * be released. + */ + release: function(marker) { + // unwind any other markers made after m and release m + this.markDepth = marker; + // release this marker + this.markDepth--; + }, + + /** + * Set the input cursor to the position indicated by index. This is + * normally used to seek ahead in the input stream. No buffering is + * required to do this unless you know your stream will use seek to + * move backwards such as when backtracking. + * + *

This is different from rewind in its multi-directional + * requirement and in that its argument is strictly an input cursor + * (index).

+ * + *

For char streams, seeking forward must update the stream state such + * as line number. For seeking backwards, you will be presumably + * backtracking using the mark/rewind mechanism that restores state and + * so this method does not need to update state when seeking backwards.

+ * + *

Currently, this method is only used for efficient backtracking using + * memoization, but in the future it may be used for incremental + * parsing.

+ * + *

The index is 0..n-1. A seek to position i means that LA(1) will + * return the ith symbol. So, seeking to 0 means LA(1) will return the + * first element in the stream.

+ * + *

Esentially this method method moves the input position, + * {@link #consume}-ing data if necessary.

+ * + * @param {Number} index the position to seek to. + */ + seek: function(index) { + if ( index<=this.p ) { + this.p = index; // just jump; don't update stream state (line, ...) + return; + } + // seek forward, consume until p hits index + while ( this.p= 2) { + this.channel = channel; + } else if (arguments.length === 1) { + this.tokenSource = tokenSource; + } +}; + +org.antlr.runtime.CommonTokenStream.prototype = { + /** Reset this token stream by setting its token source. */ + setTokenSource: function(tokenSource) { + this.tokenSource = tokenSource; + this.tokens = []; + this.p = -1; + this.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + }, + + /** Load all tokens from the token source and put in tokens. + * This is done upon first LT request because you might want to + * set some token type / channel overrides before filling buffer. + */ + fillBuffer: function() { + var index = 0, + t = this.tokenSource.nextToken(), + discard, + channelI; + while ( org.antlr.lang.isValue(t) && + t.getType()!=org.antlr.runtime.CharStream.EOF ) + { + discard = false; + // is there a channel override for token type? + if ( this.channelOverrideMap ) { + channelI = this.channelOverrideMap[t.getType()]; + if ( org.antlr.lang.isValue(channelI) ) { + t.setChannel(channelI); + } + } + if ( this.discardSet && this.discardSet[t.getType()] ) + { + discard = true; + } + else if ( this.v_discardOffChannelTokens && + t.getChannel()!=this.channel ) + { + discard = true; + } + if ( !discard ) { + t.setTokenIndex(index); + this.tokens.push(t); + index++; + } + t = this.tokenSource.nextToken(); + } + // leave p pointing at first token on channel + this.p = 0; + this.p = this.skipOffTokenChannels(this.p); + }, + + /** Move the input pointer to the next incoming token. The stream + * must become active with LT(1) available. consume() simply + * moves the input pointer so that LT(1) points at the next + * input symbol. Consume at least one token. + * + * Walk past any token not on the channel the parser is listening to. + */ + consume: function() { + if ( this.p=0 && (this.tokens[i]).getChannel()!=this.channel ) { + i--; + } + return i; + }, + + /** A simple filter mechanism whereby you can tell this token stream + * to force all tokens of type ttype to be on channel. For example, + * when interpreting, we cannot exec actions so we need to tell + * the stream to force all WS and NEWLINE to be a different, ignored + * channel. + */ + setTokenTypeChannel: function(ttype, channel) { + if ( !this.channelOverrideMap ) { + this.channelOverrideMap = {}; + } + this.channelOverrideMap[ttype] = channel; + }, + + discardTokenType: function(ttype) { + if ( !this.discardSet ) { + this.discardSet = {}; + } + this.discardSet[ttype] = true; + }, + + discardOffChannelTokens: function(b) { + this.v_discardOffChannelTokens = b; + }, + + /** Given a start and stop index, return a List of all tokens in + * the token type BitSet. Return null if no tokens were found. This + * method looks at both on and off channel tokens. + */ + getTokens: function(start, stop, types) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + + if (arguments.length===0) { + return this.tokens; + } + + if (org.antlr.lang.isArray(types)) { + types = new org.antlr.runtime.BitSet(types); + } else if (org.antlr.lang.isNumber(types)) { + types = org.antlr.runtime.BitSet.of(types); + } + + if ( stop>=this.tokens.length ) { + stop=this.tokens.length-1; + } + if ( start<0 ) { + start=0; + } + if ( start>stop ) { + return null; + } + + // list = tokens[start:stop]:{Token t, t.getType() in types} + var filteredTokens = [], + i, + t; + for (i=start; i<=stop; i++) { + t = this.tokens[i]; + if ( !this.types || types.member(t.getType()) ) { + filteredTokens.push(t); + } + } + if ( filteredTokens.length===0 ) { + filteredTokens = null; + } + return filteredTokens; + }, + + /** Get the ith token from the current position 1..n where k=1 is the + * first symbol of lookahead. + */ + LT: function(k) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + if ( k===0 ) { + return null; + } + if ( k<0 ) { + return this.LB(-1*k); + } + if ( (this.p+k-1) >= this.tokens.length ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + var i = this.p, + n = 1; + // find k good tokens + while ( n=this.tokens.length ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + return this.tokens[i]; + }, + + /** Look backwards k tokens on-channel tokens */ + LB: function(k) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + if ( k===0 ) { + return null; + } + if ( (this.p-k)<0 ) { + return null; + } + + var i = this.p, + n = 1; + // find k good tokens looking backwards + while ( n<=k ) { + // skip off-channel tokens + i = this.skipOffTokenChannelsReverse(i-1); // leave p on valid token + n++; + } + if ( i<0 ) { + return null; + } + return this.tokens[i]; + }, + + /** Return absolute token i; ignore which channel the tokens are on; + * that is, count all tokens not just on-channel tokens. + */ + get: function(i) { + return this.tokens[i]; + }, + + LA: function(i) { + return this.LT(i).getType(); + }, + + mark: function() { + if ( this.p === -1 ) { + this.fillBuffer(); + } + this.lastMarker = this.index(); + return this.lastMarker; + }, + + release: function(marker) { + // no resources to release + }, + + size: function() { + return this.tokens.length; + }, + + index: function() { + return this.p; + }, + + rewind: function(marker) { + if (!org.antlr.lang.isNumber(marker)) { + marker = this.lastMarker; + } + this.seek(marker); + }, + + reset: function() { + this.p = -1; + this.lastMarker = 0; + }, + + seek: function(index) { + this.p = index; + }, + + getTokenSource: function() { + return this.tokenSource; + }, + + getSourceName: function() { + return this.getTokenSource().getSourceName(); + }, + + toString: function(start, stop) { + if (arguments.length===0) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + start = 0; + stop = this.tokens.length-1; + } + + if (!org.antlr.lang.isNumber(start) && !org.antlr.lang.isNumber(stop)) { + if ( org.antlr.lang.isValue(start) && org.antlr.lang.isValue(stop) ) { + start = start.getTokenIndex(); + stop = stop.getTokenIndex(); + } else { + return null; + } + } + + var buf = "", + i; + + if ( start<0 || stop<0 ) { + return null; + } + if ( this.p == -1 ) { + this.fillBuffer(); + } + if ( stop>=this.tokens.length ) { + stop = this.tokens.length-1; + } + for (i = start; i <= stop; i++) { + t = this.tokens[i]; + buf = buf + this.tokens[i].getText(); + } + return buf; + } +}; +/* Useful for dumping out the input stream after doing some + * augmentation or other manipulations. + * + * You can insert stuff, replace, and delete chunks. Note that the + * operations are done lazily--only if you convert the buffer to a + * String. This is very efficient because you are not moving data around + * all the time. As the buffer of tokens is converted to strings, the + * toString() method(s) check to see if there is an operation at the + * current index. If so, the operation is done and then normal String + * rendering continues on the buffer. This is like having multiple Turing + * machine instruction streams (programs) operating on a single input tape. :) + * + * Since the operations are done lazily at toString-time, operations do not + * screw up the token index values. That is, an insert operation at token + * index i does not change the index values for tokens i+1..n-1. + * + * Because operations never actually alter the buffer, you may always get + * the original token stream back without undoing anything. Since + * the instructions are queued up, you can easily simulate transactions and + * roll back any changes if there is an error just by removing instructions. + * For example, + * + * CharStream input = new ANTLRFileStream("input"); + * TLexer lex = new TLexer(input); + * TokenRewriteStream tokens = new TokenRewriteStream(lex); + * T parser = new T(tokens); + * parser.startRule(); + * + * Then in the rules, you can execute + * Token t,u; + * ... + * input.insertAfter(t, "text to put after t");} + * input.insertAfter(u, "text after u");} + * System.out.println(tokens.toString()); + * + * Actually, you have to cast the 'input' to a TokenRewriteStream. :( + * + * You can also have multiple "instruction streams" and get multiple + * rewrites from a single pass over the input. Just name the instruction + * streams and use that name again when printing the buffer. This could be + * useful for generating a C file and also its header file--all from the + * same buffer: + * + * tokens.insertAfter("pass1", t, "text to put after t");} + * tokens.insertAfter("pass2", u, "text after u");} + * System.out.println(tokens.toString("pass1")); + * System.out.println(tokens.toString("pass2")); + * + * If you don't use named rewrite streams, a "default" stream is used as + * the first example shows. + */ + +org.antlr.runtime.TokenRewriteStream = function() { + var sup = org.antlr.runtime.TokenRewriteStream.superclass; + + /** You may have multiple, named streams of rewrite operations. + * I'm calling these things "programs." + * Maps String (name) -> rewrite (List) + */ + this.programs = null; + + /** Map String (program name) -> Integer index */ + this.lastRewriteTokenIndexes = null; + + + if (arguments.length===0) { + this.init(); + } else { + sup.constructor.apply(this, arguments); + this.init(); + } +}; + +(function(){ +var trs = org.antlr.runtime.TokenRewriteStream; + +org.antlr.lang.augmentObject(trs, { + DEFAULT_PROGRAM_NAME: "default", + PROGRAM_INIT_SIZE: 100, + MIN_TOKEN_INDEX: 0 +}); + +// +// Define the rewrite operation hierarchy +// + +trs.RewriteOperation = function(index, text) { + this.index = index; + this.text = text; +}; + +/** Execute the rewrite operation by possibly adding to the buffer. + * Return the index of the next token to operate on. + */ +trs.RewriteOperation.prototype = { + execute: function(buf) { + return this.index; + }, + toString: function() { + /*String opName = getClass().getName(); + int $index = opName.indexOf('$'); + opName = opName.substring($index+1, opName.length()); + return opName+"@"+index+'"'+text+'"';*/ + return this.text; + } +}; + +trs.InsertBeforeOp = function(index, text) { + trs.InsertBeforeOp.superclass.constructor.call(this, index, text); +}; +org.antlr.lang.extend(trs.InsertBeforeOp, trs.RewriteOperation, { + execute: function(buf) { + buf.push(this.text); + return this.index; + } +}); + +/** I'm going to try replacing range from x..y with (y-x)+1 ReplaceOp + * instructions. + */ +trs.ReplaceOp = function(from, to, text) { + trs.ReplaceOp.superclass.constructor.call(this, from, text); + this.lastIndex = to; +}; +org.antlr.lang.extend(trs.ReplaceOp, trs.RewriteOperation, { + execute: function(buf) { + if (org.antlr.lang.isValue(this.text)) { + buf.push(this.text); + } + return this.lastIndex+1; + } +}); + +trs.DeleteOp = function(from, to) { + trs.DeleteOp.superclass.constructor.call(this, from, to); +}; +org.antlr.lang.extend(trs.DeleteOp, trs.ReplaceOp); + +org.antlr.lang.extend(trs, org.antlr.runtime.CommonTokenStream, { + init: function() { + this.programs = {}; + this.programs[trs.DEFAULT_PROGRAM_NAME] = []; + this.lastRewriteTokenIndexes = {}; + }, + + /** Rollback the instruction stream for a program so that + * the indicated instruction (via instructionIndex) is no + * longer in the stream. UNTESTED! + */ + rollback: function() { + var programName, + instructionIndex; + + if (arguments.length===1) { + programName = trs.DEFAULT_PROGRAM_NAME; + instructionIndex = arguments[0]; + } else if (arguments.length===2) { + programName = arguments[0]; + instructionIndex = arguments[1]; + } + var is = this.programs[programName]; + if (is) { + programs[programName] = is.slice(trs.MIN_TOKEN_INDEX, this.instructionIndex); + } + }, + + /** Reset the program so that no instructions exist */ + deleteProgram: function(programName) { + programName = programName || trs.DEFAULT_PROGRAM_NAME; + this.rollback(programName, trs.MIN_TOKEN_INDEX); + }, + + /** Add an instruction to the rewrite instruction list ordered by + * the instruction number (use a binary search for efficiency). + * The list is ordered so that toString() can be done efficiently. + * + * When there are multiple instructions at the same index, the instructions + * must be ordered to ensure proper behavior. For example, a delete at + * index i must kill any replace operation at i. Insert-before operations + * must come before any replace / delete instructions. If there are + * multiple insert instructions for a single index, they are done in + * reverse insertion order so that "insert foo" then "insert bar" yields + * "foobar" in front rather than "barfoo". This is convenient because + * I can insert new InsertOp instructions at the index returned by + * the binary search. A ReplaceOp kills any previous replace op. Since + * delete is the same as replace with null text, i can check for + * ReplaceOp and cover DeleteOp at same time. :) + */ + addToSortedRewriteList: function() { + var programName, + op; + if (arguments.length===1) { + programName = trs.DEFAULT_PROGRAM_NAME; + op = arguments[0]; + } else if (arguments.length===2) { + programName = arguments[0]; + op = arguments[1]; + } + + var rewrites = this.getProgram(programName); + var len, pos, searchOp, replaced, prevOp, i; + for (pos=0, len=rewrites.length; pos op.index) { + rewrites.splice(pos, 0, op); + break; + } + } + if (pos===len) { + rewrites.push(op); + } + }, + + insertAfter: function() { + var index, programName, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + index = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = arguments[0]; + index = arguments[1]; + text = arguments[2]; + } + + if (index instanceof org.antlr.runtime.CommonToken) { + // index is a Token, grab it's stream index + index = index.index; // that's ugly + } + + // insert after is the same as insert before the next index + this.insertBefore(programName, index+1, text); + }, + + insertBefore: function() { + var index, programName, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + index = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = arguments[0]; + index = arguments[1]; + text = arguments[2]; + } + + if (index instanceof org.antlr.runtime.CommonToken) { + // index is a Token, grab it's stream index + index = index.index; // that's ugly + } + + this.addToSortedRewriteList( + programName, + new trs.InsertBeforeOp(index,text) + ); + }, + + replace: function() { + var programName, first, last, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + first = arguments[0]; + last = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = trs.DEFAULT_PROGRAM_NAME; + first = arguments[0]; + last = arguments[1]; + text = arguments[2]; + } if (arguments.length===4) { + programName = arguments[0]; + first = arguments[1]; + last = arguments[2]; + text = arguments[3]; + } + + if (first instanceof org.antlr.runtime.CommonToken) { + first = first.index; + } + + if (last instanceof org.antlr.runtime.CommonToken) { + last = last.index; // that's ugly + } + + if ( first > last || last<0 || first<0 ) { + return; + } + this.addToSortedRewriteList( + programName, + new trs.ReplaceOp(first, last, text)); + }, + + // !!! API Break: delete is a JS keyword, so using remove instead. + remove: function() { + // convert arguments to a real array + var args=[], i=arguments.length-1; + while (i>=0) { + args[i] = arguments[i]; + i--; + } + + args.push(""); + this.replace.apply(this, args); + }, + + getLastRewriteTokenIndex: function(programName) { + programName = programName || trs.DEFAULT_PROGRAM_NAME; + return this.lastRewriteTokenIndexes[programName] || -1; + }, + + setLastRewriteTokenIndex: function(programName, i) { + this.lastRewriteTokenIndexes[programName] = i; + }, + + getProgram: function(name) { + var is = this.programs[name]; + if ( !is ) { + is = this.initializeProgram(name); + } + return is; + }, + + initializeProgram: function(name) { + var is = []; + this.programs[name] = is; + return is; + }, + + toOriginalString: function(start, end) { + if (!org.antlr.lang.isNumber(start)) { + start = trs.MIN_TOKEN_INDEX; + } + if (!org.antlr.lang.isNumber(end)) { + end = this.size()-1; + } + + var buf = [], i; + for (i=start; i>=trs.MIN_TOKEN_INDEX && i<=end && i=trs.MIN_TOKEN_INDEX && + tokenCursor<=end && + tokenCursor=trs.MIN_TOKEN_INDEX && i<=end && i0 ) { + this.addNavigationNode(org.antlr.runtime.Token.DOWN); + } + // and now add all its children + var c, child; + for (c=0; c0 ) { + this.addNavigationNode(org.antlr.runtime.Token.UP); + } + + if (reset_p) { + this.p = 0; // buffer of nodes intialized now + } + }, + + getNodeIndex: function(node) { + if ( this.p==-1 ) { + this.fillBuffer(); + } + var i, t; + for (i=0; i= this.nodes.length ) { + return this.eof; + } + return this.nodes[this.p+k-1]; + }, + + getCurrentSymbol: function() { return this.LT(1); }, + + /** Look backwards k nodes */ + LB: function(k) { + if ( k===0 ) { + return null; + } + if ( (this.p-k)<0 ) { + return null; + } + return this.nodes[this.p-k]; + }, + + getTreeSource: function() { + return this.root; + }, + + getSourceName: function() { + return this.getTokenStream().getSourceName(); + }, + + getTokenStream: function() { + return this.tokens; + }, + + setTokenStream: function(tokens) { + this.tokens = tokens; + }, + + getTreeAdaptor: function() { + return this.adaptor; + }, + + setTreeAdaptor: function(adaptor) { + this.adaptor = adaptor; + }, + + hasUniqueNavigationNodes: function() { + return this.uniqueNavigationNodes; + }, + + setUniqueNavigationNodes: function(uniqueNavigationNodes) { + this.uniqueNavigationNodes = uniqueNavigationNodes; + }, + + consume: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.p++; + }, + + LA: function(i) { + return this.adaptor.getType(this.LT(i)); + }, + + mark: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.lastMarker = this.index(); + return this.lastMarker; + }, + + release: function(marker) { + // no resources to release + }, + + index: function() { + return this.p; + }, + + rewind: function(marker) { + if (!org.antlr.lang.isNumber(marker)) { + marker = this.lastMarker; + } + this.seek(marker); + }, + + seek: function(index) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.p = index; + }, + + /** Make stream jump to a new location, saving old location. + * Switch back with pop(). + */ + push: function(index) { + if ( !this.calls ) { + this.calls = []; + } + this.calls.push(this.p); // save current index + this.seek(index); + }, + + /** Seek back to previous index saved during last push() call. + * Return top of stack (return index). + */ + pop: function() { + var ret = this.calls.pop(); + this.seek(ret); + return ret; + }, + + reset: function() { + this.p = -1; + this.lastMarker = 0; + if (this.calls) { + this.calls = []; + } + }, + + size: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + return this.nodes.length; + }, + + iterator: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + return this.StreamIterator(); + }, + + replaceChildren: function(parent, startChildIndex, stopChildIndex, t) { + if ( parent ) { + this.adaptor.replaceChildren(parent, startChildIndex, stopChildIndex, t); + } + }, + + /** Debugging */ + toTokenString: function(start, stop) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + var buf='', i, t; + for (i = start; i < this.nodes.length && i <= stop; i++) { + t = this.nodes[i]; + buf += " "+this.adaptor.getToken(t); + } + return buf; + }, + + /** Used for testing, just return the token type stream */ + toString: function(start, stop) { + var buf = "", + text, + t, + i; + if (arguments.length===0) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + for (i = 0; i < this.nodes.length; i++) { + t = this.nodes[i]; + buf += " "; + buf += this.adaptor.getType(t); + } + return buf; + } else { + if ( !org.antlr.lang.isNumber(start) || !org.antlr.lang.isNumber(stop) ) { + return null; + } + if ( this.p===-1 ) { + this.fillBuffer(); + } + //System.out.println("stop: "+stop); + if ( start instanceof org.antlr.runtime.tree.CommonTree ) { + //System.out.print("toString: "+((CommonTree)start).getToken()+", "); + } else { + //System.out.println(start); + } + if ( stop instanceof org.antlr.runtime.tree.CommonTree ) { + //System.out.println(((CommonTree)stop).getToken()); + } else { + //System.out.println(stop); + } + // if we have the token stream, use that to dump text in order + var beginTokenIndex, + endTokenIndex; + if ( this.tokens ) { + beginTokenIndex = this.adaptor.getTokenStartIndex(start); + endTokenIndex = this.adaptor.getTokenStopIndex(stop); + // if it's a tree, use start/stop index from start node + // else use token range from start/stop nodes + if ( this.adaptor.getType(stop)===org.antlr.runtime.Token.UP ) { + endTokenIndex = this.adaptor.getTokenStopIndex(start); + } + else if ( this.adaptor.getType(stop)==org.antlr.runtime.Token.EOF ) + { + endTokenIndex = this.size()-2; // don't use EOF + } + return this.tokens.toString(beginTokenIndex, endTokenIndex); + } + // walk nodes looking for start + t = null; + i = 0; + for (; i < this.nodes.length; i++) { + t = this.nodes[i]; + if ( t===start ) { + break; + } + } + // now walk until we see stop, filling string buffer with text + buf = text = ""; + t = this.nodes[i]; + while ( t!==stop ) { + text = this.adaptor.getText(t); + if ( !org.antlr.lang.isString(text) ) { + text = " "+this.adaptor.getType(t).toString(); + } + buf += text; + i++; + t = nodes[i]; + } + // include stop node too + text = this.adaptor.getText(stop); + if ( !org.antlr.lang.isString(text) ) { + text = " "+this.adaptor.getType(stop).toString(); + } + buf += text; + return buf; + } + } +}); +/** A generic list of elements tracked in an alternative to be used in + * a -> rewrite rule. We need to subclass to fill in the next() method, + * which returns either an AST node wrapped around a token payload or + * an existing subtree. + * + * Once you start next()ing, do not try to add more elements. It will + * break the cursor tracking I believe. + * + * @see org.antlr.runtime.tree.RewriteRuleSubtreeStream + * @see org.antlr.runtime.tree.RewriteRuleTokenStream + * + * TODO: add mechanism to detect/puke on modification after reading from stream + */ +org.antlr.runtime.tree.RewriteRuleElementStream = function(adaptor, elementDescription, el) { + /** Cursor 0..n-1. If singleElement!=null, cursor is 0 until you next(), + * which bumps it to 1 meaning no more elements. + */ + this.cursor = 0; + + /** Once a node / subtree has been used in a stream, it must be dup'd + * from then on. Streams are reset after subrules so that the streams + * can be reused in future subrules. So, reset must set a dirty bit. + * If dirty, then next() always returns a dup. + * + * I wanted to use "naughty bit" here, but couldn't think of a way + * to use "naughty". + */ + this.dirty = false; + + this.elementDescription = elementDescription; + this.adaptor = adaptor; + if (el) { + if (org.antlr.lang.isArray(el)) { + this.singleElement = null; + this.elements = el; + } else { + this.add(el); + } + } +}; + +org.antlr.runtime.tree.RewriteRuleElementStream.prototype = { + /** Reset the condition of this stream so that it appears we have + * not consumed any of its elements. Elements themselves are untouched. + * Once we reset the stream, any future use will need duplicates. Set + * the dirty bit. + */ + reset: function() { + this.cursor = 0; + this.dirty = true; + }, + + add: function(el) { + if ( !org.antlr.lang.isValue(el) ) { + return; + } + if ( this.elements ) { // if in list, just add + this.elements.push(el); + return; + } + if ( !org.antlr.lang.isValue(this.singleElement) ) { // no elements yet, track w/o list + this.singleElement = el; + return; + } + // adding 2nd element, move to list + this.elements = []; + this.elements.push(this.singleElement); + this.singleElement = null; + this.elements.push(el); + }, + + /** Return the next element in the stream. If out of elements, throw + * an exception unless size()==1. If size is 1, then return elements[0]. + * Return a duplicate node/subtree if stream is out of elements and + * size==1. If we've already used the element, dup (dirty bit set). + */ + nextTree: function() { + var n = this.size(), + el; + if ( this.dirty || (this.cursor>=n && n==1) ) { + // if out of elements and size is 1, dup + el = this._next(); + return this.dup(el); + } + // test size above then fetch + el = this._next(); + return el; + }, + + /** do the work of getting the next element, making sure that it's + * a tree node or subtree. Deal with the optimization of single- + * element list versus list of size > 1. Throw an exception + * if the stream is empty or we're out of elements and size>1. + * protected so you can override in a subclass if necessary. + */ + _next: function() { + var n = this.size(); + if (n===0) { + throw new org.antlr.runtime.tree.RewriteEmptyStreamException(this.elementDescription); + } + if ( this.cursor>= n) { // out of elements? + if ( n===1 ) { // if size is 1, it's ok; return and we'll dup + return this.toTree(this.singleElement); + } + // out of elements and size was not 1, so we can't dup + throw new org.antlr.runtime.tree.RewriteCardinalityException(this.elementDescription); + } + // we have elements + if ( org.antlr.lang.isValue(this.singleElement) ) { + this.cursor++; // move cursor even for single element list + return this.toTree(this.singleElement); + } + // must have more than one in list, pull from elements + var o = this.toTree(this.elements[this.cursor]); + this.cursor++; + return o; + }, + + /** Ensure stream emits trees; tokens must be converted to AST nodes. + * AST nodes can be passed through unmolested. + */ + toTree: function(el) { + if (el && el.getTree) { + return el.getTree(); + } + return el; + }, + + hasNext: function() { + return (org.antlr.lang.isValue(this.singleElement) && this.cursor < 1) || + (this.elements && this.cursor < this.elements.length); + }, + + size: function() { + var n = 0; + if ( org.antlr.lang.isValue(this.singleElement) ) { + n = 1; + } + if ( this.elements ) { + return this.elements.length; + } + return n; + }, + + getDescription: function() { + return this.elementDescription; + } +}; +/** Queues up nodes matched on left side of -> in a tree parser. This is + * the analog of RewriteRuleTokenStream for normal parsers. + */ +org.antlr.runtime.tree.RewriteRuleNodeStream = function(adaptor, elementDescription, el) { + org.antlr.runtime.tree.RewriteRuleNodeStream.superclass.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleNodeStream, + org.antlr.runtime.tree.RewriteRuleElementStream, +{ + nextNode: function() { + return this._next(); + }, + + toTree: function(el) { + return this.adaptor.dupNode(el); + }, + + dup: function() { + // we dup every node, so don't have to worry about calling dup; short- + // circuited next() so it doesn't call. + throw new Error("dup can't be called for a node stream."); + } +}); +org.antlr.runtime.tree.RewriteRuleTokenStream = function(adaptor, elementDescription, el) { + var sup = org.antlr.runtime.tree.RewriteRuleTokenStream.superclass; + sup.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleTokenStream, + org.antlr.runtime.tree.RewriteRuleElementStream, { + /** Get next token from stream and make a node for it */ + nextNode: function() { + var t = this._next(); + return this.adaptor.create(t); + }, + + nextToken: function() { + return this._next(); + }, + + /** Don't convert to a tree unless they explicitly call nextTree. + * This way we can do hetero tree nodes in rewrite. + */ + toTree: function(el) { + return el; + }, + + dup: function(el) { + throw new Error("dup can't be called for a token stream."); + } +}); +org.antlr.runtime.tree.RewriteRuleSubtreeStream = function() { + var sup = org.antlr.runtime.tree.RewriteRuleSubtreeStream.superclass; + sup.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleSubtreeStream, + org.antlr.runtime.tree.RewriteRuleElementStream, { + /** Treat next element as a single node even if it's a subtree. + * This is used instead of next() when the result has to be a + * tree root node. Also prevents us from duplicating recently-added + * children; e.g., ^(type ID)+ adds ID to type and then 2nd iteration + * must dup the type node, but ID has been added. + * + * Referencing a rule result twice is ok; dup entire tree as + * we can't be adding trees as root; e.g., expr expr. + * + * Hideous code duplication here with super.next(). Can't think of + * a proper way to refactor. This needs to always call dup node + * and super.next() doesn't know which to call: dup node or dup tree. + */ + nextNode: function() { + var n = this.size(), + el; + if ( this.dirty || (this.cursor>=n && n===1) ) { + // if out of elements and size is 1, dup (at most a single node + // since this is for making root nodes). + el = this._next(); + return this.adaptor.dupNode(el); + } + // test size above then fetch + el = this._next(); + return el; + }, + + dup: function(el) { + return this.adaptor.dupTree(el); + } +});/** A generic recognizer that can handle recognizers generated from + * lexer, parser, and tree grammars. This is all the parsing + * support code essentially; most of it is error recovery stuff and + * backtracking. + * + *

This class should not be instantiated directly. Instead, use one of its + * subclasses.

+ * + * @class + * @param {org.antlr.runtime.RecognizerSharedState} [state] optional state object + * with which to initialize this recognizer. + */ +org.antlr.runtime.BaseRecognizer = function(state) { + /** State of a lexer, parser, or tree parser are collected into a state + * object so the state can be shared. This sharing is needed to + * have one grammar import others and share same error variables + * and other state variables. It's a kind of explicit multiple + * inheritance via delegation of methods and shared state. + */ + this.state = state || new org.antlr.runtime.RecognizerSharedState(); +}; + +/* static vars, methods */ +org.antlr.lang.augmentObject(org.antlr.runtime.BaseRecognizer, { + MEMO_RULE_FAILED: -2, + MEMO_RULE_UNKNOWN: -1, + INITIAL_FOLLOW_STACK_SIZE: 100, + MEMO_RULE_FAILED_I: -2, + DEFAULT_TOKEN_CHANNEL: org.antlr.runtime.Token.DEFAULT_CHANNEL, + HIDDEN: org.antlr.runtime.Token.HIDDEN_CHANNEL, + NEXT_TOKEN_RULE_NAME: "nextToken" +}); + +org.antlr.runtime.BaseRecognizer.prototype = { + /** Reset the parser's state. Subclasses must rewinds the input stream */ + reset: function() { + var i, len; + + // wack everything related to error recovery + if (!this.state) { + return; // no shared state work to do + } + this.state._fsp = -1; + this.state.errorRecovery = false; + this.state.lastErrorIndex = -1; + this.state.failed = false; + this.state.syntaxErrors = 0; + // wack everything related to backtracking and memoization + this.state.backtracking = 0; + // wipe cache + if (this.state.ruleMemo) { + for (i=0, len=this.state.ruleMemo.length; iTo turn off single token insertion or deletion error + * recovery, override {@link #mismatchRecover} and have it call + * plain {@link #mismatch}, which does not recover. Then any error + * in a rule will cause an exception and immediate exit from + * rule. Rule would recover by resynchronizing to the set of + * symbols that can follow rule ref.

+ * + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype input type to match. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + * @returns {Object} the matched symbol + */ + match: function(input, ttype, follow) { + var matchedSymbol = this.getCurrentInputSymbol(input); + if ( input.LA(1)===ttype ) { + input.consume(); + this.state.errorRecovery = false; + this.state.failed = false; + return matchedSymbol; + } + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return matchedSymbol; + } + matchedSymbol = this.recoverFromMismatchedToken(input, ttype, follow); + return matchedSymbol; + }, + + /** + * Match any token. + * @param {org.antlr.runtime.IntStream} input input stream to match against. + */ + matchAny: function(input) { + this.state.errorRecovery = false; + this.state.failed = false; + input.consume(); + }, + + /** + * Is the following token (LA(2)) the unwanted type (ttype)? + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype the undesired token type. + * @returns {Boolean} true if and only if the following token is the + * unwanted type. + */ + mismatchIsUnwantedToken: function(input, ttype) { + return input.LA(2)===ttype; + }, + + /** + * Does the stream appear to be missing a single token? + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + * @returns {Boolean} true if and only if it appears that the stream is + * missing a single token. + */ + mismatchIsMissingToken: function(input, follow) { + if ( !follow ) { + // we have no information about the follow; we can only consume + // a single token and hope for the best + return false; + } + // compute what can follow this grammar element reference + if ( follow.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) { + if ( this.state._fsp>=0 ) { // remove EOR if we're not the start symbol + follow.remove(org.antlr.runtime.Token.EOR_TOKEN_TYPE); + } + var viableTokensFollowingThisRule = this.computeContextSensitiveRuleFOLLOW(); + follow = follow.or(this.viableTokensFollowingThisRule); + } + // if current token is consistent with what could come after set + // then we know we're missing a token; error recovery is free to + // "insert" the missing token + + // BitSet cannot handle negative numbers like -1 (EOF) so I leave EOR + // in follow set to indicate that the fall of the start symbol is + // in the set (EOF can follow). + if ( follow.member(input.LA(1)) || + follow.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) + { + return true; + } + return false; + }, + + /** Factor out what to do upon token mismatch so tree parsers can behave + * differently. Override and call {@link #mismatchRecover} + * to get single token insertion and deletion. + * + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype input type to match. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + */ + mismatch: function(input, ttype, follow) { + if ( this.mismatchIsUnwantedToken(input, ttype) ) { + throw new org.antlr.runtime.UnwantedTokenException(ttype, input); + } else if ( this.mismatchIsMissingToken(input, follow) ) { + throw new org.antlr.runtime.MissingTokenException(ttype, input, null); + } + throw new org.antlr.runtime.MismatchedTokenException(ttype, input); + }, + + /** Report a recognition problem. + * + *

This method sets errorRecovery to indicate the parser is recovering + * not parsing. Once in recovery mode, no errors are generated. + * To get out of recovery mode, the parser must successfully match + * a token (after a resync). So it will go:

+ *
    + *
  1. error occurs
  2. + *
  3. enter recovery mode, report error
  4. + *
  5. consume until token found in resynch set
  6. + *
  7. try to resume parsing
  8. + *
  9. next match() will reset errorRecovery mode
  10. + *
+ * + *

If you override, make sure to update this.state.syntaxErrors if you + * care about that.

+ * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + */ + reportError: function(e) { + if(this.input.size() != 0) { + var token = this.input.get(e.index); + var errorMessage = ""; + var column = 0; + var line = 0; + if(token.getType() == -1) { + token = this.input.get(this.input.size() - 1); + } + errorMessage = this.getErrorMessage(e, this.getTokenNames()); + column = token.getStartIndex(); + line = token.getLine() - 1; + + var error = { + line: line, + message: errorMessage, + column: column + }; + this.addError(error); + } + // if we've already reported an error and have not matched a token + // yet successfully, don't report any errors. + if ( this.state.errorRecovery ) { + return; + } + this.state.syntaxErrors++; + this.state.errorRecovery = true; + + this.displayRecognitionError(this.getTokenNames(), e); + }, + + /** + * Assemble recognition error message. + * @param {Array} tokenNames array of token names (strings). + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + */ + displayRecognitionError: function(tokenNames, e) { + var hdr = this.getErrorHeader(e), + msg = this.getErrorMessage(e, tokenNames); + this.emitErrorMessage(hdr+" "+msg); + }, + + /** + * Create error header message. Format is line + * lineNumber:positionInLine. + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + * @returns {String} The error header. + */ + getErrorHeader: function(e) { + /* handle null input */ + if (!org.antlr.lang.isNumber(e.line)) { + e.line = 0; + } + return "line "+e.line+":"+e.charPositionInLine; + }, + + /** + * Override this method to change where error messages go. + * Defaults to "alert"-ing the error in browsers and "print"-ing the error + * in other environments (e.g. Rhino, SpiderMonkey). + * @param {String} msg the error message to be displayed. + */ + emitErrorMessage: function(msg) { + //throw msg; + console.log(msg); + }, + + /** What error message should be generated for the various + * exception types? + * + *

Not very object-oriented code, but I like having all error message + * generation within one method rather than spread among all of the + * exception classes. This also makes it much easier for the exception + * handling because the exception classes do not have to have pointers back + * to this object to access utility routines and so on. Also, changing + * the message for an exception type would be difficult because you + * would have to be subclassing exceptions, but then somehow get ANTLR + * to make those kinds of exception objects instead of the default.

+ * + *

For grammar debugging, you will want to override this to add + * more information such as the stack frame and no viable alts.

+ * + *

Override this to change the message generated for one or more + * exception types.

+ * + * @param {Array} tokenNames array of token names (strings). + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + * @returns {String} the error message to be emitted. + */ + getErrorMessage: function(e, tokenNames) { + var msg = (e && e.getMessage) ? e.getMessage() : null, + mte, + tokenName; + if ( e instanceof org.antlr.runtime.UnwantedTokenException ) { + var ute = e; + tokenName=""; + if ( ute.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } else { + tokenName = tokenNames[ute.expecting]; + } + msg = "extraneous input "+this.getTokenErrorDisplay(ute.getUnexpectedToken())+ + " expecting "+tokenName; + } + else if ( e instanceof org.antlr.runtime.MissingTokenException ) { + mte = e; + tokenName=""; + if ( mte.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } else { + tokenName = tokenNames[mte.expecting]; + } + msg = "missing "+tokenName+" at "+this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.MismatchedTokenException ) { + mte = e; + tokenName=""; + if ( mte.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } + else { + tokenName = tokenNames[mte.expecting]; + } + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting "+tokenName; + } + else if ( e instanceof org.antlr.runtime.NoViableAltException ) { + msg = "no viable alternative at input "+this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.EarlyExitException ) { + msg = "required (...)+ loop did not match anything at input "+ + this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.MismatchedSetException ) { + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedNotSetException ) { + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.FailedPredicateException ) { + msg = "rule "+e.ruleName+" failed predicate: {"+ + e.predicateText+"}?"; + } + return msg; + }, + + /** Get number of recognition errors (lexer, parser, tree parser). Each + * recognizer tracks its own number. So parser and lexer each have + * separate count. Does not count the spurious errors found between + * an error and next valid token match + * + * See also reportError() + */ + getNumberOfSyntaxErrors: function() { + return this.state.syntaxErrors; + }, + + /** How should a token be displayed in an error message? The default + * is to display just the text, but during development you might + * want to have a lot of information spit out. Override in that case + * to use t.toString() (which, for CommonToken, dumps everything about + * the token). This is better than forcing you to override a method in + * your token objects because you don't have to go modify your lexer + * so that it creates a new Java type. + */ + getTokenErrorDisplay: function(t) { + var s = t.getText(); + if ( !org.antlr.lang.isValue(s) ) { + if ( t.getType()==org.antlr.runtime.Token.EOF ) { + s = ""; + } + else { + s = "<"+t.getType()+">"; + } + } + s = s.replace(/\n/g,"\\n"); + s = s.replace(/\r/g,"\\r"); + s = s.replace(/\t/g,"\\t"); + return "'"+s+"'"; + }, + + /** Recover from an error found on the input stream. This is + * for NoViableAlt and mismatched symbol exceptions. If you enable + * single token insertion and deletion, this will usually not + * handle mismatched symbol exceptions but there could be a mismatched + * token that the match() routine could not recover from. + */ + recover: function(input, re) { + if ( this.state.lastErrorIndex==input.index() ) { + // uh oh, another error at same token index; must be a case + // where LT(1) is in the recovery token set so nothing is + // consumed; consume a single token so at least to prevent + // an infinite loop; this is a failsafe. + input.consume(); + } + this.state.lastErrorIndex = input.index(); + var followSet = this.computeErrorRecoverySet(); + this.beginResync(); + this.consumeUntil(input, followSet); + this.endResync(); + }, + + /** A hook to listen in on the token consumption during error recovery. + * The DebugParser subclasses this to fire events to the listenter. + */ + beginResync: function() { + }, + + endResync: function() { + }, + + /* Compute the error recovery set for the current rule. During + * rule invocation, the parser pushes the set of tokens that can + * follow that rule reference on the stack; this amounts to + * computing FIRST of what follows the rule reference in the + * enclosing rule. This local follow set only includes tokens + * from within the rule; i.e., the FIRST computation done by + * ANTLR stops at the end of a rule. + * + * EXAMPLE + * + * When you find a "no viable alt exception", the input is not + * consistent with any of the alternatives for rule r. The best + * thing to do is to consume tokens until you see something that + * can legally follow a call to r *or* any rule that called r. + * You don't want the exact set of viable next tokens because the + * input might just be missing a token--you might consume the + * rest of the input looking for one of the missing tokens. + * + * Consider grammar: + * + * a : '[' b ']' + * | '(' b ')' + * ; + * b : c '^' INT ; + * c : ID + * | INT + * ; + * + * At each rule invocation, the set of tokens that could follow + * that rule is pushed on a stack. Here are the various "local" + * follow sets: + * + * FOLLOW(b1_in_a) = FIRST(']') = ']' + * FOLLOW(b2_in_a) = FIRST(')') = ')' + * FOLLOW(c_in_b) = FIRST('^') = '^' + * + * Upon erroneous input "[]", the call chain is + * + * a -> b -> c + * + * and, hence, the follow context stack is: + * + * depth local follow set after call to rule + * 0 a (from main()) + * 1 ']' b + * 3 '^' c + * + * Notice that ')' is not included, because b would have to have + * been called from a different context in rule a for ')' to be + * included. + * + * For error recovery, we cannot consider FOLLOW(c) + * (context-sensitive or otherwise). We need the combined set of + * all context-sensitive FOLLOW sets--the set of all tokens that + * could follow any reference in the call chain. We need to + * resync to one of those tokens. Note that FOLLOW(c)='^' and if + * we resync'd to that token, we'd consume until EOF. We need to + * sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}. + * In this case, for input "[]", LA(1) is in this set so we would + * not consume anything and after printing an error rule c would + * return normally. It would not find the required '^' though. + * At this point, it gets a mismatched token error and throws an + * exception (since LA(1) is not in the viable following token + * set). The rule exception handler tries to recover, but finds + * the same recovery set and doesn't consume anything. Rule b + * exits normally returning to rule a. Now it finds the ']' (and + * with the successful match exits errorRecovery mode). + * + * So, you cna see that the parser walks up call chain looking + * for the token that was a member of the recovery set. + * + * Errors are not generated in errorRecovery mode. + * + * ANTLR's error recovery mechanism is based upon original ideas: + * + * "Algorithms + Data Structures = Programs" by Niklaus Wirth + * + * and + * + * "A note on error recovery in recursive descent parsers": + * http://portal.acm.org/citation.cfm?id=947902.947905 + * + * Later, Josef Grosch had some good ideas: + * + * "Efficient and Comfortable Error Recovery in Recursive Descent + * Parsers": + * ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip + * + * Like Grosch I implemented local FOLLOW sets that are combined + * at run-time upon error to avoid overhead during parsing. + */ + computeErrorRecoverySet: function() { + return this.combineFollows(false); + }, + + + /** Compute the context-sensitive FOLLOW set for current rule. + * This is set of token types that can follow a specific rule + * reference given a specific call chain. You get the set of + * viable tokens that can possibly come next (lookahead depth 1) + * given the current call chain. Contrast this with the + * definition of plain FOLLOW for rule r: + * + * FOLLOW(r)={x | S=>*alpha r beta in G and x in FIRST(beta)} + * + * where x in T* and alpha, beta in V*; T is set of terminals and + * V is the set of terminals and nonterminals. In other words, + * FOLLOW(r) is the set of all tokens that can possibly follow + * references to r in *any* sentential form (context). At + * runtime, however, we know precisely which context applies as + * we have the call chain. We may compute the exact (rather + * than covering superset) set of following tokens. + * + * For example, consider grammar: + * + * stat : ID '=' expr ';' // FOLLOW(stat)=={EOF} + * | "return" expr '.' + * ; + * expr : atom ('+' atom)* ; // FOLLOW(expr)=={';','.',')'} + * atom : INT // FOLLOW(atom)=={'+',')',';','.'} + * | '(' expr ')' + * ; + * + * The FOLLOW sets are all inclusive whereas context-sensitive + * FOLLOW sets are precisely what could follow a rule reference. + * For input input "i=(3);", here is the derivation: + * + * stat => ID '=' expr ';' + * => ID '=' atom ('+' atom)* ';' + * => ID '=' '(' expr ')' ('+' atom)* ';' + * => ID '=' '(' atom ')' ('+' atom)* ';' + * => ID '=' '(' INT ')' ('+' atom)* ';' + * => ID '=' '(' INT ')' ';' + * + * At the "3" token, you'd have a call chain of + * + * stat -> expr -> atom -> expr -> atom + * + * What can follow that specific nested ref to atom? Exactly ')' + * as you can see by looking at the derivation of this specific + * input. Contrast this with the FOLLOW(atom)={'+',')',';','.'}. + * + * You want the exact viable token set when recovering from a + * token mismatch. Upon token mismatch, if LA(1) is member of + * the viable next token set, then you know there is most likely + * a missing token in the input stream. "Insert" one by just not + * throwing an exception. + */ + computeContextSensitiveRuleFOLLOW: function() { + return this.combineFollows(true); + }, + + combineFollows: function(exact) { + var top = this.state._fsp, + i, + localFollowSet, + followSet = new org.antlr.runtime.BitSet(); + for (i=top; i>=0; i--) { + localFollowSet = this.state.following[i]; + followSet.orInPlace(localFollowSet); + if ( exact ) { + // can we see end of rule? + if ( localFollowSet.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) + { + // Only leave EOR in set if at top (start rule); this lets + // us know if have to include follow(start rule); i.e., EOF + if ( i>0 ) { + followSet.remove(org.antlr.runtime.Token.EOR_TOKEN_TYPE); + } + } + else { // can't see end of rule, quit + break; + } + } + } + return followSet; + }, + + /** Attempt to recover from a single missing or extra token. + * + * EXTRA TOKEN + * + * LA(1) is not what we are looking for. If LA(2) has the right token, + * however, then assume LA(1) is some extra spurious token. Delete it + * and LA(2) as if we were doing a normal match(), which advances the + * input. + * + * MISSING TOKEN + * + * If current token is consistent with what could come after + * ttype then it is ok to "insert" the missing token, else throw + * exception For example, Input "i=(3;" is clearly missing the + * ')'. When the parser returns from the nested call to expr, it + * will have call chain: + * + * stat -> expr -> atom + * + * and it will be trying to match the ')' at this point in the + * derivation: + * + * => ID '=' '(' INT ')' ('+' atom)* ';' + * ^ + * match() will see that ';' doesn't match ')' and report a + * mismatched token error. To recover, it sees that LA(1)==';' + * is in the set of tokens that can follow the ')' token + * reference in rule atom. It can assume that you forgot the ')'. + */ + recoverFromMismatchedToken: function(input, + ttype, + follow) + { + var e = null; + // if next token is what we are looking for then "delete" this token + if ( this.mismatchIsUnwantedToken(input, ttype) ) { + e = new org.antlr.runtime.UnwantedTokenException(ttype, input); + this.beginResync(); + input.consume(); // simply delete extra token + this.endResync(); + this.reportError(e); // report after consuming so AW sees the token in the exception + // we want to return the token we're actually matching + var matchedSymbol = this.getCurrentInputSymbol(input); + input.consume(); // move past ttype token as if all were ok + return matchedSymbol; + } + // can't recover with single token deletion, try insertion + if ( this.mismatchIsMissingToken(input, follow) ) { + var inserted = this.getMissingSymbol(input, e, ttype, follow); + e = new org.antlr.runtime.MissingTokenException(ttype, input, inserted); + this.reportError(e); // report after inserting so AW sees the token in the exception + return inserted; + } + // even that didn't work; must throw the exception + e = new org.antlr.runtime.MismatchedTokenException(ttype, input); + throw e; + }, + + recoverFromMismatchedSet: function(input, + e, + follow) + { + if ( this.mismatchIsMissingToken(input, follow) ) { + // System.out.println("missing token"); + this.reportError(e); + // we don't know how to conjure up a token for sets yet + return this.getMissingSymbol(input, e, org.antlr.runtime.Token.INVALID_TOKEN_TYPE, follow); + } + throw e; + }, + + /** Match needs to return the current input symbol, which gets put + * into the label for the associated token ref; e.g., x=ID. Token + * and tree parsers need to return different objects. Rather than test + * for input stream type or change the IntStream interface, I use + * a simple method to ask the recognizer to tell me what the current + * input symbol is. + * + * This is ignored for lexers. + */ + getCurrentInputSymbol: function(input) { return null; }, + + /** Conjure up a missing token during error recovery. + * + * The recognizer attempts to recover from single missing + * symbols. But, actions might refer to that missing symbol. + * For example, x=ID {f($x);}. The action clearly assumes + * that there has been an identifier matched previously and that + * $x points at that token. If that token is missing, but + * the next token in the stream is what we want we assume that + * this token is missing and we keep going. Because we + * have to return some token to replace the missing token, + * we have to conjure one up. This method gives the user control + * over the tokens returned for missing tokens. Mostly, + * you will want to create something special for identifier + * tokens. For literals such as '{' and ',', the default + * action in the parser or tree parser works. It simply creates + * a CommonToken of the appropriate type. The text will be the token. + * If you change what tokens must be created by the lexer, + * override this method to create the appropriate tokens. + */ + getMissingSymbol: function(input, + e, + expectedTokenType, + follow) + { + return null; + }, + + + /** Consume tokens until one matches the given token set */ + consumeUntil: function(input, set) { + var ttype = input.LA(1); + while (ttype != org.antlr.runtime.Token.EOF && !set.member(ttype) ) { + input.consume(); + ttype = input.LA(1); + } + }, + + /** Push a rule's follow set using our own hardcoded stack */ + pushFollow: function(fset) { + if ( (this.state._fsp +1)>=this.state.following.length ) { + var f = []; + var i; + for (i=this.state.following.length-1; i>=0; i--) { + f[i] = this.state.following[i]; + } + this.state.following = f; + } + this.state._fsp++; + this.state.following[this.state._fsp] = fset; + }, + + /** Return List of the rules in your parser instance + * leading up to a call to this method. You could override if + * you want more details such as the file/line info of where + * in the parser java code a rule is invoked. + * + * This is very useful for error messages and for context-sensitive + * error recovery. + * + * A more general version of getRuleInvocationStack where you can + * pass in, for example, a RecognitionException to get it's rule + * stack trace. This routine is shared with all recognizers, hence, + * static. + * + * TODO: move to a utility class or something; weird having lexer call this + * + * Most JS interpreters can't do real stack reflection. See this + * spidermonkey bug, for example: + * https://bugzilla.mozilla.org/show_bug.cgi?id=332104 + * + * JS is supposed to get real stack traces in v4, at which time it would + * be easy to implement this function. + * + * Until then I'll leave this unimplemented. If there is enough clamor + * it would be possible to keep track of the invocation stack using an + * auxillary array, but that will definitely be a performance hit. + */ + getRuleInvocationStack: function(e, recognizerClassName) + { + throw new Error("Not implemented."); + }, + + getBacktrackingLevel: function() { + return this.state.backtracking; + }, + + /** Used to print out token names like ID during debugging and + * error reporting. The generated parsers implement a method + * that overrides this to point to their String[] tokenNames. + */ + getTokenNames: function() { + return null; + }, + + /** For debugging and other purposes, might want the grammar name. + * Have ANTLR generate an implementation for this method. + */ + getGrammarFileName: function() { + return null; + }, + + /** A convenience method for use most often with template rewrites. + * Convert a List to List + */ + toStrings: function(tokens) { + if ( !tokens ) { + return null; + } + var strings = []; + var i; + for (i=0; i= this.state.ruleMemo.length ) { + throw new Error("!!!!!!!!! memo size is "+this.state.ruleMemo.length+", but rule index is "+ruleIndex); + } + if ( org.antlr.lang.isValue(this.state.ruleMemo[ruleIndex]) ) { + this.state.ruleMemo[ruleIndex][ruleStartIndex] = stopTokenIndex; + } + }, + + /** return how many rule/input-index pairs there are in total. + * TODO: this includes synpreds. + */ + getRuleMemoizationCacheSize: function() { + var n = 0, i; + for (i = 0; this.state.ruleMemo && i < this.state.ruleMemo.length; i++) { + var ruleMap = this.state.ruleMemo[i]; + if ( ruleMap ) { + // @todo need to get size of rulemap? + n += ruleMap.length; // how many input indexes are recorded? + } + } + return n; + }, + + traceIn: function(ruleName, ruleIndex, inputSymbol) { + this.emitErrorMessage("enter "+ruleName+" "+inputSymbol); + if ( this.state.failed ) { + this.emitErrorMessage(" failed="+this.failed); + } + if ( this.state.backtracking>0 ) { + this.emitErrorMessage(" backtracking="+this.state.backtracking); + } + // System.out.println(); + }, + + traceOut: function(ruleName, ruleIndex, inputSymbol) { + this.emitErrorMessage("exit "+ruleName+" "+inputSymbol); + if ( this.state.failed ) { + this.emitErrorMessage(" failed="+this.state.failed); + } + if ( this.state.backtracking>0 ) { + this.emitErrorMessage(" backtracking="+this.state.backtracking); + } + } +}; +/** A lexer is recognizer that draws input symbols from a character stream. + * lexer grammars result in a subclass of this object. A Lexer object + * uses simplified match() and error recovery mechanisms in the interest + * of speed. + */ +org.antlr.runtime.Lexer = function(input, state) { + if (state) { + org.antlr.runtime.Lexer.superclass.constructor.call(this, state); + } + if (input) { + this.input = input; + } +}; + +org.antlr.lang.extend(org.antlr.runtime.Lexer, org.antlr.runtime.BaseRecognizer, { + reset: function() { + // reset all recognizer state variables + org.antlr.runtime.Lexer.superclass.reset.call(this); + if ( org.antlr.lang.isValue(this.input) ) { + this.input.seek(0); // rewind the input + } + if ( !org.antlr.lang.isValue(this.state) ) { + return; // no shared state work to do + } + this.state.token = null; + this.state.type = org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + this.state.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + this.state.tokenStartCharIndex = -1; + this.state.tokenStartCharPositionInLine = -1; + this.state.tokenStartLine = -1; + this.state.text = null; + }, + + /** Return a token from this source; i.e., match a token on the char + * stream. + */ + nextToken: function() { + while (true) { + this.state.token = null; + this.state.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + this.state.tokenStartCharIndex = this.input.index(); + this.state.tokenStartCharPositionInLine = this.input.getCharPositionInLine(); + this.state.tokenStartLine = this.input.getLine(); + this.state.text = null; + if ( this.input.LA(1)===org.antlr.runtime.CharStream.EOF ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + try { + this.mTokens(); + if ( !org.antlr.lang.isValue(this.state.token) ) { + this.emit(); + } + else if ( this.state.token==org.antlr.runtime.Token.SKIP_TOKEN ) { + continue; + } + return this.state.token; + } + catch (re) { + if (re instanceof org.antlr.runtime.NoViableAltException) { + this.reportError(re); + this.recover(re); + } else if ( re instanceof org.antlr.runtime.RecognitionException ) { + this.reportError(re); + } else { + throw re; + } + } + } + }, + + /** Instruct the lexer to skip creating a token for current lexer rule + * and look for another token. nextToken() knows to keep looking when + * a lexer rule finishes with token set to SKIP_TOKEN. Recall that + * if token==null at end of any token rule, it creates one for you + * and emits it. + */ + skip: function() { + this.state.token = org.antlr.runtime.Token.SKIP_TOKEN; + }, + + /** Set the char stream and reset the lexer */ + setCharStream: function(input) { + this.input = null; + this.reset(); + this.input = input; + }, + + getCharStream: function() { + return this.input; + }, + + getSourceName: function() { + return this.input.getSourceName(); + }, + + /** Currently does not support multiple emits per nextToken invocation + * for efficiency reasons. Subclass and override this method and + * nextToken (to push tokens into a list and pull from that list rather + * than a single variable as this implementation does). + * + * The standard method called to automatically emit a token at the + * outermost lexical rule. The token object should point into the + * char buffer start..stop. If there is a text override in 'text', + * use that to set the token's text. Override this method to emit + * custom Token objects. + * + * If you are building trees, then you should also override + * Parser or TreeParser.getMissingSymbol(). + */ + emit: function() { + if (arguments.length===0) { + var t = new org.antlr.runtime.CommonToken(this.input, this.state.type, this.state.channel, this.state.tokenStartCharIndex, this.getCharIndex()-1); + t.setLine(this.state.tokenStartLine); + t.setText(this.state.text); + t.setCharPositionInLine(this.state.tokenStartCharPositionInLine); + this.state.token = t; + return t; + } else { + this.state.token = arguments[0]; + } + }, + + match: function(s) { + var i = 0, + mte; + + if (org.antlr.lang.isString(s)) { + while ( i0 ) { + this.state.failed = true; + return; + } + mte = new org.antlr.runtime.MismatchedTokenException(s.charAt(i), this.input); + this.recover(mte); + throw mte; + } + i++; + this.input.consume(); + this.state.failed = false; + } + } else if (org.antlr.lang.isNumber(s)) { + if ( this.input.LA(1)!=s ) { + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return; + } + mte = new org.antlr.runtime.MismatchedTokenException(s, this.input); + this.recover(mte); + throw mte; + } + this.input.consume(); + this.state.failed = false; + } + }, + + matchAny: function() { + this.input.consume(); + }, + + matchRange: function(a, b) { + if ( this.input.LA(1)b ) { + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return; + } + mre = new org.antlr.runtime.MismatchedRangeException(a,b,this.input); + this.recover(mre); + throw mre; + } + this.input.consume(); + this.state.failed = false; + }, + + getLine: function() { + return this.input.getLine(); + }, + + getCharPositionInLine: function() { + return this.input.getCharPositionInLine(); + }, + + /** What is the index of the current character of lookahead? */ + getCharIndex: function() { + return this.input.index(); + }, + + /** Return the text matched so far for the current token or any + * text override. + */ + getText: function() { + if ( org.antlr.lang.isString(this.state.text) ) { + return this.state.text; + } + return this.input.substring(this.state.tokenStartCharIndex,this.getCharIndex()-1); + }, + + /** Set the complete text of this token; it wipes any previous + * changes to the text. + */ + setText: function(text) { + this.state.text = text; + }, + + reportError: function(e) { + /** TODO: not thought about recovery in lexer yet. + * + // if we've already reported an error and have not matched a token + // yet successfully, don't report any errors. + if ( errorRecovery ) { + //System.err.print("[SPURIOUS] "); + return; + } + errorRecovery = true; + */ + + this.displayRecognitionError(this.getTokenNames(), e); + }, + + getErrorMessage: function(e, tokenNames) { + var msg = null; + if ( e instanceof org.antlr.runtime.MismatchedTokenException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting "+this.getCharErrorDisplay(e.expecting); + } + else if ( e instanceof org.antlr.runtime.NoViableAltException ) { + msg = "no viable alternative at character "+this.getCharErrorDisplay(e.c); + } + else if ( e instanceof org.antlr.runtime.EarlyExitException ) { + msg = "required (...)+ loop did not match anything at character "+this.getCharErrorDisplay(e.c); + } + else if ( e instanceof org.antlr.runtime.MismatchedNotSetException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedSetException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedRangeException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+ + this.getCharErrorDisplay(e.a)+".."+this.getCharErrorDisplay(e.b); + } + else { + msg = org.antlr.runtime.Lexer.superclass.getErrorMessage.call(this, e, tokenNames); + } + return msg; + }, + + getCharErrorDisplay: function(c) { + var s = c; //String.fromCharCode(c); + switch ( s ) { + case org.antlr.runtime.Token.EOF : + s = ""; + break; + case "\n" : + s = "\\n"; + break; + case "\t" : + s = "\\t"; + break; + case "\r" : + s = "\\r"; + break; + } + return "'"+s+"'"; + }, + + /** Lexers can normally match any char in it's vocabulary after matching + * a token, so do the easy thing and just kill a character and hope + * it all works out. You can instead use the rule invocation stack + * to do sophisticated error recovery if you are in a fragment rule. + */ + recover: function(re) { + this.input.consume(); + }, + + traceIn: function(ruleName, ruleIndex) { + var inputSymbol = String.fromCharCode(this.input.LT(1))+" line="+this.getLine()+":"+this.getCharPositionInLine(); + org.antlr.runtime.Lexer.superclass.traceIn.call(this, ruleName, ruleIndex, inputSymbol); + }, + + traceOut: function(ruleName, ruleIndex) { + var inputSymbol = String.fromCharCode(this.input.LT(1))+" line="+this.getLine()+":"+this.getCharPositionInLine(); + org.antlr.runtime.Lexer.superclass.traceOut.call(this, ruleName, ruleIndex, inputSymbol); + } +}); +/** Rules that return more than a single value must return an object + * containing all the values. Besides the properties defined in + * RuleLabelScope.predefinedRulePropertiesScope there may be user-defined + * return values. This class simply defines the minimum properties that + * are always defined and methods to access the others that might be + * available depending on output option such as template and tree. + * + * Note text is not an actual property of the return value, it is computed + * from start and stop using the input stream's toString() method. I + * could add a ctor to this so that we can pass in and store the input + * stream, but I'm not sure we want to do that. It would seem to be undefined + * to get the .text property anyway if the rule matches tokens from multiple + * input streams. + * + * I do not use getters for fields of objects that are used simply to + * group values such as this aggregate. The getters/setters are there to + * satisfy the superclass interface. + */ +org.antlr.runtime.ParserRuleReturnScope = function() {}; + +org.antlr.runtime.ParserRuleReturnScope.prototype = { + getStart: function() { return this.start; }, + getStop: function() { return this.stop; } +}; +/** This is identical to the ParserRuleReturnScope except that + * the start property is a tree nodes not Token object + * when you are parsing trees. To be generic the tree node types + * have to be Object. + */ +org.antlr.runtime.tree.TreeRuleReturnScope = function(){}; + +org.antlr.runtime.tree.TreeRuleReturnScope.prototype = { + getStart: function() { return this.start; } +}; +/** A parser for TokenStreams. "parser grammars" result in a subclass + * of this. + */ +org.antlr.runtime.Parser = function(input, state) { + org.antlr.runtime.Parser.superclass.constructor.call(this, state); + this.setTokenStream(input); +}; + +org.antlr.lang.extend(org.antlr.runtime.Parser, org.antlr.runtime.BaseRecognizer, { + reset: function() { + // reset all recognizer state variables + org.antlr.runtime.Parser.superclass.reset.call(this); + if ( org.antlr.lang.isValue(this.input) ) { + this.input.seek(0); // rewind the input + } + }, + + getCurrentInputSymbol: function(input) { + return input.LT(1); + }, + + getMissingSymbol: function(input, + e, + expectedTokenType, + follow) + { + var tokenText = + ""; + var t = new org.antlr.runtime.CommonToken(expectedTokenType, tokenText); + var current = input.LT(1); + var old_current; + if ( current.getType() === org.antlr.runtime.Token.EOF ) { + old_current = current; + current = input.LT(-1); + // handle edge case where there are no good tokens in the stream + if (!current) { + current = old_current; + } + } + t.line = current.getLine(); + t.charPositionInLine = current.getCharPositionInLine(); + t.channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + return t; + }, + + + /** Set the token stream and reset the parser */ + setTokenStream: function(input) { + this.input = null; + this.reset(); + this.input = input; + }, + + getTokenStream: function() { + return this.input; + }, + + getSourceName: function() { + return this.input.getSourceName(); + }, + + traceIn: function(ruleName, ruleIndex) { + org.antlr.runtime.Parser.superclass.traceIn.call( + this, ruleName, ruleIndex, this.input.LT(1)); + }, + + traceOut: function(ruleName, ruleIndex) { + org.antlr.runtime.Parser.superclass.traceOut.call( + this, ruleName, ruleIndex, this.input.LT(1)); + } +}); +/** A DFA implemented as a set of transition tables. + * + * Any state that has a semantic predicate edge is special; those states + * are generated with if-then-else structures in a specialStateTransition() + * which is generated by cyclicDFA template. + * + * There are at most 32767 states (16-bit signed short). + * Could get away with byte sometimes but would have to generate different + * types and the simulation code too. For a point of reference, the Java + * lexer's Tokens rule DFA has 326 states roughly. + */ +org.antlr.runtime.DFA = function() {}; + +org.antlr.runtime.DFA.prototype = { + /** From the input stream, predict what alternative will succeed + * using this DFA (representing the covering regular approximation + * to the underlying CFL). Return an alternative number 1..n. Throw + * an exception upon error. + */ + predict: function(input) { + var mark = input.mark(), // remember where decision started in input + s = 0, // we always start at s0 + specialState, + c, + snext; + + try { + while ( true ) { + specialState = this.special[s]; + if ( specialState>=0 ) { + s = this.specialStateTransition(specialState,input); + if (s===-1) { + this.noViableAlt(s, input); + return 0; + } + input.consume(); + continue; + } + if ( this.accept[s] >= 1 ) { + return this.accept[s]; + } + // look for a normal char transition + c = input.LA(1); // -1 == \uFFFF, all tokens fit in 65000 space + + if (c===org.antlr.runtime.Token.EOF) { + c = -1; + } else if (org.antlr.lang.isString(c)) { + c = c.charCodeAt(0); + } + + if (c>=this.min[s] && c<=this.max[s]) { + snext = this.transition[s][c-this.min[s]]; // move to next state + if ( snext < 0 ) { + // was in range but not a normal transition + // must check EOT, which is like the else clause. + // eot[s]>=0 indicates that an EOT edge goes to another + // state. + if ( this.eot[s]>=0 ) { // EOT Transition to accept state? + s = this.eot[s]; + input.consume(); + // TODO: I had this as return accept[eot[s]] + // which assumed here that the EOT edge always + // went to an accept...faster to do this, but + // what about predicated edges coming from EOT + // target? + continue; + } + this.noViableAlt(s,input); + return 0; + } + s = snext; + input.consume(); + continue; + } + if ( this.eot[s]>=0 ) { // EOT Transition? + s = this.eot[s]; + input.consume(); + continue; + } + if ( c==org.antlr.runtime.Token.EOF && this.eof[s]>=0 ) { // EOF Transition to accept state? + return this.accept[this.eof[s]]; + } + // not in range and not EOF/EOT, must be invalid symbol + this.noViableAlt(s,input); + return 0; + } + } + finally { + input.rewind(mark); + } + }, + + noViableAlt: function(s, input) { + if (this.recognizer.state.backtracking>0) { + this.recognizer.state.failed=true; + return; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), + this.decisionNumber, + s, + input); + this.error(nvae); + throw nvae; + }, + + /** A hook for debugging interface */ + error: function(nvae) { }, + + specialStateTransition: function(s, input) { + return -1; + }, + + getDescription: function() { + return "n/a"; + } +}; + +org.antlr.lang.augmentObject(org.antlr.runtime.DFA, { + /** Given a String that has a run-length-encoding of some unsigned shorts + * like "\1\2\3\9", convert to short[] {2,9,9,9}. + */ + unpackEncodedString: function(encodedString) { + // walk first to find how big it is. + var i, + data = [], + di = 0, + n, + v, + j; + for (i=0; i"; + return new org.antlr.runtime.tree.CommonTree(new org.antlr.runtime.CommonToken(expectedTokenType, tokenText)); + }, + + /** Match '.' in tree parser has special meaning. Skip node or + * entire tree if node has children. If children, scan until + * corresponding UP node. + */ + matchAny: function(ignore) { // ignore stream, copy of this.input + this.state.errorRecovery = false; + this.state.failed = false; + var look = this.input.LT(1); + if ( this.input.getTreeAdaptor().getChildCount(look)===0 ) { + this.input.consume(); // not subtree, consume 1 node and return + return; + } + // current node is a subtree, skip to corresponding UP. + // must count nesting level to get right UP + var level=0, + tokenType = this.input.getTreeAdaptor().getType(look); + while ( tokenType!==org.antlr.runtime.Token.EOF && + !(tokenType===TP.UP && level===0) ) + { + this.input.consume(); + look = this.input.LT(1); + tokenType = this.input.getTreeAdaptor().getType(look); + if ( tokenType === TP.DOWN ) { + level++; + } + else if ( tokenType === TP.UP ) { + level--; + } + } + this.input.consume(); // consume UP + }, + + /** We have DOWN/UP nodes in the stream that have no line info; override. + * plus we want to alter the exception type. Don't try to recover + * * from tree parser errors inline... + */ + mismatch: function(input, ttype, follow) { + throw new org.antlr.runtime.MismatchedTreeNodeException(ttype, input); + }, + + /** Prefix error message with the grammar name because message is + * always intended for the programmer because the parser built + * the input tree not the user. + */ + getErrorHeader: function(e) { + return this.getGrammarFileName()+": node from "+ + (e.approximateLineInfo?"after ":"")+"line "+e.line+":"+e.charPositionInLine; + }, + + /** Tree parsers parse nodes they usually have a token object as + * payload. Set the exception token and do the default behavior. + */ + getErrorMessage: function(e, tokenNames) { + var adaptor; + if ( this instanceof TP ) { + adaptor = e.input.getTreeAdaptor(); + e.token = adaptor.getToken(e.node); + if ( !org.antlr.lang.isValue(e.token) ) { // could be an UP/DOWN node + e.token = new org.antlr.runtime.CommonToken( + adaptor.getType(e.node), + adaptor.getText(e.node)); + } + } + return TP.superclass.getErrorMessage.call(this, e, tokenNames); + }, + + traceIn: function(ruleName, ruleIndex) { + TP.superclass.traceIn.call(this, ruleName, ruleIndex, this.input.LT(1)); + }, + + traceOut: function(ruleName, ruleIndex) { + TP.superclass.traceOut.call(this, ruleName, ruleIndex, this.input.LT(1)); + } +}); + +})(); + +exports.org = org; + +}); +define('ace/mode/xquery/XQueryLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQDTLexer'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryLexer.g 2012-04-23 09:26:57 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var XQueryLexer = function(input, state) { +// alternate constructor @todo +// public XQueryLexer(CharStream input) +// public XQueryLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inStr = false; + + // dummy list for warning elimination + //List> dummy = new ArrayList>(); + + // when we start, the '<' has already been eaten by the other lexer + //boolean inStr = false; + // + //public boolean isInString() + //{ + // return inStr; + //} + + + }).call(this); + + this.dfa19 = new XQueryLexer.DFA19(this); + XQueryLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(XQueryLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(XQueryLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + getGrammarFileName: function() { return "xquery/XQueryLexer.g"; } +}); +org.antlr.lang.augmentObject(XQueryLexer.prototype, { + // $ANTLR start ANCESTOR + mANCESTOR: function() { + try { + var _type = this.ANCESTOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:85:29: ( 'ancestor' ) + // xquery/XQueryLexer.g:85:31: 'ancestor' + this.match("ancestor"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANCESTOR", + + // $ANTLR start ANCESTOR_OR_SELF + mANCESTOR_OR_SELF: function() { + try { + var _type = this.ANCESTOR_OR_SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:86:29: ( 'ancestor-or-self' ) + // xquery/XQueryLexer.g:86:31: 'ancestor-or-self' + this.match("ancestor-or-self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANCESTOR_OR_SELF", + + // $ANTLR start AND + mAND: function() { + try { + var _type = this.AND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:87:29: ( 'and' ) + // xquery/XQueryLexer.g:87:31: 'and' + this.match("and"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AND", + + // $ANTLR start AS + mAS: function() { + try { + var _type = this.AS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:88:29: ( 'as' ) + // xquery/XQueryLexer.g:88:31: 'as' + this.match("as"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AS", + + // $ANTLR start ASCENDING + mASCENDING: function() { + try { + var _type = this.ASCENDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:89:29: ( 'ascending' ) + // xquery/XQueryLexer.g:89:31: 'ascending' + this.match("ascending"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ASCENDING", + + // $ANTLR start AT + mAT: function() { + try { + var _type = this.AT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:90:29: ( 'at' ) + // xquery/XQueryLexer.g:90:31: 'at' + this.match("at"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AT", + + // $ANTLR start ATTRIBUTE + mATTRIBUTE: function() { + try { + var _type = this.ATTRIBUTE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:91:29: ( 'attribute' ) + // xquery/XQueryLexer.g:91:31: 'attribute' + this.match("attribute"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ATTRIBUTE", + + // $ANTLR start BASE_URI + mBASE_URI: function() { + try { + var _type = this.BASE_URI; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:92:29: ( 'base-uri' ) + // xquery/XQueryLexer.g:92:31: 'base-uri' + this.match("base-uri"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BASE_URI", + + // $ANTLR start BOUNDARY_SPACE + mBOUNDARY_SPACE: function() { + try { + var _type = this.BOUNDARY_SPACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:93:29: ( 'boundary-space' ) + // xquery/XQueryLexer.g:93:31: 'boundary-space' + this.match("boundary-space"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BOUNDARY_SPACE", + + // $ANTLR start BY + mBY: function() { + try { + var _type = this.BY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:94:29: ( 'by' ) + // xquery/XQueryLexer.g:94:31: 'by' + this.match("by"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BY", + + // $ANTLR start CASE + mCASE: function() { + try { + var _type = this.CASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:95:29: ( 'case' ) + // xquery/XQueryLexer.g:95:31: 'case' + this.match("case"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CASE", + + // $ANTLR start CAST + mCAST: function() { + try { + var _type = this.CAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:96:29: ( 'cast' ) + // xquery/XQueryLexer.g:96:31: 'cast' + this.match("cast"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CAST", + + // $ANTLR start CASTABLE + mCASTABLE: function() { + try { + var _type = this.CASTABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:97:29: ( 'castable' ) + // xquery/XQueryLexer.g:97:31: 'castable' + this.match("castable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CASTABLE", + + // $ANTLR start CHILD + mCHILD: function() { + try { + var _type = this.CHILD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:98:29: ( 'child' ) + // xquery/XQueryLexer.g:98:31: 'child' + this.match("child"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHILD", + + // $ANTLR start COLLATION + mCOLLATION: function() { + try { + var _type = this.COLLATION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:99:29: ( 'collation' ) + // xquery/XQueryLexer.g:99:31: 'collation' + this.match("collation"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLLATION", + + // $ANTLR start COMMENT + mCOMMENT: function() { + try { + var _type = this.COMMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:100:29: ( 'comment' ) + // xquery/XQueryLexer.g:100:31: 'comment' + this.match("comment"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COMMENT", + + // $ANTLR start CONSTRUCTION + mCONSTRUCTION: function() { + try { + var _type = this.CONSTRUCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:101:29: ( 'construction' ) + // xquery/XQueryLexer.g:101:31: 'construction' + this.match("construction"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONSTRUCTION", + + // $ANTLR start COPY_NAMESPACES + mCOPY_NAMESPACES: function() { + try { + var _type = this.COPY_NAMESPACES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:102:29: ( 'copy-namespaces' ) + // xquery/XQueryLexer.g:102:31: 'copy-namespaces' + this.match("copy-namespaces"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COPY_NAMESPACES", + + // $ANTLR start DECLARE + mDECLARE: function() { + try { + var _type = this.DECLARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:103:29: ( 'declare' ) + // xquery/XQueryLexer.g:103:31: 'declare' + this.match("declare"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECLARE", + + // $ANTLR start DEFAULT + mDEFAULT: function() { + try { + var _type = this.DEFAULT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:104:29: ( 'default' ) + // xquery/XQueryLexer.g:104:31: 'default' + this.match("default"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DEFAULT", + + // $ANTLR start DESCENDANT + mDESCENDANT: function() { + try { + var _type = this.DESCENDANT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:105:29: ( 'descendant' ) + // xquery/XQueryLexer.g:105:31: 'descendant' + this.match("descendant"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDANT", + + // $ANTLR start DESCENDANT_OR_SELF + mDESCENDANT_OR_SELF: function() { + try { + var _type = this.DESCENDANT_OR_SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:106:29: ( 'descendant-or-self' ) + // xquery/XQueryLexer.g:106:31: 'descendant-or-self' + this.match("descendant-or-self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDANT_OR_SELF", + + // $ANTLR start DESCENDING + mDESCENDING: function() { + try { + var _type = this.DESCENDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:107:29: ( 'descending' ) + // xquery/XQueryLexer.g:107:31: 'descending' + this.match("descending"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDING", + + // $ANTLR start DIV + mDIV: function() { + try { + var _type = this.DIV; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:108:29: ( 'div' ) + // xquery/XQueryLexer.g:108:31: 'div' + this.match("div"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIV", + + // $ANTLR start DOCUMENT + mDOCUMENT: function() { + try { + var _type = this.DOCUMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:109:29: ( 'document' ) + // xquery/XQueryLexer.g:109:31: 'document' + this.match("document"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOCUMENT", + + // $ANTLR start DOCUMENT_NODE + mDOCUMENT_NODE: function() { + try { + var _type = this.DOCUMENT_NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:110:29: ( 'document-node' ) + // xquery/XQueryLexer.g:110:31: 'document-node' + this.match("document-node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOCUMENT_NODE", + + // $ANTLR start ELEMENT + mELEMENT: function() { + try { + var _type = this.ELEMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:111:29: ( 'element' ) + // xquery/XQueryLexer.g:111:31: 'element' + this.match("element"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ELEMENT", + + // $ANTLR start ELSE + mELSE: function() { + try { + var _type = this.ELSE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:112:29: ( 'else' ) + // xquery/XQueryLexer.g:112:31: 'else' + this.match("else"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ELSE", + + // $ANTLR start EMPTY + mEMPTY: function() { + try { + var _type = this.EMPTY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:113:29: ( 'empty' ) + // xquery/XQueryLexer.g:113:31: 'empty' + this.match("empty"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY", + + // $ANTLR start EMPTY_SEQUENCE + mEMPTY_SEQUENCE: function() { + try { + var _type = this.EMPTY_SEQUENCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:114:29: ( 'empty-sequence' ) + // xquery/XQueryLexer.g:114:31: 'empty-sequence' + this.match("empty-sequence"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_SEQUENCE", + + // $ANTLR start ENCODING + mENCODING: function() { + try { + var _type = this.ENCODING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:115:29: ( 'encoding' ) + // xquery/XQueryLexer.g:115:31: 'encoding' + this.match("encoding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ENCODING", + + // $ANTLR start EQ + mEQ: function() { + try { + var _type = this.EQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:116:29: ( 'eq' ) + // xquery/XQueryLexer.g:116:31: 'eq' + this.match("eq"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQ", + + // $ANTLR start EVERY + mEVERY: function() { + try { + var _type = this.EVERY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:117:29: ( 'every' ) + // xquery/XQueryLexer.g:117:31: 'every' + this.match("every"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EVERY", + + // $ANTLR start EXCEPT + mEXCEPT: function() { + try { + var _type = this.EXCEPT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:118:29: ( 'except' ) + // xquery/XQueryLexer.g:118:31: 'except' + this.match("except"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXCEPT", + + // $ANTLR start EXTERNAL + mEXTERNAL: function() { + try { + var _type = this.EXTERNAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:119:29: ( 'external' ) + // xquery/XQueryLexer.g:119:31: 'external' + this.match("external"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXTERNAL", + + // $ANTLR start FOLLOWING + mFOLLOWING: function() { + try { + var _type = this.FOLLOWING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:120:29: ( 'following' ) + // xquery/XQueryLexer.g:120:31: 'following' + this.match("following"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOLLOWING", + + // $ANTLR start FOLLOWING_SIBLING + mFOLLOWING_SIBLING: function() { + try { + var _type = this.FOLLOWING_SIBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:121:29: ( 'following-sibling' ) + // xquery/XQueryLexer.g:121:31: 'following-sibling' + this.match("following-sibling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOLLOWING_SIBLING", + + // $ANTLR start FOR + mFOR: function() { + try { + var _type = this.FOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:122:29: ( 'for' ) + // xquery/XQueryLexer.g:122:31: 'for' + this.match("for"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOR", + + // $ANTLR start FUNCTION + mFUNCTION: function() { + try { + var _type = this.FUNCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:123:29: ( 'function' ) + // xquery/XQueryLexer.g:123:31: 'function' + this.match("function"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FUNCTION", + + // $ANTLR start GE + mGE: function() { + try { + var _type = this.GE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:124:29: ( 'ge' ) + // xquery/XQueryLexer.g:124:31: 'ge' + this.match("ge"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GE", + + // $ANTLR start GREATEST + mGREATEST: function() { + try { + var _type = this.GREATEST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:125:29: ( 'greatest' ) + // xquery/XQueryLexer.g:125:31: 'greatest' + this.match("greatest"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATEST", + + // $ANTLR start GT + mGT: function() { + try { + var _type = this.GT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:126:29: ( 'gt' ) + // xquery/XQueryLexer.g:126:31: 'gt' + this.match("gt"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GT", + + // $ANTLR start IDIV + mIDIV: function() { + try { + var _type = this.IDIV; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:127:29: ( 'idiv' ) + // xquery/XQueryLexer.g:127:31: 'idiv' + this.match("idiv"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IDIV", + + // $ANTLR start IF + mIF: function() { + try { + var _type = this.IF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:128:29: ( 'if' ) + // xquery/XQueryLexer.g:128:31: 'if' + this.match("if"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IF", + + // $ANTLR start IMPORT + mIMPORT: function() { + try { + var _type = this.IMPORT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:129:29: ( 'import' ) + // xquery/XQueryLexer.g:129:31: 'import' + this.match("import"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IMPORT", + + // $ANTLR start IN + mIN: function() { + try { + var _type = this.IN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:130:29: ( 'in' ) + // xquery/XQueryLexer.g:130:31: 'in' + this.match("in"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IN", + + // $ANTLR start INHERIT + mINHERIT: function() { + try { + var _type = this.INHERIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:131:29: ( 'inherit' ) + // xquery/XQueryLexer.g:131:31: 'inherit' + this.match("inherit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INHERIT", + + // $ANTLR start INSTANCE + mINSTANCE: function() { + try { + var _type = this.INSTANCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:132:29: ( 'instance' ) + // xquery/XQueryLexer.g:132:31: 'instance' + this.match("instance"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSTANCE", + + // $ANTLR start INTERSECT + mINTERSECT: function() { + try { + var _type = this.INTERSECT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:133:29: ( 'intersect' ) + // xquery/XQueryLexer.g:133:31: 'intersect' + this.match("intersect"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTERSECT", + + // $ANTLR start IS + mIS: function() { + try { + var _type = this.IS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:134:29: ( 'is' ) + // xquery/XQueryLexer.g:134:31: 'is' + this.match("is"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IS", + + // $ANTLR start ITEM + mITEM: function() { + try { + var _type = this.ITEM; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:135:29: ( 'item' ) + // xquery/XQueryLexer.g:135:31: 'item' + this.match("item"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ITEM", + + // $ANTLR start LAX + mLAX: function() { + try { + var _type = this.LAX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:136:29: ( 'lax' ) + // xquery/XQueryLexer.g:136:31: 'lax' + this.match("lax"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LAX", + + // $ANTLR start LE + mLE: function() { + try { + var _type = this.LE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:137:29: ( 'le' ) + // xquery/XQueryLexer.g:137:31: 'le' + this.match("le"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LE", + + // $ANTLR start LEAST + mLEAST: function() { + try { + var _type = this.LEAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:138:29: ( 'least' ) + // xquery/XQueryLexer.g:138:31: 'least' + this.match("least"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LEAST", + + // $ANTLR start LET + mLET: function() { + try { + var _type = this.LET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:139:29: ( 'let' ) + // xquery/XQueryLexer.g:139:31: 'let' + this.match("let"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LET", + + // $ANTLR start LT + mLT: function() { + try { + var _type = this.LT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:140:29: ( 'lt' ) + // xquery/XQueryLexer.g:140:31: 'lt' + this.match("lt"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LT", + + // $ANTLR start MOD + mMOD: function() { + try { + var _type = this.MOD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:141:29: ( 'mod' ) + // xquery/XQueryLexer.g:141:31: 'mod' + this.match("mod"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MOD", + + // $ANTLR start MODULE + mMODULE: function() { + try { + var _type = this.MODULE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:142:29: ( 'module' ) + // xquery/XQueryLexer.g:142:31: 'module' + this.match("module"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MODULE", + + // $ANTLR start NAMESPACE + mNAMESPACE: function() { + try { + var _type = this.NAMESPACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:143:29: ( 'namespace' ) + // xquery/XQueryLexer.g:143:31: 'namespace' + this.match("namespace"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAMESPACE", + + // $ANTLR start NE + mNE: function() { + try { + var _type = this.NE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:144:29: ( 'ne' ) + // xquery/XQueryLexer.g:144:31: 'ne' + this.match("ne"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NE", + + // $ANTLR start NO_INHERIT + mNO_INHERIT: function() { + try { + var _type = this.NO_INHERIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:145:29: ( 'no-inherit' ) + // xquery/XQueryLexer.g:145:31: 'no-inherit' + this.match("no-inherit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO_INHERIT", + + // $ANTLR start NO_PRESERVE + mNO_PRESERVE: function() { + try { + var _type = this.NO_PRESERVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:146:29: ( 'no-preserve' ) + // xquery/XQueryLexer.g:146:31: 'no-preserve' + this.match("no-preserve"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO_PRESERVE", + + // $ANTLR start NODE + mNODE: function() { + try { + var _type = this.NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:147:29: ( 'node' ) + // xquery/XQueryLexer.g:147:31: 'node' + this.match("node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NODE", + + // $ANTLR start OF + mOF: function() { + try { + var _type = this.OF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:148:29: ( 'of' ) + // xquery/XQueryLexer.g:148:31: 'of' + this.match("of"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OF", + + // $ANTLR start OPTION + mOPTION: function() { + try { + var _type = this.OPTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:149:29: ( 'option' ) + // xquery/XQueryLexer.g:149:31: 'option' + this.match("option"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OPTION", + + // $ANTLR start OR + mOR: function() { + try { + var _type = this.OR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:150:29: ( 'or' ) + // xquery/XQueryLexer.g:150:31: 'or' + this.match("or"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OR", + + // $ANTLR start ORDER + mORDER: function() { + try { + var _type = this.ORDER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:151:29: ( 'order' ) + // xquery/XQueryLexer.g:151:31: 'order' + this.match("order"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDER", + + // $ANTLR start ORDERED + mORDERED: function() { + try { + var _type = this.ORDERED; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:152:29: ( 'ordered' ) + // xquery/XQueryLexer.g:152:31: 'ordered' + this.match("ordered"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDERED", + + // $ANTLR start ORDERING + mORDERING: function() { + try { + var _type = this.ORDERING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:153:29: ( 'ordering' ) + // xquery/XQueryLexer.g:153:31: 'ordering' + this.match("ordering"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDERING", + + // $ANTLR start PARENT + mPARENT: function() { + try { + var _type = this.PARENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:154:29: ( 'parent' ) + // xquery/XQueryLexer.g:154:31: 'parent' + this.match("parent"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARENT", + + // $ANTLR start PRECEDING + mPRECEDING: function() { + try { + var _type = this.PRECEDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:155:29: ( 'preceding' ) + // xquery/XQueryLexer.g:155:31: 'preceding' + this.match("preceding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRECEDING", + + // $ANTLR start PRECEDING_SIBLING + mPRECEDING_SIBLING: function() { + try { + var _type = this.PRECEDING_SIBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:156:29: ( 'preceding-sibling' ) + // xquery/XQueryLexer.g:156:31: 'preceding-sibling' + this.match("preceding-sibling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRECEDING_SIBLING", + + // $ANTLR start PRESERVE + mPRESERVE: function() { + try { + var _type = this.PRESERVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:157:29: ( 'preserve' ) + // xquery/XQueryLexer.g:157:31: 'preserve' + this.match("preserve"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRESERVE", + + // $ANTLR start PROCESSING_INSTRUCTION + mPROCESSING_INSTRUCTION: function() { + try { + var _type = this.PROCESSING_INSTRUCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:158:29: ( 'processing-instruction' ) + // xquery/XQueryLexer.g:158:31: 'processing-instruction' + this.match("processing-instruction"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PROCESSING_INSTRUCTION", + + // $ANTLR start RETURN + mRETURN: function() { + try { + var _type = this.RETURN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:159:29: ( 'return' ) + // xquery/XQueryLexer.g:159:31: 'return' + this.match("return"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RETURN", + + // $ANTLR start SATISFIES + mSATISFIES: function() { + try { + var _type = this.SATISFIES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:160:29: ( 'satisfies' ) + // xquery/XQueryLexer.g:160:31: 'satisfies' + this.match("satisfies"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SATISFIES", + + // $ANTLR start SCHEMA + mSCHEMA: function() { + try { + var _type = this.SCHEMA; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:161:29: ( 'schema' ) + // xquery/XQueryLexer.g:161:31: 'schema' + this.match("schema"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA", + + // $ANTLR start SCHEMA_ATTRIBUTE + mSCHEMA_ATTRIBUTE: function() { + try { + var _type = this.SCHEMA_ATTRIBUTE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:162:29: ( 'schema-attribute' ) + // xquery/XQueryLexer.g:162:31: 'schema-attribute' + this.match("schema-attribute"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA_ATTRIBUTE", + + // $ANTLR start SCHEMA_ELEMENT + mSCHEMA_ELEMENT: function() { + try { + var _type = this.SCHEMA_ELEMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:163:29: ( 'schema-element' ) + // xquery/XQueryLexer.g:163:31: 'schema-element' + this.match("schema-element"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA_ELEMENT", + + // $ANTLR start SELF + mSELF: function() { + try { + var _type = this.SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:164:29: ( 'self' ) + // xquery/XQueryLexer.g:164:31: 'self' + this.match("self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SELF", + + // $ANTLR start SOME + mSOME: function() { + try { + var _type = this.SOME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:165:29: ( 'some' ) + // xquery/XQueryLexer.g:165:31: 'some' + this.match("some"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SOME", + + // $ANTLR start STABLE + mSTABLE: function() { + try { + var _type = this.STABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:166:29: ( 'stable' ) + // xquery/XQueryLexer.g:166:31: 'stable' + this.match("stable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STABLE", + + // $ANTLR start STRICT + mSTRICT: function() { + try { + var _type = this.STRICT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:167:29: ( 'strict' ) + // xquery/XQueryLexer.g:167:31: 'strict' + this.match("strict"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STRICT", + + // $ANTLR start STRIP + mSTRIP: function() { + try { + var _type = this.STRIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:168:29: ( 'strip' ) + // xquery/XQueryLexer.g:168:31: 'strip' + this.match("strip"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STRIP", + + // $ANTLR start TEXT + mTEXT: function() { + try { + var _type = this.TEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:169:29: ( 'text' ) + // xquery/XQueryLexer.g:169:31: 'text' + this.match("text"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TEXT", + + // $ANTLR start THEN + mTHEN: function() { + try { + var _type = this.THEN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:170:29: ( 'then' ) + // xquery/XQueryLexer.g:170:31: 'then' + this.match("then"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "THEN", + + // $ANTLR start TO + mTO: function() { + try { + var _type = this.TO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:171:29: ( 'to' ) + // xquery/XQueryLexer.g:171:31: 'to' + this.match("to"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TO", + + // $ANTLR start TREAT + mTREAT: function() { + try { + var _type = this.TREAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:172:29: ( 'treat' ) + // xquery/XQueryLexer.g:172:31: 'treat' + this.match("treat"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TREAT", + + // $ANTLR start TYPESWITCH + mTYPESWITCH: function() { + try { + var _type = this.TYPESWITCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:173:29: ( 'typeswitch' ) + // xquery/XQueryLexer.g:173:31: 'typeswitch' + this.match("typeswitch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TYPESWITCH", + + // $ANTLR start UNION + mUNION: function() { + try { + var _type = this.UNION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:174:29: ( 'union' ) + // xquery/XQueryLexer.g:174:31: 'union' + this.match("union"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNION", + + // $ANTLR start UNORDERED + mUNORDERED: function() { + try { + var _type = this.UNORDERED; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:175:29: ( 'unordered' ) + // xquery/XQueryLexer.g:175:31: 'unordered' + this.match("unordered"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNORDERED", + + // $ANTLR start VALIDATE + mVALIDATE: function() { + try { + var _type = this.VALIDATE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:176:29: ( 'validate' ) + // xquery/XQueryLexer.g:176:31: 'validate' + this.match("validate"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VALIDATE", + + // $ANTLR start VARIABLE + mVARIABLE: function() { + try { + var _type = this.VARIABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:177:29: ( 'variable' ) + // xquery/XQueryLexer.g:177:31: 'variable' + this.match("variable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VARIABLE", + + // $ANTLR start VERSION + mVERSION: function() { + try { + var _type = this.VERSION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:178:29: ( 'version' ) + // xquery/XQueryLexer.g:178:31: 'version' + this.match("version"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VERSION", + + // $ANTLR start WHERE + mWHERE: function() { + try { + var _type = this.WHERE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:179:29: ( 'where' ) + // xquery/XQueryLexer.g:179:31: 'where' + this.match("where"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHERE", + + // $ANTLR start XQUERY + mXQUERY: function() { + try { + var _type = this.XQUERY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:180:29: ( 'xquery' ) + // xquery/XQueryLexer.g:180:31: 'xquery' + this.match("xquery"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "XQUERY", + + // $ANTLR start ALLOWING + mALLOWING: function() { + try { + var _type = this.ALLOWING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:182:29: ( 'allowing' ) + // xquery/XQueryLexer.g:182:31: 'allowing' + this.match("allowing"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ALLOWING", + + // $ANTLR start CATCH + mCATCH: function() { + try { + var _type = this.CATCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:183:29: ( 'catch' ) + // xquery/XQueryLexer.g:183:31: 'catch' + this.match("catch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CATCH", + + // $ANTLR start CONTEXT + mCONTEXT: function() { + try { + var _type = this.CONTEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:184:29: ( 'context' ) + // xquery/XQueryLexer.g:184:31: 'context' + this.match("context"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTEXT", + + // $ANTLR start COUNT + mCOUNT: function() { + try { + var _type = this.COUNT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:185:29: ( 'count' ) + // xquery/XQueryLexer.g:185:31: 'count' + this.match("count"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COUNT", + + // $ANTLR start DECIMAL_FORMAT + mDECIMAL_FORMAT: function() { + try { + var _type = this.DECIMAL_FORMAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:186:29: ( 'decimal-format' ) + // xquery/XQueryLexer.g:186:31: 'decimal-format' + this.match("decimal-format"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECIMAL_FORMAT", + + // $ANTLR start DECIMAL_SEPARATOR + mDECIMAL_SEPARATOR: function() { + try { + var _type = this.DECIMAL_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:187:29: ( 'decimal-separator' ) + // xquery/XQueryLexer.g:187:31: 'decimal-separator' + this.match("decimal-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECIMAL_SEPARATOR", + + // $ANTLR start DIGIT + mDIGIT: function() { + try { + var _type = this.DIGIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:188:29: ( 'digit' ) + // xquery/XQueryLexer.g:188:31: 'digit' + this.match("digit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIGIT", + + // $ANTLR start END + mEND: function() { + try { + var _type = this.END; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:189:29: ( 'end' ) + // xquery/XQueryLexer.g:189:31: 'end' + this.match("end"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "END", + + // $ANTLR start GROUP + mGROUP: function() { + try { + var _type = this.GROUP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:190:29: ( 'group' ) + // xquery/XQueryLexer.g:190:31: 'group' + this.match("group"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GROUP", + + // $ANTLR start GROUPING_SEPARATOR + mGROUPING_SEPARATOR: function() { + try { + var _type = this.GROUPING_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:191:29: ( 'grouping-separator' ) + // xquery/XQueryLexer.g:191:31: 'grouping-separator' + this.match("grouping-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GROUPING_SEPARATOR", + + // $ANTLR start INFINITY + mINFINITY: function() { + try { + var _type = this.INFINITY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:192:29: ( 'infinity' ) + // xquery/XQueryLexer.g:192:31: 'infinity' + this.match("infinity"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INFINITY", + + // $ANTLR start MINUS_SIGN + mMINUS_SIGN: function() { + try { + var _type = this.MINUS_SIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:193:29: ( 'minus-sign' ) + // xquery/XQueryLexer.g:193:31: 'minus-sign' + this.match("minus-sign"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MINUS_SIGN", + + // $ANTLR start NAMESPACE_NODE + mNAMESPACE_NODE: function() { + try { + var _type = this.NAMESPACE_NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:194:29: ( 'namespace-node' ) + // xquery/XQueryLexer.g:194:31: 'namespace-node' + this.match("namespace-node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAMESPACE_NODE", + + // $ANTLR start NAN + mNAN: function() { + try { + var _type = this.NAN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:195:29: ( 'NaN' ) + // xquery/XQueryLexer.g:195:31: 'NaN' + this.match("NaN"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAN", + + // $ANTLR start NEXT + mNEXT: function() { + try { + var _type = this.NEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:196:29: ( 'next' ) + // xquery/XQueryLexer.g:196:31: 'next' + this.match("next"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NEXT", + + // $ANTLR start ONLY + mONLY: function() { + try { + var _type = this.ONLY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:197:29: ( 'only' ) + // xquery/XQueryLexer.g:197:31: 'only' + this.match("only"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ONLY", + + // $ANTLR start PATTERN_SEPARATOR + mPATTERN_SEPARATOR: function() { + try { + var _type = this.PATTERN_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:198:29: ( 'pattern-separator' ) + // xquery/XQueryLexer.g:198:31: 'pattern-separator' + this.match("pattern-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PATTERN_SEPARATOR", + + // $ANTLR start PERCENT + mPERCENT: function() { + try { + var _type = this.PERCENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:199:29: ( 'percent' ) + // xquery/XQueryLexer.g:199:31: 'percent' + this.match("percent"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PERCENT", + + // $ANTLR start PER_MILLE + mPER_MILLE: function() { + try { + var _type = this.PER_MILLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:200:29: ( 'per-mille' ) + // xquery/XQueryLexer.g:200:31: 'per-mille' + this.match("per-mille"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PER_MILLE", + + // $ANTLR start PREVIOUS + mPREVIOUS: function() { + try { + var _type = this.PREVIOUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:201:29: ( 'previous' ) + // xquery/XQueryLexer.g:201:31: 'previous' + this.match("previous"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PREVIOUS", + + // $ANTLR start SLIDING + mSLIDING: function() { + try { + var _type = this.SLIDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:202:29: ( 'sliding' ) + // xquery/XQueryLexer.g:202:31: 'sliding' + this.match("sliding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLIDING", + + // $ANTLR start START + mSTART: function() { + try { + var _type = this.START; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:203:29: ( 'start' ) + // xquery/XQueryLexer.g:203:31: 'start' + this.match("start"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "START", + + // $ANTLR start SWITCH + mSWITCH: function() { + try { + var _type = this.SWITCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:204:29: ( 'switch' ) + // xquery/XQueryLexer.g:204:31: 'switch' + this.match("switch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SWITCH", + + // $ANTLR start TRY + mTRY: function() { + try { + var _type = this.TRY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:205:29: ( 'try' ) + // xquery/XQueryLexer.g:205:31: 'try' + this.match("try"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TRY", + + // $ANTLR start TUMBLING + mTUMBLING: function() { + try { + var _type = this.TUMBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:206:29: ( 'tumbling' ) + // xquery/XQueryLexer.g:206:31: 'tumbling' + this.match("tumbling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TUMBLING", + + // $ANTLR start TYPE + mTYPE: function() { + try { + var _type = this.TYPE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:207:29: ( 'type' ) + // xquery/XQueryLexer.g:207:31: 'type' + this.match("type"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TYPE", + + // $ANTLR start WHEN + mWHEN: function() { + try { + var _type = this.WHEN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:208:29: ( 'when' ) + // xquery/XQueryLexer.g:208:31: 'when' + this.match("when"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHEN", + + // $ANTLR start WINDOW + mWINDOW: function() { + try { + var _type = this.WINDOW; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:209:29: ( 'window' ) + // xquery/XQueryLexer.g:209:31: 'window' + this.match("window"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WINDOW", + + // $ANTLR start ZERO_DIGIT + mZERO_DIGIT: function() { + try { + var _type = this.ZERO_DIGIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:210:29: ( 'zero-digit' ) + // xquery/XQueryLexer.g:210:31: 'zero-digit' + this.match("zero-digit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ZERO_DIGIT", + + // $ANTLR start AFTER + mAFTER: function() { + try { + var _type = this.AFTER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:212:29: ( 'after' ) + // xquery/XQueryLexer.g:212:31: 'after' + this.match("after"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AFTER", + + // $ANTLR start BEFORE + mBEFORE: function() { + try { + var _type = this.BEFORE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:213:29: ( 'before' ) + // xquery/XQueryLexer.g:213:31: 'before' + this.match("before"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BEFORE", + + // $ANTLR start COPY + mCOPY: function() { + try { + var _type = this.COPY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:214:29: ( 'copy' ) + // xquery/XQueryLexer.g:214:31: 'copy' + this.match("copy"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COPY", + + // $ANTLR start DELETE + mDELETE: function() { + try { + var _type = this.DELETE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:215:29: ( 'delete' ) + // xquery/XQueryLexer.g:215:31: 'delete' + this.match("delete"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DELETE", + + // $ANTLR start FIRST + mFIRST: function() { + try { + var _type = this.FIRST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:216:29: ( 'first' ) + // xquery/XQueryLexer.g:216:31: 'first' + this.match("first"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FIRST", + + // $ANTLR start INSERT + mINSERT: function() { + try { + var _type = this.INSERT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:217:29: ( 'insert' ) + // xquery/XQueryLexer.g:217:31: 'insert' + this.match("insert"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSERT", + + // $ANTLR start INTO + mINTO: function() { + try { + var _type = this.INTO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:218:29: ( 'into' ) + // xquery/XQueryLexer.g:218:31: 'into' + this.match("into"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTO", + + // $ANTLR start LAST + mLAST: function() { + try { + var _type = this.LAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:219:29: ( 'last' ) + // xquery/XQueryLexer.g:219:31: 'last' + this.match("last"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LAST", + + // $ANTLR start MODIFY + mMODIFY: function() { + try { + var _type = this.MODIFY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:220:29: ( 'modify' ) + // xquery/XQueryLexer.g:220:31: 'modify' + this.match("modify"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MODIFY", + + // $ANTLR start NODES + mNODES: function() { + try { + var _type = this.NODES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:221:29: ( 'nodes' ) + // xquery/XQueryLexer.g:221:31: 'nodes' + this.match("nodes"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NODES", + + // $ANTLR start RENAME + mRENAME: function() { + try { + var _type = this.RENAME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:222:29: ( 'rename' ) + // xquery/XQueryLexer.g:222:31: 'rename' + this.match("rename"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RENAME", + + // $ANTLR start REPLACE + mREPLACE: function() { + try { + var _type = this.REPLACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:223:29: ( 'replace' ) + // xquery/XQueryLexer.g:223:31: 'replace' + this.match("replace"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "REPLACE", + + // $ANTLR start REVALIDATION + mREVALIDATION: function() { + try { + var _type = this.REVALIDATION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:224:29: ( 'revalidation' ) + // xquery/XQueryLexer.g:224:31: 'revalidation' + this.match("revalidation"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "REVALIDATION", + + // $ANTLR start SKIP + mSKIP: function() { + try { + var _type = this.SKIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:225:29: ( 'skip' ) + // xquery/XQueryLexer.g:225:31: 'skip' + this.match("skip"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SKIP", + + // $ANTLR start UPDATING + mUPDATING: function() { + try { + var _type = this.UPDATING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:226:29: ( 'updating' ) + // xquery/XQueryLexer.g:226:31: 'updating' + this.match("updating"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UPDATING", + + // $ANTLR start VALUE + mVALUE: function() { + try { + var _type = this.VALUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:227:29: ( 'value' ) + // xquery/XQueryLexer.g:227:31: 'value' + this.match("value"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VALUE", + + // $ANTLR start WITH + mWITH: function() { + try { + var _type = this.WITH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:228:29: ( 'with' ) + // xquery/XQueryLexer.g:228:31: 'with' + this.match("with"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WITH", + + // $ANTLR start ALL + mALL: function() { + try { + var _type = this.ALL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:230:29: ( 'all' ) + // xquery/XQueryLexer.g:230:31: 'all' + this.match("all"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ALL", + + // $ANTLR start ANY + mANY: function() { + try { + var _type = this.ANY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:231:29: ( 'any' ) + // xquery/XQueryLexer.g:231:31: 'any' + this.match("any"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANY", + + // $ANTLR start CONTAINS + mCONTAINS: function() { + try { + var _type = this.CONTAINS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:232:29: ( 'contains' ) + // xquery/XQueryLexer.g:232:31: 'contains' + this.match("contains"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTAINS", + + // $ANTLR start CONTENT + mCONTENT: function() { + try { + var _type = this.CONTENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:233:29: ( 'content' ) + // xquery/XQueryLexer.g:233:31: 'content' + this.match("content"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTENT", + + // $ANTLR start DIACRITICS + mDIACRITICS: function() { + try { + var _type = this.DIACRITICS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:234:29: ( 'diacritics' ) + // xquery/XQueryLexer.g:234:31: 'diacritics' + this.match("diacritics"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIACRITICS", + + // $ANTLR start DIFFERENT + mDIFFERENT: function() { + try { + var _type = this.DIFFERENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:235:29: ( 'different' ) + // xquery/XQueryLexer.g:235:31: 'different' + this.match("different"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIFFERENT", + + // $ANTLR start DISTANCE + mDISTANCE: function() { + try { + var _type = this.DISTANCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:236:29: ( 'distance' ) + // xquery/XQueryLexer.g:236:31: 'distance' + this.match("distance"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DISTANCE", + + // $ANTLR start ENTIRE + mENTIRE: function() { + try { + var _type = this.ENTIRE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:237:29: ( 'entire' ) + // xquery/XQueryLexer.g:237:31: 'entire' + this.match("entire"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ENTIRE", + + // $ANTLR start EXACTLY + mEXACTLY: function() { + try { + var _type = this.EXACTLY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:238:29: ( 'exactly' ) + // xquery/XQueryLexer.g:238:31: 'exactly' + this.match("exactly"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXACTLY", + + // $ANTLR start FROM + mFROM: function() { + try { + var _type = this.FROM; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:239:29: ( 'from' ) + // xquery/XQueryLexer.g:239:31: 'from' + this.match("from"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FROM", + + // $ANTLR start FT_OPTION + mFT_OPTION: function() { + try { + var _type = this.FT_OPTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:240:29: ( 'ft-option' ) + // xquery/XQueryLexer.g:240:31: 'ft-option' + this.match("ft-option"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FT_OPTION", + + // $ANTLR start FTAND + mFTAND: function() { + try { + var _type = this.FTAND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:241:29: ( 'ftand' ) + // xquery/XQueryLexer.g:241:31: 'ftand' + this.match("ftand"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTAND", + + // $ANTLR start FTNOT + mFTNOT: function() { + try { + var _type = this.FTNOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:242:29: ( 'ftnot' ) + // xquery/XQueryLexer.g:242:31: 'ftnot' + this.match("ftnot"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTNOT", + + // $ANTLR start FTOR + mFTOR: function() { + try { + var _type = this.FTOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:243:29: ( 'ftor' ) + // xquery/XQueryLexer.g:243:31: 'ftor' + this.match("ftor"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTOR", + + // $ANTLR start INSENSITIVE + mINSENSITIVE: function() { + try { + var _type = this.INSENSITIVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:244:29: ( 'insensitive' ) + // xquery/XQueryLexer.g:244:31: 'insensitive' + this.match("insensitive"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSENSITIVE", + + // $ANTLR start LANGUAGE + mLANGUAGE: function() { + try { + var _type = this.LANGUAGE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:245:29: ( 'language' ) + // xquery/XQueryLexer.g:245:31: 'language' + this.match("language"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LANGUAGE", + + // $ANTLR start LEVELS + mLEVELS: function() { + try { + var _type = this.LEVELS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:246:29: ( 'levels' ) + // xquery/XQueryLexer.g:246:31: 'levels' + this.match("levels"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LEVELS", + + // $ANTLR start LOWERCASE + mLOWERCASE: function() { + try { + var _type = this.LOWERCASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:247:29: ( 'lowercase' ) + // xquery/XQueryLexer.g:247:31: 'lowercase' + this.match("lowercase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LOWERCASE", + + // $ANTLR start MOST + mMOST: function() { + try { + var _type = this.MOST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:248:29: ( 'most' ) + // xquery/XQueryLexer.g:248:31: 'most' + this.match("most"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MOST", + + // $ANTLR start NO + mNO: function() { + try { + var _type = this.NO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:249:29: ( 'no' ) + // xquery/XQueryLexer.g:249:31: 'no' + this.match("no"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO", + + // $ANTLR start NOT + mNOT: function() { + try { + var _type = this.NOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:250:29: ( 'not' ) + // xquery/XQueryLexer.g:250:31: 'not' + this.match("not"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NOT", + + // $ANTLR start OCCURS + mOCCURS: function() { + try { + var _type = this.OCCURS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:251:29: ( 'occurs' ) + // xquery/XQueryLexer.g:251:31: 'occurs' + this.match("occurs"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OCCURS", + + // $ANTLR start PARAGRAPH + mPARAGRAPH: function() { + try { + var _type = this.PARAGRAPH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:252:29: ( 'paragraph' ) + // xquery/XQueryLexer.g:252:31: 'paragraph' + this.match("paragraph"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARAGRAPH", + + // $ANTLR start PARAGRAPHS + mPARAGRAPHS: function() { + try { + var _type = this.PARAGRAPHS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:253:29: ( 'paragraphs' ) + // xquery/XQueryLexer.g:253:31: 'paragraphs' + this.match("paragraphs"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARAGRAPHS", + + // $ANTLR start PHRASE + mPHRASE: function() { + try { + var _type = this.PHRASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:254:29: ( 'phrase' ) + // xquery/XQueryLexer.g:254:31: 'phrase' + this.match("phrase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PHRASE", + + // $ANTLR start RELATIONSHIP + mRELATIONSHIP: function() { + try { + var _type = this.RELATIONSHIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:255:29: ( 'relationship' ) + // xquery/XQueryLexer.g:255:31: 'relationship' + this.match("relationship"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RELATIONSHIP", + + // $ANTLR start SAME + mSAME: function() { + try { + var _type = this.SAME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:256:29: ( 'same' ) + // xquery/XQueryLexer.g:256:31: 'same' + this.match("same"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SAME", + + // $ANTLR start SCORE + mSCORE: function() { + try { + var _type = this.SCORE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:257:29: ( 'score' ) + // xquery/XQueryLexer.g:257:31: 'score' + this.match("score"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCORE", + + // $ANTLR start SENSITIVE + mSENSITIVE: function() { + try { + var _type = this.SENSITIVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:258:29: ( 'sensitive' ) + // xquery/XQueryLexer.g:258:31: 'sensitive' + this.match("sensitive"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENSITIVE", + + // $ANTLR start SENTENCE + mSENTENCE: function() { + try { + var _type = this.SENTENCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:259:29: ( 'sentence' ) + // xquery/XQueryLexer.g:259:31: 'sentence' + this.match("sentence"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENTENCE", + + // $ANTLR start SENTENCES + mSENTENCES: function() { + try { + var _type = this.SENTENCES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:260:29: ( 'sentences' ) + // xquery/XQueryLexer.g:260:31: 'sentences' + this.match("sentences"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENTENCES", + + // $ANTLR start STEMMING + mSTEMMING: function() { + try { + var _type = this.STEMMING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:261:29: ( 'stemming' ) + // xquery/XQueryLexer.g:261:31: 'stemming' + this.match("stemming"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STEMMING", + + // $ANTLR start STOP + mSTOP: function() { + try { + var _type = this.STOP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:262:29: ( 'stop' ) + // xquery/XQueryLexer.g:262:31: 'stop' + this.match("stop"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STOP", + + // $ANTLR start THESAURUS + mTHESAURUS: function() { + try { + var _type = this.THESAURUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:263:29: ( 'thesaurus' ) + // xquery/XQueryLexer.g:263:31: 'thesaurus' + this.match("thesaurus"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "THESAURUS", + + // $ANTLR start TIMES + mTIMES: function() { + try { + var _type = this.TIMES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:264:29: ( 'times' ) + // xquery/XQueryLexer.g:264:31: 'times' + this.match("times"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TIMES", + + // $ANTLR start UPPERCASE + mUPPERCASE: function() { + try { + var _type = this.UPPERCASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:265:29: ( 'uppercase' ) + // xquery/XQueryLexer.g:265:31: 'uppercase' + this.match("uppercase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UPPERCASE", + + // $ANTLR start USING + mUSING: function() { + try { + var _type = this.USING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:266:29: ( 'using' ) + // xquery/XQueryLexer.g:266:31: 'using' + this.match("using"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "USING", + + // $ANTLR start WEIGHT + mWEIGHT: function() { + try { + var _type = this.WEIGHT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:267:29: ( 'weight' ) + // xquery/XQueryLexer.g:267:31: 'weight' + this.match("weight"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WEIGHT", + + // $ANTLR start WILDCARDS + mWILDCARDS: function() { + try { + var _type = this.WILDCARDS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:268:29: ( 'wildcards' ) + // xquery/XQueryLexer.g:268:31: 'wildcards' + this.match("wildcards"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WILDCARDS", + + // $ANTLR start WITHOUT + mWITHOUT: function() { + try { + var _type = this.WITHOUT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:269:29: ( 'without' ) + // xquery/XQueryLexer.g:269:31: 'without' + this.match("without"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WITHOUT", + + // $ANTLR start WORD + mWORD: function() { + try { + var _type = this.WORD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:270:29: ( 'word' ) + // xquery/XQueryLexer.g:270:31: 'word' + this.match("word"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WORD", + + // $ANTLR start WORDS + mWORDS: function() { + try { + var _type = this.WORDS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:271:29: ( 'words' ) + // xquery/XQueryLexer.g:271:31: 'words' + this.match("words"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WORDS", + + // $ANTLR start BREAK + mBREAK: function() { + try { + var _type = this.BREAK; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:273:29: ( 'break' ) + // xquery/XQueryLexer.g:273:31: 'break' + this.match("break"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BREAK", + + // $ANTLR start CONTINUE + mCONTINUE: function() { + try { + var _type = this.CONTINUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:274:29: ( 'continue' ) + // xquery/XQueryLexer.g:274:31: 'continue' + this.match("continue"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTINUE", + + // $ANTLR start EXIT + mEXIT: function() { + try { + var _type = this.EXIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:275:29: ( 'exit' ) + // xquery/XQueryLexer.g:275:31: 'exit' + this.match("exit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXIT", + + // $ANTLR start LOOP + mLOOP: function() { + try { + var _type = this.LOOP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:276:29: ( 'loop' ) + // xquery/XQueryLexer.g:276:31: 'loop' + this.match("loop"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LOOP", + + // $ANTLR start RETURNING + mRETURNING: function() { + try { + var _type = this.RETURNING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:277:29: ( 'returning' ) + // xquery/XQueryLexer.g:277:31: 'returning' + this.match("returning"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RETURNING", + + // $ANTLR start WHILE + mWHILE: function() { + try { + var _type = this.WHILE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:278:29: ( 'while' ) + // xquery/XQueryLexer.g:278:31: 'while' + this.match("while"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHILE", + + // $ANTLR start CHECK + mCHECK: function() { + try { + var _type = this.CHECK; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:280:29: ( 'check' ) + // xquery/XQueryLexer.g:280:31: 'check' + this.match("check"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHECK", + + // $ANTLR start COLLECTION + mCOLLECTION: function() { + try { + var _type = this.COLLECTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:281:29: ( 'collection' ) + // xquery/XQueryLexer.g:281:31: 'collection' + this.match("collection"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLLECTION", + + // $ANTLR start CONSTRAINT + mCONSTRAINT: function() { + try { + var _type = this.CONSTRAINT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:282:29: ( 'constraint' ) + // xquery/XQueryLexer.g:282:31: 'constraint' + this.match("constraint"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONSTRAINT", + + // $ANTLR start FOREACH + mFOREACH: function() { + try { + var _type = this.FOREACH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:283:29: ( 'foreach' ) + // xquery/XQueryLexer.g:283:31: 'foreach' + this.match("foreach"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOREACH", + + // $ANTLR start FOREIGN + mFOREIGN: function() { + try { + var _type = this.FOREIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:284:29: ( 'foreign' ) + // xquery/XQueryLexer.g:284:31: 'foreign' + this.match("foreign"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOREIGN", + + // $ANTLR start INDEX + mINDEX: function() { + try { + var _type = this.INDEX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:285:29: ( 'index' ) + // xquery/XQueryLexer.g:285:31: 'index' + this.match("index"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INDEX", + + // $ANTLR start INTEGRITY + mINTEGRITY: function() { + try { + var _type = this.INTEGRITY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:286:29: ( 'integrity' ) + // xquery/XQueryLexer.g:286:31: 'integrity' + this.match("integrity"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTEGRITY", + + // $ANTLR start KEY + mKEY: function() { + try { + var _type = this.KEY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:287:29: ( 'key' ) + // xquery/XQueryLexer.g:287:31: 'key' + this.match("key"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "KEY", + + // $ANTLR start ON + mON: function() { + try { + var _type = this.ON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:288:29: ( 'on' ) + // xquery/XQueryLexer.g:288:31: 'on' + this.match("on"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ON", + + // $ANTLR start UNIQUE + mUNIQUE: function() { + try { + var _type = this.UNIQUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:289:29: ( 'unique' ) + // xquery/XQueryLexer.g:289:31: 'unique' + this.match("unique"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNIQUE", + + // $ANTLR start BINARY + mBINARY: function() { + try { + var _type = this.BINARY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:291:29: ( 'binary' ) + // xquery/XQueryLexer.g:291:31: 'binary' + this.match("binary"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BINARY", + + // $ANTLR start AMP_ER + mAMP_ER: function() { + try { + var _type = this.AMP_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:294:9: ( 'amp' ) + // xquery/XQueryLexer.g:294:11: 'amp' + this.match("amp"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AMP_ER", + + // $ANTLR start APOS_ER + mAPOS_ER: function() { + try { + var _type = this.APOS_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:295:9: ( 'apos' ) + // xquery/XQueryLexer.g:295:11: 'apos' + this.match("apos"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS_ER", + + // $ANTLR start QUOT_ER + mQUOT_ER: function() { + try { + var _type = this.QUOT_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:296:9: ( 'quot' ) + // xquery/XQueryLexer.g:296:11: 'quot' + this.match("quot"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT_ER", + + // $ANTLR start CONCAT + mCONCAT: function() { + try { + var _type = this.CONCAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:303:25: ( '||' ) + // xquery/XQueryLexer.g:303:27: '||' + this.match("||"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONCAT", + + // $ANTLR start LPAREN + mLPAREN: function() { + try { + var _type = this.LPAREN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:304:25: ( '(' ) + // xquery/XQueryLexer.g:304:27: '(' + this.match('('); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LPAREN", + + // $ANTLR start RPAREN + mRPAREN: function() { + try { + var _type = this.RPAREN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:305:25: ( ')' ) + // xquery/XQueryLexer.g:305:27: ')' + this.match(')'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RPAREN", + + // $ANTLR start DOLLAR + mDOLLAR: function() { + try { + var _type = this.DOLLAR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:306:25: ( '$' ) + // xquery/XQueryLexer.g:306:27: '$' + this.match('$'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOLLAR", + + // $ANTLR start LBRACKET + mLBRACKET: function() { + try { + var _type = this.LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:307:25: ( '{' ) + // xquery/XQueryLexer.g:307:27: '{' + this.match('{'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LBRACKET", + + // $ANTLR start RBRACKET + mRBRACKET: function() { + try { + var _type = this.RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:308:25: ( '}' ) + // xquery/XQueryLexer.g:308:27: '}' + this.match('}'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RBRACKET", + + // $ANTLR start LSQUARE + mLSQUARE: function() { + try { + var _type = this.LSQUARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:309:25: ( '[' ) + // xquery/XQueryLexer.g:309:27: '[' + this.match('['); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LSQUARE", + + // $ANTLR start RSQUARE + mRSQUARE: function() { + try { + var _type = this.RSQUARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:310:25: ( ']' ) + // xquery/XQueryLexer.g:310:27: ']' + this.match(']'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RSQUARE", + + // $ANTLR start EQUAL + mEQUAL: function() { + try { + var _type = this.EQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:311:25: ( '=' ) + // xquery/XQueryLexer.g:311:27: '=' + this.match('='); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQUAL", + + // $ANTLR start BIND + mBIND: function() { + try { + var _type = this.BIND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:312:25: ( ':=' ) + // xquery/XQueryLexer.g:312:27: ':=' + this.match(":="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BIND", + + // $ANTLR start NOTEQUAL + mNOTEQUAL: function() { + try { + var _type = this.NOTEQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:313:25: ( '!=' ) + // xquery/XQueryLexer.g:313:27: '!=' + this.match("!="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NOTEQUAL", + + // $ANTLR start ANN_PERCENT + mANN_PERCENT: function() { + try { + var _type = this.ANN_PERCENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:314:25: ( '%' ) + // xquery/XQueryLexer.g:314:27: '%' + this.match('%'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANN_PERCENT", + + // $ANTLR start HASH + mHASH: function() { + try { + var _type = this.HASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:315:25: ( '#' ) + // xquery/XQueryLexer.g:315:27: '#' + this.match('#'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "HASH", + + // $ANTLR start AMP + mAMP: function() { + try { + var _type = this.AMP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:316:25: ( '&' ) + // xquery/XQueryLexer.g:316:27: '&' + this.match('&'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AMP", + + // $ANTLR start COMMA + mCOMMA: function() { + try { + var _type = this.COMMA; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:317:25: ( ',' ) + // xquery/XQueryLexer.g:317:27: ',' + this.match(','); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COMMA", + + // $ANTLR start QUESTION + mQUESTION: function() { + try { + var _type = this.QUESTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:318:25: ( '?' ) + // xquery/XQueryLexer.g:318:27: '?' + this.match('?'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUESTION", + + // $ANTLR start STAR + mSTAR: function() { + try { + var _type = this.STAR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:319:25: ( '*' ) + // xquery/XQueryLexer.g:319:27: '*' + this.match('*'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STAR", + + // $ANTLR start PLUS + mPLUS: function() { + try { + var _type = this.PLUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:320:25: ( '+' ) + // xquery/XQueryLexer.g:320:27: '+' + this.match('+'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PLUS", + + // $ANTLR start MINUS + mMINUS: function() { + try { + var _type = this.MINUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:321:25: ( '-' ) + // xquery/XQueryLexer.g:321:27: '-' + this.match('-'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MINUS", + + // $ANTLR start SMALLER + mSMALLER: function() { + try { + var _type = this.SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:322:25: ( '<' ) + // xquery/XQueryLexer.g:322:27: '<' + this.match('<'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER", + + // $ANTLR start GREATER + mGREATER: function() { + try { + var _type = this.GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:323:25: ( '>' ) + // xquery/XQueryLexer.g:323:27: '>' + this.match('>'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER", + + // $ANTLR start SMALLEREQ + mSMALLEREQ: function() { + try { + var _type = this.SMALLEREQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:324:25: ( '<=' ) + // xquery/XQueryLexer.g:324:27: '<=' + this.match("<="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLEREQ", + + // $ANTLR start GREATEREQ + mGREATEREQ: function() { + try { + var _type = this.GREATEREQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:325:25: ( '>=' ) + // xquery/XQueryLexer.g:325:27: '>=' + this.match(">="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATEREQ", + + // $ANTLR start SMALLER_SMALLER + mSMALLER_SMALLER: function() { + try { + var _type = this.SMALLER_SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:326:25: ( '<<' ) + // xquery/XQueryLexer.g:326:27: '<<' + this.match("<<"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER_SMALLER", + + // $ANTLR start GREATER_GREATER + mGREATER_GREATER: function() { + try { + var _type = this.GREATER_GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:327:25: ( '>>' ) + // xquery/XQueryLexer.g:327:27: '>>' + this.match(">>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER_GREATER", + + // $ANTLR start SLASH + mSLASH: function() { + try { + var _type = this.SLASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:328:25: ( '/' ) + // xquery/XQueryLexer.g:328:27: '/' + this.match('/'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLASH", + + // $ANTLR start SLASH_SLASH + mSLASH_SLASH: function() { + try { + var _type = this.SLASH_SLASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:329:25: ( '//' ) + // xquery/XQueryLexer.g:329:27: '//' + this.match("//"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLASH_SLASH", + + // $ANTLR start DOT + mDOT: function() { + try { + var _type = this.DOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:330:25: ( '.' ) + // xquery/XQueryLexer.g:330:27: '.' + this.match('.'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOT", + + // $ANTLR start DOT_DOT + mDOT_DOT: function() { + try { + var _type = this.DOT_DOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:331:25: ( '..' ) + // xquery/XQueryLexer.g:331:27: '..' + this.match(".."); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOT_DOT", + + // $ANTLR start COLON + mCOLON: function() { + try { + var _type = this.COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:332:25: ( ':' ) + // xquery/XQueryLexer.g:332:27: ':' + this.match(':'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON", + + // $ANTLR start COLON_COLON + mCOLON_COLON: function() { + try { + var _type = this.COLON_COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:333:25: ( '::' ) + // xquery/XQueryLexer.g:333:27: '::' + this.match("::"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON_COLON", + + // $ANTLR start EMPTY_CLOSE_TAG + mEMPTY_CLOSE_TAG: function() { + try { + var _type = this.EMPTY_CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:334:25: ( '/>' ) + // xquery/XQueryLexer.g:334:27: '/>' + this.match("/>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_CLOSE_TAG", + + // $ANTLR start CLOSE_TAG + mCLOSE_TAG: function() { + try { + var _type = this.CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:335:25: ( '' ) + // xquery/XQueryLexer.g:341:27: '-->' + this.match("-->"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "XML_COMMENT_END", + + // $ANTLR start PI_START + mPI_START: function() { + try { + var _type = this.PI_START; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:342:25: ( '' ) + // xquery/XQueryLexer.g:343:27: '?>' + this.match("?>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PI_END", + + // $ANTLR start ATTR_SIGN + mATTR_SIGN: function() { + try { + var _type = this.ATTR_SIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:344:25: ( '@' ) + // xquery/XQueryLexer.g:344:27: '@' + this.match('@'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ATTR_SIGN", + + // $ANTLR start CHARREF_DEC + mCHARREF_DEC: function() { + try { + var _type = this.CHARREF_DEC; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:345:25: ( '&#' ) + // xquery/XQueryLexer.g:345:27: '&#' + this.match("&#"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHARREF_DEC", + + // $ANTLR start CHARREF_HEX + mCHARREF_HEX: function() { + try { + var _type = this.CHARREF_HEX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:346:25: ( '&#x' ) + // xquery/XQueryLexer.g:346:27: '&#x' + this.match("&#x"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHARREF_HEX", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:347:25: ( '\\'' ) + // xquery/XQueryLexer.g:347:27: '\\'' + this.match('\''); + if (!this.inStr) this.inStr = true; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:348:25: ( '\"' ) + // xquery/XQueryLexer.g:348:27: '\"' + this.match('\"'); + if (!this.inStr) this.inStr = true; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start L_NCName + mL_NCName: function() { + try { + var _type = this.L_NCName; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:352:9: ( NCNameStartChar ( NCNameChar )* ) + // xquery/XQueryLexer.g:352:13: NCNameStartChar ( NCNameChar )* + this.mNCNameStartChar(); + // xquery/XQueryLexer.g:352:29: ( NCNameChar )* + loop1: + do { + var alt1=2; + var LA1_0 = this.input.LA(1); + + if ( ((LA1_0>='-' && LA1_0<='.')||(LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // xquery/XQueryLexer.g:352:29: NCNameChar + this.mNCNameChar(); + + + break; + + default : + break loop1; + } + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_NCName", + + // $ANTLR start Letter + mLetter: function() { + try { + // xquery/XQueryLexer.g:355:29: ( 'a' .. 'z' | 'A' .. 'Z' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "Letter", + + // $ANTLR start HexLetter + mHexLetter: function() { + try { + // xquery/XQueryLexer.g:356:29: ( 'a' .. 'f' | 'A' .. 'F' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "HexLetter", + + // $ANTLR start Digit + mDigit: function() { + try { + // xquery/XQueryLexer.g:357:29: ( '0' .. '9' ) + // xquery/XQueryLexer.g:357:31: '0' .. '9' + this.matchRange('0','9'); + + + + } + finally { + } + }, + // $ANTLR end "Digit", + + // $ANTLR start Digits + mDigits: function() { + try { + // xquery/XQueryLexer.g:358:29: ( ( Digit )+ ) + // xquery/XQueryLexer.g:358:31: ( Digit )+ + // xquery/XQueryLexer.g:358:31: ( Digit )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/XQueryLexer.g:358:31: Digit + this.mDigit(); + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "Digits", + + // $ANTLR start NCNameStartChar + mNCNameStartChar: function() { + try { + // xquery/XQueryLexer.g:360:29: ( Letter | '_' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameStartChar", + + // $ANTLR start NCNameChar + mNCNameChar: function() { + try { + // xquery/XQueryLexer.g:361:29: ( Letter | Digit | '.' | '-' | '_' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='-' && this.input.LA(1)<='.')||(this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameChar", + + // $ANTLR start S + mS: function() { + try { + var _type = this.S; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:364:9: ( ( '\\t' | ' ' | '\\n' | '\\r' )+ ) + // xquery/XQueryLexer.g:364:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + // xquery/XQueryLexer.g:364:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||LA3_0==' ') ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + _channel = HIDDEN; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "S", + + // $ANTLR start SU + mSU: function() { + try { + // xquery/XQueryLexer.g:367:9: ( ( '\\t' | ' ' | '\\n' | '\\r' )+ ) + // xquery/XQueryLexer.g:367:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + // xquery/XQueryLexer.g:367:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + var cnt4=0; + loop4: + do { + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( ((LA4_0>='\t' && LA4_0<='\n')||LA4_0=='\r'||LA4_0==' ') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt4 >= 1 ) { + break loop4; + } + var eee = new org.antlr.runtime.EarlyExitException(4, this.input); + throw eee; + } + cnt4++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "SU", + + // $ANTLR start L_Pragma + mL_Pragma: function() { + try { + var _type = this.L_Pragma; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:378:9: ( PRAGMA_START ( SU )? L_NCName COLON L_NCName ( SU ( options {greedy=false; } : . )* )? PRAGMA_END ) + // xquery/XQueryLexer.g:378:11: PRAGMA_START ( SU )? L_NCName COLON L_NCName ( SU ( options {greedy=false; } : . )* )? PRAGMA_END + this.mPRAGMA_START(); + // xquery/XQueryLexer.g:378:24: ( SU )? + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='\t' && LA5_0<='\n')||LA5_0=='\r'||LA5_0==' ') ) { + alt5=1; + } + switch (alt5) { + case 1 : + // xquery/XQueryLexer.g:378:24: SU + this.mSU(); + + + break; + + } + + this.mL_NCName(); + this.mCOLON(); + this.mL_NCName(); + // xquery/XQueryLexer.g:378:52: ( SU ( options {greedy=false; } : . )* )? + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||LA7_0==' ') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // xquery/XQueryLexer.g:378:53: SU ( options {greedy=false; } : . )* + this.mSU(); + // xquery/XQueryLexer.g:378:56: ( options {greedy=false; } : . )* + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( (LA6_0=='#') ) { + var LA6_1 = this.input.LA(2); + + if ( (LA6_1==')') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='(')||(LA6_1>='*' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<='\"')||(LA6_0>='$' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/XQueryLexer.g:378:83: . + this.matchAny(); + + + break; + + default : + break loop6; + } + } while (true); + + + + break; + + } + + this.mPRAGMA_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_Pragma", + + // $ANTLR start L_DirCommentConstructor + mL_DirCommentConstructor: function() { + try { + var _type = this.L_DirCommentConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:388:9: ( XML_COMMENT_START ( options {greedy=false; } : ( . )* ) XML_COMMENT_END ) + // xquery/XQueryLexer.g:388:11: XML_COMMENT_START ( options {greedy=false; } : ( . )* ) XML_COMMENT_END + this.mXML_COMMENT_START(); + // xquery/XQueryLexer.g:388:29: ( options {greedy=false; } : ( . )* ) + // xquery/XQueryLexer.g:388:56: ( . )* + // xquery/XQueryLexer.g:388:56: ( . )* + loop8: + do { + var alt8=2; + var LA8_0 = this.input.LA(1); + + if ( (LA8_0=='-') ) { + var LA8_1 = this.input.LA(2); + + if ( (LA8_1=='-') ) { + var LA8_3 = this.input.LA(3); + + if ( (LA8_3=='>') ) { + alt8=2; + } + else if ( ((LA8_3>='\u0000' && LA8_3<='=')||(LA8_3>='?' && LA8_3<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_1>='\u0000' && LA8_1<=',')||(LA8_1>='.' && LA8_1<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_0>='\u0000' && LA8_0<=',')||(LA8_0>='.' && LA8_0<='\uFFFF')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // xquery/XQueryLexer.g:388:56: . + this.matchAny(); + + + break; + + default : + break loop8; + } + } while (true); + + + + + this.mXML_COMMENT_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirCommentConstructor", + + // $ANTLR start L_DirPIConstructor + mL_DirPIConstructor: function() { + try { + var _type = this.L_DirPIConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:397:9: ( PI_START ( SU )? L_NCName ( SU ( options {greedy=false; } : ( . )* ) )? PI_END ) + // xquery/XQueryLexer.g:397:11: PI_START ( SU )? L_NCName ( SU ( options {greedy=false; } : ( . )* ) )? PI_END + this.mPI_START(); + // xquery/XQueryLexer.g:397:20: ( SU )? + var alt9=2; + var LA9_0 = this.input.LA(1); + + if ( ((LA9_0>='\t' && LA9_0<='\n')||LA9_0=='\r'||LA9_0==' ') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // xquery/XQueryLexer.g:397:20: SU + this.mSU(); + + + break; + + } + + this.mL_NCName(); + // xquery/XQueryLexer.g:397:33: ( SU ( options {greedy=false; } : ( . )* ) )? + var alt11=2; + var LA11_0 = this.input.LA(1); + + if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) { + alt11=1; + } + switch (alt11) { + case 1 : + // xquery/XQueryLexer.g:397:34: SU ( options {greedy=false; } : ( . )* ) + this.mSU(); + // xquery/XQueryLexer.g:397:36: ( options {greedy=false; } : ( . )* ) + // xquery/XQueryLexer.g:397:63: ( . )* + // xquery/XQueryLexer.g:397:63: ( . )* + loop10: + do { + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0=='?') ) { + var LA10_1 = this.input.LA(2); + + if ( (LA10_1=='>') ) { + alt10=2; + } + else if ( ((LA10_1>='\u0000' && LA10_1<='=')||(LA10_1>='?' && LA10_1<='\uFFFF')) ) { + alt10=1; + } + + + } + else if ( ((LA10_0>='\u0000' && LA10_0<='>')||(LA10_0>='@' && LA10_0<='\uFFFF')) ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // xquery/XQueryLexer.g:397:63: . + this.matchAny(); + + + break; + + default : + break loop10; + } + } while (true); + + + + + + + break; + + } + + this.mPI_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirPIConstructor", + + // $ANTLR start L_IntegerLiteral + mL_IntegerLiteral: function() { + try { + var _type = this.L_IntegerLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:405:9: ( Digits ) + // xquery/XQueryLexer.g:405:13: Digits + this.mDigits(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_IntegerLiteral", + + // $ANTLR start L_DecimalLiteral + mL_DecimalLiteral: function() { + try { + var _type = this.L_DecimalLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:410:9: ( ( '.' Digits ) | ( Digits '.' ( Digit )* ) ) + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0=='.') ) { + alt13=1; + } + else if ( ((LA13_0>='0' && LA13_0<='9')) ) { + alt13=2; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 13, 0, this.input); + + throw nvae; + } + switch (alt13) { + case 1 : + // xquery/XQueryLexer.g:410:11: ( '.' Digits ) + // xquery/XQueryLexer.g:410:11: ( '.' Digits ) + // xquery/XQueryLexer.g:410:12: '.' Digits + this.match('.'); + this.mDigits(); + + + + + + break; + case 2 : + // xquery/XQueryLexer.g:410:26: ( Digits '.' ( Digit )* ) + // xquery/XQueryLexer.g:410:26: ( Digits '.' ( Digit )* ) + // xquery/XQueryLexer.g:410:27: Digits '.' ( Digit )* + this.mDigits(); + this.match('.'); + // xquery/XQueryLexer.g:410:38: ( Digit )* + loop12: + do { + var alt12=2; + var LA12_0 = this.input.LA(1); + + if ( ((LA12_0>='0' && LA12_0<='9')) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // xquery/XQueryLexer.g:410:38: Digit + this.mDigit(); + + + break; + + default : + break loop12; + } + } while (true); + + + + + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DecimalLiteral", + + // $ANTLR start L_DoubleLiteral + mL_DoubleLiteral: function() { + try { + var _type = this.L_DoubleLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:415:9: ( ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) ( 'e' | 'E' ) ( '+' | '-' )? Digits ) + // xquery/XQueryLexer.g:415:11: ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) ( 'e' | 'E' ) ( '+' | '-' )? Digits + // xquery/XQueryLexer.g:415:11: ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) + var alt16=2; + var LA16_0 = this.input.LA(1); + + if ( (LA16_0=='.') ) { + alt16=1; + } + else if ( ((LA16_0>='0' && LA16_0<='9')) ) { + alt16=2; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 16, 0, this.input); + + throw nvae; + } + switch (alt16) { + case 1 : + // xquery/XQueryLexer.g:415:12: ( '.' Digits ) + // xquery/XQueryLexer.g:415:12: ( '.' Digits ) + // xquery/XQueryLexer.g:415:13: '.' Digits + this.match('.'); + this.mDigits(); + + + + + + break; + case 2 : + // xquery/XQueryLexer.g:415:27: ( Digits ( '.' ( Digit )* )? ) + // xquery/XQueryLexer.g:415:27: ( Digits ( '.' ( Digit )* )? ) + // xquery/XQueryLexer.g:415:28: Digits ( '.' ( Digit )* )? + this.mDigits(); + // xquery/XQueryLexer.g:415:35: ( '.' ( Digit )* )? + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( (LA15_0=='.') ) { + alt15=1; + } + switch (alt15) { + case 1 : + // xquery/XQueryLexer.g:415:36: '.' ( Digit )* + this.match('.'); + // xquery/XQueryLexer.g:415:40: ( Digit )* + loop14: + do { + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( ((LA14_0>='0' && LA14_0<='9')) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // xquery/XQueryLexer.g:415:40: Digit + this.mDigit(); + + + break; + + default : + break loop14; + } + } while (true); + + + + break; + + } + + + + + + + break; + + } + + if ( this.input.LA(1)=='E'||this.input.LA(1)=='e' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + // xquery/XQueryLexer.g:415:63: ( '+' | '-' )? + var alt17=2; + var LA17_0 = this.input.LA(1); + + if ( (LA17_0=='+'||LA17_0=='-') ) { + alt17=1; + } + switch (alt17) { + case 1 : + // xquery/XQueryLexer.g: + if ( this.input.LA(1)=='+'||this.input.LA(1)=='-' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + } + + this.mDigits(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DoubleLiteral", + + // $ANTLR start L_Comment + mL_Comment: function() { + try { + var _type = this.L_Comment; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:420:9: ({...}? => '(:' ( options {greedy=false; } : L_Comment | . )* ':)' ) + // xquery/XQueryLexer.g:420:11: {...}? => '(:' ( options {greedy=false; } : L_Comment | . )* ':)' + if ( !((!this.inStr)) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_Comment", "!this.inStr"); + } + this.match("(:"); + + // xquery/XQueryLexer.g:420:33: ( options {greedy=false; } : L_Comment | . )* + loop18: + do { + var alt18=3; + var LA18_0 = this.input.LA(1); + + if ( (LA18_0==':') ) { + var LA18_1 = this.input.LA(2); + + if ( (LA18_1==')') ) { + alt18=3; + } + else if ( ((LA18_1>='\u0000' && LA18_1<='(')||(LA18_1>='*' && LA18_1<='\uFFFF')) ) { + alt18=2; + } + + + } + else if ( (LA18_0=='(') ) { + var LA18_2 = this.input.LA(2); + + if ( (LA18_2==':') ) { + var LA18_5 = this.input.LA(3); + + if ( ((!this.inStr)) ) { + alt18=1; + } + else if ( (true) ) { + alt18=2; + } + + + } + else if ( ((LA18_2>='\u0000' && LA18_2<='9')||(LA18_2>=';' && LA18_2<='\uFFFF')) ) { + alt18=2; + } + + + } + else if ( ((LA18_0>='\u0000' && LA18_0<='\'')||(LA18_0>=')' && LA18_0<='9')||(LA18_0>=';' && LA18_0<='\uFFFF')) ) { + alt18=2; + } + + + switch (alt18) { + case 1 : + // xquery/XQueryLexer.g:420:59: L_Comment + this.mL_Comment(); + + + break; + case 2 : + // xquery/XQueryLexer.g:420:71: . + this.matchAny(); + + + break; + + default : + break loop18; + } + } while (true); + + this.match(":)"); + + _channel = HIDDEN; this.addComment(this.state.tokenStartCharIndex, (this.getCharIndex()-1)); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_Comment", + + // $ANTLR start L_AnyChar + mL_AnyChar: function() { + try { + var _type = this.L_AnyChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:423:11: ( . ) + // xquery/XQueryLexer.g:423:13: . + this.matchAny(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AnyChar", + + mTokens: function() { + // xquery/XQueryLexer.g:1:8: ( ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | SWITCH | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER | CONCAT | LPAREN | RPAREN | DOLLAR | LBRACKET | RBRACKET | LSQUARE | RSQUARE | EQUAL | BIND | NOTEQUAL | ANN_PERCENT | HASH | AMP | COMMA | QUESTION | STAR | PLUS | MINUS | SMALLER | GREATER | SMALLEREQ | GREATEREQ | SMALLER_SMALLER | GREATER_GREATER | SLASH | SLASH_SLASH | DOT | DOT_DOT | COLON | COLON_COLON | EMPTY_CLOSE_TAG | CLOSE_TAG | SEMICOLON | VBAR | PRAGMA_START | PRAGMA_END | XML_COMMENT_START | XML_COMMENT_END | PI_START | PI_END | ATTR_SIGN | CHARREF_DEC | CHARREF_HEX | APOS | QUOT | L_NCName | S | L_Pragma | L_DirCommentConstructor | L_DirPIConstructor | L_IntegerLiteral | L_DecimalLiteral | L_DoubleLiteral | L_Comment | L_AnyChar ) + var alt19=260; + alt19 = this.dfa19.predict(this.input); + switch (alt19) { + case 1 : + // xquery/XQueryLexer.g:1:10: ANCESTOR + this.mANCESTOR(); + + + break; + case 2 : + // xquery/XQueryLexer.g:1:19: ANCESTOR_OR_SELF + this.mANCESTOR_OR_SELF(); + + + break; + case 3 : + // xquery/XQueryLexer.g:1:36: AND + this.mAND(); + + + break; + case 4 : + // xquery/XQueryLexer.g:1:40: AS + this.mAS(); + + + break; + case 5 : + // xquery/XQueryLexer.g:1:43: ASCENDING + this.mASCENDING(); + + + break; + case 6 : + // xquery/XQueryLexer.g:1:53: AT + this.mAT(); + + + break; + case 7 : + // xquery/XQueryLexer.g:1:56: ATTRIBUTE + this.mATTRIBUTE(); + + + break; + case 8 : + // xquery/XQueryLexer.g:1:66: BASE_URI + this.mBASE_URI(); + + + break; + case 9 : + // xquery/XQueryLexer.g:1:75: BOUNDARY_SPACE + this.mBOUNDARY_SPACE(); + + + break; + case 10 : + // xquery/XQueryLexer.g:1:90: BY + this.mBY(); + + + break; + case 11 : + // xquery/XQueryLexer.g:1:93: CASE + this.mCASE(); + + + break; + case 12 : + // xquery/XQueryLexer.g:1:98: CAST + this.mCAST(); + + + break; + case 13 : + // xquery/XQueryLexer.g:1:103: CASTABLE + this.mCASTABLE(); + + + break; + case 14 : + // xquery/XQueryLexer.g:1:112: CHILD + this.mCHILD(); + + + break; + case 15 : + // xquery/XQueryLexer.g:1:118: COLLATION + this.mCOLLATION(); + + + break; + case 16 : + // xquery/XQueryLexer.g:1:128: COMMENT + this.mCOMMENT(); + + + break; + case 17 : + // xquery/XQueryLexer.g:1:136: CONSTRUCTION + this.mCONSTRUCTION(); + + + break; + case 18 : + // xquery/XQueryLexer.g:1:149: COPY_NAMESPACES + this.mCOPY_NAMESPACES(); + + + break; + case 19 : + // xquery/XQueryLexer.g:1:165: DECLARE + this.mDECLARE(); + + + break; + case 20 : + // xquery/XQueryLexer.g:1:173: DEFAULT + this.mDEFAULT(); + + + break; + case 21 : + // xquery/XQueryLexer.g:1:181: DESCENDANT + this.mDESCENDANT(); + + + break; + case 22 : + // xquery/XQueryLexer.g:1:192: DESCENDANT_OR_SELF + this.mDESCENDANT_OR_SELF(); + + + break; + case 23 : + // xquery/XQueryLexer.g:1:211: DESCENDING + this.mDESCENDING(); + + + break; + case 24 : + // xquery/XQueryLexer.g:1:222: DIV + this.mDIV(); + + + break; + case 25 : + // xquery/XQueryLexer.g:1:226: DOCUMENT + this.mDOCUMENT(); + + + break; + case 26 : + // xquery/XQueryLexer.g:1:235: DOCUMENT_NODE + this.mDOCUMENT_NODE(); + + + break; + case 27 : + // xquery/XQueryLexer.g:1:249: ELEMENT + this.mELEMENT(); + + + break; + case 28 : + // xquery/XQueryLexer.g:1:257: ELSE + this.mELSE(); + + + break; + case 29 : + // xquery/XQueryLexer.g:1:262: EMPTY + this.mEMPTY(); + + + break; + case 30 : + // xquery/XQueryLexer.g:1:268: EMPTY_SEQUENCE + this.mEMPTY_SEQUENCE(); + + + break; + case 31 : + // xquery/XQueryLexer.g:1:283: ENCODING + this.mENCODING(); + + + break; + case 32 : + // xquery/XQueryLexer.g:1:292: EQ + this.mEQ(); + + + break; + case 33 : + // xquery/XQueryLexer.g:1:295: EVERY + this.mEVERY(); + + + break; + case 34 : + // xquery/XQueryLexer.g:1:301: EXCEPT + this.mEXCEPT(); + + + break; + case 35 : + // xquery/XQueryLexer.g:1:308: EXTERNAL + this.mEXTERNAL(); + + + break; + case 36 : + // xquery/XQueryLexer.g:1:317: FOLLOWING + this.mFOLLOWING(); + + + break; + case 37 : + // xquery/XQueryLexer.g:1:327: FOLLOWING_SIBLING + this.mFOLLOWING_SIBLING(); + + + break; + case 38 : + // xquery/XQueryLexer.g:1:345: FOR + this.mFOR(); + + + break; + case 39 : + // xquery/XQueryLexer.g:1:349: FUNCTION + this.mFUNCTION(); + + + break; + case 40 : + // xquery/XQueryLexer.g:1:358: GE + this.mGE(); + + + break; + case 41 : + // xquery/XQueryLexer.g:1:361: GREATEST + this.mGREATEST(); + + + break; + case 42 : + // xquery/XQueryLexer.g:1:370: GT + this.mGT(); + + + break; + case 43 : + // xquery/XQueryLexer.g:1:373: IDIV + this.mIDIV(); + + + break; + case 44 : + // xquery/XQueryLexer.g:1:378: IF + this.mIF(); + + + break; + case 45 : + // xquery/XQueryLexer.g:1:381: IMPORT + this.mIMPORT(); + + + break; + case 46 : + // xquery/XQueryLexer.g:1:388: IN + this.mIN(); + + + break; + case 47 : + // xquery/XQueryLexer.g:1:391: INHERIT + this.mINHERIT(); + + + break; + case 48 : + // xquery/XQueryLexer.g:1:399: INSTANCE + this.mINSTANCE(); + + + break; + case 49 : + // xquery/XQueryLexer.g:1:408: INTERSECT + this.mINTERSECT(); + + + break; + case 50 : + // xquery/XQueryLexer.g:1:418: IS + this.mIS(); + + + break; + case 51 : + // xquery/XQueryLexer.g:1:421: ITEM + this.mITEM(); + + + break; + case 52 : + // xquery/XQueryLexer.g:1:426: LAX + this.mLAX(); + + + break; + case 53 : + // xquery/XQueryLexer.g:1:430: LE + this.mLE(); + + + break; + case 54 : + // xquery/XQueryLexer.g:1:433: LEAST + this.mLEAST(); + + + break; + case 55 : + // xquery/XQueryLexer.g:1:439: LET + this.mLET(); + + + break; + case 56 : + // xquery/XQueryLexer.g:1:443: LT + this.mLT(); + + + break; + case 57 : + // xquery/XQueryLexer.g:1:446: MOD + this.mMOD(); + + + break; + case 58 : + // xquery/XQueryLexer.g:1:450: MODULE + this.mMODULE(); + + + break; + case 59 : + // xquery/XQueryLexer.g:1:457: NAMESPACE + this.mNAMESPACE(); + + + break; + case 60 : + // xquery/XQueryLexer.g:1:467: NE + this.mNE(); + + + break; + case 61 : + // xquery/XQueryLexer.g:1:470: NO_INHERIT + this.mNO_INHERIT(); + + + break; + case 62 : + // xquery/XQueryLexer.g:1:481: NO_PRESERVE + this.mNO_PRESERVE(); + + + break; + case 63 : + // xquery/XQueryLexer.g:1:493: NODE + this.mNODE(); + + + break; + case 64 : + // xquery/XQueryLexer.g:1:498: OF + this.mOF(); + + + break; + case 65 : + // xquery/XQueryLexer.g:1:501: OPTION + this.mOPTION(); + + + break; + case 66 : + // xquery/XQueryLexer.g:1:508: OR + this.mOR(); + + + break; + case 67 : + // xquery/XQueryLexer.g:1:511: ORDER + this.mORDER(); + + + break; + case 68 : + // xquery/XQueryLexer.g:1:517: ORDERED + this.mORDERED(); + + + break; + case 69 : + // xquery/XQueryLexer.g:1:525: ORDERING + this.mORDERING(); + + + break; + case 70 : + // xquery/XQueryLexer.g:1:534: PARENT + this.mPARENT(); + + + break; + case 71 : + // xquery/XQueryLexer.g:1:541: PRECEDING + this.mPRECEDING(); + + + break; + case 72 : + // xquery/XQueryLexer.g:1:551: PRECEDING_SIBLING + this.mPRECEDING_SIBLING(); + + + break; + case 73 : + // xquery/XQueryLexer.g:1:569: PRESERVE + this.mPRESERVE(); + + + break; + case 74 : + // xquery/XQueryLexer.g:1:578: PROCESSING_INSTRUCTION + this.mPROCESSING_INSTRUCTION(); + + + break; + case 75 : + // xquery/XQueryLexer.g:1:601: RETURN + this.mRETURN(); + + + break; + case 76 : + // xquery/XQueryLexer.g:1:608: SATISFIES + this.mSATISFIES(); + + + break; + case 77 : + // xquery/XQueryLexer.g:1:618: SCHEMA + this.mSCHEMA(); + + + break; + case 78 : + // xquery/XQueryLexer.g:1:625: SCHEMA_ATTRIBUTE + this.mSCHEMA_ATTRIBUTE(); + + + break; + case 79 : + // xquery/XQueryLexer.g:1:642: SCHEMA_ELEMENT + this.mSCHEMA_ELEMENT(); + + + break; + case 80 : + // xquery/XQueryLexer.g:1:657: SELF + this.mSELF(); + + + break; + case 81 : + // xquery/XQueryLexer.g:1:662: SOME + this.mSOME(); + + + break; + case 82 : + // xquery/XQueryLexer.g:1:667: STABLE + this.mSTABLE(); + + + break; + case 83 : + // xquery/XQueryLexer.g:1:674: STRICT + this.mSTRICT(); + + + break; + case 84 : + // xquery/XQueryLexer.g:1:681: STRIP + this.mSTRIP(); + + + break; + case 85 : + // xquery/XQueryLexer.g:1:687: TEXT + this.mTEXT(); + + + break; + case 86 : + // xquery/XQueryLexer.g:1:692: THEN + this.mTHEN(); + + + break; + case 87 : + // xquery/XQueryLexer.g:1:697: TO + this.mTO(); + + + break; + case 88 : + // xquery/XQueryLexer.g:1:700: TREAT + this.mTREAT(); + + + break; + case 89 : + // xquery/XQueryLexer.g:1:706: TYPESWITCH + this.mTYPESWITCH(); + + + break; + case 90 : + // xquery/XQueryLexer.g:1:717: UNION + this.mUNION(); + + + break; + case 91 : + // xquery/XQueryLexer.g:1:723: UNORDERED + this.mUNORDERED(); + + + break; + case 92 : + // xquery/XQueryLexer.g:1:733: VALIDATE + this.mVALIDATE(); + + + break; + case 93 : + // xquery/XQueryLexer.g:1:742: VARIABLE + this.mVARIABLE(); + + + break; + case 94 : + // xquery/XQueryLexer.g:1:751: VERSION + this.mVERSION(); + + + break; + case 95 : + // xquery/XQueryLexer.g:1:759: WHERE + this.mWHERE(); + + + break; + case 96 : + // xquery/XQueryLexer.g:1:765: XQUERY + this.mXQUERY(); + + + break; + case 97 : + // xquery/XQueryLexer.g:1:772: ALLOWING + this.mALLOWING(); + + + break; + case 98 : + // xquery/XQueryLexer.g:1:781: CATCH + this.mCATCH(); + + + break; + case 99 : + // xquery/XQueryLexer.g:1:787: CONTEXT + this.mCONTEXT(); + + + break; + case 100 : + // xquery/XQueryLexer.g:1:795: COUNT + this.mCOUNT(); + + + break; + case 101 : + // xquery/XQueryLexer.g:1:801: DECIMAL_FORMAT + this.mDECIMAL_FORMAT(); + + + break; + case 102 : + // xquery/XQueryLexer.g:1:816: DECIMAL_SEPARATOR + this.mDECIMAL_SEPARATOR(); + + + break; + case 103 : + // xquery/XQueryLexer.g:1:834: DIGIT + this.mDIGIT(); + + + break; + case 104 : + // xquery/XQueryLexer.g:1:840: END + this.mEND(); + + + break; + case 105 : + // xquery/XQueryLexer.g:1:844: GROUP + this.mGROUP(); + + + break; + case 106 : + // xquery/XQueryLexer.g:1:850: GROUPING_SEPARATOR + this.mGROUPING_SEPARATOR(); + + + break; + case 107 : + // xquery/XQueryLexer.g:1:869: INFINITY + this.mINFINITY(); + + + break; + case 108 : + // xquery/XQueryLexer.g:1:878: MINUS_SIGN + this.mMINUS_SIGN(); + + + break; + case 109 : + // xquery/XQueryLexer.g:1:889: NAMESPACE_NODE + this.mNAMESPACE_NODE(); + + + break; + case 110 : + // xquery/XQueryLexer.g:1:904: NAN + this.mNAN(); + + + break; + case 111 : + // xquery/XQueryLexer.g:1:908: NEXT + this.mNEXT(); + + + break; + case 112 : + // xquery/XQueryLexer.g:1:913: ONLY + this.mONLY(); + + + break; + case 113 : + // xquery/XQueryLexer.g:1:918: PATTERN_SEPARATOR + this.mPATTERN_SEPARATOR(); + + + break; + case 114 : + // xquery/XQueryLexer.g:1:936: PERCENT + this.mPERCENT(); + + + break; + case 115 : + // xquery/XQueryLexer.g:1:944: PER_MILLE + this.mPER_MILLE(); + + + break; + case 116 : + // xquery/XQueryLexer.g:1:954: PREVIOUS + this.mPREVIOUS(); + + + break; + case 117 : + // xquery/XQueryLexer.g:1:963: SLIDING + this.mSLIDING(); + + + break; + case 118 : + // xquery/XQueryLexer.g:1:971: START + this.mSTART(); + + + break; + case 119 : + // xquery/XQueryLexer.g:1:977: SWITCH + this.mSWITCH(); + + + break; + case 120 : + // xquery/XQueryLexer.g:1:984: TRY + this.mTRY(); + + + break; + case 121 : + // xquery/XQueryLexer.g:1:988: TUMBLING + this.mTUMBLING(); + + + break; + case 122 : + // xquery/XQueryLexer.g:1:997: TYPE + this.mTYPE(); + + + break; + case 123 : + // xquery/XQueryLexer.g:1:1002: WHEN + this.mWHEN(); + + + break; + case 124 : + // xquery/XQueryLexer.g:1:1007: WINDOW + this.mWINDOW(); + + + break; + case 125 : + // xquery/XQueryLexer.g:1:1014: ZERO_DIGIT + this.mZERO_DIGIT(); + + + break; + case 126 : + // xquery/XQueryLexer.g:1:1025: AFTER + this.mAFTER(); + + + break; + case 127 : + // xquery/XQueryLexer.g:1:1031: BEFORE + this.mBEFORE(); + + + break; + case 128 : + // xquery/XQueryLexer.g:1:1038: COPY + this.mCOPY(); + + + break; + case 129 : + // xquery/XQueryLexer.g:1:1043: DELETE + this.mDELETE(); + + + break; + case 130 : + // xquery/XQueryLexer.g:1:1050: FIRST + this.mFIRST(); + + + break; + case 131 : + // xquery/XQueryLexer.g:1:1056: INSERT + this.mINSERT(); + + + break; + case 132 : + // xquery/XQueryLexer.g:1:1063: INTO + this.mINTO(); + + + break; + case 133 : + // xquery/XQueryLexer.g:1:1068: LAST + this.mLAST(); + + + break; + case 134 : + // xquery/XQueryLexer.g:1:1073: MODIFY + this.mMODIFY(); + + + break; + case 135 : + // xquery/XQueryLexer.g:1:1080: NODES + this.mNODES(); + + + break; + case 136 : + // xquery/XQueryLexer.g:1:1086: RENAME + this.mRENAME(); + + + break; + case 137 : + // xquery/XQueryLexer.g:1:1093: REPLACE + this.mREPLACE(); + + + break; + case 138 : + // xquery/XQueryLexer.g:1:1101: REVALIDATION + this.mREVALIDATION(); + + + break; + case 139 : + // xquery/XQueryLexer.g:1:1114: SKIP + this.mSKIP(); + + + break; + case 140 : + // xquery/XQueryLexer.g:1:1119: UPDATING + this.mUPDATING(); + + + break; + case 141 : + // xquery/XQueryLexer.g:1:1128: VALUE + this.mVALUE(); + + + break; + case 142 : + // xquery/XQueryLexer.g:1:1134: WITH + this.mWITH(); + + + break; + case 143 : + // xquery/XQueryLexer.g:1:1139: ALL + this.mALL(); + + + break; + case 144 : + // xquery/XQueryLexer.g:1:1143: ANY + this.mANY(); + + + break; + case 145 : + // xquery/XQueryLexer.g:1:1147: CONTAINS + this.mCONTAINS(); + + + break; + case 146 : + // xquery/XQueryLexer.g:1:1156: CONTENT + this.mCONTENT(); + + + break; + case 147 : + // xquery/XQueryLexer.g:1:1164: DIACRITICS + this.mDIACRITICS(); + + + break; + case 148 : + // xquery/XQueryLexer.g:1:1175: DIFFERENT + this.mDIFFERENT(); + + + break; + case 149 : + // xquery/XQueryLexer.g:1:1185: DISTANCE + this.mDISTANCE(); + + + break; + case 150 : + // xquery/XQueryLexer.g:1:1194: ENTIRE + this.mENTIRE(); + + + break; + case 151 : + // xquery/XQueryLexer.g:1:1201: EXACTLY + this.mEXACTLY(); + + + break; + case 152 : + // xquery/XQueryLexer.g:1:1209: FROM + this.mFROM(); + + + break; + case 153 : + // xquery/XQueryLexer.g:1:1214: FT_OPTION + this.mFT_OPTION(); + + + break; + case 154 : + // xquery/XQueryLexer.g:1:1224: FTAND + this.mFTAND(); + + + break; + case 155 : + // xquery/XQueryLexer.g:1:1230: FTNOT + this.mFTNOT(); + + + break; + case 156 : + // xquery/XQueryLexer.g:1:1236: FTOR + this.mFTOR(); + + + break; + case 157 : + // xquery/XQueryLexer.g:1:1241: INSENSITIVE + this.mINSENSITIVE(); + + + break; + case 158 : + // xquery/XQueryLexer.g:1:1253: LANGUAGE + this.mLANGUAGE(); + + + break; + case 159 : + // xquery/XQueryLexer.g:1:1262: LEVELS + this.mLEVELS(); + + + break; + case 160 : + // xquery/XQueryLexer.g:1:1269: LOWERCASE + this.mLOWERCASE(); + + + break; + case 161 : + // xquery/XQueryLexer.g:1:1279: MOST + this.mMOST(); + + + break; + case 162 : + // xquery/XQueryLexer.g:1:1284: NO + this.mNO(); + + + break; + case 163 : + // xquery/XQueryLexer.g:1:1287: NOT + this.mNOT(); + + + break; + case 164 : + // xquery/XQueryLexer.g:1:1291: OCCURS + this.mOCCURS(); + + + break; + case 165 : + // xquery/XQueryLexer.g:1:1298: PARAGRAPH + this.mPARAGRAPH(); + + + break; + case 166 : + // xquery/XQueryLexer.g:1:1308: PARAGRAPHS + this.mPARAGRAPHS(); + + + break; + case 167 : + // xquery/XQueryLexer.g:1:1319: PHRASE + this.mPHRASE(); + + + break; + case 168 : + // xquery/XQueryLexer.g:1:1326: RELATIONSHIP + this.mRELATIONSHIP(); + + + break; + case 169 : + // xquery/XQueryLexer.g:1:1339: SAME + this.mSAME(); + + + break; + case 170 : + // xquery/XQueryLexer.g:1:1344: SCORE + this.mSCORE(); + + + break; + case 171 : + // xquery/XQueryLexer.g:1:1350: SENSITIVE + this.mSENSITIVE(); + + + break; + case 172 : + // xquery/XQueryLexer.g:1:1360: SENTENCE + this.mSENTENCE(); + + + break; + case 173 : + // xquery/XQueryLexer.g:1:1369: SENTENCES + this.mSENTENCES(); + + + break; + case 174 : + // xquery/XQueryLexer.g:1:1379: STEMMING + this.mSTEMMING(); + + + break; + case 175 : + // xquery/XQueryLexer.g:1:1388: STOP + this.mSTOP(); + + + break; + case 176 : + // xquery/XQueryLexer.g:1:1393: THESAURUS + this.mTHESAURUS(); + + + break; + case 177 : + // xquery/XQueryLexer.g:1:1403: TIMES + this.mTIMES(); + + + break; + case 178 : + // xquery/XQueryLexer.g:1:1409: UPPERCASE + this.mUPPERCASE(); + + + break; + case 179 : + // xquery/XQueryLexer.g:1:1419: USING + this.mUSING(); + + + break; + case 180 : + // xquery/XQueryLexer.g:1:1425: WEIGHT + this.mWEIGHT(); + + + break; + case 181 : + // xquery/XQueryLexer.g:1:1432: WILDCARDS + this.mWILDCARDS(); + + + break; + case 182 : + // xquery/XQueryLexer.g:1:1442: WITHOUT + this.mWITHOUT(); + + + break; + case 183 : + // xquery/XQueryLexer.g:1:1450: WORD + this.mWORD(); + + + break; + case 184 : + // xquery/XQueryLexer.g:1:1455: WORDS + this.mWORDS(); + + + break; + case 185 : + // xquery/XQueryLexer.g:1:1461: BREAK + this.mBREAK(); + + + break; + case 186 : + // xquery/XQueryLexer.g:1:1467: CONTINUE + this.mCONTINUE(); + + + break; + case 187 : + // xquery/XQueryLexer.g:1:1476: EXIT + this.mEXIT(); + + + break; + case 188 : + // xquery/XQueryLexer.g:1:1481: LOOP + this.mLOOP(); + + + break; + case 189 : + // xquery/XQueryLexer.g:1:1486: RETURNING + this.mRETURNING(); + + + break; + case 190 : + // xquery/XQueryLexer.g:1:1496: WHILE + this.mWHILE(); + + + break; + case 191 : + // xquery/XQueryLexer.g:1:1502: CHECK + this.mCHECK(); + + + break; + case 192 : + // xquery/XQueryLexer.g:1:1508: COLLECTION + this.mCOLLECTION(); + + + break; + case 193 : + // xquery/XQueryLexer.g:1:1519: CONSTRAINT + this.mCONSTRAINT(); + + + break; + case 194 : + // xquery/XQueryLexer.g:1:1530: FOREACH + this.mFOREACH(); + + + break; + case 195 : + // xquery/XQueryLexer.g:1:1538: FOREIGN + this.mFOREIGN(); + + + break; + case 196 : + // xquery/XQueryLexer.g:1:1546: INDEX + this.mINDEX(); + + + break; + case 197 : + // xquery/XQueryLexer.g:1:1552: INTEGRITY + this.mINTEGRITY(); + + + break; + case 198 : + // xquery/XQueryLexer.g:1:1562: KEY + this.mKEY(); + + + break; + case 199 : + // xquery/XQueryLexer.g:1:1566: ON + this.mON(); + + + break; + case 200 : + // xquery/XQueryLexer.g:1:1569: UNIQUE + this.mUNIQUE(); + + + break; + case 201 : + // xquery/XQueryLexer.g:1:1576: BINARY + this.mBINARY(); + + + break; + case 202 : + // xquery/XQueryLexer.g:1:1583: AMP_ER + this.mAMP_ER(); + + + break; + case 203 : + // xquery/XQueryLexer.g:1:1590: APOS_ER + this.mAPOS_ER(); + + + break; + case 204 : + // xquery/XQueryLexer.g:1:1598: QUOT_ER + this.mQUOT_ER(); + + + break; + case 205 : + // xquery/XQueryLexer.g:1:1606: CONCAT + this.mCONCAT(); + + + break; + case 206 : + // xquery/XQueryLexer.g:1:1613: LPAREN + this.mLPAREN(); + + + break; + case 207 : + // xquery/XQueryLexer.g:1:1620: RPAREN + this.mRPAREN(); + + + break; + case 208 : + // xquery/XQueryLexer.g:1:1627: DOLLAR + this.mDOLLAR(); + + + break; + case 209 : + // xquery/XQueryLexer.g:1:1634: LBRACKET + this.mLBRACKET(); + + + break; + case 210 : + // xquery/XQueryLexer.g:1:1643: RBRACKET + this.mRBRACKET(); + + + break; + case 211 : + // xquery/XQueryLexer.g:1:1652: LSQUARE + this.mLSQUARE(); + + + break; + case 212 : + // xquery/XQueryLexer.g:1:1660: RSQUARE + this.mRSQUARE(); + + + break; + case 213 : + // xquery/XQueryLexer.g:1:1668: EQUAL + this.mEQUAL(); + + + break; + case 214 : + // xquery/XQueryLexer.g:1:1674: BIND + this.mBIND(); + + + break; + case 215 : + // xquery/XQueryLexer.g:1:1679: NOTEQUAL + this.mNOTEQUAL(); + + + break; + case 216 : + // xquery/XQueryLexer.g:1:1688: ANN_PERCENT + this.mANN_PERCENT(); + + + break; + case 217 : + // xquery/XQueryLexer.g:1:1700: HASH + this.mHASH(); + + + break; + case 218 : + // xquery/XQueryLexer.g:1:1705: AMP + this.mAMP(); + + + break; + case 219 : + // xquery/XQueryLexer.g:1:1709: COMMA + this.mCOMMA(); + + + break; + case 220 : + // xquery/XQueryLexer.g:1:1715: QUESTION + this.mQUESTION(); + + + break; + case 221 : + // xquery/XQueryLexer.g:1:1724: STAR + this.mSTAR(); + + + break; + case 222 : + // xquery/XQueryLexer.g:1:1729: PLUS + this.mPLUS(); + + + break; + case 223 : + // xquery/XQueryLexer.g:1:1734: MINUS + this.mMINUS(); + + + break; + case 224 : + // xquery/XQueryLexer.g:1:1740: SMALLER + this.mSMALLER(); + + + break; + case 225 : + // xquery/XQueryLexer.g:1:1748: GREATER + this.mGREATER(); + + + break; + case 226 : + // xquery/XQueryLexer.g:1:1756: SMALLEREQ + this.mSMALLEREQ(); + + + break; + case 227 : + // xquery/XQueryLexer.g:1:1766: GREATEREQ + this.mGREATEREQ(); + + + break; + case 228 : + // xquery/XQueryLexer.g:1:1776: SMALLER_SMALLER + this.mSMALLER_SMALLER(); + + + break; + case 229 : + // xquery/XQueryLexer.g:1:1792: GREATER_GREATER + this.mGREATER_GREATER(); + + + break; + case 230 : + // xquery/XQueryLexer.g:1:1808: SLASH + this.mSLASH(); + + + break; + case 231 : + // xquery/XQueryLexer.g:1:1814: SLASH_SLASH + this.mSLASH_SLASH(); + + + break; + case 232 : + // xquery/XQueryLexer.g:1:1826: DOT + this.mDOT(); + + + break; + case 233 : + // xquery/XQueryLexer.g:1:1830: DOT_DOT + this.mDOT_DOT(); + + + break; + case 234 : + // xquery/XQueryLexer.g:1:1838: COLON + this.mCOLON(); + + + break; + case 235 : + // xquery/XQueryLexer.g:1:1844: COLON_COLON + this.mCOLON_COLON(); + + + break; + case 236 : + // xquery/XQueryLexer.g:1:1856: EMPTY_CLOSE_TAG + this.mEMPTY_CLOSE_TAG(); + + + break; + case 237 : + // xquery/XQueryLexer.g:1:1872: CLOSE_TAG + this.mCLOSE_TAG(); + + + break; + case 238 : + // xquery/XQueryLexer.g:1:1882: SEMICOLON + this.mSEMICOLON(); + + + break; + case 239 : + // xquery/XQueryLexer.g:1:1892: VBAR + this.mVBAR(); + + + break; + case 240 : + // xquery/XQueryLexer.g:1:1897: PRAGMA_START + this.mPRAGMA_START(); + + + break; + case 241 : + // xquery/XQueryLexer.g:1:1910: PRAGMA_END + this.mPRAGMA_END(); + + + break; + case 242 : + // xquery/XQueryLexer.g:1:1921: XML_COMMENT_START + this.mXML_COMMENT_START(); + + + break; + case 243 : + // xquery/XQueryLexer.g:1:1939: XML_COMMENT_END + this.mXML_COMMENT_END(); + + + break; + case 244 : + // xquery/XQueryLexer.g:1:1955: PI_START + this.mPI_START(); + + + break; + case 245 : + // xquery/XQueryLexer.g:1:1964: PI_END + this.mPI_END(); + + + break; + case 246 : + // xquery/XQueryLexer.g:1:1971: ATTR_SIGN + this.mATTR_SIGN(); + + + break; + case 247 : + // xquery/XQueryLexer.g:1:1981: CHARREF_DEC + this.mCHARREF_DEC(); + + + break; + case 248 : + // xquery/XQueryLexer.g:1:1993: CHARREF_HEX + this.mCHARREF_HEX(); + + + break; + case 249 : + // xquery/XQueryLexer.g:1:2005: APOS + this.mAPOS(); + + + break; + case 250 : + // xquery/XQueryLexer.g:1:2010: QUOT + this.mQUOT(); + + + break; + case 251 : + // xquery/XQueryLexer.g:1:2015: L_NCName + this.mL_NCName(); + + + break; + case 252 : + // xquery/XQueryLexer.g:1:2024: S + this.mS(); + + + break; + case 253 : + // xquery/XQueryLexer.g:1:2026: L_Pragma + this.mL_Pragma(); + + + break; + case 254 : + // xquery/XQueryLexer.g:1:2035: L_DirCommentConstructor + this.mL_DirCommentConstructor(); + + + break; + case 255 : + // xquery/XQueryLexer.g:1:2059: L_DirPIConstructor + this.mL_DirPIConstructor(); + + + break; + case 256 : + // xquery/XQueryLexer.g:1:2078: L_IntegerLiteral + this.mL_IntegerLiteral(); + + + break; + case 257 : + // xquery/XQueryLexer.g:1:2095: L_DecimalLiteral + this.mL_DecimalLiteral(); + + + break; + case 258 : + // xquery/XQueryLexer.g:1:2112: L_DoubleLiteral + this.mL_DoubleLiteral(); + + + break; + case 259 : + // xquery/XQueryLexer.g:1:2128: L_Comment + this.mL_Comment(); + + + break; + case 260 : + // xquery/XQueryLexer.g:1:2138: L_AnyChar + this.mL_AnyChar(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XQueryLexer, { + DFA19_eotS: + "\u0001\uffff\u0018\u003f\u0001\u0091\u0001\u0094\u0007\uffff\u0001"+ + "\u009e\u0001\u0037\u0001\uffff\u0001\u00a2\u0001\u00a4\u0001\uffff\u0001"+ + "\u00a7\u0002\uffff\u0001\u00ab\u0001\u00b1\u0001\u00b4\u0001\u00b7\u0001"+ + "\u00b9\u0006\uffff\u0001\u00c0\u0001\uffff\u0001\u003f\u0001\u00c8\u0001"+ + "\u00ca\u0004\u003f\u0001\uffff\u0002\u003f\u0001\u00d1\u000c\u003f\u0001"+ + "\u00ee\u0007\u003f\u0001\u00fd\u0001\u003f\u0001\u0100\u0001\u003f\u0001"+ + "\u0102\u0001\u003f\u0001\u0109\u0001\u010a\u0002\u003f\u0001\u0112\u0001"+ + "\u0113\u0004\u003f\u0001\u011b\u0001\u011f\u0001\u0120\u0001\u003f\u0001"+ + "\u0123\u0001\u0125\u0010\u003f\u0001\u0142\u0012\u003f\u0002\uffff\u0001"+ + "\u015c\u0010\uffff\u0001\u015f\u000c\uffff\u0001\u0161\u0009\uffff\u0001"+ + "\u0163\u0006\uffff\u0001\u00c0\u0001\u0163\u0001\uffff\u0001\u003f\u0001"+ + "\u0166\u0001\u0167\u0001\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u016b\u0001\u003f\u0001\u016d\u0003\u003f\u0001\uffff\u0010\u003f\u0001"+ + "\u0184\u0009\u003f\u0001\u018e\u0001\u003f\u0001\uffff\u0006\u003f\u0001"+ + "\u0197\u0007\u003f\u0001\uffff\u0002\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0006\u003f\u0002\uffff\u0001\u003f\u0001\u01ab\u0003\u003f\u0001"+ + "\u01af\u0001\u003f\u0002\uffff\u0002\u003f\u0001\u01b5\u0004\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\u01bd\u0002\uffff\u0002\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u001c\u003f\u0001\uffff\u0001\u003f\u0001\u01e5\u0013"+ + "\u003f\u0001\u01fc\u0001\u003f\u0001\u01fe\u0001\u003f\u0008\uffff\u0001"+ + "\u0163\u0001\u003f\u0002\uffff\u0003\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0001\u0206\u0005\u003f\u0001\u020c\u0001\u020e\u0007\u003f\u0001"+ + "\u021a\u0006\u003f\u0001\uffff\u0006\u003f\u0001\u0227\u0002\u003f\u0001"+ + "\uffff\u0005\u003f\u0001\u022f\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\u0235\u0003\u003f\u0001\u0239\u0002\u003f\u0001\u023c\u0005\u003f\u0001"+ + "\u0244\u0002\u003f\u0001\u0247\u0001\uffff\u0001\u0248\u0002\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\u024d\u0002\u003f\u0001\uffff\u0001\u0250\u0002"+ + "\u003f\u0001\u0253\u0002\u003f\u0001\u0257\u0001\uffff\u0002\u003f\u0001"+ + "\u025a\u0011\u003f\u0001\u026c\u0002\u003f\u0001\u026f\u0002\u003f\u0001"+ + "\u0272\u0004\u003f\u0001\u0278\u0002\u003f\u0001\u027b\u0001\u027c\u0001"+ + "\u027d\u0002\u003f\u0001\uffff\u0001\u0281\u000d\u003f\u0001\u028f\u0002"+ + "\u003f\u0001\u0293\u0002\u003f\u0001\u0297\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0001\u029a\u0001\u029b\u0004\u003f\u0001\u02a1\u0001"+ + "\uffff\u0003\u003f\u0001\u02a5\u0001\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0001\u02a8\u0001\u02a9\u0001\u02aa\u0008\u003f\u0001\uffff\u0001"+ + "\u02b4\u0005\u003f\u0001\u02ba\u0005\u003f\u0001\uffff\u0001\u02c1\u0002"+ + "\u003f\u0001\u02c4\u0003\u003f\u0001\uffff\u0004\u003f\u0001\u02cc\u0001"+ + "\uffff\u0001\u003f\u0001\u02ce\u0001\u02cf\u0001\uffff\u0001\u003f\u0001"+ + "\u02d2\u0001\uffff\u0007\u003f\u0001\uffff\u0001\u003f\u0001\u02db\u0002"+ + "\uffff\u0001\u003f\u0001\u02dd\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0001\u02e6\u0001\uffff\u0001"+ + "\u003f\u0001\u02ea\u0001\uffff\u0011\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\u02fd\u0001\uffff\u0002\u003f\u0001\uffff\u0001\u003f\u0001\u0301\u0001"+ + "\u003f\u0001\u0303\u0001\u003f\u0001\uffff\u0002\u003f\u0003\uffff\u0001"+ + "\u003f\u0001\u0308\u0001\u003f\u0001\uffff\u0001\u003f\u0001\u030b\u0001"+ + "\u030c\u0004\u003f\u0001\u0311\u0001\u003f\u0001\u0313\u0002\u003f\u0001"+ + "\u0316\u0001\uffff\u0001\u0317\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\u031c\u0001\uffff\u0002\u003f\u0003\uffff\u0004\u003f\u0001\uffff\u0002"+ + "\u003f\u0001\u0325\u0001\uffff\u0001\u0326\u0001\u003f\u0003\uffff\u0009"+ + "\u003f\u0001\uffff\u0004\u003f\u0001\u0336\u0001\uffff\u0006\u003f\u0001"+ + "\uffff\u0001\u003f\u0001\u033e\u0001\uffff\u0001\u033f\u0006\u003f\u0001"+ + "\uffff\u0001\u003f\u0002\uffff\u0002\u003f\u0001\uffff\u0001\u0349\u0002"+ + "\u003f\u0001\u034c\u0004\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u0352\u0001\u003f\u0001\u0354\u0001\u0355\u0004\u003f\u0001\uffff\u0001"+ + "\u035a\u0002\u003f\u0001\uffff\u0001\u035d\u0001\u035e\u0008\u003f\u0001"+ + "\u0367\u0001\u0369\u0001\u036a\u0004\u003f\u0001\u0370\u0001\uffff\u0002"+ + "\u003f\u0001\u0373\u0001\uffff\u0001\u0374\u0001\uffff\u0002\u003f\u0001"+ + "\u0377\u0001\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001\u037b\u0003"+ + "\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001"+ + "\u0382\u0002\u003f\u0001\u0385\u0001\uffff\u0001\u0386\u0007\u003f\u0002"+ + "\uffff\u0003\u003f\u0001\u0391\u0002\u003f\u0001\u0394\u0001\u0395\u0003"+ + "\u003f\u0001\u0399\u0001\u003f\u0001\u039b\u0001\u003f\u0001\uffff\u0004"+ + "\u003f\u0001\u03a2\u0002\u003f\u0002\uffff\u0001\u003f\u0001\u03a6\u0001"+ + "\u003f\u0001\u03a8\u0001\u03a9\u0004\u003f\u0001\uffff\u0001\u03ae\u0001"+ + "\u003f\u0001\uffff\u0005\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0004"+ + "\u003f\u0001\uffff\u0001\u03ba\u0001\u003f\u0002\uffff\u0006\u003f\u0001"+ + "\u03c2\u0001\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0001\u03c5\u0004"+ + "\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001\u003f\u0001\u03ce\u0001"+ + "\uffff\u0003\u003f\u0001\uffff\u0005\u003f\u0001\u03d7\u0001\uffff\u0001"+ + "\u03d8\u0001\u003f\u0002\uffff\u0001\u003f\u0001\u03dc\u0002\u003f\u0001"+ + "\u03df\u0001\u03e0\u0001\u003f\u0001\u03e2\u0002\u003f\u0001\uffff\u0002"+ + "\u003f\u0002\uffff\u0001\u03e7\u0001\u03e8\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0004\u003f\u0001\u03f0\u0001\u03f2\u0001\uffff\u0001"+ + "\u003f\u0001\u03f4\u0001\u03f5\u0001\uffff\u0001\u003f\u0002\uffff\u0001"+ + "\u03f7\u0001\u003f\u0001\u03f9\u0001\u003f\u0001\uffff\u0001\u03fb\u0003"+ + "\u003f\u0001\u03ff\u0001\u0400\u0005\u003f\u0001\uffff\u0001\u0406\u0003"+ + "\u003f\u0001\u040a\u0001\u040b\u0001\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0006\u003f\u0001\u0416\u0001\u0417\u0001\uffff\u0002\u003f\u0001"+ + "\u041a\u0001\u003f\u0001\u041c\u0001\u003f\u0001\u041e\u0001\u041f\u0002"+ + "\uffff\u0003\u003f\u0001\uffff\u0001\u0423\u0001\u0424\u0002\uffff\u0001"+ + "\u003f\u0001\uffff\u0001\u0426\u0003\u003f\u0002\uffff\u0006\u003f\u0001"+ + "\u0430\u0001\uffff\u0001\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0001"+ + "\u0434\u0001\uffff\u0001\u0435\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\u0438\u0001\u0439\u0002\uffff\u0001\u043a\u0001\u003f\u0001"+ + "\u043d\u0002\u003f\u0001\uffff\u0001\u0441\u0001\u003f\u0001\u0444\u0002"+ + "\uffff\u0001\u003f\u0001\u0446\u0001\u0447\u0002\u003f\u0001\u044a\u0002"+ + "\u003f\u0001\u044d\u0001\u044e\u0002\uffff\u0001\u044f\u0001\u003f\u0001"+ + "\uffff\u0001\u0451\u0001\uffff\u0001\u0452\u0002\uffff\u0001\u0453\u0002"+ + "\u003f\u0002\uffff\u0001\u003f\u0001\uffff\u0001\u0457\u0001\u003f\u0001"+ + "\u0459\u0003\u003f\u0001\u045e\u0001\u045f\u0001\u0460\u0001\uffff\u0003"+ + "\u003f\u0002\uffff\u0002\u003f\u0003\uffff\u0001\u0466\u0001\u003f\u0001"+ + "\uffff\u0001\u0468\u0001\u003f\u0001\u046a\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0001\u003f\u0002\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0003"+ + "\uffff\u0001\u0472\u0003\uffff\u0001\u0473\u0002\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0004\u003f\u0003\uffff\u0004\u003f\u0001\u047f\u0001"+ + "\uffff\u0001\u003f\u0001\uffff\u0001\u0481\u0001\uffff\u0007\u003f\u0002"+ + "\uffff\u0002\u003f\u0001\u048b\u0008\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0003\u003f\u0001\u0498\u0001\u0499\u0004\u003f\u0001\uffff\u0004"+ + "\u003f\u0001\u04a2\u0007\u003f\u0002\uffff\u0003\u003f\u0001\u04ad\u0001"+ + "\u003f\u0001\u04af\u0002\u003f\u0001\uffff\u0001\u04b2\u0002\u003f\u0001"+ + "\u04b5\u0004\u003f\u0001\u04ba\u0001\u003f\u0001\uffff\u0001\u04bc\u0001"+ + "\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0001\uffff\u0004\u003f\u0001"+ + "\uffff\u0001\u04c5\u0001\uffff\u0007\u003f\u0001\u04cd\u0001\uffff\u0001"+ + "\u04ce\u0001\u003f\u0001\u04d0\u0001\u003f\u0001\u04d2\u0001\u04d3\u0001"+ + "\u003f\u0002\uffff\u0001\u04d5\u0001\uffff\u0001\u04d6\u0002\uffff\u0001"+ + "\u003f\u0002\uffff\u0003\u003f\u0001\u04db\u0001\uffff", + DFA19_eofS: + "\u04dc\uffff", + DFA19_minS: + "\u0001\u0000\u0001\u0066\u0002\u0061\u0001\u0065\u0001\u006c\u0001"+ + "\u0069\u0001\u0065\u0001\u0064\u0001\u0061\u0001\u0069\u0001\u0061\u0001"+ + "\u0063\u0001\u0061\u0001\u0065\u0001\u0061\u0001\u0065\u0001\u006e\u0001"+ + "\u0061\u0001\u0065\u0001\u0071\u0001\u0061\u0002\u0065\u0001\u0075\u0001"+ + "\u007c\u0001\u0023\u0007\uffff\u0001\u003a\u0001\u003d\u0001\uffff\u0001"+ + "\u0029\u0001\u0023\u0001\uffff\u0001\u003e\u0002\uffff\u0001\u002d\u0001"+ + "\u0021\u0001\u003d\u0001\u002f\u0001\u002e\u0006\uffff\u0001\u002e\u0001"+ + "\uffff\u0001\u0063\u0002\u002d\u0001\u006c\u0001\u0074\u0001\u0070\u0001"+ + "\u006f\u0001\uffff\u0001\u0073\u0001\u0075\u0001\u002d\u0001\u0066\u0001"+ + "\u0065\u0001\u006e\u0001\u0073\u0001\u0065\u0001\u006c\u0001\u0063\u0001"+ + "\u0061\u0001\u0063\u0001\u0065\u0001\u0070\u0001\u0063\u0001\u002d\u0001"+ + "\u0065\u0001\u0061\u0001\u006c\u0001\u006e\u0001\u0072\u0001\u006f\u0002"+ + "\u002d\u0001\u0065\u0001\u002d\u0001\u0069\u0001\u002d\u0001\u0070\u0002"+ + "\u002d\u0001\u0065\u0001\u006e\u0002\u002d\u0001\u006f\u0001\u0064\u0001"+ + "\u006e\u0001\u006d\u0003\u002d\u0001\u0074\u0002\u002d\u0001\u0063\u0001"+ + "\u0072\u0001\u0065\u0002\u0072\u0001\u006c\u0001\u006d\u0001\u0068\u0001"+ + "\u006c\u0001\u006d\u0001\u0061\u0003\u0069\u0001\u0078\u0001\u0065\u0001"+ + "\u002d\u0001\u0065\u0001\u0070\u0002\u006d\u0001\u0069\u0001\u0064\u0001"+ + "\u0069\u0001\u006c\u0001\u0072\u0001\u0065\u0001\u006c\u0001\u0069\u0001"+ + "\u0072\u0001\u0075\u0001\u004e\u0001\u0072\u0001\u0079\u0001\u006f\u0002"+ + "\uffff\u0001\u0009\u0010\uffff\u0001\u0078\u000b\uffff\u0001\u002d\u0001"+ + "\u0009\u0009\uffff\u0001\u0030\u0006\uffff\u0001\u002e\u0001\u0030\u0001"+ + "\uffff\u0001\u0065\u0002\u002d\u0001\u0065\u0001\uffff\u0001\u0072\u0001"+ + "\uffff\u0001\u002d\u0001\u0065\u0001\u002d\u0001\u0073\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u006f\u0002\u0061\u0001\u0065\u0001\u0063\u0001"+ + "\u006c\u0001\u0063\u0001\u006c\u0001\u006d\u0001\u0073\u0001\u0079\u0001"+ + "\u006e\u0001\u0069\u0001\u0061\u0001\u0063\u0001\u0065\u0001\u002d\u0001"+ + "\u0069\u0001\u0063\u0001\u0066\u0001\u0074\u0001\u0075\u0001\u006d\u0001"+ + "\u0065\u0001\u0074\u0001\u006f\u0001\u002d\u0001\u0069\u0001\uffff\u0001"+ + "\u0072\u0002\u0065\u0001\u0063\u0001\u0074\u0001\u006c\u0001\u002d\u0001"+ + "\u0063\u0001\u0073\u0001\u006d\u0001\u006f\u0001\u006e\u0001\u006f\u0001"+ + "\u0072\u0001\uffff\u0001\u0061\u0001\u0075\u0001\uffff\u0001\u0076\u0001"+ + "\uffff\u0001\u006f\u0003\u0065\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u006d\u0001\u002d\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u002d\u0001"+ + "\u0065\u0002\uffff\u0001\u0065\u0001\u0070\u0001\u002d\u0001\u0074\u0001"+ + "\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001\u0069\u0001\u0065\u0001"+ + "\u002d\u0002\uffff\u0001\u0069\u0001\u0065\u0001\uffff\u0001\u0079\u0001"+ + "\uffff\u0001\u0075\u0001\u0061\u0001\u0074\u0002\u0063\u0001\u002d\u0001"+ + "\u0061\u0001\u0075\u0001\u0061\u0001\u006c\u0002\u0061\u0001\u0069\u0002"+ + "\u0065\u0001\u0072\u0001\u0066\u0001\u0073\u0001\u0065\u0001\u0062\u0001"+ + "\u0069\u0001\u006d\u0001\u0070\u0001\u0064\u0001\u0074\u0001\u0070\u0001"+ + "\u0074\u0001\u006e\u0001\uffff\u0001\u0061\u0001\u002d\u0001\u0065\u0001"+ + "\u0062\u0001\u0065\u0001\u006f\u0001\u0072\u0001\u0061\u0001\u0065\u0001"+ + "\u006e\u0002\u0069\u0001\u0073\u0001\u006e\u0001\u006c\u0001\u0064\u0001"+ + "\u0068\u0001\u0064\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u002d\u0001"+ + "\u006f\u0001\u002d\u0001\u0074\u0004\uffff\u0001\u002d\u0003\uffff\u0001"+ + "\u0030\u0001\u0073\u0002\uffff\u0001\u006e\u0001\u0069\u0001\u0077\u0001"+ + "\uffff\u0001\u0072\u0001\uffff\u0002\u002d\u0001\u0064\u0001\u0072\u0001"+ + "\u006b\u0001\u0072\u0002\u002d\u0001\u0068\u0001\u0064\u0001\u006b\u0001"+ + "\u0061\u0001\u0065\u0001\u0074\u0001\u0061\u0001\u002d\u0001\u0074\u0001"+ + "\u0061\u0001\u006d\u0001\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001"+ + "\u0074\u0001\u0072\u0001\u0065\u0001\u0061\u0001\u006d\u0001\u0065\u0001"+ + "\u002d\u0001\u0079\u0001\u0064\u0001\uffff\u0001\u0072\u0001\u0079\u0001"+ + "\u0070\u0001\u0072\u0001\u0074\u0001\u002d\u0001\u006f\u0001\u0061\u0001"+ + "\uffff\u0002\u0074\u0001\u002d\u0001\u0070\u0001\u0064\u0001\u0074\u0001"+ + "\u002d\u0001\u0074\u0001\u0070\u0001\u002d\u0002\u0072\u0001\u0061\u0001"+ + "\u006e\u0001\u0067\u0001\u002d\u0001\u006e\u0001\u0078\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\u0075\u0001\u0074\u0001\uffff\u0001\u006c\u0001"+ + "\u0072\u0001\u002d\u0001\u006c\u0001\u0066\u0001\uffff\u0001\u002d\u0002"+ + "\u0073\u0001\u002d\u0001\u006e\u0001\u0072\u0001\u002d\u0001\uffff\u0001"+ + "\u006f\u0001\u0072\u0001\u002d\u0001\u0072\u0001\u006e\u0001\u0067\u0003"+ + "\u0065\u0001\u0069\u0002\u0065\u0001\u006d\u0001\u0073\u0001\u0072\u0001"+ + "\u006d\u0001\u0061\u0001\u006c\u0001\u0074\u0001\u0073\u0001\u002d\u0001"+ + "\u006d\u0001\u0065\u0001\u002d\u0001\u0069\u0001\u0065\u0001\u002d\u0001"+ + "\u006c\u0001\u0074\u0001\u0063\u0001\u006d\u0001\u002d\u0001\u0069\u0001"+ + "\u0063\u0003\u002d\u0001\u0061\u0001\u0074\u0001\uffff\u0001\u002d\u0001"+ + "\u006c\u0001\u0073\u0001\u006e\u0001\u0075\u0001\u0064\u0001\u0074\u0001"+ + "\u0072\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u0061\u0001\u0069\u0001"+ + "\u0065\u0001\u002d\u0001\u0065\u0001\u006f\u0001\u002d\u0001\u0063\u0001"+ + "\u0068\u0001\u002d\u0001\u0072\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u002d\u0001\u0000\u0001\u0074\u0001\u0064\u0001\u0062\u0001\u0069\u0001"+ + "\u002d\u0001\uffff\u0001\u0075\u0001\u0061\u0001\u0065\u0001\u002d\u0001"+ + "\u0079\u0001\uffff\u0001\u0062\u0001\uffff\u0003\u002d\u0001\u0074\u0001"+ + "\u0063\u0001\u006e\u0001\u0072\u0001\u006e\u0001\u0069\u0002\u006e\u0001"+ + "\uffff\u0001\u002d\u0001\u0072\u0001\u0061\u0001\u006c\u0001\u006e\u0001"+ + "\u0065\u0001\u002d\u0001\u0069\u0001\u0072\u0001\u006e\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u002d\u0001\u0069\u0001\u0065\u0001\u002d\u0001"+ + "\u0074\u0001\u006e\u0001\u006c\u0001\uffff\u0001\u0077\u0001\u0063\u0001"+ + "\u0067\u0001\u0069\u0001\u002d\u0001\uffff\u0001\u0074\u0002\u002d\u0001"+ + "\uffff\u0001\u0065\u0001\u002d\u0001\uffff\u0001\u0074\u0001\u0069\u0001"+ + "\u006e\u0001\u0074\u0002\u0073\u0001\u0072\u0001\uffff\u0001\u0069\u0001"+ + "\u002d\u0002\uffff\u0001\u0061\u0001\u002d\u0001\u0073\u0001\u0063\u0001"+ + "\uffff\u0001\u0065\u0001\u0079\u0001\uffff\u0001\u002d\u0001\u0070\u0001"+ + "\uffff\u0001\u0068\u0001\u0065\u0001\u002d\u0001\uffff\u0001\u006e\u0001"+ + "\u002d\u0001\uffff\u0001\u0073\u0001\u0074\u0002\u0072\u0001\u0064\u0001"+ + "\u0072\u0001\u006f\u0001\u0073\u0001\u006e\u0001\u0069\u0001\u0065\u0001"+ + "\u006e\u0001\u0065\u0001\u0063\u0002\u0069\u0001\u0066\u0001\uffff\u0001"+ + "\u0061\u0001\u002d\u0001\uffff\u0001\u0074\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u002d\u0001\u0074\u0001\u002d\u0001\u0069\u0001\uffff\u0001"+ + "\u006e\u0001\u0068\u0003\uffff\u0001\u0075\u0001\u002d\u0001\u0077\u0001"+ + "\uffff\u0001\u0069\u0002\u002d\u0002\u0065\u0001\u0069\u0001\u0063\u0001"+ + "\u002d\u0001\u0061\u0001\u002d\u0001\u0062\u0001\u006f\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\u0077\u0001\u0075\u0001\uffff\u0001\u0061\u0001"+ + "\u0074\u0001\u002d\u0001\uffff\u0001\u0079\u0001\u0064\u0003\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\u0075\u0001\u006e\u0001\uffff\u0002\u0072\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0001\u006c\u0003\uffff\u0001\u0069\u0002"+ + "\u0074\u0001\u0061\u0002\u0074\u0001\u006e\u0001\u0075\u0001\u0061\u0001"+ + "\uffff\u0001\u0065\u0001\u006c\u0001\u0074\u0001\u0064\u0001\u002d\u0001"+ + "\uffff\u0001\u0074\u0001\u0065\u0001\u0063\u0001\u006e\u0001\u0074\u0001"+ + "\u0073\u0001\uffff\u0001\u006e\u0001\u002d\u0001\uffff\u0001\u002d\u0001"+ + "\u0061\u0001\u0079\u0001\u0069\u0001\u0068\u0001\u006e\u0001\u006f\u0001"+ + "\uffff\u0001\u0069\u0002\uffff\u0001\u0073\u0001\u006e\u0001\uffff\u0001"+ + "\u002d\u0001\u0074\u0001\u0063\u0001\u002d\u0001\u0069\u0001\u0065\u0001"+ + "\u0069\u0001\u0074\u0001\uffff\u0001\u0067\u0001\uffff\u0001\u002d\u0001"+ + "\u0061\u0002\u002d\u0001\u0073\u0001\u0061\u0001\u0065\u0001\u0073\u0001"+ + "\uffff\u0001\u002d\u0001\u0064\u0001\u006e\u0001\uffff\u0002\u002d\u0001"+ + "\u0061\u0001\u006e\u0001\u0069\u0001\u0076\u0001\u0075\u0001\u0073\u0001"+ + "\u0074\u0001\u006c\u0003\u002d\u0001\u0065\u0001\u0064\u0001\u006f\u0001"+ + "\u0069\u0001\u002d\u0001\uffff\u0001\u0069\u0001\u0063\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\uffff\u0001\u006e\u0001\u0067\u0001\u002d\u0001"+ + "\u0072\u0001\uffff\u0001\u0069\u0001\u006e\u0002\uffff\u0001\u002d\u0001"+ + "\u0072\u0001\u006e\u0001\u0061\u0001\uffff\u0001\u0074\u0001\uffff\u0001"+ + "\u006c\u0001\u006e\u0002\uffff\u0001\u002d\u0001\u0074\u0001\u0072\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0001\u0069\u0001\u0072\u0001\u006e\u0001"+ + "\u0074\u0001\u0067\u0001\u0069\u0001\u0079\u0002\uffff\u0001\u0065\u0001"+ + "\u006f\u0001\u0069\u0001\u002d\u0001\u0063\u0001\u0069\u0002\u002d\u0001"+ + "\u0073\u0001\u0065\u0001\u006d\u0003\u002d\u0001\u0061\u0001\uffff\u0001"+ + "\u0069\u0001\u006e\u0001\u0065\u0001\u0074\u0001\u002d\u0001\u0065\u0001"+ + "\u0067\u0002\uffff\u0001\u006c\u0001\u002d\u0001\u006e\u0002\u002d\u0001"+ + "\u006e\u0001\u006f\u0001\u0074\u0001\u0067\u0001\uffff\u0001\u002d\u0001"+ + "\u0065\u0001\uffff\u0001\u0074\u0001\u0063\u0001\u0074\u0001\u0079\u0001"+ + "\u0065\u0001\uffff\u0001\u0073\u0002\uffff\u0001\u0069\u0001\u0063\u0001"+ + "\u0072\u0001\u0065\u0001\uffff\u0001\u002d\u0001\u0067\u0002\uffff\u0001"+ + "\u0070\u0001\u002d\u0001\u006e\u0001\u0065\u0001\u0073\u0001\u0069\u0001"+ + "\u002d\u0001\u006c\u0001\uffff\u0001\u006e\u0002\uffff\u0001\u002d\u0001"+ + "\u0061\u0001\u006e\u0001\u0065\u0001\u0061\u0001\uffff\u0001\u0076\u0001"+ + "\u0065\u0002\uffff\u0001\u0067\u0001\u002d\u0001\uffff\u0001\u0075\u0001"+ + "\u0074\u0001\u0067\u0001\uffff\u0001\u0065\u0001\u0067\u0001\u0073\u0002"+ + "\u0065\u0001\u002d\u0001\uffff\u0001\u002d\u0001\u0064\u0002\uffff\u0001"+ + "\u0067\u0001\u002d\u0001\u0067\u0001\u0065\u0004\u002d\u0001\u006e\u0001"+ + "\u006f\u0001\uffff\u0001\u0074\u0001\u006e\u0002\uffff\u0002\u002d\u0001"+ + "\u0065\u0001\uffff\u0001\u0066\u0001\uffff\u0002\u006e\u0001\u0063\u0001"+ + "\u0074\u0002\u002d\u0001\uffff\u0001\u0071\u0002\u002d\u0001\uffff\u0001"+ + "\u0067\u0002\uffff\u0001\u002d\u0001\u006e\u0002\u002d\u0001\uffff\u0001"+ + "\u002d\u0001\u0069\u0001\u0074\u0001\u0079\u0002\u002d\u0001\u0065\u0001"+ + "\u0067\u0001\u0065\u0001\u0069\u0001\u0072\u0001\uffff\u0001\u002d\u0001"+ + "\u0068\u0001\u0073\u0001\u0067\u0002\u002d\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u0067\u0001\uffff\u0001\u0074\u0002\u0073\u0001\u0074\u0001"+ + "\u006c\u0001\u0065\u0002\u002d\u0001\uffff\u0001\u0073\u0001\u0063\u0001"+ + "\u002d\u0001\u0064\u0001\u002d\u0001\u0065\u0002\u002d\u0002\uffff\u0001"+ + "\u0073\u0001\u0069\u0001\u006f\u0001\uffff\u0002\u002d\u0002\uffff\u0001"+ + "\u0073\u0001\uffff\u0001\u002d\u0001\u006e\u0001\u0069\u0001\u0074\u0002"+ + "\uffff\u0001\u0073\u0001\u006f\u0001\u0065\u0001\u0074\u0001\u0067\u0001"+ + "\u0073\u0001\u002d\u0001\uffff\u0001\u006e\u0001\uffff\u0001\u0075\u0002"+ + "\uffff\u0001\u002d\u0001\uffff\u0001\u002d\u0001\uffff\u0001\u0073\u0001"+ + "\uffff\u0001\u0076\u0002\u002d\u0002\uffff\u0001\u002d\u0001\u006e\u0001"+ + "\u002d\u0001\u0074\u0001\u0076\u0001\uffff\u0001\u002d\u0001\u0065\u0001"+ + "\u002d\u0002\uffff\u0001\u0067\u0002\u002d\u0001\u0069\u0001\u0068\u0001"+ + "\u002d\u0001\u0074\u0001\u0065\u0002\u002d\u0002\uffff\u0001\u002d\u0001"+ + "\u0068\u0001\uffff\u0001\u002d\u0001\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u002d\u0001\u0074\u0001\u0072\u0002\uffff\u0001\u0070\u0001\uffff\u0001"+ + "\u002d\u0001\u006f\u0001\u002d\u0001\u0070\u0001\u0072\u0001\u0070\u0003"+ + "\u002d\u0001\uffff\u0001\u006f\u0001\u0065\u0001\u0073\u0002\uffff\u0002"+ + "\u0065\u0003\uffff\u0001\u002d\u0001\u006e\u0001\uffff\u0001\u002d\u0001"+ + "\u0065\u0001\u002d\u0001\uffff\u0001\u0070\u0001\u0073\u0001\uffff\u0001"+ + "\u002d\u0002\uffff\u0001\u006f\u0001\u0069\u0001\uffff\u0001\u0072\u0001"+ + "\u006d\u0003\uffff\u0001\u002d\u0003\uffff\u0002\u002d\u0001\u0061\u0001"+ + "\uffff\u0001\u006e\u0001\uffff\u0001\u0061\u0001\u006d\u0001\u0061\u0001"+ + "\u006f\u0003\uffff\u0001\u0064\u0001\u006e\u0001\u0069\u0001\u0070\u0001"+ + "\u002d\u0001\uffff\u0001\u006f\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u0061\u0002\u0069\u0001\u006e\u0001\u0070\u0001\u0069\u0001\u0065\u0002"+ + "\uffff\u0001\u0073\u0001\u0063\u0001\u002d\u0001\u0063\u0001\u0061\u0002"+ + "\u0072\u0001\u0065\u0001\u0063\u0001\u0062\u0001\u0061\u0001\uffff\u0001"+ + "\u0064\u0001\uffff\u0001\u0072\u0001\u0062\u0001\u006e\u0002\u002d\u0001"+ + "\u0062\u0001\u006e\u0002\u0065\u0001\uffff\u0001\u0065\u0001\u0074\u0001"+ + "\u0061\u0002\u002d\u0001\u0065\u0001\u006c\u0001\u0072\u0001\u0065\u0001"+ + "\u0061\u0001\u006c\u0001\u0073\u0002\uffff\u0001\u0075\u0001\u0074\u0001"+ + "\u006c\u0001\u002d\u0001\u0073\u0001\u002d\u0001\u0074\u0001\u0073\u0001"+ + "\uffff\u0001\u002d\u0001\u0069\u0001\u0061\u0001\u002d\u0001\u0074\u0001"+ + "\u0069\u0002\u0074\u0001\u002d\u0001\u0066\u0001\uffff\u0001\u002d\u0001"+ + "\uffff\u0001\u006f\u0001\u0065\u0001\uffff\u0001\u006e\u0001\u0074\u0001"+ + "\uffff\u0001\u006f\u0001\u006e\u0001\u0072\u0001\u0065\u0001\uffff\u0001"+ + "\u002d\u0001\uffff\u0001\u0072\u0001\u006c\u0001\u0067\u0001\u006f\u0001"+ + "\u0072\u0001\u0067\u0001\u0075\u0001\u002d\u0001\uffff\u0001\u002d\u0001"+ + "\u0066\u0001\u002d\u0001\u0072\u0002\u002d\u0001\u0063\u0002\uffff\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0002\uffff\u0001\u0074\u0002\uffff\u0001"+ + "\u0069\u0001\u006f\u0001\u006e\u0001\u002d\u0001\uffff", + DFA19_maxS: + "\u0001\uffff\u0001\u0074\u0001\u0079\u0002\u006f\u0001\u0078\u0001"+ + "\u0075\u0003\u0074\u0002\u006f\u0002\u0072\u0001\u0065\u0001\u0077\u0001"+ + "\u0079\u0001\u0073\u0001\u0065\u0001\u006f\u0001\u0071\u0001\u0061\u0002"+ + "\u0065\u0001\u0075\u0001\u007c\u0001\u003a\u0007\uffff\u0002\u003d\u0001"+ + "\uffff\u0001\u0029\u0001\u0023\u0001\uffff\u0001\u003e\u0002\uffff\u0001"+ + "\u002d\u0001\u003f\u0002\u003e\u0001\u0039\u0006\uffff\u0001\u0065\u0001"+ + "\uffff\u0001\u0079\u0002\u007a\u0001\u006c\u0001\u0074\u0001\u0070\u0001"+ + "\u006f\u0001\uffff\u0001\u0073\u0001\u0075\u0001\u007a\u0001\u0066\u0001"+ + "\u0065\u0001\u006e\u0001\u0074\u0001\u0069\u0001\u0075\u0001\u0073\u0001"+ + "\u0076\u0001\u0063\u0001\u0073\u0001\u0070\u0001\u0074\u0001\u007a\u0001"+ + "\u0065\u0001\u0074\u0001\u0072\u0001\u006e\u0001\u0072\u0002\u006f\u0001"+ + "\u007a\u0001\u006f\u0001\u007a\u0001\u0069\u0001\u007a\u0001\u0070\u0002"+ + "\u007a\u0001\u0065\u0001\u0078\u0002\u007a\u0001\u0077\u0001\u0073\u0001"+ + "\u006e\u0001\u006d\u0003\u007a\u0001\u0074\u0002\u007a\u0001\u0063\u0001"+ + "\u0074\u0001\u006f\u0002\u0072\u0001\u0076\u0001\u0074\u0001\u006f\u0001"+ + "\u006e\u0001\u006d\u0001\u0072\u0003\u0069\u0001\u0078\u0001\u0065\u0001"+ + "\u007a\u0001\u0079\u0001\u0070\u0002\u006d\u0001\u006f\u0001\u0070\u0001"+ + "\u0069\u0002\u0072\u0001\u0069\u0001\u0074\u0001\u0069\u0001\u0072\u0001"+ + "\u0075\u0001\u004e\u0001\u0072\u0001\u0079\u0001\u006f\u0002\uffff\u0001"+ + "\u007a\u0010\uffff\u0001\u0078\u000b\uffff\u0001\u002d\u0001\u007a\u0009"+ + "\uffff\u0001\u0065\u0006\uffff\u0002\u0065\u0001\uffff\u0001\u0065\u0002"+ + "\u007a\u0001\u0065\u0001\uffff\u0001\u0072\u0001\uffff\u0001\u007a\u0001"+ + "\u0065\u0001\u007a\u0001\u0073\u0001\u0065\u0001\u006e\u0001\uffff\u0001"+ + "\u006f\u0002\u0061\u0001\u0074\u0001\u0063\u0001\u006c\u0001\u0063\u0001"+ + "\u006c\u0001\u006d\u0001\u0074\u0001\u0079\u0001\u006e\u0001\u006c\u0001"+ + "\u0061\u0001\u0063\u0001\u0065\u0001\u007a\u0001\u0069\u0001\u0063\u0001"+ + "\u0066\u0001\u0074\u0001\u0075\u0001\u006d\u0001\u0065\u0001\u0074\u0001"+ + "\u006f\u0001\u007a\u0001\u0069\u0001\uffff\u0001\u0072\u0002\u0065\u0001"+ + "\u0063\u0001\u0074\u0001\u006c\u0001\u007a\u0001\u0063\u0001\u0073\u0001"+ + "\u006d\u0001\u006f\u0001\u006e\u0001\u006f\u0001\u0072\u0001\uffff\u0001"+ + "\u0061\u0001\u0075\u0001\uffff\u0001\u0076\u0001\uffff\u0001\u006f\u0001"+ + "\u0065\u0001\u0074\u0001\u006f\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u006d\u0001\u007a\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u007a\u0001"+ + "\u0065\u0002\uffff\u0001\u0065\u0001\u0070\u0001\u007a\u0001\u0074\u0001"+ + "\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001\u0070\u0001\u0065\u0001"+ + "\u007a\u0002\uffff\u0001\u0069\u0001\u0065\u0001\uffff\u0001\u0079\u0001"+ + "\uffff\u0001\u0075\u0001\u0065\u0001\u0074\u0001\u0076\u0002\u0063\u0001"+ + "\u0061\u0001\u0075\u0001\u0061\u0001\u006c\u0002\u0061\u0001\u0069\u0002"+ + "\u0065\u0001\u0072\u0001\u0066\u0001\u0074\u0001\u0065\u0001\u0072\u0001"+ + "\u0069\u0001\u006d\u0001\u0070\u0001\u0064\u0001\u0074\u0001\u0070\u0001"+ + "\u0074\u0001\u0073\u0001\uffff\u0001\u0061\u0001\u007a\u0001\u0065\u0001"+ + "\u0062\u0001\u0065\u0001\u0071\u0001\u0072\u0001\u0061\u0001\u0065\u0001"+ + "\u006e\u0001\u0075\u0001\u0069\u0001\u0073\u0001\u0072\u0001\u006c\u0001"+ + "\u0064\u0001\u0068\u0001\u0064\u0001\u0067\u0001\u0064\u0001\u0065\u0001"+ + "\u007a\u0001\u006f\u0001\u007a\u0001\u0074\u0004\uffff\u0001\u002d\u0003"+ + "\uffff\u0001\u0065\u0001\u0073\u0002\uffff\u0001\u006e\u0001\u0069\u0001"+ + "\u0077\u0001\uffff\u0001\u0072\u0001\uffff\u0001\u007a\u0001\u002d\u0001"+ + "\u0064\u0001\u0072\u0001\u006b\u0001\u0072\u0002\u007a\u0001\u0068\u0001"+ + "\u0064\u0001\u006b\u0002\u0065\u0001\u0074\u0001\u0069\u0001\u007a\u0001"+ + "\u0074\u0001\u0061\u0001\u006d\u0001\u0075\u0001\u0065\u0001\u0074\u0001"+ + "\uffff\u0001\u0074\u0001\u0072\u0001\u0065\u0001\u0061\u0001\u006d\u0001"+ + "\u0065\u0001\u007a\u0001\u0079\u0001\u0064\u0001\uffff\u0001\u0072\u0001"+ + "\u0079\u0001\u0070\u0001\u0072\u0001\u0074\u0001\u007a\u0001\u006f\u0001"+ + "\u0069\u0001\uffff\u0002\u0074\u0001\u007a\u0001\u0070\u0001\u0064\u0001"+ + "\u0074\u0001\u007a\u0001\u0074\u0001\u0070\u0001\u007a\u0002\u0072\u0001"+ + "\u0061\u0002\u0072\u0001\u007a\u0001\u006e\u0001\u0078\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\u0075\u0001\u0074\u0001\uffff\u0001\u006c\u0001"+ + "\u0072\u0001\u007a\u0001\u006c\u0001\u0066\u0001\uffff\u0001\u007a\u0002"+ + "\u0073\u0001\u007a\u0001\u006e\u0001\u0072\u0001\u007a\u0001\uffff\u0001"+ + "\u006f\u0001\u0072\u0001\u007a\u0001\u0072\u0001\u006e\u0001\u0067\u0003"+ + "\u0065\u0001\u0069\u0002\u0065\u0001\u006d\u0001\u0073\u0001\u0072\u0001"+ + "\u006d\u0001\u0061\u0001\u006c\u0001\u0074\u0001\u0073\u0001\u007a\u0001"+ + "\u006d\u0001\u0065\u0001\u007a\u0001\u0069\u0001\u0065\u0001\u007a\u0001"+ + "\u006c\u0001\u0074\u0001\u0070\u0001\u006d\u0001\u007a\u0001\u0069\u0001"+ + "\u0063\u0003\u007a\u0001\u0061\u0001\u0074\u0001\uffff\u0001\u007a\u0001"+ + "\u006c\u0001\u0073\u0001\u006e\u0001\u0075\u0001\u0064\u0001\u0074\u0001"+ + "\u0072\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u0061\u0001\u0069\u0001"+ + "\u0065\u0001\u007a\u0001\u0065\u0001\u006f\u0001\u007a\u0001\u0063\u0001"+ + "\u0068\u0001\u007a\u0001\u0072\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u0074\u0001\u0064\u0001\u0062\u0001\u0069\u0001"+ + "\u007a\u0001\uffff\u0001\u0075\u0001\u0061\u0001\u0065\u0001\u007a\u0001"+ + "\u0079\u0001\uffff\u0001\u0062\u0001\uffff\u0003\u007a\u0001\u0074\u0001"+ + "\u0063\u0001\u006e\u0001\u0072\u0001\u0078\u0001\u0069\u0002\u006e\u0001"+ + "\uffff\u0001\u007a\u0001\u0072\u0001\u0061\u0001\u006c\u0001\u006e\u0001"+ + "\u0065\u0001\u007a\u0001\u0069\u0001\u0072\u0001\u006e\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u007a\u0001\u0069\u0001\u0065\u0001\u007a\u0001"+ + "\u0074\u0001\u006e\u0001\u006c\u0001\uffff\u0001\u0077\u0001\u0063\u0001"+ + "\u0067\u0001\u0069\u0001\u007a\u0001\uffff\u0001\u0074\u0002\u007a\u0001"+ + "\uffff\u0001\u0065\u0001\u007a\u0001\uffff\u0001\u0074\u0001\u0069\u0001"+ + "\u006e\u0001\u0074\u0002\u0073\u0001\u0072\u0001\uffff\u0001\u0069\u0001"+ + "\u007a\u0002\uffff\u0001\u0061\u0001\u007a\u0001\u0073\u0001\u0063\u0001"+ + "\uffff\u0001\u0065\u0001\u0079\u0001\uffff\u0001\u002d\u0001\u0070\u0001"+ + "\uffff\u0001\u0068\u0001\u0065\u0001\u007a\u0001\uffff\u0001\u006e\u0001"+ + "\u007a\u0001\uffff\u0001\u0073\u0001\u0074\u0002\u0072\u0001\u0064\u0001"+ + "\u0072\u0001\u006f\u0001\u0073\u0001\u006e\u0001\u0069\u0001\u0065\u0001"+ + "\u006e\u0001\u0065\u0001\u0063\u0002\u0069\u0001\u0066\u0001\uffff\u0001"+ + "\u0061\u0001\u007a\u0001\uffff\u0001\u0074\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u007a\u0001\u0074\u0001\u007a\u0001\u0069\u0001\uffff\u0001"+ + "\u006e\u0001\u0068\u0003\uffff\u0001\u0075\u0001\u007a\u0001\u0077\u0001"+ + "\uffff\u0001\u0069\u0002\u007a\u0002\u0065\u0001\u0069\u0001\u0063\u0001"+ + "\u007a\u0001\u0061\u0001\u007a\u0001\u0062\u0001\u006f\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\u0077\u0001\u0075\u0001\uffff\u0001\u0061\u0001"+ + "\u0074\u0001\u007a\u0001\uffff\u0001\u0079\u0001\u0064\u0003\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\u0075\u0001\u006e\u0001\uffff\u0002\u0072\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0001\u006c\u0003\uffff\u0001\u0069\u0002"+ + "\u0074\u0001\u0075\u0002\u0074\u0001\u006e\u0001\u0075\u0001\u0061\u0001"+ + "\uffff\u0001\u0065\u0001\u006c\u0001\u0074\u0001\u0064\u0001\u007a\u0001"+ + "\uffff\u0001\u0074\u0001\u0065\u0001\u0063\u0001\u006e\u0001\u0074\u0001"+ + "\u0073\u0001\uffff\u0001\u006e\u0001\u007a\u0001\uffff\u0001\u007a\u0001"+ + "\u0061\u0001\u0079\u0001\u0069\u0001\u0068\u0001\u006e\u0001\u006f\u0001"+ + "\uffff\u0001\u0069\u0002\uffff\u0001\u0073\u0001\u006e\u0001\uffff\u0001"+ + "\u007a\u0001\u0074\u0001\u0063\u0001\u007a\u0001\u0069\u0001\u0065\u0001"+ + "\u0069\u0001\u0074\u0001\uffff\u0001\u0067\u0001\uffff\u0001\u007a\u0001"+ + "\u0061\u0002\u007a\u0001\u0073\u0001\u0061\u0001\u0065\u0001\u0073\u0001"+ + "\uffff\u0001\u007a\u0001\u0064\u0001\u006e\u0001\uffff\u0002\u007a\u0001"+ + "\u0061\u0001\u006e\u0001\u0069\u0001\u0076\u0001\u0075\u0001\u0073\u0001"+ + "\u0074\u0001\u006c\u0003\u007a\u0001\u0065\u0001\u0064\u0001\u006f\u0001"+ + "\u0069\u0001\u007a\u0001\uffff\u0001\u0069\u0001\u0063\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\uffff\u0001\u006e\u0001\u0067\u0001\u007a\u0001"+ + "\u0072\u0001\uffff\u0001\u0069\u0001\u006e\u0002\uffff\u0001\u007a\u0001"+ + "\u0072\u0001\u006e\u0001\u0061\u0001\uffff\u0001\u0074\u0001\uffff\u0001"+ + "\u006c\u0001\u006e\u0002\uffff\u0001\u007a\u0001\u0074\u0001\u0072\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0001\u0069\u0001\u0072\u0001\u006e\u0001"+ + "\u0074\u0001\u0067\u0001\u0069\u0001\u0079\u0002\uffff\u0001\u0065\u0001"+ + "\u006f\u0001\u0069\u0001\u007a\u0001\u0063\u0001\u0069\u0002\u007a\u0001"+ + "\u0073\u0001\u0065\u0001\u006d\u0001\u007a\u0001\u002d\u0001\u007a\u0001"+ + "\u0069\u0001\uffff\u0001\u0069\u0001\u006e\u0001\u0065\u0001\u0074\u0001"+ + "\u007a\u0001\u0065\u0001\u0067\u0002\uffff\u0001\u006c\u0001\u007a\u0001"+ + "\u006e\u0002\u007a\u0001\u006e\u0001\u006f\u0001\u0074\u0001\u0067\u0001"+ + "\uffff\u0001\u007a\u0001\u0065\u0001\uffff\u0001\u0074\u0001\u0063\u0001"+ + "\u0074\u0001\u0079\u0001\u0065\u0001\uffff\u0001\u0073\u0002\uffff\u0001"+ + "\u0069\u0001\u0063\u0001\u0072\u0001\u0065\u0001\uffff\u0001\u007a\u0001"+ + "\u0067\u0002\uffff\u0001\u0070\u0001\u002d\u0001\u006e\u0001\u0065\u0001"+ + "\u0073\u0001\u0069\u0001\u007a\u0001\u006c\u0001\uffff\u0001\u006e\u0002"+ + "\uffff\u0001\u007a\u0001\u0061\u0001\u006e\u0002\u0065\u0001\uffff\u0001"+ + "\u0076\u0001\u0065\u0002\uffff\u0001\u0067\u0001\u007a\u0001\uffff\u0001"+ + "\u0075\u0001\u0074\u0001\u0067\u0001\uffff\u0001\u0065\u0001\u0067\u0001"+ + "\u0073\u0002\u0065\u0001\u007a\u0001\uffff\u0001\u007a\u0001\u0064\u0002"+ + "\uffff\u0001\u0067\u0001\u007a\u0001\u0067\u0001\u0065\u0002\u007a\u0001"+ + "\u002d\u0001\u007a\u0001\u006e\u0001\u006f\u0001\uffff\u0001\u0074\u0001"+ + "\u006e\u0002\uffff\u0002\u007a\u0001\u0065\u0001\uffff\u0001\u0073\u0001"+ + "\uffff\u0002\u006e\u0001\u0063\u0001\u0074\u0002\u007a\u0001\uffff\u0001"+ + "\u0071\u0002\u007a\u0001\uffff\u0001\u0067\u0002\uffff\u0001\u007a\u0001"+ + "\u006e\u0001\u007a\u0001\u002d\u0001\uffff\u0001\u007a\u0001\u0069\u0001"+ + "\u0074\u0001\u0079\u0002\u007a\u0001\u0065\u0001\u0067\u0001\u0065\u0001"+ + "\u0069\u0001\u0072\u0001\uffff\u0001\u007a\u0001\u0068\u0001\u0073\u0001"+ + "\u0067\u0002\u007a\u0001\u006e\u0001\uffff\u0001\u0065\u0001\u0067\u0001"+ + "\uffff\u0001\u0074\u0002\u0073\u0001\u0074\u0001\u006c\u0001\u0065\u0002"+ + "\u007a\u0001\uffff\u0001\u0073\u0001\u0063\u0001\u007a\u0001\u0064\u0001"+ + "\u007a\u0001\u0065\u0002\u007a\u0002\uffff\u0001\u0073\u0001\u0069\u0001"+ + "\u006f\u0001\uffff\u0002\u007a\u0002\uffff\u0001\u0073\u0001\uffff\u0001"+ + "\u007a\u0001\u006e\u0001\u0069\u0001\u0074\u0002\uffff\u0001\u0073\u0001"+ + "\u006f\u0001\u0065\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u007a\u0001"+ + "\uffff\u0001\u006e\u0001\uffff\u0001\u0075\u0002\uffff\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\uffff\u0001\u0073\u0001\uffff\u0001\u0076\u0002"+ + "\u007a\u0002\uffff\u0001\u007a\u0001\u006e\u0001\u007a\u0001\u0074\u0001"+ + "\u0076\u0001\uffff\u0001\u007a\u0001\u0065\u0001\u007a\u0002\uffff\u0001"+ + "\u0067\u0002\u007a\u0001\u0069\u0001\u0068\u0001\u007a\u0001\u0074\u0001"+ + "\u0065\u0002\u007a\u0002\uffff\u0001\u007a\u0001\u0068\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0002\uffff\u0001\u007a\u0001\u0074\u0001"+ + "\u0072\u0002\uffff\u0001\u0070\u0001\uffff\u0001\u007a\u0001\u006f\u0001"+ + "\u007a\u0001\u0070\u0001\u0072\u0001\u0070\u0003\u007a\u0001\uffff\u0001"+ + "\u006f\u0001\u0065\u0001\u0073\u0002\uffff\u0002\u0065\u0003\uffff\u0001"+ + "\u007a\u0001\u006e\u0001\uffff\u0001\u007a\u0001\u0065\u0001\u007a\u0001"+ + "\uffff\u0001\u0070\u0001\u0073\u0001\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\uffff\u0001\u0072\u0001\u006d\u0003\uffff\u0001"+ + "\u007a\u0003\uffff\u0001\u007a\u0001\u002d\u0001\u0061\u0001\uffff\u0001"+ + "\u006e\u0001\uffff\u0001\u0061\u0001\u006d\u0001\u0061\u0001\u006f\u0003"+ + "\uffff\u0001\u0064\u0001\u006e\u0001\u0069\u0001\u0070\u0001\u007a\u0001"+ + "\uffff\u0001\u006f\u0001\uffff\u0001\u007a\u0001\uffff\u0001\u0061\u0002"+ + "\u0069\u0001\u006e\u0001\u0070\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u0073\u0001\u0063\u0001\u007a\u0001\u0063\u0001\u0061\u0002\u0072\u0001"+ + "\u0065\u0001\u0063\u0001\u0062\u0001\u0061\u0001\uffff\u0001\u0064\u0001"+ + "\uffff\u0001\u0072\u0001\u0062\u0001\u006e\u0002\u007a\u0001\u0062\u0001"+ + "\u006e\u0002\u0065\u0001\uffff\u0001\u0065\u0001\u0074\u0001\u0061\u0001"+ + "\u002d\u0001\u007a\u0001\u0065\u0001\u006c\u0001\u0072\u0001\u0065\u0001"+ + "\u0061\u0001\u006c\u0001\u0073\u0002\uffff\u0001\u0075\u0001\u0074\u0001"+ + "\u006c\u0001\u007a\u0001\u0073\u0001\u007a\u0001\u0074\u0001\u0073\u0001"+ + "\uffff\u0001\u007a\u0001\u0069\u0001\u0061\u0001\u007a\u0001\u0074\u0001"+ + "\u0069\u0002\u0074\u0001\u007a\u0001\u0066\u0001\uffff\u0001\u007a\u0001"+ + "\uffff\u0001\u006f\u0001\u0065\u0001\uffff\u0001\u006e\u0001\u0074\u0001"+ + "\uffff\u0001\u006f\u0001\u006e\u0001\u0072\u0001\u0065\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u0072\u0001\u006c\u0001\u0067\u0001\u006f\u0001"+ + "\u0072\u0001\u0067\u0001\u0075\u0001\u007a\u0001\uffff\u0001\u007a\u0001"+ + "\u0066\u0001\u007a\u0001\u0072\u0002\u007a\u0001\u0063\u0002\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0002\uffff\u0001\u0074\u0002\uffff\u0001"+ + "\u0069\u0001\u006f\u0001\u006e\u0001\u007a\u0001\uffff", + DFA19_acceptS: + "\u001b\uffff\u0001\u00cf\u0001\u00d0\u0001\u00d1\u0001\u00d2\u0001"+ + "\u00d3\u0001\u00d4\u0001\u00d5\u0002\uffff\u0001\u00d8\u0002\uffff\u0001"+ + "\u00db\u0001\uffff\u0001\u00dd\u0001\u00de\u0005\uffff\u0001\u00ee\u0001"+ + "\u00f6\u0001\u00f9\u0001\u00fa\u0001\u00fb\u0001\u00fc\u0001\uffff\u0001"+ + "\u0104\u0007\uffff\u0001\u00fb\u0050\uffff\u0001\u00cd\u0001\u00ef\u0001"+ + "\uffff\u0001\u0103\u0001\u00ce\u0001\u00cf\u0001\u00d0\u0001\u00d1\u0001"+ + "\u00d2\u0001\u00d3\u0001\u00d4\u0001\u00d5\u0001\u00d6\u0001\u00eb\u0001"+ + "\u00ea\u0001\u00d7\u0001\u00d8\u0001\u00f1\u0001\u00d9\u0001\uffff\u0001"+ + "\u00da\u0001\u00db\u0001\u00f5\u0001\u00dc\u0001\u00dd\u0001\u00de\u0001"+ + "\u00f3\u0001\u00df\u0001\u00e2\u0001\u00e4\u0001\u00ed\u0002\uffff\u0001"+ + "\u00e0\u0001\u00e3\u0001\u00e5\u0001\u00e1\u0001\u00e7\u0001\u00ec\u0001"+ + "\u00e6\u0001\u00e9\u0001\u00e8\u0001\uffff\u0001\u00ee\u0001\u00f6\u0001"+ + "\u00f9\u0001\u00fa\u0001\u00fc\u0001\u0100\u0002\uffff\u0001\u0102\u0004"+ + "\uffff\u0001\u0004\u0001\uffff\u0001\u0006\u0006\uffff\u0001\u000a\u001c"+ + "\uffff\u0001\u0020\u000e\uffff\u0001\u0028\u0002\uffff\u0001\u002a\u0001"+ + "\uffff\u0001\u002c\u0006\uffff\u0001\u002e\u0001\u0032\u0007\uffff\u0001"+ + "\u0035\u0001\u0038\u0007\uffff\u0001\u003c\u0003\uffff\u0001\u00a2\u0001"+ + "\u0040\u0002\uffff\u0001\u0042\u0001\uffff\u0001\u00c7\u001c\uffff\u0001"+ + "\u0057\u0019\uffff\u0001\u00f0\u0001\u00fd\u0001\u00f8\u0001\u00f7\u0001"+ + "\uffff\u0001\u00f4\u0001\u00ff\u0001\u0101\u0002\uffff\u0001\u0003\u0001"+ + "\u0090\u0003\uffff\u0001\u008f\u0001\uffff\u0001\u00ca\u0016\uffff\u0001"+ + "\u0018\u0009\uffff\u0001\u0068\u0008\uffff\u0001\u0026\u0013\uffff\u0001"+ + "\u0034\u0003\uffff\u0001\u0037\u0005\uffff\u0001\u0039\u0007\uffff\u0001"+ + "\u00a3\u0027\uffff\u0001\u0078\u0016\uffff\u0001\u006e\u0001\uffff\u0001"+ + "\u00c6\u0007\uffff\u0001\u00cb\u0005\uffff\u0001\u000b\u0001\uffff\u0001"+ + "\u000c\u000b\uffff\u0001\u0080\u000c\uffff\u0001\u001c\u0007\uffff\u0001"+ + "\u00bb\u0005\uffff\u0001\u0098\u0003\uffff\u0001\u009c\u0002\uffff\u0001"+ + "\u002b\u0007\uffff\u0001\u0084\u0002\uffff\u0001\u0033\u0001\u0085\u0004"+ + "\uffff\u0001\u00bc\u0002\uffff\u0001\u00a1\u0002\uffff\u0001\u006f\u0003"+ + "\uffff\u0001\u003f\u0002\uffff\u0001\u0070\u0011\uffff\u0001\u00a9\u0002"+ + "\uffff\u0001\u0050\u0002\uffff\u0001\u0051\u0005\uffff\u0001\u00af\u0002"+ + "\uffff\u0001\u008b\u0001\u0055\u0001\u0056\u0003\uffff\u0001\u007a\u000d"+ + "\uffff\u0001\u007b\u0003\uffff\u0001\u008e\u0003\uffff\u0001\u00b7\u0002"+ + "\uffff\u0001\u00cc\u0001\u00f2\u0001\u00fe\u0004\uffff\u0001\u007e\u0003"+ + "\uffff\u0001\u00b9\u0002\uffff\u0001\u0062\u0001\u000e\u0001\u00bf\u0009"+ + "\uffff\u0001\u0064\u0005\uffff\u0001\u0067\u0006\uffff\u0001\u001d\u0002"+ + "\uffff\u0001\u0021\u0007\uffff\u0001\u0082\u0001\uffff\u0001\u009a\u0001"+ + "\u009b\u0002\uffff\u0001\u0069\u0008\uffff\u0001\u00c4\u0001\uffff\u0001"+ + "\u0036\u0008\uffff\u0001\u0087\u0003\uffff\u0001\u0043\u0012\uffff\u0001"+ + "\u00aa\u0003\uffff\u0001\u0076\u0001\uffff\u0001\u0054\u0004\uffff\u0001"+ + "\u0058\u0002\uffff\u0001\u00b1\u0001\u005a\u0004\uffff\u0001\u00b3\u0001"+ + "\uffff\u0001\u008d\u0002\uffff\u0001\u005f\u0001\u00be\u0004\uffff\u0001"+ + "\u00b8\u0008\uffff\u0001\u007f\u0001\u00c9\u000f\uffff\u0001\u0081\u0007"+ + "\uffff\u0001\u0096\u0001\u0022\u0009\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u0083\u0005\uffff\u0001\u009f\u0001\uffff\u0001\u003a\u0001\u0086\u0004"+ + "\uffff\u0001\u0041\u0002\uffff\u0001\u00a4\u0001\u0046\u0008\uffff\u0001"+ + "\u00a7\u0001\uffff\u0001\u004b\u0001\u0088\u0005\uffff\u0001\u004d\u0002"+ + "\uffff\u0001\u0052\u0001\u0053\u0002\uffff\u0001\u0077\u0003\uffff\u0001"+ + "\u00c8\u0006\uffff\u0001\u007c\u0002\uffff\u0001\u00b4\u0001\u0060\u000a"+ + "\uffff\u0001\u0010\u0002\uffff\u0001\u0063\u0001\u0092\u0003\uffff\u0001"+ + "\u0013\u0001\uffff\u0001\u0014\u0006\uffff\u0001\u001b\u0003\uffff\u0001"+ + "\u0097\u0001\uffff\u0001\u00c2\u0001\u00c3\u0004\uffff\u0001\u002f\u000b"+ + "\uffff\u0001\u0044\u0007\uffff\u0001\u0072\u0002\uffff\u0001\u0089\u0008"+ + "\uffff\u0001\u0075\u0008\uffff\u0001\u005e\u0001\u00b6\u0003\uffff\u0001"+ + "\u0001\u0002\uffff\u0001\u0061\u0001\u0008\u0001\uffff\u0001\u000d\u0004"+ + "\uffff\u0001\u0091\u0001\u00ba\u0007\uffff\u0001\u0095\u0001\uffff\u0001"+ + "\u0019\u0001\uffff\u0001\u001f\u0001\u0023\u0001\uffff\u0001\u0027\u0001"+ + "\uffff\u0001\u0029\u0001\uffff\u0001\u0030\u0003\uffff\u0001\u006b\u0001"+ + "\u009e\u0005\uffff\u0001\u0045\u0003\uffff\u0001\u0049\u0001\u0074\u000a"+ + "\uffff\u0001\u00ac\u0001\u00ae\u0002\uffff\u0001\u0079\u0001\uffff\u0001"+ + "\u008c\u0001\uffff\u0001\u005c\u0001\u005d\u0003\uffff\u0001\u0005\u0001"+ + "\u0007\u0001\uffff\u0001\u000f\u0009\uffff\u0001\u0094\u0003\uffff\u0001"+ + "\u0024\u0001\u0099\u0002\uffff\u0001\u0031\u0001\u00c5\u0001\u00a0\u0002"+ + "\uffff\u0001\u003b\u0003\uffff\u0001\u00a5\u0002\uffff\u0001\u0047\u0001"+ + "\uffff\u0001\u0073\u0001\u00bd\u0002\uffff\u0001\u004c\u0002\uffff\u0001"+ + "\u00ab\u0001\u00ad\u0001\u00b0\u0001\uffff\u0001\u005b\u0001\u00b2\u0001"+ + "\u00b5\u0003\uffff\u0001\u00c0\u0001\uffff\u0001\u00c1\u0004\uffff\u0001"+ + "\u0015\u0001\u0017\u0001\u0093\u0005\uffff\u0001\u006c\u0001\uffff\u0001"+ + "\u003d\u0001\uffff\u0001\u00a6\u0007\uffff\u0001\u0059\u0001\u007d\u000b"+ + "\uffff\u0001\u009d\u0001\uffff\u0001\u003e\u0009\uffff\u0001\u0011\u000c"+ + "\uffff\u0001\u008a\u0001\u00a8\u0008\uffff\u0001\u001a\u000a\uffff\u0001"+ + "\u0009\u0001\uffff\u0001\u0065\u0002\uffff\u0001\u001e\u0002\uffff\u0001"+ + "\u006d\u0004\uffff\u0001\u004f\u0001\uffff\u0001\u0012\u0008\uffff\u0001"+ + "\u0002\u0007\uffff\u0001\u004e\u0001\u0066\u0001\uffff\u0001\u0025\u0001"+ + "\uffff\u0001\u0071\u0001\u0048\u0001\uffff\u0001\u0016\u0001\u006a\u0004"+ + "\uffff\u0001\u004a", + DFA19_specialS: + "\u0001\u0000\u0019\uffff\u0001\u0001\u01e5\uffff\u0001\u0002\u02db"+ + "\uffff}>", + DFA19_transitionS: [ + "\u0009\u0037\u0002\u0035\u0002\u0037\u0001\u0035\u0012\u0037"+ + "\u0001\u0035\u0001\u0023\u0001\u0033\u0001\u0025\u0001\u001c"+ + "\u0001\u0024\u0001\u0026\u0001\u0032\u0001\u001a\u0001\u001b"+ + "\u0001\u0029\u0001\u002a\u0001\u0027\u0001\u002b\u0001\u002f"+ + "\u0001\u002e\u000a\u0036\u0001\u0022\u0001\u0030\u0001\u002c"+ + "\u0001\u0021\u0001\u002d\u0001\u0028\u0001\u0031\u000d\u0034"+ + "\u0001\u0015\u000c\u0034\u0001\u001f\u0001\u0037\u0001\u0020"+ + "\u0001\u0037\u0001\u0034\u0001\u0037\u0001\u0001\u0001\u0002"+ + "\u0001\u0003\u0001\u0004\u0001\u0005\u0001\u0006\u0001\u0007"+ + "\u0001\u0034\u0001\u0008\u0001\u0034\u0001\u0017\u0001\u0009"+ + "\u0001\u000a\u0001\u000b\u0001\u000c\u0001\u000d\u0001\u0018"+ + "\u0001\u000e\u0001\u000f\u0001\u0010\u0001\u0011\u0001\u0012"+ + "\u0001\u0013\u0001\u0014\u0001\u0034\u0001\u0016\u0001\u001d"+ + "\u0001\u0019\u0001\u001e\uff82\u0037", + "\u0001\u003c\u0005\uffff\u0001\u003b\u0001\u003d\u0001\u0038"+ + "\u0001\uffff\u0001\u003e\u0002\uffff\u0001\u0039\u0001\u003a", + "\u0001\u0040\u0003\uffff\u0001\u0043\u0003\uffff\u0001\u0045"+ + "\u0005\uffff\u0001\u0041\u0002\uffff\u0001\u0044\u0006\uffff"+ + "\u0001\u0042", + "\u0001\u0046\u0006\uffff\u0001\u0047\u0006\uffff\u0001\u0048", + "\u0001\u0049\u0003\uffff\u0001\u004a\u0005\uffff\u0001\u004b", + "\u0001\u004c\u0001\u004d\u0001\u004e\u0002\uffff\u0001\u004f"+ + "\u0004\uffff\u0001\u0050\u0001\uffff\u0001\u0051", + "\u0001\u0054\u0005\uffff\u0001\u0052\u0002\uffff\u0001\u0055"+ + "\u0001\uffff\u0001\u0056\u0001\u0053", + "\u0001\u0057\u000c\uffff\u0001\u0058\u0001\uffff\u0001\u0059", + "\u0001\u005a\u0001\uffff\u0001\u005b\u0006\uffff\u0001\u005c"+ + "\u0001\u005d\u0004\uffff\u0001\u005e\u0001\u005f", + "\u0001\u0060\u0003\uffff\u0001\u0061\u0009\uffff\u0001\u0063"+ + "\u0004\uffff\u0001\u0062", + "\u0001\u0065\u0005\uffff\u0001\u0064", + "\u0001\u0066\u0003\uffff\u0001\u0067\u0009\uffff\u0001\u0068", + "\u0001\u006d\u0002\uffff\u0001\u0069\u0007\uffff\u0001\u006c"+ + "\u0001\uffff\u0001\u006a\u0001\uffff\u0001\u006b", + "\u0001\u006e\u0003\uffff\u0001\u0070\u0002\uffff\u0001\u0071"+ + "\u0009\uffff\u0001\u006f", + "\u0001\u0072", + "\u0001\u0073\u0001\uffff\u0001\u0074\u0001\uffff\u0001\u0075"+ + "\u0005\uffff\u0001\u007a\u0001\u0078\u0002\uffff\u0001\u0076"+ + "\u0004\uffff\u0001\u0077\u0002\uffff\u0001\u0079", + "\u0001\u007b\u0002\uffff\u0001\u007c\u0001\u0081\u0005\uffff"+ + "\u0001\u007d\u0002\uffff\u0001\u007e\u0002\uffff\u0001\u0080"+ + "\u0003\uffff\u0001\u007f", + "\u0001\u0082\u0001\uffff\u0001\u0083\u0002\uffff\u0001\u0084", + "\u0001\u0085\u0003\uffff\u0001\u0086", + "\u0001\u0089\u0002\uffff\u0001\u0087\u0001\u0088\u0005\uffff"+ + "\u0001\u008a", + "\u0001\u008b", + "\u0001\u008c", + "\u0001\u008d", + "\u0001\u008e", + "\u0001\u008f", + "\u0001\u0090", + "\u0001\u0092\u0016\uffff\u0001\u0093", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u009d\u0002\uffff\u0001\u009c", + "\u0001\u009f", + "", + "\u0001\u00a1", + "\u0001\u00a3", + "", + "\u0001\u00a6", + "", + "", + "\u0001\u00aa", + "\u0001\u00af\u000d\uffff\u0001\u00ae\u000c\uffff\u0001\u00ad"+ + "\u0001\u00ac\u0001\uffff\u0001\u00b0", + "\u0001\u00b2\u0001\u00b3", + "\u0001\u00b5\u000e\uffff\u0001\u00b6", + "\u0001\u00b8\u0001\uffff\u000a\u00ba", + "", + "", + "", + "", + "", + "", + "\u0001\u00c2\u0001\uffff\u000a\u00c1\u000b\uffff\u0001\u00c3"+ + "\u001f\uffff\u0001\u00c3", + "", + "\u0001\u00c4\u0001\u00c5\u0014\uffff\u0001\u00c6", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0002\u003f\u0001\u00c7"+ + "\u0017\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0013\u003f\u0001\u00c9"+ + "\u0006\u003f", + "\u0001\u00cb", + "\u0001\u00cc", + "\u0001\u00cd", + "\u0001\u00ce", + "", + "\u0001\u00cf", + "\u0001\u00d0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00d2", + "\u0001\u00d3", + "\u0001\u00d4", + "\u0001\u00d5\u0001\u00d6", + "\u0001\u00d8\u0003\uffff\u0001\u00d7", + "\u0001\u00d9\u0001\u00da\u0001\u00db\u0001\uffff\u0001\u00dc"+ + "\u0004\uffff\u0001\u00dd", + "\u0001\u00de\u0002\uffff\u0001\u00df\u0005\uffff\u0001\u00e1"+ + "\u0006\uffff\u0001\u00e0", + "\u0001\u00e4\u0004\uffff\u0001\u00e5\u0001\u00e3\u000b\uffff"+ + "\u0001\u00e6\u0002\uffff\u0001\u00e2", + "\u0001\u00e7", + "\u0001\u00e8\u000d\uffff\u0001\u00e9", + "\u0001\u00ea", + "\u0001\u00eb\u0001\u00ec\u000f\uffff\u0001\u00ed", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00ef", + "\u0001\u00f2\u0001\uffff\u0001\u00f0\u0005\uffff\u0001\u00f3"+ + "\u000a\uffff\u0001\u00f1", + "\u0001\u00f4\u0005\uffff\u0001\u00f5", + "\u0001\u00f6", + "\u0001\u00f7", + "\u0001\u00f8", + "\u0001\u00f9\u0033\uffff\u0001\u00fa\u000c\uffff\u0001\u00fb"+ + "\u0001\u00fc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00fe\u0009\uffff\u0001\u00ff", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0101", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0103", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f\u0001\u0108"+ + "\u0001\u003f\u0001\u0107\u0001\u003f\u0001\u0104\u000a\u003f"+ + "\u0001\u0105\u0001\u0106\u0006\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u010b", + "\u0001\u010e\u0004\uffff\u0001\u010d\u0004\uffff\u0001\u010c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0001\u010f\u0012\u003f"+ + "\u0001\u0110\u0001\u003f\u0001\u0111\u0004\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0115\u0007\uffff\u0001\u0114", + "\u0001\u0116\u000e\uffff\u0001\u0117", + "\u0001\u0118", + "\u0001\u0119", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0017\u003f\u0001\u011a"+ + "\u0002\u003f", + "\u0001\u011c\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f"+ + "\u0001\u011d\u000f\u003f\u0001\u011e\u0006\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0121", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f\u0001\u0122"+ + "\u0016\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000b\u003f\u0001\u0124"+ + "\u000e\u003f", + "\u0001\u0126", + "\u0001\u0127\u0001\uffff\u0001\u0128", + "\u0001\u0129\u0009\uffff\u0001\u012a", + "\u0001\u012b", + "\u0001\u012c", + "\u0001\u0131\u0001\uffff\u0001\u012e\u0001\uffff\u0001\u012f"+ + "\u0003\uffff\u0001\u012d\u0001\uffff\u0001\u0130", + "\u0001\u0133\u0006\uffff\u0001\u0132", + "\u0001\u0134\u0006\uffff\u0001\u0135", + "\u0001\u0136\u0001\uffff\u0001\u0137", + "\u0001\u0138", + "\u0001\u0139\u0003\uffff\u0001\u013b\u0009\uffff\u0001\u013c"+ + "\u0002\uffff\u0001\u013a", + "\u0001\u013d", + "\u0001\u013e", + "\u0001\u013f", + "\u0001\u0140", + "\u0001\u0141", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0143\u0013\uffff\u0001\u0144", + "\u0001\u0145", + "\u0001\u0146", + "\u0001\u0147", + "\u0001\u0148\u0005\uffff\u0001\u0149", + "\u0001\u014a\u000b\uffff\u0001\u014b", + "\u0001\u014c", + "\u0001\u014d\u0005\uffff\u0001\u014e", + "\u0001\u014f", + "\u0001\u0150\u0003\uffff\u0001\u0151", + "\u0001\u0154\u0001\uffff\u0001\u0152\u0005\uffff\u0001\u0153", + "\u0001\u0155", + "\u0001\u0156", + "\u0001\u0157", + "\u0001\u0158", + "\u0001\u0159", + "\u0001\u015a", + "\u0001\u015b", + "", + "", + "\u0002\u015d\u0002\uffff\u0001\u015d\u0012\uffff\u0001\u015d"+ + "\u0020\uffff\u001a\u015d\u0004\uffff\u0001\u015d\u0001\uffff"+ + "\u001a\u015d", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u015e", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u0160", + "\u0002\u0162\u0002\uffff\u0001\u0162\u0012\uffff\u0001\u0162"+ + "\u0020\uffff\u001a\u0162\u0004\uffff\u0001\u0162\u0001\uffff"+ + "\u001a\u0162", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u000a\u00ba\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "", + "", + "", + "", + "", + "", + "\u0001\u00c2\u0001\uffff\u000a\u00c1\u000b\uffff\u0001\u00c3"+ + "\u001f\uffff\u0001\u00c3", + "\u000a\u0164\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "", + "\u0001\u0165", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0168", + "", + "\u0001\u0169", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000e\u003f\u0001\u016a"+ + "\u000b\u003f", + "\u0001\u016c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u016e", + "\u0001\u016f", + "\u0001\u0170", + "", + "\u0001\u0171", + "\u0001\u0172", + "\u0001\u0173", + "\u0001\u0174\u000e\uffff\u0001\u0175", + "\u0001\u0176", + "\u0001\u0177", + "\u0001\u0178", + "\u0001\u0179", + "\u0001\u017a", + "\u0001\u017b\u0001\u017c", + "\u0001\u017d", + "\u0001\u017e", + "\u0001\u0180\u0002\uffff\u0001\u017f", + "\u0001\u0181", + "\u0001\u0182", + "\u0001\u0183", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0185", + "\u0001\u0186", + "\u0001\u0187", + "\u0001\u0188", + "\u0001\u0189", + "\u0001\u018a", + "\u0001\u018b", + "\u0001\u018c", + "\u0001\u018d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u018f", + "", + "\u0001\u0190", + "\u0001\u0191", + "\u0001\u0192", + "\u0001\u0193", + "\u0001\u0194", + "\u0001\u0195", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0004\u003f\u0001\u0196"+ + "\u0015\u003f", + "\u0001\u0198", + "\u0001\u0199", + "\u0001\u019a", + "\u0001\u019b", + "\u0001\u019c", + "\u0001\u019d", + "\u0001\u019e", + "", + "\u0001\u019f", + "\u0001\u01a0", + "", + "\u0001\u01a1", + "", + "\u0001\u01a2", + "\u0001\u01a3", + "\u0001\u01a5\u000e\uffff\u0001\u01a4", + "\u0001\u01a6\u0009\uffff\u0001\u01a7", + "\u0001\u01a8", + "\u0001\u01a9", + "", + "", + "\u0001\u01aa", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01ac", + "\u0001\u01ad", + "\u0001\u01ae", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01b0", + "", + "", + "\u0001\u01b1", + "\u0001\u01b2", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u01b4"+ + "\u000b\u003f\u0001\u01b3\u0005\u003f", + "\u0001\u01b6", + "\u0001\u01b7", + "\u0001\u01b8", + "\u0001\u01b9", + "", + "\u0001\u01ba\u0006\uffff\u0001\u01bb", + "\u0001\u01bc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u01be", + "\u0001\u01bf", + "", + "\u0001\u01c0", + "", + "\u0001\u01c1", + "\u0001\u01c3\u0003\uffff\u0001\u01c2", + "\u0001\u01c4", + "\u0001\u01c5\u000f\uffff\u0001\u01c6\u0002\uffff\u0001\u01c7", + "\u0001\u01c8", + "\u0001\u01ca\u0035\uffff\u0001\u01c9", + "\u0001\u01cb", + "\u0001\u01cc", + "\u0001\u01cd", + "\u0001\u01ce", + "\u0001\u01cf", + "\u0001\u01d0", + "\u0001\u01d1", + "\u0001\u01d2", + "\u0001\u01d3", + "\u0001\u01d4", + "\u0001\u01d5", + "\u0001\u01d6\u0001\u01d7", + "\u0001\u01d8", + "\u0001\u01d9\u000f\uffff\u0001\u01da", + "\u0001\u01db", + "\u0001\u01dc", + "\u0001\u01dd", + "\u0001\u01de", + "\u0001\u01df", + "\u0001\u01e0", + "\u0001\u01e1", + "\u0001\u01e2\u0004\uffff\u0001\u01e3", + "", + "\u0001\u01e4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01e6", + "\u0001\u01e7", + "\u0001\u01e8", + "\u0001\u01e9\u0001\uffff\u0001\u01ea", + "\u0001\u01eb", + "\u0001\u01ec", + "\u0001\u01ed", + "\u0001\u01ee", + "\u0001\u01ef\u000b\uffff\u0001\u01f0", + "\u0001\u01f1", + "\u0001\u01f2", + "\u0001\u01f4\u0003\uffff\u0001\u01f3", + "\u0001\u01f5", + "\u0001\u01f6", + "\u0001\u01f7", + "\u0001\u01f8", + "\u0001\u01f9", + "\u0001\u01fa", + "\u0001\u01fb", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01fd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01ff", + "", + "", + "", + "", + "\u0001\u0200", + "", + "", + "", + "\u000a\u0164\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "\u0001\u0201", + "", + "", + "\u0001\u0202", + "\u0001\u0203", + "\u0001\u0204", + "", + "\u0001\u0205", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0207", + "\u0001\u0208", + "\u0001\u0209", + "\u0001\u020a", + "\u0001\u020b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0001\u020d\u0019\u003f", + "\u0001\u020f", + "\u0001\u0210", + "\u0001\u0211", + "\u0001\u0212\u0003\uffff\u0001\u0213", + "\u0001\u0214", + "\u0001\u0215", + "\u0001\u0217\u0003\uffff\u0001\u0216\u0003\uffff\u0001\u0218", + "\u0001\u0219\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u021b", + "\u0001\u021c", + "\u0001\u021d", + "\u0001\u021e", + "\u0001\u021f", + "\u0001\u0220", + "", + "\u0001\u0221", + "\u0001\u0222", + "\u0001\u0223", + "\u0001\u0224", + "\u0001\u0225", + "\u0001\u0226", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0228", + "\u0001\u0229", + "", + "\u0001\u022a", + "\u0001\u022b", + "\u0001\u022c", + "\u0001\u022d", + "\u0001\u022e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0230", + "\u0001\u0231\u0007\uffff\u0001\u0232", + "", + "\u0001\u0233", + "\u0001\u0234", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0236", + "\u0001\u0237", + "\u0001\u0238", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u023a", + "\u0001\u023b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u023d", + "\u0001\u023e", + "\u0001\u023f", + "\u0001\u0241\u0003\uffff\u0001\u0240", + "\u0001\u0243\u000a\uffff\u0001\u0242", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0245", + "\u0001\u0246", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0249", + "\u0001\u024a", + "", + "\u0001\u024b", + "\u0001\u024c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u024e", + "\u0001\u024f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0251", + "\u0001\u0252", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0254", + "\u0001\u0255", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0256"+ + "\u0007\u003f", + "", + "\u0001\u0258", + "\u0001\u0259", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u025b", + "\u0001\u025c", + "\u0001\u025d", + "\u0001\u025e", + "\u0001\u025f", + "\u0001\u0260", + "\u0001\u0261", + "\u0001\u0262", + "\u0001\u0263", + "\u0001\u0264", + "\u0001\u0265", + "\u0001\u0266", + "\u0001\u0267", + "\u0001\u0268", + "\u0001\u0269", + "\u0001\u026a", + "\u0001\u026b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u026d", + "\u0001\u026e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0270", + "\u0001\u0271", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0273", + "\u0001\u0274", + "\u0001\u0275\u000c\uffff\u0001\u0276", + "\u0001\u0277", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0279", + "\u0001\u027a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u027e", + "\u0001\u027f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0280"+ + "\u0007\u003f", + "\u0001\u0282", + "\u0001\u0283", + "\u0001\u0284", + "\u0001\u0285", + "\u0001\u0286", + "\u0001\u0287", + "\u0001\u0288", + "\u0001\u0289", + "\u0001\u028a", + "\u0001\u028b", + "\u0001\u028c", + "\u0001\u028d", + "\u0001\u028e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0290", + "\u0001\u0291", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000e\u003f\u0001\u0292"+ + "\u000b\u003f", + "\u0001\u0294", + "\u0001\u0295", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0296"+ + "\u0007\u003f", + "\u0001\u0298", + "", + "\u0001\u0299", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0000\u029c", + "\u0001\u029d", + "\u0001\u029e", + "\u0001\u029f", + "\u0001\u02a0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02a2", + "\u0001\u02a3", + "\u0001\u02a4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02a6", + "", + "\u0001\u02a7", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02ab", + "\u0001\u02ac", + "\u0001\u02ad", + "\u0001\u02ae", + "\u0001\u02b0\u0009\uffff\u0001\u02af", + "\u0001\u02b1", + "\u0001\u02b2", + "\u0001\u02b3", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02b5", + "\u0001\u02b6", + "\u0001\u02b7", + "\u0001\u02b8", + "\u0001\u02b9", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02bb", + "\u0001\u02bc", + "\u0001\u02bd", + "\u0001\u02be", + "\u0001\u02bf", + "", + "\u0001\u02c0\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02c2", + "\u0001\u02c3", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02c5", + "\u0001\u02c6", + "\u0001\u02c7", + "", + "\u0001\u02c8", + "\u0001\u02c9", + "\u0001\u02ca", + "\u0001\u02cb", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02cd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02d0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u02d1"+ + "\u0011\u003f", + "", + "\u0001\u02d3", + "\u0001\u02d4", + "\u0001\u02d5", + "\u0001\u02d6", + "\u0001\u02d7", + "\u0001\u02d8", + "\u0001\u02d9", + "", + "\u0001\u02da", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u02dc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02de", + "\u0001\u02df", + "", + "\u0001\u02e0", + "\u0001\u02e1", + "", + "\u0001\u02e2", + "\u0001\u02e3", + "", + "\u0001\u02e4", + "\u0001\u02e5", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02e7", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0004\u003f\u0001\u02e8"+ + "\u0003\u003f\u0001\u02e9\u0011\u003f", + "", + "\u0001\u02eb", + "\u0001\u02ec", + "\u0001\u02ed", + "\u0001\u02ee", + "\u0001\u02ef", + "\u0001\u02f0", + "\u0001\u02f1", + "\u0001\u02f2", + "\u0001\u02f3", + "\u0001\u02f4", + "\u0001\u02f5", + "\u0001\u02f6", + "\u0001\u02f7", + "\u0001\u02f8", + "\u0001\u02f9", + "\u0001\u02fa", + "\u0001\u02fb", + "", + "\u0001\u02fc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02fe", + "\u0001\u02ff", + "", + "\u0001\u0300", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0302", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0304", + "", + "\u0001\u0305", + "\u0001\u0306", + "", + "", + "", + "\u0001\u0307", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0309", + "", + "\u0001\u030a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u030d", + "\u0001\u030e", + "\u0001\u030f", + "\u0001\u0310", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0312", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0314", + "\u0001\u0315", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0318", + "\u0001\u0319", + "", + "\u0001\u031a", + "\u0001\u031b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u031d", + "\u0001\u031e", + "", + "", + "", + "\u0001\u031f", + "\u0001\u0320", + "\u0001\u0321", + "\u0001\u0322", + "", + "\u0001\u0323", + "\u0001\u0324", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0327", + "", + "", + "", + "\u0001\u0328", + "\u0001\u0329", + "\u0001\u032a", + "\u0001\u032c\u0013\uffff\u0001\u032b", + "\u0001\u032d", + "\u0001\u032e", + "\u0001\u032f", + "\u0001\u0330", + "\u0001\u0331", + "", + "\u0001\u0332", + "\u0001\u0333", + "\u0001\u0334", + "\u0001\u0335", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0337", + "\u0001\u0338", + "\u0001\u0339", + "\u0001\u033a", + "\u0001\u033b", + "\u0001\u033c", + "", + "\u0001\u033d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0340", + "\u0001\u0341", + "\u0001\u0342", + "\u0001\u0343", + "\u0001\u0344", + "\u0001\u0345", + "", + "\u0001\u0346", + "", + "", + "\u0001\u0347", + "\u0001\u0348", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u034a", + "\u0001\u034b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u034d", + "\u0001\u034e", + "\u0001\u034f", + "\u0001\u0350", + "", + "\u0001\u0351", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0353", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0356", + "\u0001\u0357", + "\u0001\u0358", + "\u0001\u0359", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u035b", + "\u0001\u035c", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u035f", + "\u0001\u0360", + "\u0001\u0361", + "\u0001\u0362", + "\u0001\u0363", + "\u0001\u0364", + "\u0001\u0365", + "\u0001\u0366", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u0368"+ + "\u0011\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u036b", + "\u0001\u036c", + "\u0001\u036d", + "\u0001\u036e", + "\u0001\u036f\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0371", + "\u0001\u0372", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0375", + "\u0001\u0376", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0378", + "", + "\u0001\u0379", + "\u0001\u037a", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u037c", + "\u0001\u037d", + "\u0001\u037e", + "", + "\u0001\u037f", + "", + "\u0001\u0380", + "\u0001\u0381", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0383", + "\u0001\u0384", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0387", + "\u0001\u0388", + "\u0001\u0389", + "\u0001\u038a", + "\u0001\u038b", + "\u0001\u038c", + "\u0001\u038d", + "", + "", + "\u0001\u038e", + "\u0001\u038f", + "\u0001\u0390", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0392", + "\u0001\u0393", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0396", + "\u0001\u0397", + "\u0001\u0398", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u039a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u039c\u0007\uffff\u0001\u039d", + "", + "\u0001\u039e", + "\u0001\u039f", + "\u0001\u03a0", + "\u0001\u03a1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03a3", + "\u0001\u03a4", + "", + "", + "\u0001\u03a5", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03a7", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03aa", + "\u0001\u03ab", + "\u0001\u03ac", + "\u0001\u03ad", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03af", + "", + "\u0001\u03b0", + "\u0001\u03b1", + "\u0001\u03b2", + "\u0001\u03b3", + "\u0001\u03b4", + "", + "\u0001\u03b5", + "", + "", + "\u0001\u03b6", + "\u0001\u03b7", + "\u0001\u03b8", + "\u0001\u03b9", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03bb", + "", + "", + "\u0001\u03bc", + "\u0001\u03bd", + "\u0001\u03be", + "\u0001\u03bf", + "\u0001\u03c0", + "\u0001\u03c1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03c3", + "", + "\u0001\u03c4", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03c6", + "\u0001\u03c7", + "\u0001\u03c8", + "\u0001\u03c9\u0003\uffff\u0001\u03ca", + "", + "\u0001\u03cb", + "\u0001\u03cc", + "", + "", + "\u0001\u03cd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03cf", + "\u0001\u03d0", + "\u0001\u03d1", + "", + "\u0001\u03d2", + "\u0001\u03d3", + "\u0001\u03d4", + "\u0001\u03d5", + "\u0001\u03d6", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03d9", + "", + "", + "\u0001\u03da", + "\u0001\u03db\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03dd", + "\u0001\u03de", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e3", + "\u0001\u03e4", + "", + "\u0001\u03e5", + "\u0001\u03e6", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e9", + "", + "\u0001\u03ea\u000c\uffff\u0001\u03eb", + "", + "\u0001\u03ec", + "\u0001\u03ed", + "\u0001\u03ee", + "\u0001\u03ef", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03f1\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03f3", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03f6", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03f8", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03fa", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03fc", + "\u0001\u03fd", + "\u0001\u03fe", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0401", + "\u0001\u0402", + "\u0001\u0403", + "\u0001\u0404", + "\u0001\u0405", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0407", + "\u0001\u0408", + "\u0001\u0409", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u040c", + "", + "\u0001\u040d", + "\u0001\u040e", + "", + "\u0001\u040f", + "\u0001\u0410", + "\u0001\u0411", + "\u0001\u0412", + "\u0001\u0413", + "\u0001\u0414", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0415"+ + "\u0007\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0418", + "\u0001\u0419", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u041b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u041d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0420", + "\u0001\u0421", + "\u0001\u0422", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0425", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0427", + "\u0001\u0428", + "\u0001\u0429", + "", + "", + "\u0001\u042a", + "\u0001\u042b", + "\u0001\u042c", + "\u0001\u042d", + "\u0001\u042e", + "\u0001\u042f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0431", + "", + "\u0001\u0432", + "", + "", + "\u0001\u0433\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0436", + "", + "\u0001\u0437", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u043b", + "\u0001\u043c\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u043e", + "\u0001\u043f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0440"+ + "\u0007\u003f", + "\u0001\u0442", + "\u0001\u0443\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0445", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0448", + "\u0001\u0449", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u044b", + "\u0001\u044c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0450", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0454", + "\u0001\u0455", + "", + "", + "\u0001\u0456", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0458", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u045a", + "\u0001\u045b", + "\u0001\u045c", + "\u0001\u045d\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0461", + "\u0001\u0462", + "\u0001\u0463", + "", + "", + "\u0001\u0464", + "\u0001\u0465", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0467", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0469", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u046b", + "\u0001\u046c", + "", + "\u0001\u046d", + "", + "", + "\u0001\u046e", + "\u0001\u046f", + "", + "\u0001\u0470", + "\u0001\u0471", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0474", + "\u0001\u0475", + "", + "\u0001\u0476", + "", + "\u0001\u0477", + "\u0001\u0478", + "\u0001\u0479", + "\u0001\u047a", + "", + "", + "", + "\u0001\u047b", + "\u0001\u047c", + "\u0001\u047d", + "\u0001\u047e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0480", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0482", + "\u0001\u0483", + "\u0001\u0484", + "\u0001\u0485", + "\u0001\u0486", + "\u0001\u0487", + "\u0001\u0488", + "", + "", + "\u0001\u0489", + "\u0001\u048a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u048c", + "\u0001\u048d", + "\u0001\u048e", + "\u0001\u048f", + "\u0001\u0490", + "\u0001\u0491", + "\u0001\u0492", + "\u0001\u0493", + "", + "\u0001\u0494", + "", + "\u0001\u0495", + "\u0001\u0496", + "\u0001\u0497", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u049a", + "\u0001\u049b", + "\u0001\u049c", + "\u0001\u049d", + "", + "\u0001\u049e", + "\u0001\u049f", + "\u0001\u04a0", + "\u0001\u04a1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04a3", + "\u0001\u04a4", + "\u0001\u04a5", + "\u0001\u04a6", + "\u0001\u04a7", + "\u0001\u04a8", + "\u0001\u04a9", + "", + "", + "\u0001\u04aa", + "\u0001\u04ab", + "\u0001\u04ac", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04ae", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b0", + "\u0001\u04b1", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b3", + "\u0001\u04b4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b6", + "\u0001\u04b7", + "\u0001\u04b8", + "\u0001\u04b9", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04bb", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u04bd", + "\u0001\u04be", + "", + "\u0001\u04bf", + "\u0001\u04c0", + "", + "\u0001\u04c1", + "\u0001\u04c2", + "\u0001\u04c3", + "\u0001\u04c4", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u04c6", + "\u0001\u04c7", + "\u0001\u04c8", + "\u0001\u04c9", + "\u0001\u04ca", + "\u0001\u04cb", + "\u0001\u04cc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04cf", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04d1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04d4", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u04d7", + "", + "", + "\u0001\u04d8", + "\u0001\u04d9", + "\u0001\u04da", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryLexer, { + DFA19_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_eotS), + DFA19_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_eofS), + DFA19_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryLexer.DFA19_minS), + DFA19_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryLexer.DFA19_maxS), + DFA19_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_acceptS), + DFA19_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_specialS), + DFA19_transition: (function() { + var a = [], + i, + numStates = XQueryLexer.DFA19_transitionS.length; + for (i=0; i') ) {s = 45;} + + else if ( (LA19_0=='/') ) {s = 46;} + + else if ( (LA19_0=='.') ) {s = 47;} + + else if ( (LA19_0==';') ) {s = 48;} + + else if ( (LA19_0=='@') ) {s = 49;} + + else if ( (LA19_0=='\'') ) {s = 50;} + + else if ( (LA19_0=='\"') ) {s = 51;} + + else if ( ((LA19_0>='A' && LA19_0<='M')||(LA19_0>='O' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='h'||LA19_0=='j'||LA19_0=='y') ) {s = 52;} + + else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 53;} + + else if ( ((LA19_0>='0' && LA19_0<='9')) ) {s = 54;} + + else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='\\'||LA19_0=='^'||LA19_0=='`'||(LA19_0>='~' && LA19_0<='\uFFFF')) ) {s = 55;} + + if ( s>=0 ) return s; + break; + case 1 : + var LA19_26 = input.LA(1); + + + var index19_26 = input.index(); + input.rewind(); + s = -1; + if ( (LA19_26=='#') ) {s = 146;} + + else if ( (LA19_26==':') && ((!this.inStr))) {s = 147;} + + else s = 148; + + + input.seek(index19_26); + if ( s>=0 ) return s; + break; + case 2 : + var LA19_512 = input.LA(1); + + s = -1; + if ( ((LA19_512>='\u0000' && LA19_512<='\uFFFF')) ) {s = 668;} + + else s = 667; + + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 19, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.XQueryLexer = XQueryLexer; +});/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/XQDTLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all'], function(require, exports, module) { + +var org = require("./antlr3-all").org; + +var XQDTLexer = exports.XQDTLexer = function(input, state) +{ + XQDTLexer.superclass.constructor.call(this, input, state); +}; + +org.antlr.lang.extend(XQDTLexer, org.antlr.runtime.Lexer, { + + comments: [], + + addComment: function(start, stop){ }, + + isWsExplicit: false, + + setIsWsExplicit: function (wsExplicit) { + //console.log("A WS: " + wsExplicit); + this.isWsExplicit = wsExplicit; + //console.log("B WS: " + wsExplicit); + }, + + addToStack: function (stack) { + stack.push(this); + }, + + rewindToIndex: function(index) { + var stream = this.input; + stream.seek(index); + } +}); + +}); +define('ace/mode/xquery/XQueryParser', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/StringLexer', 'ace/mode/xquery/XMLLexer', 'ace/mode/xquery/XQueryLexer', 'ace/mode/xquery/XQDTParser', 'ace/mode/xquery/Position'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryParser.g 2012-04-23 09:27:07 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var StringLexer = require("./StringLexer").StringLexer; +var XMLLexer = require("./XMLLexer").XMLLexer; +var XQueryLexer = require("./XQueryLexer").XQueryLexer; +var XQDTParser = require("./XQDTParser").XQDTParser; +var Position = require("./Position").Position; +var Exception = function(){}; + +var XQS = true; +var XQU = true; +var ZORBA = true; +var MLS = false; + + + +var XQueryParser = function(input, state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.isInAttr = false; + + this.errors = []; + + this.hasErrors = function(){ + return this.errors.length > 0; + }; + + this.addError = function(error){ + this.errors.push(error); + }; + + this.getErrors = function(){ + return this.errors; + }; + + this.source = null; + this.setSource = function(s){ + this.source = s; + this.highlighter.setSource(s); + }; + + this.lexerStack = new Array(); + + this.lc = function(b){ return b; }; + this.popLexer = function (){ + //console.log("popLexer"); + if(this.lexerStack.length == 0) return; + this.getTokenStream().mark(); + var oldLexer = this.getTokenStream().getTokenSource(); + var newLexer = this.lexerStack.pop(); + if(oldLexer instanceof StringLexer && newLexer instanceof XQueryLexer) { + newLexer.inStr = false; + } + this.getTokenStream().setTokenSource(newLexer); + }; + + this.pushXQueryLexer = function() { + xqueryLexer = new XQueryLexer(this.source); + this.pushLexer(xqueryLexer); + }; + + this.pushStringLexer = function(isAposStr){ + //console.log("pushStringLexer"); + var stringLexer = new StringLexer(this.source); + stringLexer.inAposStr = isAposStr; + stringLexer.inQuotStr = !isAposStr; + stringLexer.setIsWsExplicit(true); + this.pushLexer(stringLexer); + }; + + this.pushXMLLexer = function(){ + //console.log("pushXMLLexer"); + var xmlLexer = new XMLLexer(this.source); + xmlLexer.setIsWsExplicit(true); + this.pushLexer(xmlLexer); + }; + + this.pushLexer = function(lexer){ + var oldLexer = this.getTokenStream().getTokenSource(); + oldLexer.addToStack(this.lexerStack); + this.getTokenStream().setTokenSource(lexer); + }; + + this.setWsExplicit = function(isExplicit){ + this.getTokenStream().setWsExplicit(isExplicit); + }; + + this.ap = function(token) + { + this.addToken(token, "xml_pe"); + }; + + this.ax = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "xml_pe"); + }; + + this.at = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "meta.tag"); + }; + + this.av = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "variable"); + }; + + this.af = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "support.function"); + }; + + this.ao = function(t) + { + this.addToken(t, "keyword.operator"); + }; + + this.ak = function(t) + { + this.addToken(t, "keyword"); + }; + + this.ad = function(t) + { + this.addToken(t, "constant"); + }; + + this.addString = function(start, stop) + { + if(stop == undefined) { + this.addToken(start, "string"); + } else { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "string"); + } + }; + + this.ac = function(t) + { + this.addToken(t, "comment"); + }; + + this.addToken = function(k, type){ + if(org.antlr.lang.isArray(k)){ + for(i in k) + { + this.highlighter.addToken(k[i].getStartIndex(), k[i].getStopIndex(), type); + } + } else if(k != null ) { + this.highlighter.addToken(k.getStartIndex(), k.getStopIndex(), type); + } + }; + + + }).call(this); + + XQueryParser.superclass.constructor.call(this, input, state); + + this.dfa1 = new XQueryParser.DFA1(this); + this.dfa2 = new XQueryParser.DFA2(this); + this.dfa6 = new XQueryParser.DFA6(this); + this.dfa9 = new XQueryParser.DFA9(this); + this.dfa44 = new XQueryParser.DFA44(this); + this.dfa46 = new XQueryParser.DFA46(this); + this.dfa117 = new XQueryParser.DFA117(this); + this.dfa119 = new XQueryParser.DFA119(this); + this.dfa121 = new XQueryParser.DFA121(this); + this.dfa126 = new XQueryParser.DFA126(this); + this.dfa134 = new XQueryParser.DFA134(this); + this.dfa162 = new XQueryParser.DFA162(this); + this.dfa164 = new XQueryParser.DFA164(this); + this.dfa218 = new XQueryParser.DFA218(this); + this.dfa237 = new XQueryParser.DFA237(this); + this.dfa253 = new XQueryParser.DFA253(this); + + + + /* @todo only create adaptor if output=AST */ + this.adaptor = new org.antlr.runtime.tree.CommonTreeAdaptor(); + +}; + +org.antlr.lang.augmentObject(XQueryParser, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + L_QuotStringLiteralChar: 283, + L_AposStringLiteralChar: 284, + LibraryModule: 285, + MainModule: 286, + VersionDecl: 287, + VersionDeclEncoding: 288, + VersionDeclVersion: 289, + ModuleDecl: 290, + Prolog: 291, + DefaultNamespaceDecls: 292, + DefaultNamespaceDecl: 293, + Setters: 294, + Setter: 295, + NamespaceDecls: 296, + NamespaceDecl: 297, + Imports: 298, + FTOptionDecls: 299, + SchemaImport: 300, + SchemaPrefix: 301, + NamespaceName: 302, + DefaultElementNamespace: 303, + AtHints: 304, + ModuleImport: 305, + BaseURIDecl: 306, + OrderedDecls: 307, + VarDecl: 308, + VarType: 309, + VarValue: 310, + VarDefaultValue: 311, + VarVariableDecl: 312, + FunctionDecl: 313, + ParamList: 314, + ReturnType: 315, + OptionDecl: 316, + TypeDeclaration: 317, + Param: 318, + EnclosedExpr: 319, + QueryBody: 320, + UnaryExpr: 321, + DirElemConstructor: 322, + DirAttributeList: 323, + DirAttributeValue: 324, + DirElemContent: 325, + CommonContent: 326, + SequenceType: 327, + EmptySequenceTest: 328, + KindTest: 329, + ItemTest: 330, + FunctionTest: 331, + AtomicType: 332, + AtomicOrUnionType: 333, + StringLiteral: 334, + ElementContentChar: 335, + AttributeValueChar: 336, + QName: 337, + BlockExpr: 338, + BinaryTest: 339, + EXPLICITLY: 340 +}); + +(function(){ +// public class variables +var EOF= -1, + L_QuotAttrContentChar= 4, + L_AposAttrContentChar= 5, + L_ElementContentChar= 6, + L_CDataSection= 7, + L_PredefinedEntityRef= 8, + L_CharRef= 9, + ESCAPE_LBRACKET= 10, + ESCAPE_RBRACKET= 11, + ESCAPE_APOS= 12, + ESCAPE_QUOT= 13, + CDATA_START= 14, + CDATA_END= 15, + ANCESTOR= 16, + ANCESTOR_OR_SELF= 17, + AND= 18, + AS= 19, + ASCENDING= 20, + AT= 21, + ATTRIBUTE= 22, + BASE_URI= 23, + BOUNDARY_SPACE= 24, + BY= 25, + CASE= 26, + CAST= 27, + CASTABLE= 28, + CHILD= 29, + COLLATION= 30, + COMMENT= 31, + CONSTRUCTION= 32, + COPY_NAMESPACES= 33, + DECLARE= 34, + DEFAULT= 35, + DESCENDANT= 36, + DESCENDANT_OR_SELF= 37, + DESCENDING= 38, + DIV= 39, + DOCUMENT= 40, + DOCUMENT_NODE= 41, + ELEMENT= 42, + ELSE= 43, + EMPTY= 44, + EMPTY_SEQUENCE= 45, + ENCODING= 46, + EQ= 47, + EVERY= 48, + EXCEPT= 49, + EXTERNAL= 50, + FOLLOWING= 51, + FOLLOWING_SIBLING= 52, + FOR= 53, + FUNCTION= 54, + GE= 55, + GREATEST= 56, + GT= 57, + IDIV= 58, + IF= 59, + IMPORT= 60, + IN= 61, + INHERIT= 62, + INSTANCE= 63, + INTERSECT= 64, + IS= 65, + ITEM= 66, + LAX= 67, + LE= 68, + LEAST= 69, + LET= 70, + LT= 71, + MOD= 72, + MODULE= 73, + NAMESPACE= 74, + NE= 75, + NO_INHERIT= 76, + NO_PRESERVE= 77, + NODE= 78, + OF= 79, + OPTION= 80, + OR= 81, + ORDER= 82, + ORDERED= 83, + ORDERING= 84, + PARENT= 85, + PRECEDING= 86, + PRECEDING_SIBLING= 87, + PRESERVE= 88, + PROCESSING_INSTRUCTION= 89, + RETURN= 90, + SATISFIES= 91, + SCHEMA= 92, + SCHEMA_ATTRIBUTE= 93, + SCHEMA_ELEMENT= 94, + SELF= 95, + SOME= 96, + STABLE= 97, + STRICT= 98, + STRIP= 99, + TEXT= 100, + THEN= 101, + TO= 102, + TREAT= 103, + TYPESWITCH= 104, + UNION= 105, + UNORDERED= 106, + VALIDATE= 107, + VARIABLE= 108, + VERSION= 109, + WHERE= 110, + XQUERY= 111, + ALLOWING= 112, + CATCH= 113, + CONTEXT= 114, + COUNT= 115, + DECIMAL_FORMAT= 116, + DECIMAL_SEPARATOR= 117, + DIGIT= 118, + END= 119, + GROUP= 120, + GROUPING_SEPARATOR= 121, + INFINITY= 122, + MINUS_SIGN= 123, + NAMESPACE_NODE= 124, + NAN= 125, + NEXT= 126, + ONLY= 127, + PATTERN_SEPARATOR= 128, + PERCENT= 129, + PER_MILLE= 130, + PREVIOUS= 131, + SLIDING= 132, + START= 133, + SWITCH= 134, + TRY= 135, + TUMBLING= 136, + TYPE= 137, + WHEN= 138, + WINDOW= 139, + ZERO_DIGIT= 140, + AFTER= 141, + BEFORE= 142, + COPY= 143, + DELETE= 144, + FIRST= 145, + INSERT= 146, + INTO= 147, + LAST= 148, + MODIFY= 149, + NODES= 150, + RENAME= 151, + REPLACE= 152, + REVALIDATION= 153, + SKIP= 154, + UPDATING= 155, + VALUE= 156, + WITH= 157, + ALL= 158, + ANY= 159, + CONTAINS= 160, + CONTENT= 161, + DIACRITICS= 162, + DIFFERENT= 163, + DISTANCE= 164, + ENTIRE= 165, + EXACTLY= 166, + FROM= 167, + FT_OPTION= 168, + FTAND= 169, + FTNOT= 170, + FTOR= 171, + INSENSITIVE= 172, + LANGUAGE= 173, + LEVELS= 174, + LOWERCASE= 175, + MOST= 176, + NO= 177, + NOT= 178, + OCCURS= 179, + PARAGRAPH= 180, + PARAGRAPHS= 181, + PHRASE= 182, + RELATIONSHIP= 183, + SAME= 184, + SCORE= 185, + SENSITIVE= 186, + SENTENCE= 187, + SENTENCES= 188, + STEMMING= 189, + STOP= 190, + THESAURUS= 191, + TIMES= 192, + UPPERCASE= 193, + USING= 194, + WEIGHT= 195, + WILDCARDS= 196, + WITHOUT= 197, + WORD= 198, + WORDS= 199, + BREAK= 200, + CONTINUE= 201, + EXIT= 202, + LOOP= 203, + RETURNING= 204, + WHILE= 205, + CHECK= 206, + COLLECTION= 207, + CONSTRAINT= 208, + FOREACH= 209, + FOREIGN= 210, + INDEX= 211, + INTEGRITY= 212, + KEY= 213, + ON= 214, + UNIQUE= 215, + BINARY= 216, + AMP_ER= 217, + APOS_ER= 218, + QUOT_ER= 219, + CONCAT= 220, + LPAREN= 221, + RPAREN= 222, + DOLLAR= 223, + LBRACKET= 224, + RBRACKET= 225, + LSQUARE= 226, + RSQUARE= 227, + EQUAL= 228, + BIND= 229, + NOTEQUAL= 230, + ANN_PERCENT= 231, + HASH= 232, + AMP= 233, + COMMA= 234, + QUESTION= 235, + STAR= 236, + PLUS= 237, + MINUS= 238, + SMALLER= 239, + GREATER= 240, + SMALLEREQ= 241, + GREATEREQ= 242, + SMALLER_SMALLER= 243, + GREATER_GREATER= 244, + SLASH= 245, + SLASH_SLASH= 246, + DOT= 247, + DOT_DOT= 248, + COLON= 249, + COLON_COLON= 250, + EMPTY_CLOSE_TAG= 251, + CLOSE_TAG= 252, + SEMICOLON= 253, + VBAR= 254, + PRAGMA_START= 255, + PRAGMA_END= 256, + XML_COMMENT_START= 257, + XML_COMMENT_END= 258, + PI_START= 259, + PI_END= 260, + ATTR_SIGN= 261, + CHARREF_DEC= 262, + CHARREF_HEX= 263, + APOS= 264, + QUOT= 265, + NCNameStartChar= 266, + NCNameChar= 267, + L_NCName= 268, + Letter= 269, + HexLetter= 270, + Digit= 271, + Digits= 272, + S= 273, + SU= 274, + L_Pragma= 275, + L_DirCommentConstructor= 276, + L_DirPIConstructor= 277, + L_IntegerLiteral= 278, + L_DecimalLiteral= 279, + L_DoubleLiteral= 280, + L_Comment= 281, + L_AnyChar= 282, + L_QuotStringLiteralChar= 283, + L_AposStringLiteralChar= 284, + LibraryModule= 285, + MainModule= 286, + VersionDecl= 287, + VersionDeclEncoding= 288, + VersionDeclVersion= 289, + ModuleDecl= 290, + Prolog= 291, + DefaultNamespaceDecls= 292, + DefaultNamespaceDecl= 293, + Setters= 294, + Setter= 295, + NamespaceDecls= 296, + NamespaceDecl= 297, + Imports= 298, + FTOptionDecls= 299, + SchemaImport= 300, + SchemaPrefix= 301, + NamespaceName= 302, + DefaultElementNamespace= 303, + AtHints= 304, + ModuleImport= 305, + BaseURIDecl= 306, + OrderedDecls= 307, + VarDecl= 308, + VarType= 309, + VarValue= 310, + VarDefaultValue= 311, + VarVariableDecl= 312, + FunctionDecl= 313, + ParamList= 314, + ReturnType= 315, + OptionDecl= 316, + TypeDeclaration= 317, + Param= 318, + EnclosedExpr= 319, + QueryBody= 320, + UnaryExpr= 321, + DirElemConstructor= 322, + DirAttributeList= 323, + DirAttributeValue= 324, + DirElemContent= 325, + CommonContent= 326, + SequenceType= 327, + EmptySequenceTest= 328, + KindTest= 329, + ItemTest= 330, + FunctionTest= 331, + AtomicType= 332, + AtomicOrUnionType= 333, + StringLiteral= 334, + ElementContentChar= 335, + AttributeValueChar= 336, + QName= 337, + BlockExpr= 338, + BinaryTest= 339, + EXPLICITLY= 340; + +// public instance methods/vars +org.antlr.lang.extend(XQueryParser, XQDTParser, { + + setTreeAdaptor: function(adaptor) { + this.adaptor = adaptor; + }, + getTreeAdaptor: function() { + return this.adaptor; + }, + + getTokenNames: function() { return XQueryParser.tokenNames; }, + getGrammarFileName: function() { return "xquery/XQueryParser.g"; } +}); +org.antlr.lang.augmentObject(XQueryParser.prototype, { + + // inline static return class + p_Module_return: (function() { + XQueryParser.p_Module_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Module_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:295:1: p_Module : (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF ; + // $ANTLR start "p_Module" + p_Module: function() { + var retval = new XQueryParser.p_Module_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var EOF1 = null; + var vd = null; + var lm = null; + var mm = null; + + var EOF1_tree=null; + var stream_EOF=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EOF"); + var stream_p_VersionDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VersionDecl"); + var stream_p_LibraryModule=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_LibraryModule"); + var stream_p_MainModule=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_MainModule"); + try { + // xquery/XQueryParser.g:296:9: ( (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF ) + // xquery/XQueryParser.g:296:11: (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF + // xquery/XQueryParser.g:296:13: (vd= p_VersionDecl )? + var alt1=2; + alt1 = this.dfa1.predict(this.input); + switch (alt1) { + case 1 : + // xquery/XQueryParser.g:296:13: vd= p_VersionDecl + this.pushFollow(XQueryParser.FOLLOW_p_VersionDecl_in_p_Module507); + vd=this.p_VersionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VersionDecl.add(vd.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:297:13: (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) + var alt2=2; + alt2 = this.dfa2.predict(this.input); + switch (alt2) { + case 1 : + // xquery/XQueryParser.g:298:15: lm= p_LibraryModule[$vd.tree] + this.pushFollow(XQueryParser.FOLLOW_p_LibraryModule_in_p_Module540); + lm=this.p_LibraryModule((vd?vd.tree:null)); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_LibraryModule.add(lm.getTree()); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 298:44: -> + { + this.adaptor.addChild(root_0, (lm?lm.tree:null)); + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:299:15: mm= p_MainModule[$vd.tree] + this.pushFollow(XQueryParser.FOLLOW_p_MainModule_in_p_Module563); + mm=this.p_MainModule((vd?vd.tree:null)); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_MainModule.add(mm.getTree()); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 299:44: -> + { + this.adaptor.addChild(root_0, (mm?mm.tree:null)); + + } + + retval.tree = root_0;} + + break; + + } + + EOF1=this.match(this.input,EOF,XQueryParser.FOLLOW_EOF_in_p_Module587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EOF.add(EOF1); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VersionDecl_return: (function() { + XQueryParser.p_VersionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VersionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:304:1: p_VersionDecl : k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) ; + // $ANTLR start "p_VersionDecl" + p_VersionDecl: function() { + var retval = new XQueryParser.p_VersionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON2 = null; + var enc = null; + var ver = null; + + var k_tree=null; + var SEMICOLON2_tree=null; + var stream_ENCODING=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ENCODING"); + var stream_VERSION=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token VERSION"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_XQUERY=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token XQUERY"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:305:9: (k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) ) + // xquery/XQueryParser.g:305:11: k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON + k=this.match(this.input,XQUERY,XQueryParser.FOLLOW_XQUERY_in_p_VersionDecl615); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_XQUERY.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:305:35: ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( (LA4_0==ENCODING) ) { + alt4=1; + } + else if ( (LA4_0==VERSION) ) { + alt4=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 0, this.input); + + throw nvae; + } + switch (alt4) { + case 1 : + // xquery/XQueryParser.g:305:36: (k= ENCODING enc= p_StringLiteral ) + // xquery/XQueryParser.g:305:36: (k= ENCODING enc= p_StringLiteral ) + // xquery/XQueryParser.g:305:37: k= ENCODING enc= p_StringLiteral + k=this.match(this.input,ENCODING,XQueryParser.FOLLOW_ENCODING_in_p_VersionDecl623); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ENCODING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl629); + enc=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(enc.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:306:13: (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) + // xquery/XQueryParser.g:306:13: (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) + // xquery/XQueryParser.g:306:14: k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? + k=this.match(this.input,VERSION,XQueryParser.FOLLOW_VERSION_in_p_VersionDecl650); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_VERSION.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl656); + ver=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ver.getTree()); + // xquery/XQueryParser.g:306:59: (k= ENCODING enc= p_StringLiteral )? + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( (LA3_0==ENCODING) ) { + alt3=1; + } + switch (alt3) { + case 1 : + // xquery/XQueryParser.g:306:60: k= ENCODING enc= p_StringLiteral + k=this.match(this.input,ENCODING,XQueryParser.FOLLOW_ENCODING_in_p_VersionDecl661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ENCODING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl667); + enc=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(enc.getTree()); + + + break; + + } + + + + + + + break; + + } + + SEMICOLON2=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_VersionDecl673); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON2); + + + + // AST REWRITE + // elements: ver, enc + // token labels: + // rule labels: retval, ver, enc + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_ver=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ver",ver!=null?ver.tree:null); + var stream_enc=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token enc",enc!=null?enc.tree:null); + + root_0 = this.adaptor.nil(); + // 307:17: -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) + { + // xquery/XQueryParser.g:307:20: ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(VersionDecl, "VersionDecl"), root_1); + + // xquery/XQueryParser.g:307:34: ^( VersionDeclVersion ( $ver)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VersionDeclVersion, "VersionDeclVersion"), root_2); + + // xquery/XQueryParser.g:307:55: ( $ver)? + if ( stream_ver.hasNext() ) { + this.adaptor.addChild(root_2, stream_ver.nextTree()); + + } + stream_ver.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:307:62: ^( VersionDeclEncoding ( $enc)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VersionDeclEncoding, "VersionDeclEncoding"), root_2); + + // xquery/XQueryParser.g:307:84: ( $enc)? + if ( stream_enc.hasNext() ) { + this.adaptor.addChild(root_2, stream_enc.nextTree()); + + } + stream_enc.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_MainModule_return: (function() { + XQueryParser.p_MainModule_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_MainModule_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:311:1: p_MainModule[vd] : pm_Prolog pm_QueryBody -> ^( MainModule pm_Prolog ) ; + // $ANTLR start "p_MainModule" + p_MainModule: function(vd) { + var retval = new XQueryParser.p_MainModule_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_Prolog3 = null; + var pm_QueryBody4 = null; + + var stream_pm_QueryBody=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_QueryBody"); + var stream_pm_Prolog=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_Prolog"); + try { + // xquery/XQueryParser.g:312:9: ( pm_Prolog pm_QueryBody -> ^( MainModule pm_Prolog ) ) + // xquery/XQueryParser.g:312:11: pm_Prolog pm_QueryBody + this.pushFollow(XQueryParser.FOLLOW_pm_Prolog_in_p_MainModule739); + pm_Prolog3=this.pm_Prolog(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_Prolog.add(pm_Prolog3.getTree()); + this.pushFollow(XQueryParser.FOLLOW_pm_QueryBody_in_p_MainModule741); + pm_QueryBody4=this.pm_QueryBody(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_QueryBody.add(pm_QueryBody4.getTree()); + + + // AST REWRITE + // elements: pm_Prolog + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 313:17: -> ^( MainModule pm_Prolog ) + { + // xquery/XQueryParser.g:313:20: ^( MainModule pm_Prolog ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(MainModule, "MainModule"), root_1); + + this.adaptor.addChild(root_1, vd); + this.adaptor.addChild(root_1, stream_pm_Prolog.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LibraryModule_return: (function() { + XQueryParser.p_LibraryModule_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LibraryModule_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:317:1: p_LibraryModule[vd] : p_ModuleDecl pm_Prolog -> ^( LibraryModule p_ModuleDecl pm_Prolog ) ; + // $ANTLR start "p_LibraryModule" + p_LibraryModule: function(vd) { + var retval = new XQueryParser.p_LibraryModule_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ModuleDecl5 = null; + var pm_Prolog6 = null; + + var stream_pm_Prolog=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_Prolog"); + var stream_p_ModuleDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ModuleDecl"); + try { + // xquery/XQueryParser.g:318:9: ( p_ModuleDecl pm_Prolog -> ^( LibraryModule p_ModuleDecl pm_Prolog ) ) + // xquery/XQueryParser.g:318:11: p_ModuleDecl pm_Prolog + this.pushFollow(XQueryParser.FOLLOW_p_ModuleDecl_in_p_LibraryModule797); + p_ModuleDecl5=this.p_ModuleDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ModuleDecl.add(p_ModuleDecl5.getTree()); + this.pushFollow(XQueryParser.FOLLOW_pm_Prolog_in_p_LibraryModule799); + pm_Prolog6=this.pm_Prolog(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_Prolog.add(pm_Prolog6.getTree()); + + + // AST REWRITE + // elements: pm_Prolog, p_ModuleDecl + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 319:17: -> ^( LibraryModule p_ModuleDecl pm_Prolog ) + { + // xquery/XQueryParser.g:319:20: ^( LibraryModule p_ModuleDecl pm_Prolog ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(LibraryModule, "LibraryModule"), root_1); + + this.adaptor.addChild(root_1, vd); + this.adaptor.addChild(root_1, stream_p_ModuleDecl.nextTree()); + this.adaptor.addChild(root_1, stream_pm_Prolog.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ModuleDecl_return: (function() { + XQueryParser.p_ModuleDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ModuleDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:323:1: p_ModuleDecl : k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON -> ^( ModuleDecl p_NCName p_StringLiteral ) ; + // $ANTLR start "p_ModuleDecl" + p_ModuleDecl: function() { + var retval = new XQueryParser.p_ModuleDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var EQUAL8 = null; + var SEMICOLON10 = null; + var k = null; + var list_k=null; + var p_NCName7 = null; + var p_StringLiteral9 = null; + + var EQUAL8_tree=null; + var SEMICOLON10_tree=null; + var k_tree=null; + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_MODULE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MODULE"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:324:9: (k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON -> ^( ModuleDecl p_NCName p_StringLiteral ) ) + // xquery/XQueryParser.g:324:11: k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON + k=this.match(this.input,MODULE,XQueryParser.FOLLOW_MODULE_in_p_ModuleDecl855); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MODULE.add(k); + + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_ModuleDecl859); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_ModuleDecl863); + p_NCName7=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(p_NCName7.getTree()); + EQUAL8=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_ModuleDecl865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL8); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_ModuleDecl867); + p_StringLiteral9=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(p_StringLiteral9.getTree()); + SEMICOLON10=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ModuleDecl869); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON10); + + + + // AST REWRITE + // elements: p_StringLiteral, p_NCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 325:17: -> ^( ModuleDecl p_NCName p_StringLiteral ) + { + // xquery/XQueryParser.g:325:21: ^( ModuleDecl p_NCName p_StringLiteral ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ModuleDecl, "ModuleDecl"), root_1); + + this.adaptor.addChild(root_1, stream_p_NCName.nextTree()); + this.adaptor.addChild(root_1, stream_p_StringLiteral.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_Prolog_return: (function() { + XQueryParser.pm_Prolog_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_Prolog_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:331:1: pm_Prolog : ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) ; + // $ANTLR start "pm_Prolog" + pm_Prolog: function() { + var retval = new XQueryParser.pm_Prolog_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var list_dnd=null; + var list_s=null; + var list_nd=null; + var list_i=null; + var list_fto=null; + var list_od=null; + var dnd = null; + var s = null; + var nd = null; + var i = null; + var fto = null; + var od = null; + var stream_pm_NamespaceDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_NamespaceDecl"); + var stream_p_Import=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Import"); + var stream_p_Setter=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Setter"); + var stream_pm_DefaultNamespaceDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_DefaultNamespaceDecl"); + var stream_pg_OrderedDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_OrderedDecl"); + var stream_pm_FTOptionDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_FTOptionDecl"); + try { + // xquery/XQueryParser.g:332:9: ( ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) ) + // xquery/XQueryParser.g:332:11: ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* + // xquery/XQueryParser.g:332:11: ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* + loop6: + do { + var alt6=2; + alt6 = this.dfa6.predict(this.input); + switch (alt6) { + case 1 : + // xquery/XQueryParser.g:332:12: (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) + // xquery/XQueryParser.g:332:12: (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) + var alt5=5; + var LA5_0 = this.input.LA(1); + + if ( (LA5_0==DECLARE) ) { + var LA5_1 = this.input.LA(2); + + if ( (LA5_1==REVALIDATION) && ((this.lc(XQU)))) { + alt5=2; + } + else if ( (LA5_1==FT_OPTION) ) { + alt5=5; + } + else if ( (LA5_1==DEFAULT) ) { + var LA5_5 = this.input.LA(3); + + if ( (LA5_5==ELEMENT||LA5_5==FUNCTION) ) { + alt5=1; + } + else if ( (LA5_5==COLLATION||LA5_5==ORDER||LA5_5==DECIMAL_FORMAT) ) { + alt5=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 5, this.input); + + throw nvae; + } + } + else if ( ((LA5_1>=BASE_URI && LA5_1<=BOUNDARY_SPACE)||(LA5_1>=CONSTRUCTION && LA5_1<=COPY_NAMESPACES)||LA5_1==ORDERING||LA5_1==DECIMAL_FORMAT) ) { + alt5=2; + } + else if ( (LA5_1==NAMESPACE) ) { + alt5=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 1, this.input); + + throw nvae; + } + } + else if ( (LA5_0==IMPORT) ) { + alt5=4; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 0, this.input); + + throw nvae; + } + switch (alt5) { + case 1 : + // xquery/XQueryParser.g:332:13: dnd+= pm_DefaultNamespaceDecl + this.pushFollow(XQueryParser.FOLLOW_pm_DefaultNamespaceDecl_in_pm_Prolog928); + dnd=this.pm_DefaultNamespaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_DefaultNamespaceDecl.add(dnd.getTree()); + if (org.antlr.lang.isNull(list_dnd)) list_dnd = []; + list_dnd.push(dnd.getTree()); + + + + break; + case 2 : + // xquery/XQueryParser.g:332:44: s+= p_Setter + this.pushFollow(XQueryParser.FOLLOW_p_Setter_in_pm_Prolog934); + s=this.p_Setter(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Setter.add(s.getTree()); + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s.getTree()); + + + + break; + case 3 : + // xquery/XQueryParser.g:332:58: nd+= pm_NamespaceDecl + this.pushFollow(XQueryParser.FOLLOW_pm_NamespaceDecl_in_pm_Prolog940); + nd=this.pm_NamespaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_NamespaceDecl.add(nd.getTree()); + if (org.antlr.lang.isNull(list_nd)) list_nd = []; + list_nd.push(nd.getTree()); + + + + break; + case 4 : + // xquery/XQueryParser.g:332:81: i+= p_Import + this.pushFollow(XQueryParser.FOLLOW_p_Import_in_pm_Prolog946); + i=this.p_Import(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Import.add(i.getTree()); + if (org.antlr.lang.isNull(list_i)) list_i = []; + list_i.push(i.getTree()); + + + + break; + case 5 : + // xquery/XQueryParser.g:332:95: fto+= pm_FTOptionDecl + this.pushFollow(XQueryParser.FOLLOW_pm_FTOptionDecl_in_pm_Prolog952); + fto=this.pm_FTOptionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_FTOptionDecl.add(fto.getTree()); + if (org.antlr.lang.isNull(list_fto)) list_fto = []; + list_fto.push(fto.getTree()); + + + + break; + + } + + + + break; + + default : + break loop6; + } + } while (true); + + // xquery/XQueryParser.g:332:121: (od+= pg_OrderedDecl )* + loop7: + do { + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( (LA7_0==DECLARE) ) { + var LA7_3 = this.input.LA(2); + + if ( (LA7_3==FUNCTION||LA7_3==OPTION||LA7_3==VARIABLE||LA7_3==CONTEXT||LA7_3==UPDATING||LA7_3==COLLECTION||(LA7_3>=INDEX && LA7_3<=INTEGRITY)||LA7_3==ANN_PERCENT) ) { + alt7=1; + } + + + } + + + switch (alt7) { + case 1 : + // xquery/XQueryParser.g:332:121: od+= pg_OrderedDecl + this.pushFollow(XQueryParser.FOLLOW_pg_OrderedDecl_in_pm_Prolog959); + od=this.pg_OrderedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_OrderedDecl.add(od.getTree()); + if (org.antlr.lang.isNull(list_od)) list_od = []; + list_od.push(od.getTree()); + + + + break; + + default : + break loop7; + } + } while (true); + + + + // AST REWRITE + // elements: s, nd, dnd, fto, od, i + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: od, fto, s, nd, dnd, i + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_od=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token od",list_od); + var stream_fto=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token fto",list_fto); + var stream_s=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token s",list_s); + var stream_nd=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nd",list_nd); + var stream_dnd=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token dnd",list_dnd); + var stream_i=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token i",list_i); + root_0 = this.adaptor.nil(); + // 333:17: -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) + { + // xquery/XQueryParser.g:333:21: ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(Prolog, "Prolog"), root_1); + + // xquery/XQueryParser.g:334:33: ^( DefaultNamespaceDecls ( $dnd)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DefaultNamespaceDecls, "DefaultNamespaceDecls"), root_2); + + // xquery/XQueryParser.g:334:57: ( $dnd)* + while ( stream_dnd.hasNext() ) { + this.adaptor.addChild(root_2, stream_dnd.nextTree()); + + } + stream_dnd.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:335:33: ^( Setters ( $s)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(Setters, "Setters"), root_2); + + // xquery/XQueryParser.g:335:43: ( $s)* + while ( stream_s.hasNext() ) { + this.adaptor.addChild(root_2, stream_s.nextTree()); + + } + stream_s.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:336:33: ^( NamespaceDecls ( $nd)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceDecls, "NamespaceDecls"), root_2); + + // xquery/XQueryParser.g:336:50: ( $nd)* + while ( stream_nd.hasNext() ) { + this.adaptor.addChild(root_2, stream_nd.nextTree()); + + } + stream_nd.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:337:33: ^( Imports ( $i)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(Imports, "Imports"), root_2); + + // xquery/XQueryParser.g:337:43: ( $i)* + while ( stream_i.hasNext() ) { + this.adaptor.addChild(root_2, stream_i.nextTree()); + + } + stream_i.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:338:33: ^( FTOptionDecls ( $fto)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(FTOptionDecls, "FTOptionDecls"), root_2); + + // xquery/XQueryParser.g:338:49: ( $fto)* + while ( stream_fto.hasNext() ) { + this.adaptor.addChild(root_2, stream_fto.nextTree()); + + } + stream_fto.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:339:33: ^( OrderedDecls ( $od)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(OrderedDecls, "OrderedDecls"), root_2); + + // xquery/XQueryParser.g:339:48: ( $od)* + while ( stream_od.hasNext() ) { + this.adaptor.addChild(root_2, stream_od.nextTree()); + + } + stream_od.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_OrderedDecl_return: (function() { + XQueryParser.pg_OrderedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_OrderedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:347:1: pg_OrderedDecl : ( pm_ContextItemDecl | pm_AnnotatedDecl | pm_OptionDecl ); + // $ANTLR start "pg_OrderedDecl" + pg_OrderedDecl: function() { + var retval = new XQueryParser.pg_OrderedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_ContextItemDecl11 = null; + var pm_AnnotatedDecl12 = null; + var pm_OptionDecl13 = null; + + + try { + // xquery/XQueryParser.g:348:9: ( pm_ContextItemDecl | pm_AnnotatedDecl | pm_OptionDecl ) + var alt8=3; + var LA8_0 = this.input.LA(1); + + if ( (LA8_0==DECLARE) ) { + switch ( this.input.LA(2) ) { + case CONTEXT: + alt8=1; + break; + case FUNCTION: + case VARIABLE: + case UPDATING: + case COLLECTION: + case INDEX: + case INTEGRITY: + case ANN_PERCENT: + alt8=2; + break; + case OPTION: + alt8=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 8, 1, this.input); + + throw nvae; + } + + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 8, 0, this.input); + + throw nvae; + } + switch (alt8) { + case 1 : + // xquery/XQueryParser.g:348:11: pm_ContextItemDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ContextItemDecl_in_pg_OrderedDecl1274); + pm_ContextItemDecl11=this.pm_ContextItemDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ContextItemDecl11.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:349:11: pm_AnnotatedDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_AnnotatedDecl_in_pg_OrderedDecl1286); + pm_AnnotatedDecl12=this.pm_AnnotatedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_AnnotatedDecl12.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:350:11: pm_OptionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_OptionDecl_in_pg_OrderedDecl1298); + pm_OptionDecl13=this.pm_OptionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_OptionDecl13.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Setter_return: (function() { + XQueryParser.p_Setter_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Setter_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:358:1: p_Setter : ( pm_BoundarySpaceDecl | pm_DefaultCollationDecl | pm_BaseURIDecl | pm_ConstructionDecl | pm_OrderingModeDecl | pm_EmptyOrderDecl | {...}? => pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl ); + // $ANTLR start "p_Setter" + p_Setter: function() { + var retval = new XQueryParser.p_Setter_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_BoundarySpaceDecl14 = null; + var pm_DefaultCollationDecl15 = null; + var pm_BaseURIDecl16 = null; + var pm_ConstructionDecl17 = null; + var pm_OrderingModeDecl18 = null; + var pm_EmptyOrderDecl19 = null; + var pm_RevalidationDecl20 = null; + var pm_CopyNamespacesDecl21 = null; + var pm_DecimalFormatDecl22 = null; + + + try { + // xquery/XQueryParser.g:359:9: ( pm_BoundarySpaceDecl | pm_DefaultCollationDecl | pm_BaseURIDecl | pm_ConstructionDecl | pm_OrderingModeDecl | pm_EmptyOrderDecl | {...}? => pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl ) + var alt9=9; + alt9 = this.dfa9.predict(this.input); + switch (alt9) { + case 1 : + // xquery/XQueryParser.g:359:11: pm_BoundarySpaceDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_BoundarySpaceDecl_in_p_Setter1328); + pm_BoundarySpaceDecl14=this.pm_BoundarySpaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_BoundarySpaceDecl14.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:360:11: pm_DefaultCollationDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_DefaultCollationDecl_in_p_Setter1340); + pm_DefaultCollationDecl15=this.pm_DefaultCollationDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_DefaultCollationDecl15.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:361:11: pm_BaseURIDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_BaseURIDecl_in_p_Setter1352); + pm_BaseURIDecl16=this.pm_BaseURIDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_BaseURIDecl16.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:362:11: pm_ConstructionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ConstructionDecl_in_p_Setter1364); + pm_ConstructionDecl17=this.pm_ConstructionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ConstructionDecl17.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:363:11: pm_OrderingModeDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_OrderingModeDecl_in_p_Setter1376); + pm_OrderingModeDecl18=this.pm_OrderingModeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_OrderingModeDecl18.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:364:11: pm_EmptyOrderDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_EmptyOrderDecl_in_p_Setter1388); + pm_EmptyOrderDecl19=this.pm_EmptyOrderDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_EmptyOrderDecl19.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:365:11: {...}? => pm_RevalidationDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_Setter", "this.lc(XQU)"); + } + this.pushFollow(XQueryParser.FOLLOW_pm_RevalidationDecl_in_p_Setter1403); + pm_RevalidationDecl20=this.pm_RevalidationDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_RevalidationDecl20.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:366:11: pm_CopyNamespacesDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CopyNamespacesDecl_in_p_Setter1415); + pm_CopyNamespacesDecl21=this.pm_CopyNamespacesDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CopyNamespacesDecl21.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:367:11: pm_DecimalFormatDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_DecimalFormatDecl_in_p_Setter1427); + pm_DecimalFormatDecl22=this.pm_DecimalFormatDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_DecimalFormatDecl22.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_BoundarySpaceDecl_return: (function() { + XQueryParser.pm_BoundarySpaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_BoundarySpaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:371:1: pm_BoundarySpaceDecl : k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON ; + // $ANTLR start "pm_BoundarySpaceDecl" + pm_BoundarySpaceDecl: function() { + var retval = new XQueryParser.pm_BoundarySpaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON23 = null; + + var k_tree=null; + var SEMICOLON23_tree=null; + + try { + // xquery/XQueryParser.g:372:9: (k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON ) + // xquery/XQueryParser.g:372:11: k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_BoundarySpaceDecl1459); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BOUNDARY_SPACE,XQueryParser.FOLLOW_BOUNDARY_SPACE_in_pm_BoundarySpaceDecl1465); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:372:68: ( (k= PRESERVE ) | (k= STRIP ) ) + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0==PRESERVE) ) { + alt10=1; + } + else if ( (LA10_0==STRIP) ) { + alt10=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 0, this.input); + + throw nvae; + } + switch (alt10) { + case 1 : + // xquery/XQueryParser.g:372:70: (k= PRESERVE ) + // xquery/XQueryParser.g:372:70: (k= PRESERVE ) + // xquery/XQueryParser.g:372:71: k= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_pm_BoundarySpaceDecl1474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + case 2 : + // xquery/XQueryParser.g:372:100: (k= STRIP ) + // xquery/XQueryParser.g:372:100: (k= STRIP ) + // xquery/XQueryParser.g:372:101: k= STRIP + k=this.match(this.input,STRIP,XQueryParser.FOLLOW_STRIP_in_pm_BoundarySpaceDecl1484); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + + } + + SEMICOLON23=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_BoundarySpaceDecl1491); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON23_tree = this.adaptor.create(SEMICOLON23); + this.adaptor.addChild(root_0, SEMICOLON23_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DefaultCollationDecl_return: (function() { + XQueryParser.pm_DefaultCollationDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DefaultCollationDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:376:1: pm_DefaultCollationDecl : k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_DefaultCollationDecl" + pm_DefaultCollationDecl: function() { + var retval = new XQueryParser.pm_DefaultCollationDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON25 = null; + var p_StringLiteral24 = null; + + var k_tree=null; + var SEMICOLON25_tree=null; + + try { + // xquery/XQueryParser.g:377:9: (k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:377:11: k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DefaultCollationDecl1519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DefaultCollationDecl1525); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_pm_DefaultCollationDecl1531); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DefaultCollationDecl1535); + p_StringLiteral24=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral24.getTree()); + SEMICOLON25=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DefaultCollationDecl1537); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON25_tree = this.adaptor.create(SEMICOLON25); + this.adaptor.addChild(root_0, SEMICOLON25_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_BaseURIDecl_return: (function() { + XQueryParser.pm_BaseURIDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_BaseURIDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:381:1: pm_BaseURIDecl : k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON -> ^( BaseURIDecl $sl) ; + // $ANTLR start "pm_BaseURIDecl" + pm_BaseURIDecl: function() { + var retval = new XQueryParser.pm_BaseURIDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON26 = null; + var sl = null; + + var k_tree=null; + var SEMICOLON26_tree=null; + var stream_DECLARE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DECLARE"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_BASE_URI=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BASE_URI"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:382:9: (k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON -> ^( BaseURIDecl $sl) ) + // xquery/XQueryParser.g:382:11: k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_BaseURIDecl1573); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DECLARE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BASE_URI,XQueryParser.FOLLOW_BASE_URI_in_pm_BaseURIDecl1579); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BASE_URI.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_BaseURIDecl1585); + sl=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(sl.getTree()); + SEMICOLON26=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_BaseURIDecl1587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON26); + + + + // AST REWRITE + // elements: sl + // token labels: + // rule labels: sl, retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_sl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token sl",sl!=null?sl.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 383:17: -> ^( BaseURIDecl $sl) + { + // xquery/XQueryParser.g:383:20: ^( BaseURIDecl $sl) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(BaseURIDecl, "BaseURIDecl"), root_1); + + this.adaptor.addChild(root_1, stream_sl.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ConstructionDecl_return: (function() { + XQueryParser.pm_ConstructionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ConstructionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:387:1: pm_ConstructionDecl : k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON ; + // $ANTLR start "pm_ConstructionDecl" + pm_ConstructionDecl: function() { + var retval = new XQueryParser.pm_ConstructionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON27 = null; + + var k_tree=null; + var SEMICOLON27_tree=null; + + try { + // xquery/XQueryParser.g:388:9: (k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON ) + // xquery/XQueryParser.g:388:11: k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_ConstructionDecl1640); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONSTRUCTION,XQueryParser.FOLLOW_CONSTRUCTION_in_pm_ConstructionDecl1646); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:388:66: ( (k= STRIP | k= PRESERVE ) ) + // xquery/XQueryParser.g:388:68: (k= STRIP | k= PRESERVE ) + // xquery/XQueryParser.g:388:68: (k= STRIP | k= PRESERVE ) + var alt11=2; + var LA11_0 = this.input.LA(1); + + if ( (LA11_0==STRIP) ) { + alt11=1; + } + else if ( (LA11_0==PRESERVE) ) { + alt11=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 11, 0, this.input); + + throw nvae; + } + switch (alt11) { + case 1 : + // xquery/XQueryParser.g:388:69: k= STRIP + k=this.match(this.input,STRIP,XQueryParser.FOLLOW_STRIP_in_pm_ConstructionDecl1655); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:388:79: k= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_pm_ConstructionDecl1661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON27=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ConstructionDecl1668); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON27_tree = this.adaptor.create(SEMICOLON27); + this.adaptor.addChild(root_0, SEMICOLON27_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_OrderingModeDecl_return: (function() { + XQueryParser.pm_OrderingModeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_OrderingModeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:392:1: pm_OrderingModeDecl : k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON ; + // $ANTLR start "pm_OrderingModeDecl" + pm_OrderingModeDecl: function() { + var retval = new XQueryParser.pm_OrderingModeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON28 = null; + + var k_tree=null; + var SEMICOLON28_tree=null; + + try { + // xquery/XQueryParser.g:393:9: (k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON ) + // xquery/XQueryParser.g:393:11: k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_OrderingModeDecl1696); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ORDERING,XQueryParser.FOLLOW_ORDERING_in_pm_OrderingModeDecl1702); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:393:62: ( (k= ORDERED | k= UNORDERED ) ) + // xquery/XQueryParser.g:393:64: (k= ORDERED | k= UNORDERED ) + // xquery/XQueryParser.g:393:64: (k= ORDERED | k= UNORDERED ) + var alt12=2; + var LA12_0 = this.input.LA(1); + + if ( (LA12_0==ORDERED) ) { + alt12=1; + } + else if ( (LA12_0==UNORDERED) ) { + alt12=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 12, 0, this.input); + + throw nvae; + } + switch (alt12) { + case 1 : + // xquery/XQueryParser.g:393:65: k= ORDERED + k=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_pm_OrderingModeDecl1711); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:393:77: k= UNORDERED + k=this.match(this.input,UNORDERED,XQueryParser.FOLLOW_UNORDERED_in_pm_OrderingModeDecl1717); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON28=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_OrderingModeDecl1724); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON28_tree = this.adaptor.create(SEMICOLON28); + this.adaptor.addChild(root_0, SEMICOLON28_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_EmptyOrderDecl_return: (function() { + XQueryParser.pm_EmptyOrderDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_EmptyOrderDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:397:1: pm_EmptyOrderDecl : k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON ; + // $ANTLR start "pm_EmptyOrderDecl" + pm_EmptyOrderDecl: function() { + var retval = new XQueryParser.pm_EmptyOrderDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON29 = null; + + var k_tree=null; + var SEMICOLON29_tree=null; + + try { + // xquery/XQueryParser.g:398:9: (k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON ) + // xquery/XQueryParser.g:398:11: k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_EmptyOrderDecl1752); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_EmptyOrderDecl1758); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_pm_EmptyOrderDecl1764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_pm_EmptyOrderDecl1770); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:398:107: ( (k= GREATEST | k= LEAST ) ) + // xquery/XQueryParser.g:398:109: (k= GREATEST | k= LEAST ) + // xquery/XQueryParser.g:398:109: (k= GREATEST | k= LEAST ) + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0==GREATEST) ) { + alt13=1; + } + else if ( (LA13_0==LEAST) ) { + alt13=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 13, 0, this.input); + + throw nvae; + } + switch (alt13) { + case 1 : + // xquery/XQueryParser.g:398:110: k= GREATEST + k=this.match(this.input,GREATEST,XQueryParser.FOLLOW_GREATEST_in_pm_EmptyOrderDecl1779); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:398:123: k= LEAST + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_pm_EmptyOrderDecl1785); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON29=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_EmptyOrderDecl1792); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON29_tree = this.adaptor.create(SEMICOLON29); + this.adaptor.addChild(root_0, SEMICOLON29_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CopyNamespacesDecl_return: (function() { + XQueryParser.pm_CopyNamespacesDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CopyNamespacesDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:402:1: pm_CopyNamespacesDecl : k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON ; + // $ANTLR start "pm_CopyNamespacesDecl" + pm_CopyNamespacesDecl: function() { + var retval = new XQueryParser.pm_CopyNamespacesDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA31 = null; + var SEMICOLON33 = null; + var p_PreserveMode30 = null; + var p_InheritMode32 = null; + + var k_tree=null; + var COMMA31_tree=null; + var SEMICOLON33_tree=null; + + try { + // xquery/XQueryParser.g:403:9: (k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON ) + // xquery/XQueryParser.g:403:11: k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_CopyNamespacesDecl1820); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COPY_NAMESPACES,XQueryParser.FOLLOW_COPY_NAMESPACES_in_pm_CopyNamespacesDecl1826); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PreserveMode_in_pm_CopyNamespacesDecl1830); + p_PreserveMode30=this.p_PreserveMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PreserveMode30.getTree()); + COMMA31=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_CopyNamespacesDecl1832); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA31_tree = this.adaptor.create(COMMA31); + this.adaptor.addChild(root_0, COMMA31_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_InheritMode_in_pm_CopyNamespacesDecl1834); + p_InheritMode32=this.p_InheritMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InheritMode32.getTree()); + SEMICOLON33=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_CopyNamespacesDecl1836); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON33_tree = this.adaptor.create(SEMICOLON33); + this.adaptor.addChild(root_0, SEMICOLON33_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PreserveMode_return: (function() { + XQueryParser.p_PreserveMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PreserveMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:407:1: p_PreserveMode : (k+= PRESERVE | k+= NO_PRESERVE ) ; + // $ANTLR start "p_PreserveMode" + p_PreserveMode: function() { + var retval = new XQueryParser.p_PreserveMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:408:9: ( (k+= PRESERVE | k+= NO_PRESERVE ) ) + // xquery/XQueryParser.g:408:11: (k+= PRESERVE | k+= NO_PRESERVE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:408:11: (k+= PRESERVE | k+= NO_PRESERVE ) + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( (LA14_0==PRESERVE) ) { + alt14=1; + } + else if ( (LA14_0==NO_PRESERVE) ) { + alt14=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 14, 0, this.input); + + throw nvae; + } + switch (alt14) { + case 1 : + // xquery/XQueryParser.g:408:12: k+= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_p_PreserveMode1865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:408:26: k+= NO_PRESERVE + k=this.match(this.input,NO_PRESERVE,XQueryParser.FOLLOW_NO_PRESERVE_in_p_PreserveMode1871); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InheritMode_return: (function() { + XQueryParser.p_InheritMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InheritMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:412:1: p_InheritMode : (k+= INHERIT | k+= NO_INHERIT ) ; + // $ANTLR start "p_InheritMode" + p_InheritMode: function() { + var retval = new XQueryParser.p_InheritMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:413:9: ( (k+= INHERIT | k+= NO_INHERIT ) ) + // xquery/XQueryParser.g:413:11: (k+= INHERIT | k+= NO_INHERIT ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:413:11: (k+= INHERIT | k+= NO_INHERIT ) + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( (LA15_0==INHERIT) ) { + alt15=1; + } + else if ( (LA15_0==NO_INHERIT) ) { + alt15=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 15, 0, this.input); + + throw nvae; + } + switch (alt15) { + case 1 : + // xquery/XQueryParser.g:413:12: k+= INHERIT + k=this.match(this.input,INHERIT,XQueryParser.FOLLOW_INHERIT_in_p_InheritMode1903); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:413:25: k+= NO_INHERIT + k=this.match(this.input,NO_INHERIT,XQueryParser.FOLLOW_NO_INHERIT_in_p_InheritMode1909); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DecimalFormatDecl_return: (function() { + XQueryParser.pm_DecimalFormatDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DecimalFormatDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:417:1: pm_DecimalFormatDecl : k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON ; + // $ANTLR start "pm_DecimalFormatDecl" + pm_DecimalFormatDecl: function() { + var retval = new XQueryParser.pm_DecimalFormatDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL36 = null; + var SEMICOLON38 = null; + var p_QName34 = null; + var p_DFPropertyName35 = null; + var p_StringLiteral37 = null; + + var k_tree=null; + var EQUAL36_tree=null; + var SEMICOLON38_tree=null; + + try { + // xquery/XQueryParser.g:418:9: (k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON ) + // xquery/XQueryParser.g:418:11: k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DecimalFormatDecl1948); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:418:36: ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) + var alt16=2; + var LA16_0 = this.input.LA(1); + + if ( (LA16_0==DECIMAL_FORMAT) ) { + alt16=1; + } + else if ( (LA16_0==DEFAULT) ) { + alt16=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 16, 0, this.input); + + throw nvae; + } + switch (alt16) { + case 1 : + // xquery/XQueryParser.g:418:37: (k= DECIMAL_FORMAT p_QName ) + // xquery/XQueryParser.g:418:37: (k= DECIMAL_FORMAT p_QName ) + // xquery/XQueryParser.g:418:38: k= DECIMAL_FORMAT p_QName + k=this.match(this.input,DECIMAL_FORMAT,XQueryParser.FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1956); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_DecimalFormatDecl1960); + p_QName34=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName34.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:418:81: (k= DEFAULT k= DECIMAL_FORMAT ) + // xquery/XQueryParser.g:418:81: (k= DEFAULT k= DECIMAL_FORMAT ) + // xquery/XQueryParser.g:418:82: k= DEFAULT k= DECIMAL_FORMAT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DecimalFormatDecl1968); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DECIMAL_FORMAT,XQueryParser.FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + + } + + // xquery/XQueryParser.g:418:141: ( p_DFPropertyName EQUAL p_StringLiteral )* + loop17: + do { + var alt17=2; + var LA17_0 = this.input.LA(1); + + if ( ((LA17_0>=DECIMAL_SEPARATOR && LA17_0<=DIGIT)||(LA17_0>=GROUPING_SEPARATOR && LA17_0<=MINUS_SIGN)||LA17_0==NAN||(LA17_0>=PATTERN_SEPARATOR && LA17_0<=PER_MILLE)||LA17_0==ZERO_DIGIT) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // xquery/XQueryParser.g:418:142: p_DFPropertyName EQUAL p_StringLiteral + this.pushFollow(XQueryParser.FOLLOW_p_DFPropertyName_in_pm_DecimalFormatDecl1981); + p_DFPropertyName35=this.p_DFPropertyName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DFPropertyName35.getTree()); + EQUAL36=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_DecimalFormatDecl1983); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + EQUAL36_tree = this.adaptor.create(EQUAL36); + this.adaptor.addChild(root_0, EQUAL36_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DecimalFormatDecl1985); + p_StringLiteral37=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral37.getTree()); + + + break; + + default : + break loop17; + } + } while (true); + + SEMICOLON38=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DecimalFormatDecl1989); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON38_tree = this.adaptor.create(SEMICOLON38); + this.adaptor.addChild(root_0, SEMICOLON38_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DFPropertyName_return: (function() { + XQueryParser.p_DFPropertyName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DFPropertyName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:422:1: p_DFPropertyName : (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) ; + // $ANTLR start "p_DFPropertyName" + p_DFPropertyName: function() { + var retval = new XQueryParser.p_DFPropertyName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:423:9: ( (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) ) + // xquery/XQueryParser.g:423:11: (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:423:11: (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) + var alt18=10; + switch ( this.input.LA(1) ) { + case DECIMAL_SEPARATOR: + alt18=1; + break; + case GROUPING_SEPARATOR: + alt18=2; + break; + case INFINITY: + alt18=3; + break; + case MINUS_SIGN: + alt18=4; + break; + case NAN: + alt18=5; + break; + case PERCENT: + alt18=6; + break; + case PER_MILLE: + alt18=7; + break; + case ZERO_DIGIT: + alt18=8; + break; + case DIGIT: + alt18=9; + break; + case PATTERN_SEPARATOR: + alt18=10; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 18, 0, this.input); + + throw nvae; + } + + switch (alt18) { + case 1 : + // xquery/XQueryParser.g:423:12: k= DECIMAL_SEPARATOR + k=this.match(this.input,DECIMAL_SEPARATOR,XQueryParser.FOLLOW_DECIMAL_SEPARATOR_in_p_DFPropertyName2018); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:423:34: k= GROUPING_SEPARATOR + k=this.match(this.input,GROUPING_SEPARATOR,XQueryParser.FOLLOW_GROUPING_SEPARATOR_in_p_DFPropertyName2024); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:423:57: k= INFINITY + k=this.match(this.input,INFINITY,XQueryParser.FOLLOW_INFINITY_in_p_DFPropertyName2030); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:423:70: k= MINUS_SIGN + k=this.match(this.input,MINUS_SIGN,XQueryParser.FOLLOW_MINUS_SIGN_in_p_DFPropertyName2036); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:423:85: k= NAN + k=this.match(this.input,NAN,XQueryParser.FOLLOW_NAN_in_p_DFPropertyName2042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:423:93: k= PERCENT + k=this.match(this.input,PERCENT,XQueryParser.FOLLOW_PERCENT_in_p_DFPropertyName2048); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 7 : + // xquery/XQueryParser.g:423:105: k= PER_MILLE + k=this.match(this.input,PER_MILLE,XQueryParser.FOLLOW_PER_MILLE_in_p_DFPropertyName2054); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 8 : + // xquery/XQueryParser.g:423:119: k= ZERO_DIGIT + k=this.match(this.input,ZERO_DIGIT,XQueryParser.FOLLOW_ZERO_DIGIT_in_p_DFPropertyName2060); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 9 : + // xquery/XQueryParser.g:423:134: k= DIGIT + k=this.match(this.input,DIGIT,XQueryParser.FOLLOW_DIGIT_in_p_DFPropertyName2066); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 10 : + // xquery/XQueryParser.g:423:144: k= PATTERN_SEPARATOR + k=this.match(this.input,PATTERN_SEPARATOR,XQueryParser.FOLLOW_PATTERN_SEPARATOR_in_p_DFPropertyName2072); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Import_return: (function() { + XQueryParser.p_Import_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Import_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:427:1: p_Import : ( pm_SchemaImport | pm_ModuleImport ); + // $ANTLR start "p_Import" + p_Import: function() { + var retval = new XQueryParser.p_Import_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_SchemaImport39 = null; + var pm_ModuleImport40 = null; + + + try { + // xquery/XQueryParser.g:428:9: ( pm_SchemaImport | pm_ModuleImport ) + var alt19=2; + var LA19_0 = this.input.LA(1); + + if ( (LA19_0==IMPORT) ) { + var LA19_1 = this.input.LA(2); + + if ( (LA19_1==SCHEMA) ) { + alt19=1; + } + else if ( (LA19_1==MODULE) ) { + alt19=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 19, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 19, 0, this.input); + + throw nvae; + } + switch (alt19) { + case 1 : + // xquery/XQueryParser.g:428:11: pm_SchemaImport + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_SchemaImport_in_p_Import2101); + pm_SchemaImport39=this.pm_SchemaImport(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_SchemaImport39.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:428:29: pm_ModuleImport + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ModuleImport_in_p_Import2105); + pm_ModuleImport40=this.pm_ModuleImport(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ModuleImport40.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_SchemaImport_return: (function() { + XQueryParser.pm_SchemaImport_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_SchemaImport_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:432:1: pm_SchemaImport : k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) ; + // $ANTLR start "pm_SchemaImport" + pm_SchemaImport: function() { + var retval = new XQueryParser.pm_SchemaImport_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA41 = null; + var SEMICOLON42 = null; + var list_ah=null; + var sp = null; + var us = null; + var ah = null; + var k_tree=null; + var COMMA41_tree=null; + var SEMICOLON42_tree=null; + var stream_AT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AT"); + var stream_IMPORT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token IMPORT"); + var stream_SCHEMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SCHEMA"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_p_SchemaPrefix=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SchemaPrefix"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:433:9: (k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) ) + // xquery/XQueryParser.g:433:11: k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON + k=this.match(this.input,IMPORT,XQueryParser.FOLLOW_IMPORT_in_pm_SchemaImport2141); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_IMPORT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,SCHEMA,XQueryParser.FOLLOW_SCHEMA_in_pm_SchemaImport2147); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SCHEMA.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:433:61: (sp= p_SchemaPrefix )? + var alt20=2; + var LA20_0 = this.input.LA(1); + + if ( (LA20_0==DEFAULT||LA20_0==NAMESPACE) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // xquery/XQueryParser.g:433:61: sp= p_SchemaPrefix + this.pushFollow(XQueryParser.FOLLOW_p_SchemaPrefix_in_pm_SchemaImport2153); + sp=this.p_SchemaPrefix(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SchemaPrefix.add(sp.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2158); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + // xquery/XQueryParser.g:433:97: (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? + var alt22=2; + var LA22_0 = this.input.LA(1); + + if ( (LA22_0==AT) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // xquery/XQueryParser.g:433:98: k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_pm_SchemaImport2163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2169); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + // xquery/XQueryParser.g:433:138: ( COMMA ah+= p_StringLiteral )* + loop21: + do { + var alt21=2; + var LA21_0 = this.input.LA(1); + + if ( (LA21_0==COMMA) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // xquery/XQueryParser.g:433:139: COMMA ah+= p_StringLiteral + COMMA41=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_SchemaImport2172); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA41); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2176); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + + + break; + + default : + break loop21; + } + } while (true); + + + + break; + + } + + SEMICOLON42=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_SchemaImport2182); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON42); + + + + // AST REWRITE + // elements: ah, sp, us + // token labels: + // rule labels: retval, sp, us + // token list labels: + // rule list labels: ah + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_sp=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token sp",sp!=null?sp.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + var stream_ah=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ah",list_ah); + root_0 = this.adaptor.nil(); + // 434:17: -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) + { + // xquery/XQueryParser.g:434:20: ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SchemaImport, "SchemaImport"), root_1); + + // xquery/XQueryParser.g:434:35: ^( SchemaPrefix ( $sp)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(SchemaPrefix, "SchemaPrefix"), root_2); + + // xquery/XQueryParser.g:434:50: ( $sp)? + if ( stream_sp.hasNext() ) { + this.adaptor.addChild(root_2, stream_sp.nextTree()); + + } + stream_sp.reset(); + + this.adaptor.addChild(root_1, root_2); + } + this.adaptor.addChild(root_1, stream_us.nextTree()); + // xquery/XQueryParser.g:434:60: ^( AtHints ( $ah)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(AtHints, "AtHints"), root_2); + + // xquery/XQueryParser.g:434:70: ( $ah)* + while ( stream_ah.hasNext() ) { + this.adaptor.addChild(root_2, stream_ah.nextTree()); + + } + stream_ah.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaPrefix_return: (function() { + XQueryParser.p_SchemaPrefix_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaPrefix_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:438:1: p_SchemaPrefix : (k= NAMESPACE nn= p_NCName EQUAL -> ^( NamespaceName $nn) | k= DEFAULT k= ELEMENT k= NAMESPACE -> DefaultElementNamespace ); + // $ANTLR start "p_SchemaPrefix" + p_SchemaPrefix: function() { + var retval = new XQueryParser.p_SchemaPrefix_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL43 = null; + var nn = null; + + var k_tree=null; + var EQUAL43_tree=null; + var stream_ELEMENT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ELEMENT"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_DEFAULT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DEFAULT"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + try { + // xquery/XQueryParser.g:439:9: (k= NAMESPACE nn= p_NCName EQUAL -> ^( NamespaceName $nn) | k= DEFAULT k= ELEMENT k= NAMESPACE -> DefaultElementNamespace ) + var alt23=2; + var LA23_0 = this.input.LA(1); + + if ( (LA23_0==NAMESPACE) ) { + alt23=1; + } + else if ( (LA23_0==DEFAULT) ) { + alt23=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 23, 0, this.input); + + throw nvae; + } + switch (alt23) { + case 1 : + // xquery/XQueryParser.g:439:11: k= NAMESPACE nn= p_NCName EQUAL + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_SchemaPrefix2252); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_SchemaPrefix2258); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL43=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_SchemaPrefix2260); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL43); + + + + // AST REWRITE + // elements: nn + // token labels: + // rule labels: retval, nn + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + + root_0 = this.adaptor.nil(); + // 440:17: -> ^( NamespaceName $nn) + { + // xquery/XQueryParser.g:440:20: ^( NamespaceName $nn) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceName, "NamespaceName"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:441:11: k= DEFAULT k= ELEMENT k= NAMESPACE + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SchemaPrefix2299); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DEFAULT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_p_SchemaPrefix2305); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ELEMENT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_SchemaPrefix2311); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 442:17: -> DefaultElementNamespace + { + this.adaptor.addChild(root_0, this.adaptor.create(DefaultElementNamespace, "DefaultElementNamespace")); + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ModuleImport_return: (function() { + XQueryParser.pm_ModuleImport_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ModuleImport_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:446:1: pm_ModuleImport : k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) ; + // $ANTLR start "pm_ModuleImport" + pm_ModuleImport: function() { + var retval = new XQueryParser.pm_ModuleImport_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL44 = null; + var COMMA45 = null; + var SEMICOLON46 = null; + var list_ah=null; + var nn = null; + var us = null; + var ah = null; + var k_tree=null; + var EQUAL44_tree=null; + var COMMA45_tree=null; + var SEMICOLON46_tree=null; + var stream_AT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AT"); + var stream_IMPORT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token IMPORT"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_MODULE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MODULE"); + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:447:9: (k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) ) + // xquery/XQueryParser.g:447:11: k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON + k=this.match(this.input,IMPORT,XQueryParser.FOLLOW_IMPORT_in_pm_ModuleImport2361); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_IMPORT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,MODULE,XQueryParser.FOLLOW_MODULE_in_pm_ModuleImport2367); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MODULE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:447:59: (k= NAMESPACE nn= p_NCName EQUAL )? + var alt24=2; + var LA24_0 = this.input.LA(1); + + if ( (LA24_0==NAMESPACE) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // xquery/XQueryParser.g:447:60: k= NAMESPACE nn= p_NCName EQUAL + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_ModuleImport2374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_ModuleImport2380); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL44=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_ModuleImport2382); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL44); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2388); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + // xquery/XQueryParser.g:447:126: (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? + var alt26=2; + var LA26_0 = this.input.LA(1); + + if ( (LA26_0==AT) ) { + alt26=1; + } + switch (alt26) { + case 1 : + // xquery/XQueryParser.g:447:127: k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_pm_ModuleImport2393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2399); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + // xquery/XQueryParser.g:447:167: ( COMMA ah+= p_StringLiteral )* + loop25: + do { + var alt25=2; + var LA25_0 = this.input.LA(1); + + if ( (LA25_0==COMMA) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // xquery/XQueryParser.g:447:168: COMMA ah+= p_StringLiteral + COMMA45=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_ModuleImport2402); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA45); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2406); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + + + break; + + default : + break loop25; + } + } while (true); + + + + break; + + } + + SEMICOLON46=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ModuleImport2412); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON46); + + + + // AST REWRITE + // elements: us, nn, ah + // token labels: + // rule labels: retval, nn, us + // token list labels: + // rule list labels: ah + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + var stream_ah=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ah",list_ah); + root_0 = this.adaptor.nil(); + // 448:17: -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) + { + // xquery/XQueryParser.g:448:20: ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ModuleImport, "ModuleImport"), root_1); + + // xquery/XQueryParser.g:448:35: ^( NamespaceName ( $nn)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceName, "NamespaceName"), root_2); + + // xquery/XQueryParser.g:448:51: ( $nn)? + if ( stream_nn.hasNext() ) { + this.adaptor.addChild(root_2, stream_nn.nextTree()); + + } + stream_nn.reset(); + + this.adaptor.addChild(root_1, root_2); + } + this.adaptor.addChild(root_1, stream_us.nextTree()); + // xquery/XQueryParser.g:448:61: ^( AtHints ( $ah)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(AtHints, "AtHints"), root_2); + + // xquery/XQueryParser.g:448:71: ( $ah)* + while ( stream_ah.hasNext() ) { + this.adaptor.addChild(root_2, stream_ah.nextTree()); + + } + stream_ah.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_NamespaceDecl_return: (function() { + XQueryParser.pm_NamespaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_NamespaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:452:1: pm_NamespaceDecl : k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON -> ^( NamespaceDecl $nn $us) ; + // $ANTLR start "pm_NamespaceDecl" + pm_NamespaceDecl: function() { + var retval = new XQueryParser.pm_NamespaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL47 = null; + var SEMICOLON48 = null; + var nn = null; + var us = null; + + var k_tree=null; + var EQUAL47_tree=null; + var SEMICOLON48_tree=null; + var stream_DECLARE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DECLARE"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:453:9: (k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON -> ^( NamespaceDecl $nn $us) ) + // xquery/XQueryParser.g:453:11: k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_NamespaceDecl2481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DECLARE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_NamespaceDecl2487); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_NamespaceDecl2493); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL47=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_NamespaceDecl2495); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL47); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_NamespaceDecl2499); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + SEMICOLON48=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_NamespaceDecl2501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON48); + + + + // AST REWRITE + // elements: us, nn + // token labels: + // rule labels: retval, nn, us + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + + root_0 = this.adaptor.nil(); + // 454:17: -> ^( NamespaceDecl $nn $us) + { + // xquery/XQueryParser.g:454:20: ^( NamespaceDecl $nn $us) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceDecl, "NamespaceDecl"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + this.adaptor.addChild(root_1, stream_us.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DefaultNamespaceDecl_return: (function() { + XQueryParser.pm_DefaultNamespaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DefaultNamespaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:458:1: pm_DefaultNamespaceDecl : k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_DefaultNamespaceDecl" + pm_DefaultNamespaceDecl: function() { + var retval = new XQueryParser.pm_DefaultNamespaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON50 = null; + var p_StringLiteral49 = null; + + var k_tree=null; + var SEMICOLON50_tree=null; + + try { + // xquery/XQueryParser.g:459:9: (k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:459:11: k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DefaultNamespaceDecl2558); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DefaultNamespaceDecl2564); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:459:61: (k= ELEMENT | k= FUNCTION ) + var alt27=2; + var LA27_0 = this.input.LA(1); + + if ( (LA27_0==ELEMENT) ) { + alt27=1; + } + else if ( (LA27_0==FUNCTION) ) { + alt27=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 27, 0, this.input); + + throw nvae; + } + switch (alt27) { + case 1 : + // xquery/XQueryParser.g:459:62: k= ELEMENT + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_pm_DefaultNamespaceDecl2571); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:459:74: k= FUNCTION + k=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_pm_DefaultNamespaceDecl2577); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_DefaultNamespaceDecl2584); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DefaultNamespaceDecl2588); + p_StringLiteral49=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral49.getTree()); + SEMICOLON50=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DefaultNamespaceDecl2590); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON50_tree = this.adaptor.create(SEMICOLON50); + this.adaptor.addChild(root_0, SEMICOLON50_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_AnnotatedDecl_return: (function() { + XQueryParser.pm_AnnotatedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_AnnotatedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:463:1: pm_AnnotatedDecl : k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON ; + // $ANTLR start "pm_AnnotatedDecl" + pm_AnnotatedDecl: function() { + var retval = new XQueryParser.pm_AnnotatedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON53 = null; + var p_Annotation51 = null; + var pg_AnnotatedDecl52 = null; + + var k_tree=null; + var SEMICOLON53_tree=null; + + try { + // xquery/XQueryParser.g:464:9: (k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON ) + // xquery/XQueryParser.g:464:11: k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_AnnotatedDecl2618); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:464:36: ( p_Annotation )* + loop28: + do { + var alt28=2; + var LA28_0 = this.input.LA(1); + + if ( (LA28_0==ANN_PERCENT) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // xquery/XQueryParser.g:464:36: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_pm_AnnotatedDecl2622); + p_Annotation51=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation51.getTree()); + + + break; + + default : + break loop28; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_pg_AnnotatedDecl_in_pm_AnnotatedDecl2625); + pg_AnnotatedDecl52=this.pg_AnnotatedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_AnnotatedDecl52.getTree()); + SEMICOLON53=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_AnnotatedDecl2627); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON53_tree = this.adaptor.create(SEMICOLON53); + this.adaptor.addChild(root_0, SEMICOLON53_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_AnnotatedDecl_return: (function() { + XQueryParser.pg_AnnotatedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_AnnotatedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:466:1: pg_AnnotatedDecl : ( p_VarDecl | pm_FunctionDecl | {...}? => p_CollectionDecl | {...}? => p_IndexDecl | {...}? => p_ICDecl ); + // $ANTLR start "pg_AnnotatedDecl" + pg_AnnotatedDecl: function() { + var retval = new XQueryParser.pg_AnnotatedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_VarDecl54 = null; + var pm_FunctionDecl55 = null; + var p_CollectionDecl56 = null; + var p_IndexDecl57 = null; + var p_ICDecl58 = null; + + + try { + // xquery/XQueryParser.g:467:9: ( p_VarDecl | pm_FunctionDecl | {...}? => p_CollectionDecl | {...}? => p_IndexDecl | {...}? => p_ICDecl ) + var alt29=5; + var LA29_0 = this.input.LA(1); + + if ( (LA29_0==VARIABLE) ) { + alt29=1; + } + else if ( (LA29_0==UPDATING) && ((this.lc(XQU)))) { + alt29=2; + } + else if ( (LA29_0==FUNCTION) ) { + alt29=2; + } + else if ( (LA29_0==COLLECTION) && ((this.lc(ZORBA)))) { + alt29=3; + } + else if ( (LA29_0==INDEX) && ((this.lc(ZORBA)))) { + alt29=4; + } + else if ( (LA29_0==INTEGRITY) && ((this.lc(ZORBA)))) { + alt29=5; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 29, 0, this.input); + + throw nvae; + } + switch (alt29) { + case 1 : + // xquery/XQueryParser.g:467:11: p_VarDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDecl_in_pg_AnnotatedDecl2651); + p_VarDecl54=this.p_VarDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDecl54.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:468:11: pm_FunctionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_FunctionDecl_in_pg_AnnotatedDecl2663); + pm_FunctionDecl55=this.pm_FunctionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_FunctionDecl55.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:469:11: {...}? => p_CollectionDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_CollectionDecl_in_pg_AnnotatedDecl2678); + p_CollectionDecl56=this.p_CollectionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CollectionDecl56.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:470:11: {...}? => p_IndexDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexDecl_in_pg_AnnotatedDecl2693); + p_IndexDecl57=this.p_IndexDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexDecl57.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:471:11: {...}? => p_ICDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICDecl_in_pg_AnnotatedDecl2708); + p_ICDecl58=this.p_ICDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICDecl58.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Annotation_return: (function() { + XQueryParser.p_Annotation_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Annotation_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:475:1: p_Annotation : ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? ; + // $ANTLR start "p_Annotation" + p_Annotation: function() { + var retval = new XQueryParser.p_Annotation_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ANN_PERCENT59 = null; + var LPAREN61 = null; + var COMMA63 = null; + var RPAREN65 = null; + var p_QName60 = null; + var p_Literal62 = null; + var p_Literal64 = null; + + var ANN_PERCENT59_tree=null; + var LPAREN61_tree=null; + var COMMA63_tree=null; + var RPAREN65_tree=null; + + try { + // xquery/XQueryParser.g:476:9: ( ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? ) + // xquery/XQueryParser.g:476:11: ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? + root_0 = this.adaptor.nil(); + + ANN_PERCENT59=this.match(this.input,ANN_PERCENT,XQueryParser.FOLLOW_ANN_PERCENT_in_p_Annotation2734); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANN_PERCENT59_tree = this.adaptor.create(ANN_PERCENT59); + this.adaptor.addChild(root_0, ANN_PERCENT59_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_Annotation2736); + p_QName60=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName60.getTree()); + // xquery/XQueryParser.g:476:31: ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? + var alt31=2; + var LA31_0 = this.input.LA(1); + + if ( (LA31_0==LPAREN) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // xquery/XQueryParser.g:476:32: LPAREN p_Literal ( COMMA p_Literal )* RPAREN + LPAREN61=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_Annotation2739); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN61_tree = this.adaptor.create(LPAREN61); + this.adaptor.addChild(root_0, LPAREN61_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_Annotation2741); + p_Literal62=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal62.getTree()); + // xquery/XQueryParser.g:476:49: ( COMMA p_Literal )* + loop30: + do { + var alt30=2; + var LA30_0 = this.input.LA(1); + + if ( (LA30_0==COMMA) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // xquery/XQueryParser.g:476:50: COMMA p_Literal + COMMA63=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_Annotation2744); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA63_tree = this.adaptor.create(COMMA63); + this.adaptor.addChild(root_0, COMMA63_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_Annotation2746); + p_Literal64=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal64.getTree()); + + + break; + + default : + break loop30; + } + } while (true); + + RPAREN65=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_Annotation2750); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN65_tree = this.adaptor.create(RPAREN65); + this.adaptor.addChild(root_0, RPAREN65_tree); + } + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDecl_return: (function() { + XQueryParser.p_VarDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:480:1: p_VarDecl : k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) ; + // $ANTLR start "p_VarDecl" + p_VarDecl: function() { + var retval = new XQueryParser.p_VarDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var BIND66 = null; + var BIND67 = null; + var qn = null; + var td = null; + var vv = null; + var vdv = null; + + var k_tree=null; + var d_tree=null; + var BIND66_tree=null; + var BIND67_tree=null; + var stream_DOLLAR=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DOLLAR"); + var stream_EXTERNAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EXTERNAL"); + var stream_VARIABLE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token VARIABLE"); + var stream_BIND=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BIND"); + var stream_p_TypeDeclaration=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_TypeDeclaration"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + var stream_p_VarDefaultValue=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VarDefaultValue"); + var stream_p_VarValue=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VarValue"); + try { + // xquery/XQueryParser.g:481:9: (k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) ) + // xquery/XQueryParser.g:481:11: k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) + k=this.match(this.input,VARIABLE,XQueryParser.FOLLOW_VARIABLE_in_p_VarDecl2780); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_VARIABLE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDecl2786); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DOLLAR.add(d); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_VarDecl2790); + qn=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(qn.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (qn?qn.stop:null)); + } + // xquery/XQueryParser.g:481:86: (td= p_TypeDeclaration )? + var alt32=2; + var LA32_0 = this.input.LA(1); + + if ( (LA32_0==AS) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // xquery/XQueryParser.g:481:86: td= p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDecl2796); + td=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_TypeDeclaration.add(td.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:481:106: ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) + var alt34=2; + var LA34_0 = this.input.LA(1); + + if ( (LA34_0==BIND) ) { + alt34=1; + } + else if ( (LA34_0==EXTERNAL) ) { + alt34=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 34, 0, this.input); + + throw nvae; + } + switch (alt34) { + case 1 : + // xquery/XQueryParser.g:481:107: ( BIND vv= p_VarValue ) + // xquery/XQueryParser.g:481:107: ( BIND vv= p_VarValue ) + // xquery/XQueryParser.g:481:108: BIND vv= p_VarValue + BIND66=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDecl2801); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BIND.add(BIND66); + + this.pushFollow(XQueryParser.FOLLOW_p_VarValue_in_p_VarDecl2805); + vv=this.p_VarValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VarValue.add(vv.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:481:130: (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) + // xquery/XQueryParser.g:481:130: (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) + // xquery/XQueryParser.g:481:131: k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_p_VarDecl2813); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EXTERNAL.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:481:157: ( BIND vdv= p_VarDefaultValue )? + var alt33=2; + var LA33_0 = this.input.LA(1); + + if ( (LA33_0==BIND) ) { + alt33=1; + } + switch (alt33) { + case 1 : + // xquery/XQueryParser.g:481:158: BIND vdv= p_VarDefaultValue + BIND67=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDecl2818); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BIND.add(BIND67); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDefaultValue_in_p_VarDecl2822); + vdv=this.p_VarDefaultValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VarDefaultValue.add(vdv.getTree()); + + + break; + + } + + + + + + + break; + + } + + + + // AST REWRITE + // elements: td, vv, vdv, qn + // token labels: + // rule labels: qn, vv, retval, vdv, td + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_vv=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token vv",vv!=null?vv.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_vdv=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token vdv",vdv!=null?vdv.tree:null); + var stream_td=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token td",td!=null?td.tree:null); + + root_0 = this.adaptor.nil(); + // 482:17: -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) + { + // xquery/XQueryParser.g:482:20: ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(VarDecl, "VarDecl"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:482:34: ^( VarType ( $td)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VarType, "VarType"), root_2); + + // xquery/XQueryParser.g:482:44: ( $td)? + if ( stream_td.hasNext() ) { + this.adaptor.addChild(root_2, stream_td.nextTree()); + + } + stream_td.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:482:50: ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VarValue, "VarValue"), root_2); + + // xquery/XQueryParser.g:482:61: ( $vv)? + if ( stream_vv.hasNext() ) { + this.adaptor.addChild(root_2, stream_vv.nextTree()); + + } + stream_vv.reset(); + // xquery/XQueryParser.g:482:66: ^( VarDefaultValue ( $vdv)? ) + { + var root_3 = this.adaptor.nil(); + root_3 = this.adaptor.becomeRoot(this.adaptor.create(VarDefaultValue, "VarDefaultValue"), root_3); + + // xquery/XQueryParser.g:482:84: ( $vdv)? + if ( stream_vdv.hasNext() ) { + this.adaptor.addChild(root_3, stream_vdv.nextTree()); + + } + stream_vdv.reset(); + + this.adaptor.addChild(root_2, root_3); + } + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarValue_return: (function() { + XQueryParser.p_VarValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:486:1: p_VarValue : p_ExprSingle[true] ; + // $ANTLR start "p_VarValue" + p_VarValue: function() { + var retval = new XQueryParser.p_VarValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle68 = null; + + + try { + // xquery/XQueryParser.g:487:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:487:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarValue2901); + p_ExprSingle68=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle68.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDefaultValue_return: (function() { + XQueryParser.p_VarDefaultValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDefaultValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:491:1: p_VarDefaultValue : p_ExprSingle[true] ; + // $ANTLR start "p_VarDefaultValue" + p_VarDefaultValue: function() { + var retval = new XQueryParser.p_VarDefaultValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle69 = null; + + + try { + // xquery/XQueryParser.g:492:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:492:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDefaultValue2928); + p_ExprSingle69=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle69.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ContextItemDecl_return: (function() { + XQueryParser.pm_ContextItemDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ContextItemDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:496:1: pm_ContextItemDecl : k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON ; + // $ANTLR start "pm_ContextItemDecl" + pm_ContextItemDecl: function() { + var retval = new XQueryParser.pm_ContextItemDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var BIND71 = null; + var BIND73 = null; + var SEMICOLON75 = null; + var p_ItemType70 = null; + var p_VarValue72 = null; + var p_VarDefaultValue74 = null; + + var k_tree=null; + var BIND71_tree=null; + var BIND73_tree=null; + var SEMICOLON75_tree=null; + + try { + // xquery/XQueryParser.g:497:9: (k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON ) + // xquery/XQueryParser.g:497:11: k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_ContextItemDecl2957); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONTEXT,XQueryParser.FOLLOW_CONTEXT_in_pm_ContextItemDecl2963); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ITEM,XQueryParser.FOLLOW_ITEM_in_pm_ContextItemDecl2969); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:497:83: (k= AS p_ItemType )? + var alt35=2; + var LA35_0 = this.input.LA(1); + + if ( (LA35_0==AS) ) { + alt35=1; + } + switch (alt35) { + case 1 : + // xquery/XQueryParser.g:497:84: k= AS p_ItemType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_pm_ContextItemDecl2976); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_pm_ContextItemDecl2980); + p_ItemType70=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ItemType70.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:497:117: ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) + var alt37=2; + var LA37_0 = this.input.LA(1); + + if ( (LA37_0==BIND) ) { + alt37=1; + } + else if ( (LA37_0==EXTERNAL) ) { + alt37=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 37, 0, this.input); + + throw nvae; + } + switch (alt37) { + case 1 : + // xquery/XQueryParser.g:497:118: ( BIND p_VarValue ) + // xquery/XQueryParser.g:497:118: ( BIND p_VarValue ) + // xquery/XQueryParser.g:497:119: BIND p_VarValue + BIND71=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_pm_ContextItemDecl2986); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND71_tree = this.adaptor.create(BIND71); + this.adaptor.addChild(root_0, BIND71_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarValue_in_pm_ContextItemDecl2988); + p_VarValue72=this.p_VarValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarValue72.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:497:138: (k= EXTERNAL ( BIND p_VarDefaultValue )? ) + // xquery/XQueryParser.g:497:138: (k= EXTERNAL ( BIND p_VarDefaultValue )? ) + // xquery/XQueryParser.g:497:139: k= EXTERNAL ( BIND p_VarDefaultValue )? + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_pm_ContextItemDecl2996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:497:165: ( BIND p_VarDefaultValue )? + var alt36=2; + var LA36_0 = this.input.LA(1); + + if ( (LA36_0==BIND) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // xquery/XQueryParser.g:497:166: BIND p_VarDefaultValue + BIND73=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_pm_ContextItemDecl3001); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND73_tree = this.adaptor.create(BIND73); + this.adaptor.addChild(root_0, BIND73_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarDefaultValue_in_pm_ContextItemDecl3003); + p_VarDefaultValue74=this.p_VarDefaultValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDefaultValue74.getTree()); + + + break; + + } + + + + + + + break; + + } + + SEMICOLON75=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ContextItemDecl3009); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON75_tree = this.adaptor.create(SEMICOLON75); + this.adaptor.addChild(root_0, SEMICOLON75_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FunctionDecl_return: (function() { + XQueryParser.pm_FunctionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FunctionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:502:1: pm_FunctionDecl : ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) ; + // $ANTLR start "pm_FunctionDecl" + pm_FunctionDecl: function() { + var retval = new XQueryParser.pm_FunctionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN76 = null; + var RPAREN77 = null; + var LBRACKET78 = null; + var RBRACKET79 = null; + var qn = null; + var pl = null; + var st = null; + var soe = null; + + var k_tree=null; + var LPAREN76_tree=null; + var RPAREN77_tree=null; + var LBRACKET78_tree=null; + var RBRACKET79_tree=null; + var stream_FUNCTION=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token FUNCTION"); + var stream_LBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LBRACKET"); + var stream_AS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AS"); + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_EXTERNAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EXTERNAL"); + var stream_RBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RBRACKET"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_UPDATING=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token UPDATING"); + var stream_p_StatementsAndOptionalExpr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StatementsAndOptionalExpr"); + var stream_p_ParamList=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ParamList"); + var stream_pg_FQName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_FQName"); + var stream_p_SequenceType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SequenceType"); + try { + // xquery/XQueryParser.g:503:9: ( ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) ) + // xquery/XQueryParser.g:503:11: ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) + // xquery/XQueryParser.g:503:11: ({...}? =>k= UPDATING )? + var alt38=2; + var LA38_0 = this.input.LA(1); + + if ( (LA38_0==UPDATING) && ((this.lc(XQU)))) { + alt38=1; + } + switch (alt38) { + case 1 : + // xquery/XQueryParser.g:503:12: {...}? =>k= UPDATING + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pm_FunctionDecl", "this.lc(XQU)"); + } + k=this.match(this.input,UPDATING,XQueryParser.FOLLOW_UPDATING_in_pm_FunctionDecl3042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_UPDATING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + k=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_pm_FunctionDecl3050); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_FUNCTION.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_pg_FQName_in_pm_FunctionDecl3056); + qn=this.pg_FQName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_FQName.add(qn.getTree()); + LPAREN76=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_pm_FunctionDecl3058); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN76); + + // xquery/XQueryParser.g:503:106: (pl= p_ParamList )? + var alt39=2; + var LA39_0 = this.input.LA(1); + + if ( (LA39_0==DOLLAR) ) { + alt39=1; + } + switch (alt39) { + case 1 : + // xquery/XQueryParser.g:503:106: pl= p_ParamList + this.pushFollow(XQueryParser.FOLLOW_p_ParamList_in_pm_FunctionDecl3062); + pl=this.p_ParamList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ParamList.add(pl.getTree()); + + + break; + + } + + RPAREN77=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_pm_FunctionDecl3065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN77); + + // xquery/XQueryParser.g:503:127: (k= AS st= p_SequenceType )? + var alt40=2; + var LA40_0 = this.input.LA(1); + + if ( (LA40_0==AS) ) { + alt40=1; + } + switch (alt40) { + case 1 : + // xquery/XQueryParser.g:503:128: k= AS st= p_SequenceType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_pm_FunctionDecl3070); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AS.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_pm_FunctionDecl3076); + st=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SequenceType.add(st.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:503:168: ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) + var alt41=2; + var LA41_0 = this.input.LA(1); + + if ( (LA41_0==LBRACKET) ) { + alt41=1; + } + else if ( (LA41_0==EXTERNAL) ) { + alt41=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 41, 0, this.input); + + throw nvae; + } + switch (alt41) { + case 1 : + // xquery/XQueryParser.g:503:169: LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET + LBRACKET78=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_FunctionDecl3081); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LBRACKET.add(LBRACKET78); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_FunctionDecl3085); + soe=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StatementsAndOptionalExpr.add(soe.getTree()); + RBRACKET79=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_FunctionDecl3087); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RBRACKET.add(RBRACKET79); + + + + break; + case 2 : + // xquery/XQueryParser.g:503:221: k= EXTERNAL + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_pm_FunctionDecl3093); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EXTERNAL.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + + + // AST REWRITE + // elements: pl, soe, qn, st + // token labels: + // rule labels: qn, soe, retval, pl, st + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_soe=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token soe",soe!=null?soe.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_pl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token pl",pl!=null?pl.tree:null); + var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null); + + root_0 = this.adaptor.nil(); + // 504:17: -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) + { + // xquery/XQueryParser.g:504:20: ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(FunctionDecl, "FunctionDecl"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:504:39: ^( ParamList ( $pl)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(ParamList, "ParamList"), root_2); + + // xquery/XQueryParser.g:504:51: ( $pl)? + if ( stream_pl.hasNext() ) { + this.adaptor.addChild(root_2, stream_pl.nextTree()); + + } + stream_pl.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:504:57: ^( ReturnType ( $st)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(ReturnType, "ReturnType"), root_2); + + // xquery/XQueryParser.g:504:70: ( $st)? + if ( stream_st.hasNext() ) { + this.adaptor.addChild(root_2, stream_st.nextTree()); + + } + stream_st.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:504:76: ( $soe)? + if ( stream_soe.hasNext() ) { + this.adaptor.addChild(root_1, stream_soe.nextTree()); + + } + stream_soe.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParamList_return: (function() { + XQueryParser.p_ParamList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParamList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:508:1: p_ParamList : p+= p_Param ( COMMA p+= p_Param )* -> ( $p)+ ; + // $ANTLR start "p_ParamList" + p_ParamList: function() { + var retval = new XQueryParser.p_ParamList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA80 = null; + var list_p=null; + var p = null; + var COMMA80_tree=null; + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_p_Param=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Param"); + try { + // xquery/XQueryParser.g:509:9: (p+= p_Param ( COMMA p+= p_Param )* -> ( $p)+ ) + // xquery/XQueryParser.g:509:11: p+= p_Param ( COMMA p+= p_Param )* + this.pushFollow(XQueryParser.FOLLOW_p_Param_in_p_ParamList3170); + p=this.p_Param(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Param.add(p.getTree()); + if (org.antlr.lang.isNull(list_p)) list_p = []; + list_p.push(p.getTree()); + + // xquery/XQueryParser.g:509:22: ( COMMA p+= p_Param )* + loop42: + do { + var alt42=2; + var LA42_0 = this.input.LA(1); + + if ( (LA42_0==COMMA) ) { + alt42=1; + } + + + switch (alt42) { + case 1 : + // xquery/XQueryParser.g:509:23: COMMA p+= p_Param + COMMA80=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ParamList3173); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA80); + + this.pushFollow(XQueryParser.FOLLOW_p_Param_in_p_ParamList3177); + p=this.p_Param(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Param.add(p.getTree()); + if (org.antlr.lang.isNull(list_p)) list_p = []; + list_p.push(p.getTree()); + + + + break; + + default : + break loop42; + } + } while (true); + + + + // AST REWRITE + // elements: p + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: p + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_p=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token p",list_p); + root_0 = this.adaptor.nil(); + // 510:17: -> ( $p)+ + { + if ( !(stream_p.hasNext()) ) { + throw new org.antlr.runtime.tree.RewriteEarlyExitException(); + } + while ( stream_p.hasNext() ) { + this.adaptor.addChild(root_0, stream_p.nextTree()); + + } + stream_p.reset(); + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Param_return: (function() { + XQueryParser.p_Param_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Param_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:514:1: p_Param : d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? -> ^( Param $qn ( $td)? ) ; + // $ANTLR start "p_Param" + p_Param: function() { + var retval = new XQueryParser.p_Param_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var qn = null; + var td = null; + + var d_tree=null; + var stream_DOLLAR=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DOLLAR"); + var stream_p_TypeDeclaration=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_TypeDeclaration"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:515:9: (d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? -> ^( Param $qn ( $td)? ) ) + // xquery/XQueryParser.g:515:11: d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_Param3237); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DOLLAR.add(d); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_Param3241); + qn=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(qn.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (qn?qn.stop:null)); + } + // xquery/XQueryParser.g:515:60: (td= p_TypeDeclaration )? + var alt43=2; + var LA43_0 = this.input.LA(1); + + if ( (LA43_0==AS) ) { + alt43=1; + } + switch (alt43) { + case 1 : + // xquery/XQueryParser.g:515:60: td= p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_Param3247); + td=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_TypeDeclaration.add(td.getTree()); + + + break; + + } + + + + // AST REWRITE + // elements: td, qn + // token labels: + // rule labels: qn, retval, td + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_td=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token td",td!=null?td.tree:null); + + root_0 = this.adaptor.nil(); + // 516:17: -> ^( Param $qn ( $td)? ) + { + // xquery/XQueryParser.g:516:20: ^( Param $qn ( $td)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(Param, "Param"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:516:32: ( $td)? + if ( stream_td.hasNext() ) { + this.adaptor.addChild(root_1, stream_td.nextTree()); + + } + stream_td.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FunctionBody_return: (function() { + XQueryParser.pm_FunctionBody_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FunctionBody_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:520:1: pm_FunctionBody : p_EnclosedExpr ; + // $ANTLR start "pm_FunctionBody" + pm_FunctionBody: function() { + var retval = new XQueryParser.pm_FunctionBody_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_EnclosedExpr81 = null; + + + try { + // xquery/XQueryParser.g:521:9: ( p_EnclosedExpr ) + // xquery/XQueryParser.g:521:11: p_EnclosedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_EnclosedExpr_in_pm_FunctionBody3303); + p_EnclosedExpr81=this.p_EnclosedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_EnclosedExpr81.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_EnclosedExpr_return: (function() { + XQueryParser.p_EnclosedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_EnclosedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:526:1: p_EnclosedExpr : LBRACKET p_Expr[true,true] RBRACKET -> ^( EnclosedExpr p_Expr ) ; + // $ANTLR start "p_EnclosedExpr" + p_EnclosedExpr: function() { + var retval = new XQueryParser.p_EnclosedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET82 = null; + var RBRACKET84 = null; + var p_Expr83 = null; + + var LBRACKET82_tree=null; + var RBRACKET84_tree=null; + var stream_LBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LBRACKET"); + var stream_RBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RBRACKET"); + var stream_p_Expr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Expr"); + try { + // xquery/XQueryParser.g:527:9: ( LBRACKET p_Expr[true,true] RBRACKET -> ^( EnclosedExpr p_Expr ) ) + // xquery/XQueryParser.g:527:11: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET82=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_EnclosedExpr3330); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LBRACKET.add(LBRACKET82); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_EnclosedExpr3332); + p_Expr83=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Expr.add(p_Expr83.getTree()); + RBRACKET84=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_EnclosedExpr3335); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RBRACKET.add(RBRACKET84); + + + + // AST REWRITE + // elements: p_Expr + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 528:17: -> ^( EnclosedExpr p_Expr ) + { + // xquery/XQueryParser.g:528:20: ^( EnclosedExpr p_Expr ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(EnclosedExpr, "EnclosedExpr"), root_1); + + this.adaptor.addChild(root_1, stream_p_Expr.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_OptionDecl_return: (function() { + XQueryParser.pm_OptionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_OptionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:532:1: pm_OptionDecl : k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_OptionDecl" + pm_OptionDecl: function() { + var retval = new XQueryParser.pm_OptionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON87 = null; + var p_QName85 = null; + var p_StringLiteral86 = null; + + var k_tree=null; + var SEMICOLON87_tree=null; + + try { + // xquery/XQueryParser.g:533:9: (k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:533:11: k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_OptionDecl3387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,OPTION,XQueryParser.FOLLOW_OPTION_in_pm_OptionDecl3393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_OptionDecl3397); + p_QName85=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName85.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_OptionDecl3399); + p_StringLiteral86=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral86.getTree()); + SEMICOLON87=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_OptionDecl3401); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON87_tree = this.adaptor.create(SEMICOLON87); + this.adaptor.addChild(root_0, SEMICOLON87_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_QueryBody_return: (function() { + XQueryParser.pm_QueryBody_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_QueryBody_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:537:1: pm_QueryBody : ({...}? => p_Program | p_Expr[true,true] ); + // $ANTLR start "pm_QueryBody" + pm_QueryBody: function() { + var retval = new XQueryParser.pm_QueryBody_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Program88 = null; + var p_Expr89 = null; + + + try { + // xquery/XQueryParser.g:538:9: ({...}? => p_Program | p_Expr[true,true] ) + var alt44=2; + alt44 = this.dfa44.predict(this.input); + switch (alt44) { + case 1 : + // xquery/XQueryParser.g:538:11: {...}? => p_Program + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pm_QueryBody", "this.lc(XQS)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_Program_in_pm_QueryBody3430); + p_Program88=this.p_Program(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Program88.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:539:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_QueryBody3442); + p_Expr89=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr89.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Expr_return: (function() { + XQueryParser.p_Expr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Expr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:549:1: p_Expr[strict, allowConcat] : es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* ; + // $ANTLR start "p_Expr" + p_Expr: function(strict, allowConcat) { + var retval = new XQueryParser.p_Expr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA90 = null; + var es = null; + var p_ExprSingle91 = null; + + var COMMA90_tree=null; + + try { + // xquery/XQueryParser.g:550:9: (es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* ) + // xquery/XQueryParser.g:550:11: es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Expr3478); + es=this.p_ExprSingle(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, es.getTree()); + if ( this.state.backtracking===0 ) { + if (!allowConcat) throw new Exception(); + } + // xquery/XQueryParser.g:551:11: ( COMMA p_ExprSingle[$strict] )* + loop45: + do { + var alt45=2; + var LA45_0 = this.input.LA(1); + + if ( (LA45_0==COMMA) ) { + alt45=1; + } + + + switch (alt45) { + case 1 : + // xquery/XQueryParser.g:551:12: COMMA p_ExprSingle[$strict] + COMMA90=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_Expr3494); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA90_tree = this.adaptor.create(COMMA90); + this.adaptor.addChild(root_0, COMMA90_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Expr3496); + p_ExprSingle91=this.p_ExprSingle(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle91.getTree()); + + + break; + + default : + break loop45; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (e) { + + if(e instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch1"); + reportError(e); + recover(this.input, e); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), e); + } else if(e instanceof Exception) { + //console.log("catch2"); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, es.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw e; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_ExprSingle_return: (function() { + XQueryParser.p_ExprSingle_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExprSingle_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:573:1: p_ExprSingle[strict] : ( ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple ); + // $ANTLR start "p_ExprSingle" + p_ExprSingle: function(strict) { + var retval = new XQueryParser.p_ExprSingle_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FLWORHybrid92 = null; + var p_IfHybrid93 = null; + var p_SwitchHybrid94 = null; + var p_TypeswitchHybrid95 = null; + var p_TryCatchHybrid96 = null; + var p_ExprSimple97 = null; + + + try { + // xquery/XQueryParser.g:574:9: ( ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple ) + var alt46=6; + alt46 = this.dfa46.predict(this.input); + switch (alt46) { + case 1 : + // xquery/XQueryParser.g:574:11: ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FLWORHybrid_in_p_ExprSingle3563); + p_FLWORHybrid92=this.p_FLWORHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FLWORHybrid92.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:575:11: ( IF LPAREN )=> p_IfHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IfHybrid_in_p_ExprSingle3593); + p_IfHybrid93=this.p_IfHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IfHybrid93.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:576:11: ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SwitchHybrid_in_p_ExprSingle3619); + p_SwitchHybrid94=this.p_SwitchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchHybrid94.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:577:11: ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TypeswitchHybrid_in_p_ExprSingle3641); + p_TypeswitchHybrid95=this.p_TypeswitchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeswitchHybrid95.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:578:11: ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TryCatchHybrid_in_p_ExprSingle3668); + p_TryCatchHybrid96=this.p_TryCatchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryCatchHybrid96.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:579:11: p_ExprSimple + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSimple_in_p_ExprSingle3681); + p_ExprSimple97=this.p_ExprSimple(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSimple97.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FLWORHybrid_return: (function() { + XQueryParser.p_FLWORHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FLWORHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:583:1: p_FLWORHybrid[strict] : p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] ; + // $ANTLR start "p_FLWORHybrid" + p_FLWORHybrid: function(strict) { + var retval = new XQueryParser.p_FLWORHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause98 = null; + var p_IntermediateClause99 = null; + var p_ReturnHybrid100 = null; + + + try { + // xquery/XQueryParser.g:584:9: ( p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] ) + // xquery/XQueryParser.g:584:11: p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_FLWORHybrid3708); + p_InitialClause98=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause98.getTree()); + // xquery/XQueryParser.g:584:27: ( p_IntermediateClause )* + loop47: + do { + var alt47=2; + var LA47_0 = this.input.LA(1); + + if ( (LA47_0==FOR||LA47_0==LET||LA47_0==ORDER||LA47_0==STABLE||LA47_0==WHERE||LA47_0==COUNT||LA47_0==GROUP) ) { + alt47=1; + } + + + switch (alt47) { + case 1 : + // xquery/XQueryParser.g:584:27: p_IntermediateClause + this.pushFollow(XQueryParser.FOLLOW_p_IntermediateClause_in_p_FLWORHybrid3710); + p_IntermediateClause99=this.p_IntermediateClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntermediateClause99.getTree()); + + + break; + + default : + break loop47; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ReturnHybrid_in_p_FLWORHybrid3713); + p_ReturnHybrid100=this.p_ReturnHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReturnHybrid100.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InitialClause_return: (function() { + XQueryParser.p_InitialClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InitialClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:588:1: p_InitialClause : ( p_ForClause | p_LetClause | p_WindowClause ); + // $ANTLR start "p_InitialClause" + p_InitialClause: function() { + var retval = new XQueryParser.p_InitialClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ForClause101 = null; + var p_LetClause102 = null; + var p_WindowClause103 = null; + + + try { + // xquery/XQueryParser.g:589:9: ( p_ForClause | p_LetClause | p_WindowClause ) + var alt48=3; + var LA48_0 = this.input.LA(1); + + if ( (LA48_0==FOR) ) { + var LA48_1 = this.input.LA(2); + + if ( (LA48_1==DOLLAR) ) { + alt48=1; + } + else if ( (LA48_1==SLIDING||LA48_1==TUMBLING) ) { + alt48=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 48, 1, this.input); + + throw nvae; + } + } + else if ( (LA48_0==LET) ) { + alt48=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 48, 0, this.input); + + throw nvae; + } + switch (alt48) { + case 1 : + // xquery/XQueryParser.g:589:11: p_ForClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ForClause_in_p_InitialClause3740); + p_ForClause101=this.p_ForClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForClause101.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:589:25: p_LetClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_LetClause_in_p_InitialClause3744); + p_LetClause102=this.p_LetClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetClause102.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:589:39: p_WindowClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WindowClause_in_p_InitialClause3748); + p_WindowClause103=this.p_WindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowClause103.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IntermediateClause_return: (function() { + XQueryParser.p_IntermediateClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IntermediateClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:593:1: p_IntermediateClause : ( p_InitialClause | p_WhereClause | p_GroupByClause | p_OrderByClause | p_CountClause ); + // $ANTLR start "p_IntermediateClause" + p_IntermediateClause: function() { + var retval = new XQueryParser.p_IntermediateClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause104 = null; + var p_WhereClause105 = null; + var p_GroupByClause106 = null; + var p_OrderByClause107 = null; + var p_CountClause108 = null; + + + try { + // xquery/XQueryParser.g:594:9: ( p_InitialClause | p_WhereClause | p_GroupByClause | p_OrderByClause | p_CountClause ) + var alt49=5; + switch ( this.input.LA(1) ) { + case FOR: + case LET: + alt49=1; + break; + case WHERE: + alt49=2; + break; + case GROUP: + alt49=3; + break; + case ORDER: + case STABLE: + alt49=4; + break; + case COUNT: + alt49=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 49, 0, this.input); + + throw nvae; + } + + switch (alt49) { + case 1 : + // xquery/XQueryParser.g:594:11: p_InitialClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_IntermediateClause3774); + p_InitialClause104=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause104.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:594:29: p_WhereClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WhereClause_in_p_IntermediateClause3778); + p_WhereClause105=this.p_WhereClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WhereClause105.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:594:45: p_GroupByClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_GroupByClause_in_p_IntermediateClause3782); + p_GroupByClause106=this.p_GroupByClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupByClause106.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:594:63: p_OrderByClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderByClause_in_p_IntermediateClause3786); + p_OrderByClause107=this.p_OrderByClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderByClause107.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:594:81: p_CountClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CountClause_in_p_IntermediateClause3790); + p_CountClause108=this.p_CountClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CountClause108.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StringConcatExpr_return: (function() { + XQueryParser.p_StringConcatExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StringConcatExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:598:1: p_StringConcatExpr : p_RangeExpr (o= CONCAT p_RangeExpr )* ; + // $ANTLR start "p_StringConcatExpr" + p_StringConcatExpr: function() { + var retval = new XQueryParser.p_StringConcatExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_RangeExpr109 = null; + var p_RangeExpr110 = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:599:4: ( p_RangeExpr (o= CONCAT p_RangeExpr )* ) + // xquery/XQueryParser.g:599:6: p_RangeExpr (o= CONCAT p_RangeExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RangeExpr_in_p_StringConcatExpr3811); + p_RangeExpr109=this.p_RangeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RangeExpr109.getTree()); + // xquery/XQueryParser.g:599:18: (o= CONCAT p_RangeExpr )* + loop50: + do { + var alt50=2; + var LA50_0 = this.input.LA(1); + + if ( (LA50_0==CONCAT) ) { + alt50=1; + } + + + switch (alt50) { + case 1 : + // xquery/XQueryParser.g:599:20: o= CONCAT p_RangeExpr + o=this.match(this.input,CONCAT,XQueryParser.FOLLOW_CONCAT_in_p_StringConcatExpr3817); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + this.pushFollow(XQueryParser.FOLLOW_p_RangeExpr_in_p_StringConcatExpr3821); + p_RangeExpr110=this.p_RangeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RangeExpr110.getTree()); + + + break; + + default : + break loop50; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForClause_return: (function() { + XQueryParser.p_ForClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:604:1: p_ForClause : k= FOR p_ForBinding ( COMMA p_ForBinding )* ; + // $ANTLR start "p_ForClause" + p_ForClause: function() { + var retval = new XQueryParser.p_ForClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA112 = null; + var p_ForBinding111 = null; + var p_ForBinding113 = null; + + var k_tree=null; + var COMMA112_tree=null; + + try { + // xquery/XQueryParser.g:605:9: (k= FOR p_ForBinding ( COMMA p_ForBinding )* ) + // xquery/XQueryParser.g:605:11: k= FOR p_ForBinding ( COMMA p_ForBinding )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_p_ForClause3848); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ForBinding_in_p_ForClause3852); + p_ForBinding111=this.p_ForBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForBinding111.getTree()); + // xquery/XQueryParser.g:605:45: ( COMMA p_ForBinding )* + loop51: + do { + var alt51=2; + var LA51_0 = this.input.LA(1); + + if ( (LA51_0==COMMA) ) { + alt51=1; + } + + + switch (alt51) { + case 1 : + // xquery/XQueryParser.g:605:46: COMMA p_ForBinding + COMMA112=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ForClause3855); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA112_tree = this.adaptor.create(COMMA112); + this.adaptor.addChild(root_0, COMMA112_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ForBinding_in_p_ForClause3857); + p_ForBinding113=this.p_ForBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForBinding113.getTree()); + + + break; + + default : + break loop51; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForBinding_return: (function() { + XQueryParser.p_ForBinding_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForBinding_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:609:1: p_ForBinding : s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] ; + // $ANTLR start "p_ForBinding" + p_ForBinding: function() { + var retval = new XQueryParser.p_ForBinding_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var k = null; + var v = null; + var p_TypeDeclaration114 = null; + var p_AllowingEmpty115 = null; + var p_PositionalVar116 = null; + var p_FTScoreVar117 = null; + var p_ExprSingle118 = null; + + var s_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:610:9: (s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] ) + // xquery/XQueryParser.g:610:11: s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + s=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ForBinding3887); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_ForBinding3891); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(s, (v?v.stop:null)); + } + // xquery/XQueryParser.g:610:58: ( p_TypeDeclaration )? + var alt52=2; + var LA52_0 = this.input.LA(1); + + if ( (LA52_0==AS) ) { + alt52=1; + } + switch (alt52) { + case 1 : + // xquery/XQueryParser.g:610:58: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_ForBinding3895); + p_TypeDeclaration114=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration114.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:77: ( p_AllowingEmpty )? + var alt53=2; + var LA53_0 = this.input.LA(1); + + if ( (LA53_0==ALLOWING) ) { + alt53=1; + } + switch (alt53) { + case 1 : + // xquery/XQueryParser.g:610:77: p_AllowingEmpty + this.pushFollow(XQueryParser.FOLLOW_p_AllowingEmpty_in_p_ForBinding3898); + p_AllowingEmpty115=this.p_AllowingEmpty(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AllowingEmpty115.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:94: ( p_PositionalVar )? + var alt54=2; + var LA54_0 = this.input.LA(1); + + if ( (LA54_0==AT) ) { + alt54=1; + } + switch (alt54) { + case 1 : + // xquery/XQueryParser.g:610:94: p_PositionalVar + this.pushFollow(XQueryParser.FOLLOW_p_PositionalVar_in_p_ForBinding3901); + p_PositionalVar116=this.p_PositionalVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PositionalVar116.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:111: ( p_FTScoreVar )? + var alt55=2; + var LA55_0 = this.input.LA(1); + + if ( (LA55_0==SCORE) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // xquery/XQueryParser.g:610:111: p_FTScoreVar + this.pushFollow(XQueryParser.FOLLOW_p_FTScoreVar_in_p_ForBinding3904); + p_FTScoreVar117=this.p_FTScoreVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScoreVar117.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_ForBinding3909); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ForBinding3913); + p_ExprSingle118=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle118.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AllowingEmpty_return: (function() { + XQueryParser.p_AllowingEmpty_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AllowingEmpty_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:614:1: p_AllowingEmpty : k= ALLOWING k= EMPTY ; + // $ANTLR start "p_AllowingEmpty" + p_AllowingEmpty: function() { + var retval = new XQueryParser.p_AllowingEmpty_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:615:9: (k= ALLOWING k= EMPTY ) + // xquery/XQueryParser.g:615:11: k= ALLOWING k= EMPTY + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ALLOWING,XQueryParser.FOLLOW_ALLOWING_in_p_AllowingEmpty3942); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_p_AllowingEmpty3948); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PositionalVar_return: (function() { + XQueryParser.p_PositionalVar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PositionalVar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:619:1: p_PositionalVar : k= AT d= DOLLAR v= p_VarName ; + // $ANTLR start "p_PositionalVar" + p_PositionalVar: function() { + var retval = new XQueryParser.p_PositionalVar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:620:9: (k= AT d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:620:11: k= AT d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_PositionalVar3978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_PositionalVar3984); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_PositionalVar3988); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LetClause_return: (function() { + XQueryParser.p_LetClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LetClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:624:1: p_LetClause : k= LET p_LetBinding ( COMMA p_LetBinding )* ; + // $ANTLR start "p_LetClause" + p_LetClause: function() { + var retval = new XQueryParser.p_LetClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA120 = null; + var p_LetBinding119 = null; + var p_LetBinding121 = null; + + var k_tree=null; + var COMMA120_tree=null; + + try { + // xquery/XQueryParser.g:625:9: (k= LET p_LetBinding ( COMMA p_LetBinding )* ) + // xquery/XQueryParser.g:625:11: k= LET p_LetBinding ( COMMA p_LetBinding )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,LET,XQueryParser.FOLLOW_LET_in_p_LetClause4018); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_LetBinding_in_p_LetClause4022); + p_LetBinding119=this.p_LetBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetBinding119.getTree()); + // xquery/XQueryParser.g:625:45: ( COMMA p_LetBinding )* + loop56: + do { + var alt56=2; + var LA56_0 = this.input.LA(1); + + if ( (LA56_0==COMMA) ) { + alt56=1; + } + + + switch (alt56) { + case 1 : + // xquery/XQueryParser.g:625:46: COMMA p_LetBinding + COMMA120=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_LetClause4025); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA120_tree = this.adaptor.create(COMMA120); + this.adaptor.addChild(root_0, COMMA120_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_LetBinding_in_p_LetClause4027); + p_LetBinding121=this.p_LetBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetBinding121.getTree()); + + + break; + + default : + break loop56; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LetBinding_return: (function() { + XQueryParser.p_LetBinding_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LetBinding_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:630:1: p_LetBinding : ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] ; + // $ANTLR start "p_LetBinding" + p_LetBinding: function() { + var retval = new XQueryParser.p_LetBinding_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var BIND124 = null; + var v = null; + var p_TypeDeclaration122 = null; + var p_FTScoreVar123 = null; + var p_ExprSingle125 = null; + + var d_tree=null; + var BIND124_tree=null; + + try { + // xquery/XQueryParser.g:631:9: ( ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] ) + // xquery/XQueryParser.g:631:11: ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:631:11: ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) + var alt58=2; + var LA58_0 = this.input.LA(1); + + if ( (LA58_0==DOLLAR) ) { + alt58=1; + } + else if ( (LA58_0==SCORE) ) { + alt58=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 58, 0, this.input); + + throw nvae; + } + switch (alt58) { + case 1 : + // xquery/XQueryParser.g:631:13: (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) + // xquery/XQueryParser.g:631:13: (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) + // xquery/XQueryParser.g:631:14: d= DOLLAR v= p_VarName ( p_TypeDeclaration )? + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_LetBinding4061); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_LetBinding4065); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:631:59: ( p_TypeDeclaration )? + var alt57=2; + var LA57_0 = this.input.LA(1); + + if ( (LA57_0==AS) ) { + alt57=1; + } + switch (alt57) { + case 1 : + // xquery/XQueryParser.g:631:59: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_LetBinding4069); + p_TypeDeclaration122=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration122.getTree()); + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:631:81: p_FTScoreVar + this.pushFollow(XQueryParser.FOLLOW_p_FTScoreVar_in_p_LetBinding4075); + p_FTScoreVar123=this.p_FTScoreVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScoreVar123.getTree()); + + + break; + + } + + BIND124=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_LetBinding4079); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND124_tree = this.adaptor.create(BIND124); + this.adaptor.addChild(root_0, BIND124_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_LetBinding4081); + p_ExprSingle125=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle125.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowClause_return: (function() { + XQueryParser.p_WindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:635:1: p_WindowClause : k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) ; + // $ANTLR start "p_WindowClause" + p_WindowClause: function() { + var retval = new XQueryParser.p_WindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_TumblingWindowClause126 = null; + var p_SlidingWindowClause127 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:636:9: (k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) ) + // xquery/XQueryParser.g:636:11: k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_p_WindowClause4110); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:636:32: ( p_TumblingWindowClause | p_SlidingWindowClause ) + var alt59=2; + var LA59_0 = this.input.LA(1); + + if ( (LA59_0==TUMBLING) ) { + alt59=1; + } + else if ( (LA59_0==SLIDING) ) { + alt59=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 59, 0, this.input); + + throw nvae; + } + switch (alt59) { + case 1 : + // xquery/XQueryParser.g:636:33: p_TumblingWindowClause + this.pushFollow(XQueryParser.FOLLOW_p_TumblingWindowClause_in_p_WindowClause4115); + p_TumblingWindowClause126=this.p_TumblingWindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TumblingWindowClause126.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:636:58: p_SlidingWindowClause + this.pushFollow(XQueryParser.FOLLOW_p_SlidingWindowClause_in_p_WindowClause4119); + p_SlidingWindowClause127=this.p_SlidingWindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SlidingWindowClause127.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TumblingWindowClause_return: (function() { + XQueryParser.p_TumblingWindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TumblingWindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:640:1: p_TumblingWindowClause : k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ; + // $ANTLR start "p_TumblingWindowClause" + p_TumblingWindowClause: function() { + var retval = new XQueryParser.p_TumblingWindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_TypeDeclaration128 = null; + var p_ExprSingle129 = null; + var p_WindowStartCondition130 = null; + var p_WindowEndCondition131 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:641:9: (k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ) + // xquery/XQueryParser.g:641:11: k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TUMBLING,XQueryParser.FOLLOW_TUMBLING_in_p_TumblingWindowClause4156); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_TumblingWindowClause4162); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TumblingWindowClause4168); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TumblingWindowClause4172); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:641:106: ( p_TypeDeclaration )? + var alt60=2; + var LA60_0 = this.input.LA(1); + + if ( (LA60_0==AS) ) { + alt60=1; + } + switch (alt60) { + case 1 : + // xquery/XQueryParser.g:641:106: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_TumblingWindowClause4176); + p_TypeDeclaration128=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration128.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_TumblingWindowClause4181); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TumblingWindowClause4185); + p_ExprSingle129=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle129.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_WindowStartCondition_in_p_TumblingWindowClause4188); + p_WindowStartCondition130=this.p_WindowStartCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowStartCondition130.getTree()); + // xquery/XQueryParser.g:641:187: ( p_WindowEndCondition )? + var alt61=2; + var LA61_0 = this.input.LA(1); + + if ( (LA61_0==END||LA61_0==ONLY) ) { + alt61=1; + } + switch (alt61) { + case 1 : + // xquery/XQueryParser.g:641:187: p_WindowEndCondition + this.pushFollow(XQueryParser.FOLLOW_p_WindowEndCondition_in_p_TumblingWindowClause4190); + p_WindowEndCondition131=this.p_WindowEndCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowEndCondition131.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SlidingWindowClause_return: (function() { + XQueryParser.p_SlidingWindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SlidingWindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:645:1: p_SlidingWindowClause : k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ; + // $ANTLR start "p_SlidingWindowClause" + p_SlidingWindowClause: function() { + var retval = new XQueryParser.p_SlidingWindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_TypeDeclaration132 = null; + var p_ExprSingle133 = null; + var p_WindowStartCondition134 = null; + var p_WindowEndCondition135 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:646:9: (k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ) + // xquery/XQueryParser.g:646:11: k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SLIDING,XQueryParser.FOLLOW_SLIDING_in_p_SlidingWindowClause4219); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_SlidingWindowClause4225); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_SlidingWindowClause4231); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_SlidingWindowClause4235); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:646:107: ( p_TypeDeclaration )? + var alt62=2; + var LA62_0 = this.input.LA(1); + + if ( (LA62_0==AS) ) { + alt62=1; + } + switch (alt62) { + case 1 : + // xquery/XQueryParser.g:646:107: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_SlidingWindowClause4239); + p_TypeDeclaration132=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration132.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_SlidingWindowClause4244); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SlidingWindowClause4248); + p_ExprSingle133=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle133.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_WindowStartCondition_in_p_SlidingWindowClause4251); + p_WindowStartCondition134=this.p_WindowStartCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowStartCondition134.getTree()); + // xquery/XQueryParser.g:646:188: ( p_WindowEndCondition )? + var alt63=2; + var LA63_0 = this.input.LA(1); + + if ( (LA63_0==END||LA63_0==ONLY) ) { + alt63=1; + } + switch (alt63) { + case 1 : + // xquery/XQueryParser.g:646:188: p_WindowEndCondition + this.pushFollow(XQueryParser.FOLLOW_p_WindowEndCondition_in_p_SlidingWindowClause4253); + p_WindowEndCondition135=this.p_WindowEndCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowEndCondition135.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowStartCondition_return: (function() { + XQueryParser.p_WindowStartCondition_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowStartCondition_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:650:1: p_WindowStartCondition : k= START p_WindowVars k= WHEN p_ExprSingle[true] ; + // $ANTLR start "p_WindowStartCondition" + p_WindowStartCondition: function() { + var retval = new XQueryParser.p_WindowStartCondition_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_WindowVars136 = null; + var p_ExprSingle137 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:651:9: (k= START p_WindowVars k= WHEN p_ExprSingle[true] ) + // xquery/XQueryParser.g:651:11: k= START p_WindowVars k= WHEN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,START,XQueryParser.FOLLOW_START_in_p_WindowStartCondition4282); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_WindowVars_in_p_WindowStartCondition4286); + p_WindowVars136=this.p_WindowVars(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowVars136.getTree()); + k=this.match(this.input,WHEN,XQueryParser.FOLLOW_WHEN_in_p_WindowStartCondition4290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WindowStartCondition4294); + p_ExprSingle137=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle137.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowEndCondition_return: (function() { + XQueryParser.p_WindowEndCondition_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowEndCondition_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:655:1: p_WindowEndCondition : (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] ; + // $ANTLR start "p_WindowEndCondition" + p_WindowEndCondition: function() { + var retval = new XQueryParser.p_WindowEndCondition_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_WindowVars138 = null; + var p_ExprSingle139 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:656:9: ( (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] ) + // xquery/XQueryParser.g:656:11: (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:656:11: (k= ONLY )? + var alt64=2; + var LA64_0 = this.input.LA(1); + + if ( (LA64_0==ONLY) ) { + alt64=1; + } + switch (alt64) { + case 1 : + // xquery/XQueryParser.g:656:12: k= ONLY + k=this.match(this.input,ONLY,XQueryParser.FOLLOW_ONLY_in_p_WindowEndCondition4324); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + k=this.match(this.input,END,XQueryParser.FOLLOW_END_in_p_WindowEndCondition4332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_WindowVars_in_p_WindowEndCondition4336); + p_WindowVars138=this.p_WindowVars(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowVars138.getTree()); + k=this.match(this.input,WHEN,XQueryParser.FOLLOW_WHEN_in_p_WindowEndCondition4340); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WindowEndCondition4344); + p_ExprSingle139=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle139.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowVars_return: (function() { + XQueryParser.p_WindowVars_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowVars_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:660:1: p_WindowVars : (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? ; + // $ANTLR start "p_WindowVars" + p_WindowVars: function() { + var retval = new XQueryParser.p_WindowVars_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var DOLLAR141 = null; + var DOLLAR143 = null; + var v = null; + var p_PositionalVar140 = null; + var p_PreviousItem142 = null; + var p_NextItem144 = null; + + var d_tree=null; + var k_tree=null; + var DOLLAR141_tree=null; + var DOLLAR143_tree=null; + + try { + // xquery/XQueryParser.g:661:9: ( (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? ) + // xquery/XQueryParser.g:661:11: (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:661:11: (d= DOLLAR v= p_CurrentItem )? + var alt65=2; + var LA65_0 = this.input.LA(1); + + if ( (LA65_0==DOLLAR) ) { + alt65=1; + } + switch (alt65) { + case 1 : + // xquery/XQueryParser.g:661:12: d= DOLLAR v= p_CurrentItem + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_CurrentItem_in_p_WindowVars4378); + v=this.p_CurrentItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + // xquery/XQueryParser.g:661:65: ( p_PositionalVar )? + var alt66=2; + var LA66_0 = this.input.LA(1); + + if ( (LA66_0==AT) ) { + alt66=1; + } + switch (alt66) { + case 1 : + // xquery/XQueryParser.g:661:65: p_PositionalVar + this.pushFollow(XQueryParser.FOLLOW_p_PositionalVar_in_p_WindowVars4384); + p_PositionalVar140=this.p_PositionalVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PositionalVar140.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:661:82: (k= PREVIOUS DOLLAR p_PreviousItem )? + var alt67=2; + var LA67_0 = this.input.LA(1); + + if ( (LA67_0==PREVIOUS) ) { + alt67=1; + } + switch (alt67) { + case 1 : + // xquery/XQueryParser.g:661:83: k= PREVIOUS DOLLAR p_PreviousItem + k=this.match(this.input,PREVIOUS,XQueryParser.FOLLOW_PREVIOUS_in_p_WindowVars4390); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + DOLLAR141=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4394); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOLLAR141_tree = this.adaptor.create(DOLLAR141); + this.adaptor.addChild(root_0, DOLLAR141_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_PreviousItem_in_p_WindowVars4396); + p_PreviousItem142=this.p_PreviousItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PreviousItem142.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:661:133: (k= NEXT DOLLAR p_NextItem )? + var alt68=2; + var LA68_0 = this.input.LA(1); + + if ( (LA68_0==NEXT) ) { + alt68=1; + } + switch (alt68) { + case 1 : + // xquery/XQueryParser.g:661:134: k= NEXT DOLLAR p_NextItem + k=this.match(this.input,NEXT,XQueryParser.FOLLOW_NEXT_in_p_WindowVars4403); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + DOLLAR143=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4407); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOLLAR143_tree = this.adaptor.create(DOLLAR143); + this.adaptor.addChild(root_0, DOLLAR143_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NextItem_in_p_WindowVars4409); + p_NextItem144=this.p_NextItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NextItem144.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CurrentItem_return: (function() { + XQueryParser.p_CurrentItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CurrentItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:665:1: p_CurrentItem : p_QName ; + // $ANTLR start "p_CurrentItem" + p_CurrentItem: function() { + var retval = new XQueryParser.p_CurrentItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName145 = null; + + + try { + // xquery/XQueryParser.g:666:9: ( p_QName ) + // xquery/XQueryParser.g:666:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_CurrentItem4437); + p_QName145=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName145.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PreviousItem_return: (function() { + XQueryParser.p_PreviousItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PreviousItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:670:1: p_PreviousItem : p_QName ; + // $ANTLR start "p_PreviousItem" + p_PreviousItem: function() { + var retval = new XQueryParser.p_PreviousItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName146 = null; + + + try { + // xquery/XQueryParser.g:671:9: ( p_QName ) + // xquery/XQueryParser.g:671:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_PreviousItem4463); + p_QName146=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName146.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NextItem_return: (function() { + XQueryParser.p_NextItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NextItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:675:1: p_NextItem : p_QName ; + // $ANTLR start "p_NextItem" + p_NextItem: function() { + var retval = new XQueryParser.p_NextItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName147 = null; + + + try { + // xquery/XQueryParser.g:676:9: ( p_QName ) + // xquery/XQueryParser.g:676:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NextItem4489); + p_QName147=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName147.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CountClause_return: (function() { + XQueryParser.p_CountClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CountClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:680:1: p_CountClause : k= COUNT d= DOLLAR v= p_VarName ; + // $ANTLR start "p_CountClause" + p_CountClause: function() { + var retval = new XQueryParser.p_CountClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:681:9: (k= COUNT d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:681:11: k= COUNT d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COUNT,XQueryParser.FOLLOW_COUNT_in_p_CountClause4517); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CountClause4523); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CountClause4527); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WhereClause_return: (function() { + XQueryParser.p_WhereClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WhereClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:685:1: p_WhereClause : k= WHERE p_ExprSingle[true] ; + // $ANTLR start "p_WhereClause" + p_WhereClause: function() { + var retval = new XQueryParser.p_WhereClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ExprSingle148 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:686:9: (k= WHERE p_ExprSingle[true] ) + // xquery/XQueryParser.g:686:11: k= WHERE p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WHERE,XQueryParser.FOLLOW_WHERE_in_p_WhereClause4565); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WhereClause4569); + p_ExprSingle148=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle148.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupByClause_return: (function() { + XQueryParser.p_GroupByClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupByClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:690:1: p_GroupByClause : k= GROUP k= BY p_GroupingSpecList ; + // $ANTLR start "p_GroupByClause" + p_GroupByClause: function() { + var retval = new XQueryParser.p_GroupByClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_GroupingSpecList149 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:691:9: (k= GROUP k= BY p_GroupingSpecList ) + // xquery/XQueryParser.g:691:11: k= GROUP k= BY p_GroupingSpecList + root_0 = this.adaptor.nil(); + + k=this.match(this.input,GROUP,XQueryParser.FOLLOW_GROUP_in_p_GroupByClause4598); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_GroupByClause4604); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpecList_in_p_GroupByClause4608); + p_GroupingSpecList149=this.p_GroupingSpecList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpecList149.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupingSpecList_return: (function() { + XQueryParser.p_GroupingSpecList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupingSpecList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:695:1: p_GroupingSpecList : p_GroupingSpec ( COMMA p_GroupingSpec )* ; + // $ANTLR start "p_GroupingSpecList" + p_GroupingSpecList: function() { + var retval = new XQueryParser.p_GroupingSpecList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA151 = null; + var p_GroupingSpec150 = null; + var p_GroupingSpec152 = null; + + var COMMA151_tree=null; + + try { + // xquery/XQueryParser.g:696:9: ( p_GroupingSpec ( COMMA p_GroupingSpec )* ) + // xquery/XQueryParser.g:696:11: p_GroupingSpec ( COMMA p_GroupingSpec )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4634); + p_GroupingSpec150=this.p_GroupingSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpec150.getTree()); + // xquery/XQueryParser.g:696:26: ( COMMA p_GroupingSpec )* + loop69: + do { + var alt69=2; + var LA69_0 = this.input.LA(1); + + if ( (LA69_0==COMMA) ) { + alt69=1; + } + + + switch (alt69) { + case 1 : + // xquery/XQueryParser.g:696:27: COMMA p_GroupingSpec + COMMA151=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_GroupingSpecList4637); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA151_tree = this.adaptor.create(COMMA151); + this.adaptor.addChild(root_0, COMMA151_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4639); + p_GroupingSpec152=this.p_GroupingSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpec152.getTree()); + + + break; + + default : + break loop69; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupingSpec_return: (function() { + XQueryParser.p_GroupingSpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupingSpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:700:1: p_GroupingSpec : d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? ; + // $ANTLR start "p_GroupingSpec" + p_GroupingSpec: function() { + var retval = new XQueryParser.p_GroupingSpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var v = null; + var p_StringLiteral153 = null; + + var d_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:701:9: (d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? ) + // xquery/XQueryParser.g:701:11: d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_GroupingSpec4669); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_GroupingSpec4673); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:701:58: (k= COLLATION p_StringLiteral )? + var alt70=2; + var LA70_0 = this.input.LA(1); + + if ( (LA70_0==COLLATION) ) { + alt70=1; + } + switch (alt70) { + case 1 : + // xquery/XQueryParser.g:701:59: k= COLLATION p_StringLiteral + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_GroupingSpec4680); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_GroupingSpec4684); + p_StringLiteral153=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral153.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderByClause_return: (function() { + XQueryParser.p_OrderByClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderByClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:705:1: p_OrderByClause : ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList ; + // $ANTLR start "p_OrderByClause" + p_OrderByClause: function() { + var retval = new XQueryParser.p_OrderByClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_OrderSpecList154 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:706:9: ( ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList ) + // xquery/XQueryParser.g:706:11: ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:706:11: ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) + var alt71=2; + var LA71_0 = this.input.LA(1); + + if ( (LA71_0==ORDER) ) { + alt71=1; + } + else if ( (LA71_0==STABLE) ) { + alt71=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 71, 0, this.input); + + throw nvae; + } + switch (alt71) { + case 1 : + // xquery/XQueryParser.g:706:12: (k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:12: (k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:13: k+= ORDER k+= BY + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_p_OrderByClause4716); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_OrderByClause4720); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:706:31: (k+= STABLE k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:31: (k+= STABLE k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:32: k+= STABLE k+= ORDER k+= BY + k=this.match(this.input,STABLE,XQueryParser.FOLLOW_STABLE_in_p_OrderByClause4728); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_p_OrderByClause4732); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_OrderByClause4736); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpecList_in_p_OrderByClause4742); + p_OrderSpecList154=this.p_OrderSpecList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpecList154.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderSpecList_return: (function() { + XQueryParser.p_OrderSpecList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderSpecList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:710:1: p_OrderSpecList : p_OrderSpec ( COMMA p_OrderSpec )* ; + // $ANTLR start "p_OrderSpecList" + p_OrderSpecList: function() { + var retval = new XQueryParser.p_OrderSpecList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA156 = null; + var p_OrderSpec155 = null; + var p_OrderSpec157 = null; + + var COMMA156_tree=null; + + try { + // xquery/XQueryParser.g:711:9: ( p_OrderSpec ( COMMA p_OrderSpec )* ) + // xquery/XQueryParser.g:711:11: p_OrderSpec ( COMMA p_OrderSpec )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpec_in_p_OrderSpecList4768); + p_OrderSpec155=this.p_OrderSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpec155.getTree()); + // xquery/XQueryParser.g:711:23: ( COMMA p_OrderSpec )* + loop72: + do { + var alt72=2; + var LA72_0 = this.input.LA(1); + + if ( (LA72_0==COMMA) ) { + alt72=1; + } + + + switch (alt72) { + case 1 : + // xquery/XQueryParser.g:711:24: COMMA p_OrderSpec + COMMA156=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_OrderSpecList4771); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA156_tree = this.adaptor.create(COMMA156); + this.adaptor.addChild(root_0, COMMA156_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpec_in_p_OrderSpecList4773); + p_OrderSpec157=this.p_OrderSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpec157.getTree()); + + + break; + + default : + break loop72; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderSpec_return: (function() { + XQueryParser.p_OrderSpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderSpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:715:1: p_OrderSpec : p_ExprSingle[true] p_OrderModifier ; + // $ANTLR start "p_OrderSpec" + p_OrderSpec: function() { + var retval = new XQueryParser.p_OrderSpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle158 = null; + var p_OrderModifier159 = null; + + + try { + // xquery/XQueryParser.g:716:9: ( p_ExprSingle[true] p_OrderModifier ) + // xquery/XQueryParser.g:716:11: p_ExprSingle[true] p_OrderModifier + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_OrderSpec4801); + p_ExprSingle158=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle158.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_OrderModifier_in_p_OrderSpec4804); + p_OrderModifier159=this.p_OrderModifier(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderModifier159.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderModifier_return: (function() { + XQueryParser.p_OrderModifier_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderModifier_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:720:1: p_OrderModifier : (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? ; + // $ANTLR start "p_OrderModifier" + p_OrderModifier: function() { + var retval = new XQueryParser.p_OrderModifier_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringLiteral160 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:721:9: ( (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? ) + // xquery/XQueryParser.g:721:11: (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:721:11: (k+= ASCENDING | k+= DESCENDING )? + var alt73=3; + var LA73_0 = this.input.LA(1); + + if ( (LA73_0==ASCENDING) ) { + alt73=1; + } + else if ( (LA73_0==DESCENDING) ) { + alt73=2; + } + switch (alt73) { + case 1 : + // xquery/XQueryParser.g:721:12: k+= ASCENDING + k=this.match(this.input,ASCENDING,XQueryParser.FOLLOW_ASCENDING_in_p_OrderModifier4833); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:721:27: k+= DESCENDING + k=this.match(this.input,DESCENDING,XQueryParser.FOLLOW_DESCENDING_in_p_OrderModifier4839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + // xquery/XQueryParser.g:721:43: (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? + var alt75=2; + var LA75_0 = this.input.LA(1); + + if ( (LA75_0==EMPTY) ) { + alt75=1; + } + switch (alt75) { + case 1 : + // xquery/XQueryParser.g:721:44: k+= EMPTY (k+= GREATEST | k+= LEAST ) + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_p_OrderModifier4846); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:721:53: (k+= GREATEST | k+= LEAST ) + var alt74=2; + var LA74_0 = this.input.LA(1); + + if ( (LA74_0==GREATEST) ) { + alt74=1; + } + else if ( (LA74_0==LEAST) ) { + alt74=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 74, 0, this.input); + + throw nvae; + } + switch (alt74) { + case 1 : + // xquery/XQueryParser.g:721:54: k+= GREATEST + k=this.match(this.input,GREATEST,XQueryParser.FOLLOW_GREATEST_in_p_OrderModifier4851); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:721:68: k+= LEAST + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_OrderModifier4857); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + break; + + } + + // xquery/XQueryParser.g:721:80: (k+= COLLATION p_StringLiteral )? + var alt76=2; + var LA76_0 = this.input.LA(1); + + if ( (LA76_0==COLLATION) ) { + alt76=1; + } + switch (alt76) { + case 1 : + // xquery/XQueryParser.g:721:81: k+= COLLATION p_StringLiteral + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_OrderModifier4865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_OrderModifier4867); + p_StringLiteral160=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral160.getTree()); + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReturnHybrid_return: (function() { + XQueryParser.p_ReturnHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReturnHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:725:1: p_ReturnHybrid[strict] : k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_ReturnHybrid" + p_ReturnHybrid: function(strict) { + var retval = new XQueryParser.p_ReturnHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_Hybrid161 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:726:9: (k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:726:11: k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_ReturnHybrid4900); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_ReturnHybrid4904); + p_Hybrid161=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid161.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuantifiedExpr_return: (function() { + XQueryParser.p_QuantifiedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuantifiedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:730:1: p_QuantifiedExpr : (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] ; + // $ANTLR start "p_QuantifiedExpr" + p_QuantifiedExpr: function() { + var retval = new XQueryParser.p_QuantifiedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var e = null; + var COMMA164 = null; + var v = null; + var w = null; + var p_TypeDeclaration162 = null; + var p_ExprSingle163 = null; + var p_TypeDeclaration165 = null; + var p_ExprSingle166 = null; + var p_ExprSingle167 = null; + + var k_tree=null; + var d_tree=null; + var e_tree=null; + var COMMA164_tree=null; + + try { + // xquery/XQueryParser.g:731:9: ( (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] ) + // xquery/XQueryParser.g:731:11: (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:731:11: (k= SOME | k= EVERY ) + var alt77=2; + var LA77_0 = this.input.LA(1); + + if ( (LA77_0==SOME) ) { + alt77=1; + } + else if ( (LA77_0==EVERY) ) { + alt77=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 77, 0, this.input); + + throw nvae; + } + switch (alt77) { + case 1 : + // xquery/XQueryParser.g:731:12: k= SOME + k=this.match(this.input,SOME,XQueryParser.FOLLOW_SOME_in_p_QuantifiedExpr4934); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:731:21: k= EVERY + k=this.match(this.input,EVERY,XQueryParser.FOLLOW_EVERY_in_p_QuantifiedExpr4940); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_QuantifiedExpr4947); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_QuantifiedExpr4951); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:731:92: ( p_TypeDeclaration )? + var alt78=2; + var LA78_0 = this.input.LA(1); + + if ( (LA78_0==AS) ) { + alt78=1; + } + switch (alt78) { + case 1 : + // xquery/XQueryParser.g:731:92: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4955); + p_TypeDeclaration162=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration162.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_QuantifiedExpr4960); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4964); + p_ExprSingle163=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle163.getTree()); + // xquery/XQueryParser.g:731:150: ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* + loop80: + do { + var alt80=2; + var LA80_0 = this.input.LA(1); + + if ( (LA80_0==COMMA) ) { + alt80=1; + } + + + switch (alt80) { + case 1 : + // xquery/XQueryParser.g:731:151: COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] + COMMA164=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_QuantifiedExpr4968); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA164_tree = this.adaptor.create(COMMA164); + this.adaptor.addChild(root_0, COMMA164_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_QuantifiedExpr4972); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_QuantifiedExpr4976); + w=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + // xquery/XQueryParser.g:731:200: ( p_TypeDeclaration )? + var alt79=2; + var LA79_0 = this.input.LA(1); + + if ( (LA79_0==AS) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // xquery/XQueryParser.g:731:200: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4980); + p_TypeDeclaration165=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration165.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_QuantifiedExpr4985); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4989); + p_ExprSingle166=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle166.getTree()); + + + break; + + default : + break loop80; + } + } while (true); + + k=this.match(this.input,SATISFIES,XQueryParser.FOLLOW_SATISFIES_in_p_QuantifiedExpr4996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr5000); + p_ExprSingle167=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle167.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchHybrid_return: (function() { + XQueryParser.p_SwitchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:735:1: p_SwitchHybrid[strict] : k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_SwitchHybrid" + p_SwitchHybrid: function(strict) { + var retval = new XQueryParser.p_SwitchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN168 = null; + var RPAREN170 = null; + var p_Expr169 = null; + var p_SwitchCaseHybrid171 = null; + var p_Hybrid172 = null; + + var k_tree=null; + var LPAREN168_tree=null; + var RPAREN170_tree=null; + + try { + // xquery/XQueryParser.g:736:9: (k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:736:11: k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_p_SwitchHybrid5030); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN168=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SwitchHybrid5034); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN168_tree = this.adaptor.create(LPAREN168); + this.adaptor.addChild(root_0, LPAREN168_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_SwitchHybrid5036); + p_Expr169=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr169.getTree()); + RPAREN170=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SwitchHybrid5039); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN170_tree = this.adaptor.create(RPAREN170); + this.adaptor.addChild(root_0, RPAREN170_tree); + } + // xquery/XQueryParser.g:736:67: ( p_SwitchCaseHybrid[$strict] )+ + var cnt81=0; + loop81: + do { + var alt81=2; + var LA81_0 = this.input.LA(1); + + if ( (LA81_0==CASE) ) { + alt81=1; + } + + + switch (alt81) { + case 1 : + // xquery/XQueryParser.g:736:67: p_SwitchCaseHybrid[$strict] + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseHybrid_in_p_SwitchHybrid5041); + p_SwitchCaseHybrid171=this.p_SwitchCaseHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseHybrid171.getTree()); + + + break; + + default : + if ( cnt81 >= 1 ) { + break loop81; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(81, this.input); + throw eee; + } + cnt81++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SwitchHybrid5047); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchHybrid5053); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchHybrid5057); + p_Hybrid172=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid172.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseHybrid_return: (function() { + XQueryParser.p_SwitchCaseHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:740:1: p_SwitchCaseHybrid[strict] : (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_SwitchCaseHybrid" + p_SwitchCaseHybrid: function(strict) { + var retval = new XQueryParser.p_SwitchCaseHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_SwitchCaseOperand173 = null; + var p_Hybrid174 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:741:9: ( (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:741:11: (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:741:11: (k= CASE p_SwitchCaseOperand )+ + var cnt82=0; + loop82: + do { + var alt82=2; + var LA82_0 = this.input.LA(1); + + if ( (LA82_0==CASE) ) { + alt82=1; + } + + + switch (alt82) { + case 1 : + // xquery/XQueryParser.g:741:12: k= CASE p_SwitchCaseOperand + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_SwitchCaseHybrid5088); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseHybrid5092); + p_SwitchCaseOperand173=this.p_SwitchCaseOperand(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseOperand173.getTree()); + + + break; + + default : + if ( cnt82 >= 1 ) { + break loop82; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(82, this.input); + throw eee; + } + cnt82++; + } while (true); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchCaseHybrid5098); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchCaseHybrid5102); + p_Hybrid174=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid174.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseOperand_return: (function() { + XQueryParser.p_SwitchCaseOperand_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseOperand_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:745:1: p_SwitchCaseOperand : p_ExprSingle[true] ; + // $ANTLR start "p_SwitchCaseOperand" + p_SwitchCaseOperand: function() { + var retval = new XQueryParser.p_SwitchCaseOperand_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle175 = null; + + + try { + // xquery/XQueryParser.g:746:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:746:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SwitchCaseOperand5129); + p_ExprSingle175=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle175.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeswitchHybrid_return: (function() { + XQueryParser.p_TypeswitchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeswitchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:750:1: p_TypeswitchHybrid[strict] : k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_TypeswitchHybrid" + p_TypeswitchHybrid: function(strict) { + var retval = new XQueryParser.p_TypeswitchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var LPAREN176 = null; + var RPAREN178 = null; + var v = null; + var p_Expr177 = null; + var p_CaseHybrid179 = null; + var p_Hybrid180 = null; + + var k_tree=null; + var d_tree=null; + var LPAREN176_tree=null; + var RPAREN178_tree=null; + + try { + // xquery/XQueryParser.g:751:9: (k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:751:11: k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_p_TypeswitchHybrid5159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN176=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypeswitchHybrid5163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN176_tree = this.adaptor.create(LPAREN176); + this.adaptor.addChild(root_0, LPAREN176_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TypeswitchHybrid5165); + p_Expr177=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr177.getTree()); + RPAREN178=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypeswitchHybrid5168); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN178_tree = this.adaptor.create(RPAREN178); + this.adaptor.addChild(root_0, RPAREN178_tree); + } + // xquery/XQueryParser.g:751:71: ( p_CaseHybrid[$strict] )+ + var cnt83=0; + loop83: + do { + var alt83=2; + var LA83_0 = this.input.LA(1); + + if ( (LA83_0==CASE) ) { + alt83=1; + } + + + switch (alt83) { + case 1 : + // xquery/XQueryParser.g:751:71: p_CaseHybrid[$strict] + this.pushFollow(XQueryParser.FOLLOW_p_CaseHybrid_in_p_TypeswitchHybrid5170); + p_CaseHybrid179=this.p_CaseHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CaseHybrid179.getTree()); + + + break; + + default : + if ( cnt83 >= 1 ) { + break loop83; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(83, this.input); + throw eee; + } + cnt83++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_TypeswitchHybrid5176); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:751:119: (d= DOLLAR v= p_VarName )? + var alt84=2; + var LA84_0 = this.input.LA(1); + + if ( (LA84_0==DOLLAR) ) { + alt84=1; + } + switch (alt84) { + case 1 : + // xquery/XQueryParser.g:751:120: d= DOLLAR v= p_VarName + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TypeswitchHybrid5183); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TypeswitchHybrid5187); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TypeswitchHybrid5195); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_TypeswitchHybrid5199); + p_Hybrid180=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid180.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CaseHybrid_return: (function() { + XQueryParser.p_CaseHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CaseHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:755:1: p_CaseHybrid[strict] : k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] ; + // $ANTLR start "p_CaseHybrid" + p_CaseHybrid: function(strict) { + var retval = new XQueryParser.p_CaseHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_SequenceTypeUnion181 = null; + var p_ExprSingle182 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:756:9: (k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] ) + // xquery/XQueryParser.g:756:11: k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_CaseHybrid5229); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:756:33: (d= DOLLAR v= p_VarName k= AS )? + var alt85=2; + var LA85_0 = this.input.LA(1); + + if ( (LA85_0==DOLLAR) ) { + alt85=1; + } + switch (alt85) { + case 1 : + // xquery/XQueryParser.g:756:34: d= DOLLAR v= p_VarName k= AS + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CaseHybrid5236); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CaseHybrid5240); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CaseHybrid5246); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceTypeUnion_in_p_CaseHybrid5252); + p_SequenceTypeUnion181=this.p_SequenceTypeUnion(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceTypeUnion181.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_CaseHybrid5256); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_CaseHybrid5260); + p_ExprSingle182=this.p_ExprSingle(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle182.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SequenceTypeUnion_return: (function() { + XQueryParser.p_SequenceTypeUnion_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SequenceTypeUnion_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:760:1: p_SequenceTypeUnion : p_SequenceType ( VBAR p_SequenceType )* ; + // $ANTLR start "p_SequenceTypeUnion" + p_SequenceTypeUnion: function() { + var retval = new XQueryParser.p_SequenceTypeUnion_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var VBAR184 = null; + var p_SequenceType183 = null; + var p_SequenceType185 = null; + + var VBAR184_tree=null; + + try { + // xquery/XQueryParser.g:761:9: ( p_SequenceType ( VBAR p_SequenceType )* ) + // xquery/XQueryParser.g:761:11: p_SequenceType ( VBAR p_SequenceType )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5287); + p_SequenceType183=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType183.getTree()); + // xquery/XQueryParser.g:761:26: ( VBAR p_SequenceType )* + loop86: + do { + var alt86=2; + var LA86_0 = this.input.LA(1); + + if ( (LA86_0==VBAR) ) { + alt86=1; + } + + + switch (alt86) { + case 1 : + // xquery/XQueryParser.g:761:27: VBAR p_SequenceType + VBAR184=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_SequenceTypeUnion5290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR184_tree = this.adaptor.create(VBAR184); + this.adaptor.addChild(root_0, VBAR184_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5292); + p_SequenceType185=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType185.getTree()); + + + break; + + default : + break loop86; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IfHybrid_return: (function() { + XQueryParser.p_IfHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IfHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:765:1: p_IfHybrid[strict] : k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] ; + // $ANTLR start "p_IfHybrid" + p_IfHybrid: function(strict) { + var retval = new XQueryParser.p_IfHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN186 = null; + var RPAREN188 = null; + var p_Expr187 = null; + var p_Hybrid189 = null; + var p_Hybrid190 = null; + + var k_tree=null; + var LPAREN186_tree=null; + var RPAREN188_tree=null; + + try { + // xquery/XQueryParser.g:766:9: (k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:766:11: k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_p_IfHybrid5323); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN186=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_IfHybrid5327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN186_tree = this.adaptor.create(LPAREN186); + this.adaptor.addChild(root_0, LPAREN186_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_IfHybrid5329); + p_Expr187=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr187.getTree()); + RPAREN188=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_IfHybrid5332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN188_tree = this.adaptor.create(RPAREN188); + this.adaptor.addChild(root_0, RPAREN188_tree); + } + k=this.match(this.input,THEN,XQueryParser.FOLLOW_THEN_in_p_IfHybrid5336); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfHybrid5340); + p_Hybrid189=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid189.getTree()); + k=this.match(this.input,ELSE,XQueryParser.FOLLOW_ELSE_in_p_IfHybrid5345); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfHybrid5349); + p_Hybrid190=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid190.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchExpr_return: (function() { + XQueryParser.p_TryCatchExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:770:1: p_TryCatchExpr : p_TryClause ( p_CatchClause )+ ; + // $ANTLR start "p_TryCatchExpr" + p_TryCatchExpr: function() { + var retval = new XQueryParser.p_TryCatchExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_TryClause191 = null; + var p_CatchClause192 = null; + + + try { + // xquery/XQueryParser.g:771:9: ( p_TryClause ( p_CatchClause )+ ) + // xquery/XQueryParser.g:771:11: p_TryClause ( p_CatchClause )+ + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TryClause_in_p_TryCatchExpr5376); + p_TryClause191=this.p_TryClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryClause191.getTree()); + // xquery/XQueryParser.g:771:23: ( p_CatchClause )+ + var cnt87=0; + loop87: + do { + var alt87=2; + var LA87_0 = this.input.LA(1); + + if ( (LA87_0==CATCH) ) { + alt87=1; + } + + + switch (alt87) { + case 1 : + // xquery/XQueryParser.g:771:23: p_CatchClause + this.pushFollow(XQueryParser.FOLLOW_p_CatchClause_in_p_TryCatchExpr5378); + p_CatchClause192=this.p_CatchClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchClause192.getTree()); + + + break; + + default : + if ( cnt87 >= 1 ) { + break loop87; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(87, this.input); + throw eee; + } + cnt87++; + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryClause_return: (function() { + XQueryParser.p_TryClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:775:1: p_TryClause : k= TRY LBRACKET p_TryTargetExpr RBRACKET ; + // $ANTLR start "p_TryClause" + p_TryClause: function() { + var retval = new XQueryParser.p_TryClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET193 = null; + var RBRACKET195 = null; + var p_TryTargetExpr194 = null; + + var k_tree=null; + var LBRACKET193_tree=null; + var RBRACKET195_tree=null; + + try { + // xquery/XQueryParser.g:776:9: (k= TRY LBRACKET p_TryTargetExpr RBRACKET ) + // xquery/XQueryParser.g:776:11: k= TRY LBRACKET p_TryTargetExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryClause5407); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET193=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_TryClause5411); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET193_tree = this.adaptor.create(LBRACKET193); + this.adaptor.addChild(root_0, LBRACKET193_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TryTargetExpr_in_p_TryClause5413); + p_TryTargetExpr194=this.p_TryTargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryTargetExpr194.getTree()); + RBRACKET195=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_TryClause5415); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET195_tree = this.adaptor.create(RBRACKET195); + this.adaptor.addChild(root_0, RBRACKET195_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryTargetExpr_return: (function() { + XQueryParser.p_TryTargetExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryTargetExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:780:1: p_TryTargetExpr : p_Expr[false,false] ; + // $ANTLR start "p_TryTargetExpr" + p_TryTargetExpr: function() { + var retval = new XQueryParser.p_TryTargetExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr196 = null; + + + try { + // xquery/XQueryParser.g:781:9: ( p_Expr[false,false] ) + // xquery/XQueryParser.g:781:11: p_Expr[false,false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TryTargetExpr5441); + p_Expr196=this.p_Expr(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr196.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CatchClause_return: (function() { + XQueryParser.p_CatchClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CatchClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:785:1: p_CatchClause : k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET ; + // $ANTLR start "p_CatchClause" + p_CatchClause: function() { + var retval = new XQueryParser.p_CatchClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET198 = null; + var RBRACKET200 = null; + var p_CatchErrorList197 = null; + var p_Expr199 = null; + + var k_tree=null; + var LBRACKET198_tree=null; + var RBRACKET200_tree=null; + + try { + // xquery/XQueryParser.g:786:9: (k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET ) + // xquery/XQueryParser.g:786:11: k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_CatchClause5470); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_CatchClause5474); + p_CatchErrorList197=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList197.getTree()); + LBRACKET198=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CatchClause5476); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET198_tree = this.adaptor.create(LBRACKET198); + this.adaptor.addChild(root_0, LBRACKET198_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CatchClause5478); + p_Expr199=this.p_Expr(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr199.getTree()); + RBRACKET200=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CatchClause5481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET200_tree = this.adaptor.create(RBRACKET200); + this.adaptor.addChild(root_0, RBRACKET200_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CatchErrorList_return: (function() { + XQueryParser.p_CatchErrorList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CatchErrorList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:790:1: p_CatchErrorList : ( p_NameTest ( VBAR p_NameTest )* | {...}? => () ); + // $ANTLR start "p_CatchErrorList" + p_CatchErrorList: function() { + var retval = new XQueryParser.p_CatchErrorList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var VBAR202 = null; + var p_NameTest201 = null; + var p_NameTest203 = null; + + var VBAR202_tree=null; + + try { + // xquery/XQueryParser.g:791:9: ( p_NameTest ( VBAR p_NameTest )* | {...}? => () ) + var alt89=2; + var LA89_0 = this.input.LA(1); + + if ( ((LA89_0>=ANCESTOR && LA89_0<=SKIP)||(LA89_0>=VALUE && LA89_0<=QUOT_ER)||LA89_0==STAR||(LA89_0>=APOS && LA89_0<=QUOT)||LA89_0==L_NCName||LA89_0==EXPLICITLY) ) { + alt89=1; + } + else if ( (LA89_0==LBRACKET) && ((this.lc(MLS)))) { + alt89=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 89, 0, this.input); + + throw nvae; + } + switch (alt89) { + case 1 : + // xquery/XQueryParser.g:791:11: p_NameTest ( VBAR p_NameTest )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_CatchErrorList5507); + p_NameTest201=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest201.getTree()); + // xquery/XQueryParser.g:791:22: ( VBAR p_NameTest )* + loop88: + do { + var alt88=2; + var LA88_0 = this.input.LA(1); + + if ( (LA88_0==VBAR) ) { + alt88=1; + } + + + switch (alt88) { + case 1 : + // xquery/XQueryParser.g:791:23: VBAR p_NameTest + VBAR202=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_CatchErrorList5510); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR202_tree = this.adaptor.create(VBAR202); + this.adaptor.addChild(root_0, VBAR202_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_CatchErrorList5512); + p_NameTest203=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest203.getTree()); + + + break; + + default : + break loop88; + } + } while (true); + + + + break; + case 2 : + // xquery/XQueryParser.g:792:11: {...}? => () + root_0 = this.adaptor.nil(); + + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_CatchErrorList", "this.lc(MLS)"); + } + // xquery/XQueryParser.g:792:29: () + // xquery/XQueryParser.g:792:43: + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrExpr_return: (function() { + XQueryParser.p_OrExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:796:1: p_OrExpr : p_AndExpr (k= OR p_AndExpr )* ; + // $ANTLR start "p_OrExpr" + p_OrExpr: function() { + var retval = new XQueryParser.p_OrExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AndExpr204 = null; + var p_AndExpr205 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:797:9: ( p_AndExpr (k= OR p_AndExpr )* ) + // xquery/XQueryParser.g:797:11: p_AndExpr (k= OR p_AndExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AndExpr_in_p_OrExpr5557); + p_AndExpr204=this.p_AndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AndExpr204.getTree()); + // xquery/XQueryParser.g:797:21: (k= OR p_AndExpr )* + loop90: + do { + var alt90=2; + var LA90_0 = this.input.LA(1); + + if ( (LA90_0==OR) ) { + alt90=1; + } + + + switch (alt90) { + case 1 : + // xquery/XQueryParser.g:797:23: k= OR p_AndExpr + k=this.match(this.input,OR,XQueryParser.FOLLOW_OR_in_p_OrExpr5563); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AndExpr_in_p_OrExpr5567); + p_AndExpr205=this.p_AndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AndExpr205.getTree()); + + + break; + + default : + break loop90; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AndExpr_return: (function() { + XQueryParser.p_AndExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AndExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:801:1: p_AndExpr : p_ComparisonExpr (k= AND p_ComparisonExpr )* ; + // $ANTLR start "p_AndExpr" + p_AndExpr: function() { + var retval = new XQueryParser.p_AndExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ComparisonExpr206 = null; + var p_ComparisonExpr207 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:802:9: ( p_ComparisonExpr (k= AND p_ComparisonExpr )* ) + // xquery/XQueryParser.g:802:11: p_ComparisonExpr (k= AND p_ComparisonExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ComparisonExpr_in_p_AndExpr5596); + p_ComparisonExpr206=this.p_ComparisonExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComparisonExpr206.getTree()); + // xquery/XQueryParser.g:802:28: (k= AND p_ComparisonExpr )* + loop91: + do { + var alt91=2; + var LA91_0 = this.input.LA(1); + + if ( (LA91_0==AND) ) { + alt91=1; + } + + + switch (alt91) { + case 1 : + // xquery/XQueryParser.g:802:30: k= AND p_ComparisonExpr + k=this.match(this.input,AND,XQueryParser.FOLLOW_AND_in_p_AndExpr5602); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ComparisonExpr_in_p_AndExpr5606); + p_ComparisonExpr207=this.p_ComparisonExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComparisonExpr207.getTree()); + + + break; + + default : + break loop91; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ComparisonExpr_return: (function() { + XQueryParser.p_ComparisonExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ComparisonExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:807:1: p_ComparisonExpr : p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? ; + // $ANTLR start "p_ComparisonExpr" + p_ComparisonExpr: function() { + var retval = new XQueryParser.p_ComparisonExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTContainsExpr208 = null; + var p_ValueComp209 = null; + var p_GeneralComp210 = null; + var p_NodeComp211 = null; + var p_FTContainsExpr212 = null; + + + try { + // xquery/XQueryParser.g:808:9: ( p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? ) + // xquery/XQueryParser.g:808:11: p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5636); + p_FTContainsExpr208=this.p_FTContainsExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContainsExpr208.getTree()); + // xquery/XQueryParser.g:808:28: ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? + var alt93=2; + var LA93_0 = this.input.LA(1); + + if ( (LA93_0==EQ||LA93_0==GE||LA93_0==GT||LA93_0==IS||LA93_0==LE||LA93_0==LT||LA93_0==NE||LA93_0==EQUAL||LA93_0==NOTEQUAL||(LA93_0>=SMALLER && LA93_0<=GREATER_GREATER)) ) { + alt93=1; + } + switch (alt93) { + case 1 : + // xquery/XQueryParser.g:808:30: ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr + // xquery/XQueryParser.g:808:30: ( p_ValueComp | p_GeneralComp | p_NodeComp ) + var alt92=3; + switch ( this.input.LA(1) ) { + case EQ: + case GE: + case GT: + case LE: + case LT: + case NE: + alt92=1; + break; + case EQUAL: + case NOTEQUAL: + case SMALLER: + case GREATER: + case SMALLEREQ: + case GREATEREQ: + alt92=2; + break; + case IS: + case SMALLER_SMALLER: + case GREATER_GREATER: + alt92=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 92, 0, this.input); + + throw nvae; + } + + switch (alt92) { + case 1 : + // xquery/XQueryParser.g:808:31: p_ValueComp + this.pushFollow(XQueryParser.FOLLOW_p_ValueComp_in_p_ComparisonExpr5641); + p_ValueComp209=this.p_ValueComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValueComp209.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:808:45: p_GeneralComp + this.pushFollow(XQueryParser.FOLLOW_p_GeneralComp_in_p_ComparisonExpr5645); + p_GeneralComp210=this.p_GeneralComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GeneralComp210.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:808:61: p_NodeComp + this.pushFollow(XQueryParser.FOLLOW_p_NodeComp_in_p_ComparisonExpr5649); + p_NodeComp211=this.p_NodeComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeComp211.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5652); + p_FTContainsExpr212=this.p_FTContainsExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContainsExpr212.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RangeExpr_return: (function() { + XQueryParser.p_RangeExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RangeExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:812:1: p_RangeExpr : p_AdditiveExpr (k= TO p_AdditiveExpr )? ; + // $ANTLR start "p_RangeExpr" + p_RangeExpr: function() { + var retval = new XQueryParser.p_RangeExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AdditiveExpr213 = null; + var p_AdditiveExpr214 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:813:9: ( p_AdditiveExpr (k= TO p_AdditiveExpr )? ) + // xquery/XQueryParser.g:813:11: p_AdditiveExpr (k= TO p_AdditiveExpr )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_RangeExpr5681); + p_AdditiveExpr213=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr213.getTree()); + // xquery/XQueryParser.g:813:26: (k= TO p_AdditiveExpr )? + var alt94=2; + var LA94_0 = this.input.LA(1); + + if ( (LA94_0==TO) ) { + alt94=1; + } + switch (alt94) { + case 1 : + // xquery/XQueryParser.g:813:28: k= TO p_AdditiveExpr + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_RangeExpr5687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_RangeExpr5691); + p_AdditiveExpr214=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr214.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AdditiveExpr_return: (function() { + XQueryParser.p_AdditiveExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AdditiveExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:817:1: p_AdditiveExpr : p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* ; + // $ANTLR start "p_AdditiveExpr" + p_AdditiveExpr: function() { + var retval = new XQueryParser.p_AdditiveExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_MultiplicativeExpr215 = null; + var p_MultiplicativeExpr216 = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:818:9: ( p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* ) + // xquery/XQueryParser.g:818:11: p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5720); + p_MultiplicativeExpr215=this.p_MultiplicativeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_MultiplicativeExpr215.getTree()); + // xquery/XQueryParser.g:818:32: ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* + loop96: + do { + var alt96=2; + var LA96_0 = this.input.LA(1); + + if ( ((LA96_0>=PLUS && LA96_0<=MINUS)) ) { + alt96=1; + } + + + switch (alt96) { + case 1 : + // xquery/XQueryParser.g:818:34: (o= PLUS | o= MINUS ) p_MultiplicativeExpr + // xquery/XQueryParser.g:818:34: (o= PLUS | o= MINUS ) + var alt95=2; + var LA95_0 = this.input.LA(1); + + if ( (LA95_0==PLUS) ) { + alt95=1; + } + else if ( (LA95_0==MINUS) ) { + alt95=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 95, 0, this.input); + + throw nvae; + } + switch (alt95) { + case 1 : + // xquery/XQueryParser.g:818:35: o= PLUS + o=this.match(this.input,PLUS,XQueryParser.FOLLOW_PLUS_in_p_AdditiveExpr5727); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:818:59: o= MINUS + o=this.match(this.input,MINUS,XQueryParser.FOLLOW_MINUS_in_p_AdditiveExpr5735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5740); + p_MultiplicativeExpr216=this.p_MultiplicativeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_MultiplicativeExpr216.getTree()); + + + break; + + default : + break loop96; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_MultiplicativeExpr_return: (function() { + XQueryParser.p_MultiplicativeExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_MultiplicativeExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:822:1: p_MultiplicativeExpr : p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* ; + // $ANTLR start "p_MultiplicativeExpr" + p_MultiplicativeExpr: function() { + var retval = new XQueryParser.p_MultiplicativeExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var k = null; + var p_UnionExpr217 = null; + var p_UnionExpr218 = null; + + var o_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:823:9: ( p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* ) + // xquery/XQueryParser.g:823:11: p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5769); + p_UnionExpr217=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr217.getTree()); + // xquery/XQueryParser.g:823:23: ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* + loop99: + do { + var alt99=2; + var LA99_0 = this.input.LA(1); + + if ( (LA99_0==DIV||LA99_0==IDIV||LA99_0==MOD||LA99_0==STAR) ) { + alt99=1; + } + + + switch (alt99) { + case 1 : + // xquery/XQueryParser.g:823:25: (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr + // xquery/XQueryParser.g:823:25: (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) + var alt98=2; + var LA98_0 = this.input.LA(1); + + if ( (LA98_0==STAR) ) { + alt98=1; + } + else if ( (LA98_0==DIV||LA98_0==IDIV||LA98_0==MOD) ) { + alt98=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 98, 0, this.input); + + throw nvae; + } + switch (alt98) { + case 1 : + // xquery/XQueryParser.g:823:26: o= STAR + o=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_MultiplicativeExpr5776); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:823:50: (k= DIV | k= IDIV | k= MOD ) + // xquery/XQueryParser.g:823:50: (k= DIV | k= IDIV | k= MOD ) + var alt97=3; + switch ( this.input.LA(1) ) { + case DIV: + alt97=1; + break; + case IDIV: + alt97=2; + break; + case MOD: + alt97=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 97, 0, this.input); + + throw nvae; + } + + switch (alt97) { + case 1 : + // xquery/XQueryParser.g:823:51: k= DIV + k=this.match(this.input,DIV,XQueryParser.FOLLOW_DIV_in_p_MultiplicativeExpr5785); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:823:59: k= IDIV + k=this.match(this.input,IDIV,XQueryParser.FOLLOW_IDIV_in_p_MultiplicativeExpr5791); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:823:68: k= MOD + k=this.match(this.input,MOD,XQueryParser.FOLLOW_MOD_in_p_MultiplicativeExpr5797); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5803); + p_UnionExpr218=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr218.getTree()); + + + break; + + default : + break loop99; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnionExpr_return: (function() { + XQueryParser.p_UnionExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnionExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:827:1: p_UnionExpr : p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* ; + // $ANTLR start "p_UnionExpr" + p_UnionExpr: function() { + var retval = new XQueryParser.p_UnionExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var VBAR220 = null; + var p_IntersectExceptExpr219 = null; + var p_IntersectExceptExpr221 = null; + + var k_tree=null; + var VBAR220_tree=null; + + try { + // xquery/XQueryParser.g:828:9: ( p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* ) + // xquery/XQueryParser.g:828:11: p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5832); + p_IntersectExceptExpr219=this.p_IntersectExceptExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntersectExceptExpr219.getTree()); + // xquery/XQueryParser.g:828:33: ( (k= UNION | VBAR ) p_IntersectExceptExpr )* + loop101: + do { + var alt101=2; + var LA101_0 = this.input.LA(1); + + if ( (LA101_0==UNION||LA101_0==VBAR) ) { + alt101=1; + } + + + switch (alt101) { + case 1 : + // xquery/XQueryParser.g:828:35: (k= UNION | VBAR ) p_IntersectExceptExpr + // xquery/XQueryParser.g:828:35: (k= UNION | VBAR ) + var alt100=2; + var LA100_0 = this.input.LA(1); + + if ( (LA100_0==UNION) ) { + alt100=1; + } + else if ( (LA100_0==VBAR) ) { + alt100=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 100, 0, this.input); + + throw nvae; + } + switch (alt100) { + case 1 : + // xquery/XQueryParser.g:828:36: k= UNION + k=this.match(this.input,UNION,XQueryParser.FOLLOW_UNION_in_p_UnionExpr5839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:828:61: VBAR + VBAR220=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_UnionExpr5845); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR220_tree = this.adaptor.create(VBAR220); + this.adaptor.addChild(root_0, VBAR220_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5848); + p_IntersectExceptExpr221=this.p_IntersectExceptExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntersectExceptExpr221.getTree()); + + + break; + + default : + break loop101; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IntersectExceptExpr_return: (function() { + XQueryParser.p_IntersectExceptExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IntersectExceptExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:832:1: p_IntersectExceptExpr : p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* ; + // $ANTLR start "p_IntersectExceptExpr" + p_IntersectExceptExpr: function() { + var retval = new XQueryParser.p_IntersectExceptExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_InstanceofExpr222 = null; + var p_InstanceofExpr223 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:833:9: ( p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* ) + // xquery/XQueryParser.g:833:11: p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5877); + p_InstanceofExpr222=this.p_InstanceofExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InstanceofExpr222.getTree()); + // xquery/XQueryParser.g:833:28: ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* + loop103: + do { + var alt103=2; + var LA103_0 = this.input.LA(1); + + if ( (LA103_0==EXCEPT||LA103_0==INTERSECT) ) { + alt103=1; + } + + + switch (alt103) { + case 1 : + // xquery/XQueryParser.g:833:30: (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr + // xquery/XQueryParser.g:833:30: (k= INTERSECT | k= EXCEPT ) + var alt102=2; + var LA102_0 = this.input.LA(1); + + if ( (LA102_0==INTERSECT) ) { + alt102=1; + } + else if ( (LA102_0==EXCEPT) ) { + alt102=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 102, 0, this.input); + + throw nvae; + } + switch (alt102) { + case 1 : + // xquery/XQueryParser.g:833:31: k= INTERSECT + k=this.match(this.input,INTERSECT,XQueryParser.FOLLOW_INTERSECT_in_p_IntersectExceptExpr5884); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:833:45: k= EXCEPT + k=this.match(this.input,EXCEPT,XQueryParser.FOLLOW_EXCEPT_in_p_IntersectExceptExpr5890); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5895); + p_InstanceofExpr223=this.p_InstanceofExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InstanceofExpr223.getTree()); + + + break; + + default : + break loop103; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InstanceofExpr_return: (function() { + XQueryParser.p_InstanceofExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InstanceofExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:837:1: p_InstanceofExpr : p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? ; + // $ANTLR start "p_InstanceofExpr" + p_InstanceofExpr: function() { + var retval = new XQueryParser.p_InstanceofExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_TreatExpr224 = null; + var p_SequenceType225 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:838:9: ( p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? ) + // xquery/XQueryParser.g:838:11: p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TreatExpr_in_p_InstanceofExpr5924); + p_TreatExpr224=this.p_TreatExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TreatExpr224.getTree()); + // xquery/XQueryParser.g:838:23: (k= INSTANCE k= OF p_SequenceType )? + var alt104=2; + var LA104_0 = this.input.LA(1); + + if ( (LA104_0==INSTANCE) ) { + alt104=1; + } + switch (alt104) { + case 1 : + // xquery/XQueryParser.g:838:25: k= INSTANCE k= OF p_SequenceType + k=this.match(this.input,INSTANCE,XQueryParser.FOLLOW_INSTANCE_in_p_InstanceofExpr5930); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,OF,XQueryParser.FOLLOW_OF_in_p_InstanceofExpr5936); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_InstanceofExpr5940); + p_SequenceType225=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType225.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TreatExpr_return: (function() { + XQueryParser.p_TreatExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TreatExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:842:1: p_TreatExpr : p_CastableExpr (k= TREAT k= AS p_SequenceType )? ; + // $ANTLR start "p_TreatExpr" + p_TreatExpr: function() { + var retval = new XQueryParser.p_TreatExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_CastableExpr226 = null; + var p_SequenceType227 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:843:9: ( p_CastableExpr (k= TREAT k= AS p_SequenceType )? ) + // xquery/XQueryParser.g:843:11: p_CastableExpr (k= TREAT k= AS p_SequenceType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CastableExpr_in_p_TreatExpr5968); + p_CastableExpr226=this.p_CastableExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CastableExpr226.getTree()); + // xquery/XQueryParser.g:843:26: (k= TREAT k= AS p_SequenceType )? + var alt105=2; + var LA105_0 = this.input.LA(1); + + if ( (LA105_0==TREAT) ) { + alt105=1; + } + switch (alt105) { + case 1 : + // xquery/XQueryParser.g:843:28: k= TREAT k= AS p_SequenceType + k=this.match(this.input,TREAT,XQueryParser.FOLLOW_TREAT_in_p_TreatExpr5974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TreatExpr5980); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TreatExpr5984); + p_SequenceType227=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType227.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CastableExpr_return: (function() { + XQueryParser.p_CastableExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CastableExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:847:1: p_CastableExpr : p_CastExpr (k= CASTABLE k= AS p_SingleType )? ; + // $ANTLR start "p_CastableExpr" + p_CastableExpr: function() { + var retval = new XQueryParser.p_CastableExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_CastExpr228 = null; + var p_SingleType229 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:848:9: ( p_CastExpr (k= CASTABLE k= AS p_SingleType )? ) + // xquery/XQueryParser.g:848:11: p_CastExpr (k= CASTABLE k= AS p_SingleType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CastExpr_in_p_CastableExpr6021); + p_CastExpr228=this.p_CastExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CastExpr228.getTree()); + // xquery/XQueryParser.g:848:22: (k= CASTABLE k= AS p_SingleType )? + var alt106=2; + var LA106_0 = this.input.LA(1); + + if ( (LA106_0==CASTABLE) ) { + alt106=1; + } + switch (alt106) { + case 1 : + // xquery/XQueryParser.g:848:24: k= CASTABLE k= AS p_SingleType + k=this.match(this.input,CASTABLE,XQueryParser.FOLLOW_CASTABLE_in_p_CastableExpr6027); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CastableExpr6033); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SingleType_in_p_CastableExpr6037); + p_SingleType229=this.p_SingleType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SingleType229.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CastExpr_return: (function() { + XQueryParser.p_CastExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CastExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:852:1: p_CastExpr : p_UnaryExpr (k= CAST k= AS p_SingleType )? ; + // $ANTLR start "p_CastExpr" + p_CastExpr: function() { + var retval = new XQueryParser.p_CastExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_UnaryExpr230 = null; + var p_SingleType231 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:853:9: ( p_UnaryExpr (k= CAST k= AS p_SingleType )? ) + // xquery/XQueryParser.g:853:11: p_UnaryExpr (k= CAST k= AS p_SingleType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnaryExpr_in_p_CastExpr6074); + p_UnaryExpr230=this.p_UnaryExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnaryExpr230.getTree()); + // xquery/XQueryParser.g:853:23: (k= CAST k= AS p_SingleType )? + var alt107=2; + var LA107_0 = this.input.LA(1); + + if ( (LA107_0==CAST) ) { + alt107=1; + } + switch (alt107) { + case 1 : + // xquery/XQueryParser.g:853:25: k= CAST k= AS p_SingleType + k=this.match(this.input,CAST,XQueryParser.FOLLOW_CAST_in_p_CastExpr6080); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CastExpr6086); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SingleType_in_p_CastExpr6090); + p_SingleType231=this.p_SingleType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SingleType231.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnaryExpr_return: (function() { + XQueryParser.p_UnaryExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnaryExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:857:1: p_UnaryExpr : (o= PLUS | o= MINUS )* p_ValueExpr -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) ; + // $ANTLR start "p_UnaryExpr" + p_UnaryExpr: function() { + var retval = new XQueryParser.p_UnaryExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_ValueExpr232 = null; + + var o_tree=null; + var stream_PLUS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token PLUS"); + var stream_MINUS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MINUS"); + var stream_p_ValueExpr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ValueExpr"); + try { + // xquery/XQueryParser.g:858:9: ( (o= PLUS | o= MINUS )* p_ValueExpr -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) ) + // xquery/XQueryParser.g:858:11: (o= PLUS | o= MINUS )* p_ValueExpr + // xquery/XQueryParser.g:858:11: (o= PLUS | o= MINUS )* + loop108: + do { + var alt108=3; + var LA108_0 = this.input.LA(1); + + if ( (LA108_0==PLUS) ) { + alt108=1; + } + else if ( (LA108_0==MINUS) ) { + alt108=2; + } + + + switch (alt108) { + case 1 : + // xquery/XQueryParser.g:858:12: o= PLUS + o=this.match(this.input,PLUS,XQueryParser.FOLLOW_PLUS_in_p_UnaryExpr6122); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_PLUS.add(o); + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:858:36: o= MINUS + o=this.match(this.input,MINUS,XQueryParser.FOLLOW_MINUS_in_p_UnaryExpr6130); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MINUS.add(o); + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + + default : + break loop108; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ValueExpr_in_p_UnaryExpr6135); + p_ValueExpr232=this.p_ValueExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ValueExpr.add(p_ValueExpr232.getTree()); + + + // AST REWRITE + // elements: p_ValueExpr, PLUS + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 859:17: -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) + { + // xquery/XQueryParser.g:859:20: ^( UnaryExpr ( PLUS )* p_ValueExpr ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(UnaryExpr, "UnaryExpr"), root_1); + + // xquery/XQueryParser.g:859:32: ( PLUS )* + while ( stream_PLUS.hasNext() ) { + this.adaptor.addChild(root_1, stream_PLUS.nextNode()); + + } + stream_PLUS.reset(); + this.adaptor.addChild(root_1, stream_p_ValueExpr.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValueExpr_return: (function() { + XQueryParser.p_ValueExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValueExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:863:1: p_ValueExpr : ( ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr | p_PathExpr | p_ExtensionExpr ); + // $ANTLR start "p_ValueExpr" + p_ValueExpr: function() { + var retval = new XQueryParser.p_ValueExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ValidateExpr233 = null; + var p_PathExpr234 = null; + var p_ExtensionExpr235 = null; + + + try { + // xquery/XQueryParser.g:864:9: ( ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr | p_PathExpr | p_ExtensionExpr ) + var alt109=3; + switch ( this.input.LA(1) ) { + case VALIDATE: + var LA109_1 = this.input.LA(2); + + if ( (LA109_1==LAX) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==STRICT) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==TYPE) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==LBRACKET) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==EOF||(LA109_1>=AND && LA109_1<=ASCENDING)||(LA109_1>=CASE && LA109_1<=CASTABLE)||LA109_1==COLLATION||LA109_1==DEFAULT||(LA109_1>=DESCENDING && LA109_1<=DIV)||LA109_1==EMPTY||LA109_1==EQ||LA109_1==EXCEPT||LA109_1==FOR||LA109_1==GE||(LA109_1>=GT && LA109_1<=IDIV)||(LA109_1>=INSTANCE && LA109_1<=IS)||LA109_1==LE||(LA109_1>=LET && LA109_1<=MOD)||LA109_1==NE||(LA109_1>=OR && LA109_1<=ORDER)||(LA109_1>=RETURN && LA109_1<=SATISFIES)||LA109_1==STABLE||(LA109_1>=TO && LA109_1<=TREAT)||LA109_1==UNION||LA109_1==WHERE||LA109_1==COUNT||(LA109_1>=END && LA109_1<=GROUP)||LA109_1==ONLY||LA109_1==START||(LA109_1>=AFTER && LA109_1<=BEFORE)||LA109_1==INTO||LA109_1==MODIFY||LA109_1==WITH||LA109_1==CONTAINS||LA109_1==PARAGRAPHS||LA109_1==SENTENCES||LA109_1==TIMES||LA109_1==WORDS||(LA109_1>=CONCAT && LA109_1<=RPAREN)||(LA109_1>=RBRACKET && LA109_1<=EQUAL)||LA109_1==NOTEQUAL||LA109_1==COMMA||(LA109_1>=STAR && LA109_1<=SLASH_SLASH)||LA109_1==COLON||(LA109_1>=SEMICOLON && LA109_1<=VBAR)) ) { + alt109=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 109, 1, this.input); + + throw nvae; + } + break; + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case UPDATING: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case LPAREN: + case DOLLAR: + case LBRACKET: + case STAR: + case SMALLER: + case SLASH: + case SLASH_SLASH: + case DOT: + case DOT_DOT: + case ATTR_SIGN: + case APOS: + case QUOT: + case L_NCName: + case L_DirCommentConstructor: + case L_DirPIConstructor: + case L_IntegerLiteral: + case L_DecimalLiteral: + case L_DoubleLiteral: + case EXPLICITLY: + alt109=2; + break; + case L_Pragma: + alt109=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 109, 0, this.input); + + throw nvae; + } + + switch (alt109) { + case 1 : + // xquery/XQueryParser.g:864:11: ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ValidateExpr_in_p_ValueExpr6205); + p_ValidateExpr233=this.p_ValidateExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValidateExpr233.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:865:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ValueExpr6217); + p_PathExpr234=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr234.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:866:11: p_ExtensionExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExtensionExpr_in_p_ValueExpr6229); + p_ExtensionExpr235=this.p_ExtensionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExtensionExpr235.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GeneralComp_return: (function() { + XQueryParser.p_GeneralComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GeneralComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:870:1: p_GeneralComp : (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) ; + // $ANTLR start "p_GeneralComp" + p_GeneralComp: function() { + var retval = new XQueryParser.p_GeneralComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:871:9: ( (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) ) + // xquery/XQueryParser.g:871:11: (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:871:11: (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) + var alt110=6; + switch ( this.input.LA(1) ) { + case EQUAL: + alt110=1; + break; + case NOTEQUAL: + alt110=2; + break; + case SMALLER: + alt110=3; + break; + case SMALLEREQ: + alt110=4; + break; + case GREATER: + alt110=5; + break; + case GREATEREQ: + alt110=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 110, 0, this.input); + + throw nvae; + } + + switch (alt110) { + case 1 : + // xquery/XQueryParser.g:871:12: o= EQUAL + o=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_GeneralComp6258); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:871:22: o= NOTEQUAL + o=this.match(this.input,NOTEQUAL,XQueryParser.FOLLOW_NOTEQUAL_in_p_GeneralComp6264); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:871:35: o= SMALLER + o=this.match(this.input,SMALLER,XQueryParser.FOLLOW_SMALLER_in_p_GeneralComp6270); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:871:47: o= SMALLEREQ + o=this.match(this.input,SMALLEREQ,XQueryParser.FOLLOW_SMALLEREQ_in_p_GeneralComp6276); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:871:61: o= GREATER + o=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_GeneralComp6282); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:871:73: o= GREATEREQ + o=this.match(this.input,GREATEREQ,XQueryParser.FOLLOW_GREATEREQ_in_p_GeneralComp6288); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValueComp_return: (function() { + XQueryParser.p_ValueComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValueComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:875:1: p_ValueComp : (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) ; + // $ANTLR start "p_ValueComp" + p_ValueComp: function() { + var retval = new XQueryParser.p_ValueComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:876:9: ( (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) ) + // xquery/XQueryParser.g:876:11: (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:876:11: (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) + var alt111=6; + switch ( this.input.LA(1) ) { + case EQ: + alt111=1; + break; + case NE: + alt111=2; + break; + case LT: + alt111=3; + break; + case LE: + alt111=4; + break; + case GT: + alt111=5; + break; + case GE: + alt111=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 111, 0, this.input); + + throw nvae; + } + + switch (alt111) { + case 1 : + // xquery/XQueryParser.g:876:12: k= EQ + k=this.match(this.input,EQ,XQueryParser.FOLLOW_EQ_in_p_ValueComp6320); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:876:19: k= NE + k=this.match(this.input,NE,XQueryParser.FOLLOW_NE_in_p_ValueComp6326); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:876:26: k= LT + k=this.match(this.input,LT,XQueryParser.FOLLOW_LT_in_p_ValueComp6332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:876:33: k= LE + k=this.match(this.input,LE,XQueryParser.FOLLOW_LE_in_p_ValueComp6338); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:876:40: k= GT + k=this.match(this.input,GT,XQueryParser.FOLLOW_GT_in_p_ValueComp6344); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:876:47: k= GE + k=this.match(this.input,GE,XQueryParser.FOLLOW_GE_in_p_ValueComp6350); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ao(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NodeComp_return: (function() { + XQueryParser.p_NodeComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NodeComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:880:1: p_NodeComp : (k= IS | SMALLER_SMALLER | GREATER_GREATER ); + // $ANTLR start "p_NodeComp" + p_NodeComp: function() { + var retval = new XQueryParser.p_NodeComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SMALLER_SMALLER236 = null; + var GREATER_GREATER237 = null; + + var k_tree=null; + var SMALLER_SMALLER236_tree=null; + var GREATER_GREATER237_tree=null; + + try { + // xquery/XQueryParser.g:881:9: (k= IS | SMALLER_SMALLER | GREATER_GREATER ) + var alt112=3; + switch ( this.input.LA(1) ) { + case IS: + alt112=1; + break; + case SMALLER_SMALLER: + alt112=2; + break; + case GREATER_GREATER: + alt112=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 112, 0, this.input); + + throw nvae; + } + + switch (alt112) { + case 1 : + // xquery/XQueryParser.g:881:11: k= IS + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IS,XQueryParser.FOLLOW_IS_in_p_NodeComp6381); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:881:33: SMALLER_SMALLER + root_0 = this.adaptor.nil(); + + SMALLER_SMALLER236=this.match(this.input,SMALLER_SMALLER,XQueryParser.FOLLOW_SMALLER_SMALLER_in_p_NodeComp6387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SMALLER_SMALLER236_tree = this.adaptor.create(SMALLER_SMALLER236); + this.adaptor.addChild(root_0, SMALLER_SMALLER236_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:881:51: GREATER_GREATER + root_0 = this.adaptor.nil(); + + GREATER_GREATER237=this.match(this.input,GREATER_GREATER,XQueryParser.FOLLOW_GREATER_GREATER_in_p_NodeComp6391); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + GREATER_GREATER237_tree = this.adaptor.create(GREATER_GREATER237); + this.adaptor.addChild(root_0, GREATER_GREATER237_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValidateExpr_return: (function() { + XQueryParser.p_ValidateExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValidateExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:885:1: p_ValidateExpr : k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_ValidateExpr" + p_ValidateExpr: function() { + var retval = new XQueryParser.p_ValidateExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET240 = null; + var RBRACKET242 = null; + var p_ValidationMode238 = null; + var p_TypeName239 = null; + var p_Expr241 = null; + + var k_tree=null; + var LBRACKET240_tree=null; + var RBRACKET242_tree=null; + + try { + // xquery/XQueryParser.g:886:9: (k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:886:11: k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,VALIDATE,XQueryParser.FOLLOW_VALIDATE_in_p_ValidateExpr6419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:886:37: ( p_ValidationMode | k= TYPE p_TypeName )? + var alt113=3; + var LA113_0 = this.input.LA(1); + + if ( (LA113_0==LAX||LA113_0==STRICT) ) { + alt113=1; + } + else if ( (LA113_0==TYPE) ) { + alt113=2; + } + switch (alt113) { + case 1 : + // xquery/XQueryParser.g:886:39: p_ValidationMode + this.pushFollow(XQueryParser.FOLLOW_p_ValidationMode_in_p_ValidateExpr6425); + p_ValidationMode238=this.p_ValidationMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValidationMode238.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:886:58: k= TYPE p_TypeName + k=this.match(this.input,TYPE,XQueryParser.FOLLOW_TYPE_in_p_ValidateExpr6431); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_ValidateExpr6435); + p_TypeName239=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName239.getTree()); + + + break; + + } + + LBRACKET240=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_ValidateExpr6440); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET240_tree = this.adaptor.create(LBRACKET240); + this.adaptor.addChild(root_0, LBRACKET240_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ValidateExpr6442); + p_Expr241=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr241.getTree()); + RBRACKET242=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_ValidateExpr6445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET242_tree = this.adaptor.create(RBRACKET242); + this.adaptor.addChild(root_0, RBRACKET242_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValidationMode_return: (function() { + XQueryParser.p_ValidationMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValidationMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:890:1: p_ValidationMode : (k= LAX | k= STRICT ) ; + // $ANTLR start "p_ValidationMode" + p_ValidationMode: function() { + var retval = new XQueryParser.p_ValidationMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:891:9: ( (k= LAX | k= STRICT ) ) + // xquery/XQueryParser.g:891:11: (k= LAX | k= STRICT ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:891:11: (k= LAX | k= STRICT ) + var alt114=2; + var LA114_0 = this.input.LA(1); + + if ( (LA114_0==LAX) ) { + alt114=1; + } + else if ( (LA114_0==STRICT) ) { + alt114=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 114, 0, this.input); + + throw nvae; + } + switch (alt114) { + case 1 : + // xquery/XQueryParser.g:891:12: k= LAX + k=this.match(this.input,LAX,XQueryParser.FOLLOW_LAX_in_p_ValidationMode6474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:891:20: k= STRICT + k=this.match(this.input,STRICT,XQueryParser.FOLLOW_STRICT_in_p_ValidationMode6480); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExtensionExpr_return: (function() { + XQueryParser.p_ExtensionExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExtensionExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:895:1: p_ExtensionExpr : ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET ; + // $ANTLR start "p_ExtensionExpr" + p_ExtensionExpr: function() { + var retval = new XQueryParser.p_ExtensionExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_Pragma243 = null; + var LBRACKET244 = null; + var RBRACKET246 = null; + var p_Expr245 = null; + + var L_Pragma243_tree=null; + var LBRACKET244_tree=null; + var RBRACKET246_tree=null; + + try { + // xquery/XQueryParser.g:896:9: ( ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET ) + // xquery/XQueryParser.g:896:11: ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:896:11: ( L_Pragma )+ + var cnt115=0; + loop115: + do { + var alt115=2; + var LA115_0 = this.input.LA(1); + + if ( (LA115_0==L_Pragma) ) { + alt115=1; + } + + + switch (alt115) { + case 1 : + // xquery/XQueryParser.g:896:11: L_Pragma + L_Pragma243=this.match(this.input,L_Pragma,XQueryParser.FOLLOW_L_Pragma_in_p_ExtensionExpr6509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_Pragma243_tree = this.adaptor.create(L_Pragma243); + this.adaptor.addChild(root_0, L_Pragma243_tree); + } + + + break; + + default : + if ( cnt115 >= 1 ) { + break loop115; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(115, this.input); + throw eee; + } + cnt115++; + } while (true); + + LBRACKET244=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_ExtensionExpr6512); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET244_tree = this.adaptor.create(LBRACKET244); + this.adaptor.addChild(root_0, LBRACKET244_tree); + } + // xquery/XQueryParser.g:896:30: ( p_Expr[true,true] )? + var alt116=2; + var LA116_0 = this.input.LA(1); + + if ( ((LA116_0>=ANCESTOR && LA116_0<=QUOT_ER)||LA116_0==LPAREN||(LA116_0>=DOLLAR && LA116_0<=LBRACKET)||(LA116_0>=STAR && LA116_0<=SMALLER)||(LA116_0>=SLASH && LA116_0<=DOT_DOT)||LA116_0==ATTR_SIGN||(LA116_0>=APOS && LA116_0<=QUOT)||LA116_0==L_NCName||(LA116_0>=L_Pragma && LA116_0<=L_DoubleLiteral)||LA116_0==EXPLICITLY) ) { + alt116=1; + } + switch (alt116) { + case 1 : + // xquery/XQueryParser.g:896:30: p_Expr[true,true] + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ExtensionExpr6514); + p_Expr245=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr245.getTree()); + + + break; + + } + + RBRACKET246=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_ExtensionExpr6518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET246_tree = this.adaptor.create(RBRACKET246); + this.adaptor.addChild(root_0, RBRACKET246_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PathExpr_return: (function() { + XQueryParser.p_PathExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PathExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:908:1: p_PathExpr : ( ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr ); + // $ANTLR start "p_PathExpr" + p_PathExpr: function() { + var retval = new XQueryParser.p_PathExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SLASH247 = null; + var SLASH249 = null; + var SLASH_SLASH250 = null; + var p_RelativePathExpr248 = null; + var p_RelativePathExpr251 = null; + var p_RelativePathExpr252 = null; + + var SLASH247_tree=null; + var SLASH249_tree=null; + var SLASH_SLASH250_tree=null; + + try { + // xquery/XQueryParser.g:909:9: ( ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr ) + var alt117=4; + alt117 = this.dfa117.predict(this.input); + switch (alt117) { + case 1 : + // xquery/XQueryParser.g:909:11: ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:909:41: ( SLASH p_RelativePathExpr ) + // xquery/XQueryParser.g:909:42: SLASH p_RelativePathExpr + SLASH247=this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_p_PathExpr6561); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH247_tree = this.adaptor.create(SLASH247); + this.adaptor.addChild(root_0, SLASH247_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6563); + p_RelativePathExpr248=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr248.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:910:11: SLASH + root_0 = this.adaptor.nil(); + + SLASH249=this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_p_PathExpr6576); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH249_tree = this.adaptor.create(SLASH249); + this.adaptor.addChild(root_0, SLASH249_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:911:11: SLASH_SLASH p_RelativePathExpr + root_0 = this.adaptor.nil(); + + SLASH_SLASH250=this.match(this.input,SLASH_SLASH,XQueryParser.FOLLOW_SLASH_SLASH_in_p_PathExpr6588); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH_SLASH250_tree = this.adaptor.create(SLASH_SLASH250); + this.adaptor.addChild(root_0, SLASH_SLASH250_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6590); + p_RelativePathExpr251=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr251.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:912:11: p_RelativePathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6602); + p_RelativePathExpr252=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr252.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RelativePathExpr_return: (function() { + XQueryParser.p_RelativePathExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RelativePathExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:916:1: p_RelativePathExpr : p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* ; + // $ANTLR start "p_RelativePathExpr" + p_RelativePathExpr: function() { + var retval = new XQueryParser.p_RelativePathExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set254 = null; + var p_StepExpr253 = null; + var p_StepExpr255 = null; + + var set254_tree=null; + + try { + // xquery/XQueryParser.g:917:9: ( p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* ) + // xquery/XQueryParser.g:917:11: p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StepExpr_in_p_RelativePathExpr6630); + p_StepExpr253=this.p_StepExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StepExpr253.getTree()); + // xquery/XQueryParser.g:917:22: ( ( SLASH | SLASH_SLASH ) p_StepExpr )* + loop118: + do { + var alt118=2; + var LA118_0 = this.input.LA(1); + + if ( ((LA118_0>=SLASH && LA118_0<=SLASH_SLASH)) ) { + alt118=1; + } + + + switch (alt118) { + case 1 : + // xquery/XQueryParser.g:917:23: ( SLASH | SLASH_SLASH ) p_StepExpr + set254=this.input.LT(1); + if ( (this.input.LA(1)>=SLASH && this.input.LA(1)<=SLASH_SLASH) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set254)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.pushFollow(XQueryParser.FOLLOW_p_StepExpr_in_p_RelativePathExpr6641); + p_StepExpr255=this.p_StepExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StepExpr255.getTree()); + + + break; + + default : + break loop118; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StepExpr_return: (function() { + XQueryParser.p_StepExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StepExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:921:1: p_StepExpr : ( ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep ); + // $ANTLR start "p_StepExpr" + p_StepExpr: function() { + var retval = new XQueryParser.p_StepExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PostfixExpr256 = null; + var p_PostfixExpr257 = null; + var p_AxisStep258 = null; + var p_PostfixExpr259 = null; + var p_PostfixExpr260 = null; + var p_AxisStep261 = null; + + + try { + // xquery/XQueryParser.g:922:9: ( ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep ) + var alt119=6; + alt119 = this.dfa119.predict(this.input); + switch (alt119) { + case 1 : + // xquery/XQueryParser.g:922:11: ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6695); + p_PostfixExpr256=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr256.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:923:11: ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6809); + p_PostfixExpr257=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr257.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:928:11: ( p_KindTest )=> p_AxisStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AxisStep_in_p_StepExpr6827); + p_AxisStep258=this.p_AxisStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AxisStep258.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:929:11: ( p_QName LPAREN )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6848); + p_PostfixExpr259=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr259.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:930:11: ( p_PrimaryExpr )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6866); + p_PostfixExpr260=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr260.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:931:11: p_AxisStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AxisStep_in_p_StepExpr6878); + p_AxisStep261=this.p_AxisStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AxisStep261.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AxisStep_return: (function() { + XQueryParser.p_AxisStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AxisStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:935:1: p_AxisStep : ( p_ReverseStep | p_ForwardStep ) p_PredicateList ; + // $ANTLR start "p_AxisStep" + p_AxisStep: function() { + var retval = new XQueryParser.p_AxisStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ReverseStep262 = null; + var p_ForwardStep263 = null; + var p_PredicateList264 = null; + + + try { + // xquery/XQueryParser.g:936:9: ( ( p_ReverseStep | p_ForwardStep ) p_PredicateList ) + // xquery/XQueryParser.g:936:11: ( p_ReverseStep | p_ForwardStep ) p_PredicateList + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:936:11: ( p_ReverseStep | p_ForwardStep ) + var alt120=2; + switch ( this.input.LA(1) ) { + case PARENT: + var LA120_1 = this.input.LA(2); + + if ( (LA120_1==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_1==EOF||(LA120_1>=AND && LA120_1<=ASCENDING)||(LA120_1>=BY && LA120_1<=CASTABLE)||LA120_1==COLLATION||LA120_1==DEFAULT||(LA120_1>=DESCENDING && LA120_1<=DIV)||LA120_1==EMPTY||LA120_1==EQ||LA120_1==EXCEPT||LA120_1==FOR||LA120_1==GE||(LA120_1>=GT && LA120_1<=IDIV)||(LA120_1>=INSTANCE && LA120_1<=IS)||LA120_1==LE||(LA120_1>=LET && LA120_1<=MOD)||LA120_1==NE||(LA120_1>=OR && LA120_1<=ORDER)||(LA120_1>=RETURN && LA120_1<=SATISFIES)||LA120_1==STABLE||(LA120_1>=TO && LA120_1<=TREAT)||LA120_1==UNION||LA120_1==WHERE||LA120_1==COUNT||(LA120_1>=END && LA120_1<=GROUP)||LA120_1==ONLY||LA120_1==START||(LA120_1>=AFTER && LA120_1<=BEFORE)||LA120_1==INTO||LA120_1==MODIFY||LA120_1==WITH||LA120_1==CONTAINS||LA120_1==PARAGRAPHS||LA120_1==SENTENCES||LA120_1==TIMES||LA120_1==WORDS||LA120_1==CONCAT||LA120_1==RPAREN||(LA120_1>=RBRACKET && LA120_1<=EQUAL)||LA120_1==NOTEQUAL||LA120_1==COMMA||(LA120_1>=STAR && LA120_1<=SLASH_SLASH)||LA120_1==COLON||(LA120_1>=SEMICOLON && LA120_1<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 1, this.input); + + throw nvae; + } + break; + case ANCESTOR: + var LA120_2 = this.input.LA(2); + + if ( (LA120_2==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_2==EOF||(LA120_2>=AND && LA120_2<=ASCENDING)||(LA120_2>=BY && LA120_2<=CASTABLE)||LA120_2==COLLATION||LA120_2==DEFAULT||(LA120_2>=DESCENDING && LA120_2<=DIV)||LA120_2==EMPTY||LA120_2==EQ||LA120_2==EXCEPT||LA120_2==FOR||LA120_2==GE||(LA120_2>=GT && LA120_2<=IDIV)||(LA120_2>=INSTANCE && LA120_2<=IS)||LA120_2==LE||(LA120_2>=LET && LA120_2<=MOD)||LA120_2==NE||(LA120_2>=OR && LA120_2<=ORDER)||(LA120_2>=RETURN && LA120_2<=SATISFIES)||LA120_2==STABLE||(LA120_2>=TO && LA120_2<=TREAT)||LA120_2==UNION||LA120_2==WHERE||LA120_2==COUNT||(LA120_2>=END && LA120_2<=GROUP)||LA120_2==ONLY||LA120_2==START||(LA120_2>=AFTER && LA120_2<=BEFORE)||LA120_2==INTO||LA120_2==MODIFY||LA120_2==WITH||LA120_2==CONTAINS||LA120_2==PARAGRAPHS||LA120_2==SENTENCES||LA120_2==TIMES||LA120_2==WORDS||LA120_2==CONCAT||LA120_2==RPAREN||(LA120_2>=RBRACKET && LA120_2<=EQUAL)||LA120_2==NOTEQUAL||LA120_2==COMMA||(LA120_2>=STAR && LA120_2<=SLASH_SLASH)||LA120_2==COLON||(LA120_2>=SEMICOLON && LA120_2<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 2, this.input); + + throw nvae; + } + break; + case PRECEDING_SIBLING: + var LA120_3 = this.input.LA(2); + + if ( (LA120_3==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_3==EOF||(LA120_3>=AND && LA120_3<=ASCENDING)||(LA120_3>=BY && LA120_3<=CASTABLE)||LA120_3==COLLATION||LA120_3==DEFAULT||(LA120_3>=DESCENDING && LA120_3<=DIV)||LA120_3==EMPTY||LA120_3==EQ||LA120_3==EXCEPT||LA120_3==FOR||LA120_3==GE||(LA120_3>=GT && LA120_3<=IDIV)||(LA120_3>=INSTANCE && LA120_3<=IS)||LA120_3==LE||(LA120_3>=LET && LA120_3<=MOD)||LA120_3==NE||(LA120_3>=OR && LA120_3<=ORDER)||(LA120_3>=RETURN && LA120_3<=SATISFIES)||LA120_3==STABLE||(LA120_3>=TO && LA120_3<=TREAT)||LA120_3==UNION||LA120_3==WHERE||LA120_3==COUNT||(LA120_3>=END && LA120_3<=GROUP)||LA120_3==ONLY||LA120_3==START||(LA120_3>=AFTER && LA120_3<=BEFORE)||LA120_3==INTO||LA120_3==MODIFY||LA120_3==WITH||LA120_3==CONTAINS||LA120_3==PARAGRAPHS||LA120_3==SENTENCES||LA120_3==TIMES||LA120_3==WORDS||LA120_3==CONCAT||LA120_3==RPAREN||(LA120_3>=RBRACKET && LA120_3<=EQUAL)||LA120_3==NOTEQUAL||LA120_3==COMMA||(LA120_3>=STAR && LA120_3<=SLASH_SLASH)||LA120_3==COLON||(LA120_3>=SEMICOLON && LA120_3<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 3, this.input); + + throw nvae; + } + break; + case PRECEDING: + var LA120_4 = this.input.LA(2); + + if ( (LA120_4==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_4==EOF||(LA120_4>=AND && LA120_4<=ASCENDING)||(LA120_4>=BY && LA120_4<=CASTABLE)||LA120_4==COLLATION||LA120_4==DEFAULT||(LA120_4>=DESCENDING && LA120_4<=DIV)||LA120_4==EMPTY||LA120_4==EQ||LA120_4==EXCEPT||LA120_4==FOR||LA120_4==GE||(LA120_4>=GT && LA120_4<=IDIV)||(LA120_4>=INSTANCE && LA120_4<=IS)||LA120_4==LE||(LA120_4>=LET && LA120_4<=MOD)||LA120_4==NE||(LA120_4>=OR && LA120_4<=ORDER)||(LA120_4>=RETURN && LA120_4<=SATISFIES)||LA120_4==STABLE||(LA120_4>=TO && LA120_4<=TREAT)||LA120_4==UNION||LA120_4==WHERE||LA120_4==COUNT||(LA120_4>=END && LA120_4<=GROUP)||LA120_4==ONLY||LA120_4==START||(LA120_4>=AFTER && LA120_4<=BEFORE)||LA120_4==INTO||LA120_4==MODIFY||LA120_4==WITH||LA120_4==CONTAINS||LA120_4==PARAGRAPHS||LA120_4==SENTENCES||LA120_4==TIMES||LA120_4==WORDS||LA120_4==CONCAT||LA120_4==RPAREN||(LA120_4>=RBRACKET && LA120_4<=EQUAL)||LA120_4==NOTEQUAL||LA120_4==COMMA||(LA120_4>=STAR && LA120_4<=SLASH_SLASH)||LA120_4==COLON||(LA120_4>=SEMICOLON && LA120_4<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 4, this.input); + + throw nvae; + } + break; + case ANCESTOR_OR_SELF: + var LA120_5 = this.input.LA(2); + + if ( (LA120_5==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_5==EOF||(LA120_5>=AND && LA120_5<=ASCENDING)||(LA120_5>=BY && LA120_5<=CASTABLE)||LA120_5==COLLATION||LA120_5==DEFAULT||(LA120_5>=DESCENDING && LA120_5<=DIV)||LA120_5==EMPTY||LA120_5==EQ||LA120_5==EXCEPT||LA120_5==FOR||LA120_5==GE||(LA120_5>=GT && LA120_5<=IDIV)||(LA120_5>=INSTANCE && LA120_5<=IS)||LA120_5==LE||(LA120_5>=LET && LA120_5<=MOD)||LA120_5==NE||(LA120_5>=OR && LA120_5<=ORDER)||(LA120_5>=RETURN && LA120_5<=SATISFIES)||LA120_5==STABLE||(LA120_5>=TO && LA120_5<=TREAT)||LA120_5==UNION||LA120_5==WHERE||LA120_5==COUNT||(LA120_5>=END && LA120_5<=GROUP)||LA120_5==ONLY||LA120_5==START||(LA120_5>=AFTER && LA120_5<=BEFORE)||LA120_5==INTO||LA120_5==MODIFY||LA120_5==WITH||LA120_5==CONTAINS||LA120_5==PARAGRAPHS||LA120_5==SENTENCES||LA120_5==TIMES||LA120_5==WORDS||LA120_5==CONCAT||LA120_5==RPAREN||(LA120_5>=RBRACKET && LA120_5<=EQUAL)||LA120_5==NOTEQUAL||LA120_5==COMMA||(LA120_5>=STAR && LA120_5<=SLASH_SLASH)||LA120_5==COLON||(LA120_5>=SEMICOLON && LA120_5<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 5, this.input); + + throw nvae; + } + break; + case DOT_DOT: + alt120=1; + break; + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case STAR: + case ATTR_SIGN: + case APOS: + case QUOT: + case L_NCName: + case EXPLICITLY: + alt120=2; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 0, this.input); + + throw nvae; + } + + switch (alt120) { + case 1 : + // xquery/XQueryParser.g:936:12: p_ReverseStep + this.pushFollow(XQueryParser.FOLLOW_p_ReverseStep_in_p_AxisStep6905); + p_ReverseStep262=this.p_ReverseStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReverseStep262.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:936:28: p_ForwardStep + this.pushFollow(XQueryParser.FOLLOW_p_ForwardStep_in_p_AxisStep6909); + p_ForwardStep263=this.p_ForwardStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForwardStep263.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_PredicateList_in_p_AxisStep6912); + p_PredicateList264=this.p_PredicateList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PredicateList264.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForwardStep_return: (function() { + XQueryParser.p_ForwardStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForwardStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:940:1: p_ForwardStep : ( p_ForwardAxis p_NodeTest | p_AbbrevForwardStep ); + // $ANTLR start "p_ForwardStep" + p_ForwardStep: function() { + var retval = new XQueryParser.p_ForwardStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ForwardAxis265 = null; + var p_NodeTest266 = null; + var p_AbbrevForwardStep267 = null; + + + try { + // xquery/XQueryParser.g:941:9: ( p_ForwardAxis p_NodeTest | p_AbbrevForwardStep ) + var alt121=2; + alt121 = this.dfa121.predict(this.input); + switch (alt121) { + case 1 : + // xquery/XQueryParser.g:941:11: p_ForwardAxis p_NodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ForwardAxis_in_p_ForwardStep6938); + p_ForwardAxis265=this.p_ForwardAxis(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForwardAxis265.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_ForwardStep6940); + p_NodeTest266=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest266.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:942:11: p_AbbrevForwardStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AbbrevForwardStep_in_p_ForwardStep6952); + p_AbbrevForwardStep267=this.p_AbbrevForwardStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AbbrevForwardStep267.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForwardAxis_return: (function() { + XQueryParser.p_ForwardAxis_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForwardAxis_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:946:1: p_ForwardAxis : ( CHILD COLON_COLON | DESCENDANT COLON_COLON | ATTRIBUTE COLON_COLON | SELF COLON_COLON | DESCENDANT_OR_SELF COLON_COLON | FOLLOWING_SIBLING COLON_COLON | FOLLOWING COLON_COLON ); + // $ANTLR start "p_ForwardAxis" + p_ForwardAxis: function() { + var retval = new XQueryParser.p_ForwardAxis_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var CHILD268 = null; + var COLON_COLON269 = null; + var DESCENDANT270 = null; + var COLON_COLON271 = null; + var ATTRIBUTE272 = null; + var COLON_COLON273 = null; + var SELF274 = null; + var COLON_COLON275 = null; + var DESCENDANT_OR_SELF276 = null; + var COLON_COLON277 = null; + var FOLLOWING_SIBLING278 = null; + var COLON_COLON279 = null; + var FOLLOWING280 = null; + var COLON_COLON281 = null; + + var CHILD268_tree=null; + var COLON_COLON269_tree=null; + var DESCENDANT270_tree=null; + var COLON_COLON271_tree=null; + var ATTRIBUTE272_tree=null; + var COLON_COLON273_tree=null; + var SELF274_tree=null; + var COLON_COLON275_tree=null; + var DESCENDANT_OR_SELF276_tree=null; + var COLON_COLON277_tree=null; + var FOLLOWING_SIBLING278_tree=null; + var COLON_COLON279_tree=null; + var FOLLOWING280_tree=null; + var COLON_COLON281_tree=null; + + try { + // xquery/XQueryParser.g:947:9: ( CHILD COLON_COLON | DESCENDANT COLON_COLON | ATTRIBUTE COLON_COLON | SELF COLON_COLON | DESCENDANT_OR_SELF COLON_COLON | FOLLOWING_SIBLING COLON_COLON | FOLLOWING COLON_COLON ) + var alt122=7; + switch ( this.input.LA(1) ) { + case CHILD: + alt122=1; + break; + case DESCENDANT: + alt122=2; + break; + case ATTRIBUTE: + alt122=3; + break; + case SELF: + alt122=4; + break; + case DESCENDANT_OR_SELF: + alt122=5; + break; + case FOLLOWING_SIBLING: + alt122=6; + break; + case FOLLOWING: + alt122=7; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 122, 0, this.input); + + throw nvae; + } + + switch (alt122) { + case 1 : + // xquery/XQueryParser.g:947:11: CHILD COLON_COLON + root_0 = this.adaptor.nil(); + + CHILD268=this.match(this.input,CHILD,XQueryParser.FOLLOW_CHILD_in_p_ForwardAxis6978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + CHILD268_tree = this.adaptor.create(CHILD268); + this.adaptor.addChild(root_0, CHILD268_tree); + } + COLON_COLON269=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis6980); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON269_tree = this.adaptor.create(COLON_COLON269); + this.adaptor.addChild(root_0, COLON_COLON269_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:948:11: DESCENDANT COLON_COLON + root_0 = this.adaptor.nil(); + + DESCENDANT270=this.match(this.input,DESCENDANT,XQueryParser.FOLLOW_DESCENDANT_in_p_ForwardAxis6992); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DESCENDANT270_tree = this.adaptor.create(DESCENDANT270); + this.adaptor.addChild(root_0, DESCENDANT270_tree); + } + COLON_COLON271=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis6994); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON271_tree = this.adaptor.create(COLON_COLON271); + this.adaptor.addChild(root_0, COLON_COLON271_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:949:11: ATTRIBUTE COLON_COLON + root_0 = this.adaptor.nil(); + + ATTRIBUTE272=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_p_ForwardAxis7006); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTRIBUTE272_tree = this.adaptor.create(ATTRIBUTE272); + this.adaptor.addChild(root_0, ATTRIBUTE272_tree); + } + COLON_COLON273=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7008); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON273_tree = this.adaptor.create(COLON_COLON273); + this.adaptor.addChild(root_0, COLON_COLON273_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:950:11: SELF COLON_COLON + root_0 = this.adaptor.nil(); + + SELF274=this.match(this.input,SELF,XQueryParser.FOLLOW_SELF_in_p_ForwardAxis7020); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SELF274_tree = this.adaptor.create(SELF274); + this.adaptor.addChild(root_0, SELF274_tree); + } + COLON_COLON275=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7022); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON275_tree = this.adaptor.create(COLON_COLON275); + this.adaptor.addChild(root_0, COLON_COLON275_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:951:11: DESCENDANT_OR_SELF COLON_COLON + root_0 = this.adaptor.nil(); + + DESCENDANT_OR_SELF276=this.match(this.input,DESCENDANT_OR_SELF,XQueryParser.FOLLOW_DESCENDANT_OR_SELF_in_p_ForwardAxis7034); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DESCENDANT_OR_SELF276_tree = this.adaptor.create(DESCENDANT_OR_SELF276); + this.adaptor.addChild(root_0, DESCENDANT_OR_SELF276_tree); + } + COLON_COLON277=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7036); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON277_tree = this.adaptor.create(COLON_COLON277); + this.adaptor.addChild(root_0, COLON_COLON277_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:952:11: FOLLOWING_SIBLING COLON_COLON + root_0 = this.adaptor.nil(); + + FOLLOWING_SIBLING278=this.match(this.input,FOLLOWING_SIBLING,XQueryParser.FOLLOW_FOLLOWING_SIBLING_in_p_ForwardAxis7048); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FOLLOWING_SIBLING278_tree = this.adaptor.create(FOLLOWING_SIBLING278); + this.adaptor.addChild(root_0, FOLLOWING_SIBLING278_tree); + } + COLON_COLON279=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7050); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON279_tree = this.adaptor.create(COLON_COLON279); + this.adaptor.addChild(root_0, COLON_COLON279_tree); + } + + + break; + case 7 : + // xquery/XQueryParser.g:953:11: FOLLOWING COLON_COLON + root_0 = this.adaptor.nil(); + + FOLLOWING280=this.match(this.input,FOLLOWING,XQueryParser.FOLLOW_FOLLOWING_in_p_ForwardAxis7062); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FOLLOWING280_tree = this.adaptor.create(FOLLOWING280); + this.adaptor.addChild(root_0, FOLLOWING280_tree); + } + COLON_COLON281=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7064); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON281_tree = this.adaptor.create(COLON_COLON281); + this.adaptor.addChild(root_0, COLON_COLON281_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AbbrevForwardStep_return: (function() { + XQueryParser.p_AbbrevForwardStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AbbrevForwardStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:957:1: p_AbbrevForwardStep : ( ATTR_SIGN )? p_NodeTest ; + // $ANTLR start "p_AbbrevForwardStep" + p_AbbrevForwardStep: function() { + var retval = new XQueryParser.p_AbbrevForwardStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ATTR_SIGN282 = null; + var p_NodeTest283 = null; + + var ATTR_SIGN282_tree=null; + + try { + // xquery/XQueryParser.g:958:9: ( ( ATTR_SIGN )? p_NodeTest ) + // xquery/XQueryParser.g:958:11: ( ATTR_SIGN )? p_NodeTest + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:958:11: ( ATTR_SIGN )? + var alt123=2; + var LA123_0 = this.input.LA(1); + + if ( (LA123_0==ATTR_SIGN) ) { + alt123=1; + } + switch (alt123) { + case 1 : + // xquery/XQueryParser.g:958:11: ATTR_SIGN + ATTR_SIGN282=this.match(this.input,ATTR_SIGN,XQueryParser.FOLLOW_ATTR_SIGN_in_p_AbbrevForwardStep7090); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTR_SIGN282_tree = this.adaptor.create(ATTR_SIGN282); + this.adaptor.addChild(root_0, ATTR_SIGN282_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_AbbrevForwardStep7093); + p_NodeTest283=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest283.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReverseStep_return: (function() { + XQueryParser.p_ReverseStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReverseStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:962:1: p_ReverseStep : ( p_ReverseAxis p_NodeTest | p_AbbrevReverseStep ); + // $ANTLR start "p_ReverseStep" + p_ReverseStep: function() { + var retval = new XQueryParser.p_ReverseStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ReverseAxis284 = null; + var p_NodeTest285 = null; + var p_AbbrevReverseStep286 = null; + + + try { + // xquery/XQueryParser.g:963:9: ( p_ReverseAxis p_NodeTest | p_AbbrevReverseStep ) + var alt124=2; + var LA124_0 = this.input.LA(1); + + if ( ((LA124_0>=ANCESTOR && LA124_0<=ANCESTOR_OR_SELF)||(LA124_0>=PARENT && LA124_0<=PRECEDING_SIBLING)) ) { + alt124=1; + } + else if ( (LA124_0==DOT_DOT) ) { + alt124=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 124, 0, this.input); + + throw nvae; + } + switch (alt124) { + case 1 : + // xquery/XQueryParser.g:963:11: p_ReverseAxis p_NodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ReverseAxis_in_p_ReverseStep7119); + p_ReverseAxis284=this.p_ReverseAxis(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReverseAxis284.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_ReverseStep7121); + p_NodeTest285=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest285.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:964:11: p_AbbrevReverseStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AbbrevReverseStep_in_p_ReverseStep7133); + p_AbbrevReverseStep286=this.p_AbbrevReverseStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AbbrevReverseStep286.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReverseAxis_return: (function() { + XQueryParser.p_ReverseAxis_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReverseAxis_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:968:1: p_ReverseAxis : ( PARENT COLON_COLON | ANCESTOR COLON_COLON | PRECEDING_SIBLING COLON_COLON | PRECEDING COLON_COLON | ANCESTOR_OR_SELF COLON_COLON ); + // $ANTLR start "p_ReverseAxis" + p_ReverseAxis: function() { + var retval = new XQueryParser.p_ReverseAxis_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var PARENT287 = null; + var COLON_COLON288 = null; + var ANCESTOR289 = null; + var COLON_COLON290 = null; + var PRECEDING_SIBLING291 = null; + var COLON_COLON292 = null; + var PRECEDING293 = null; + var COLON_COLON294 = null; + var ANCESTOR_OR_SELF295 = null; + var COLON_COLON296 = null; + + var PARENT287_tree=null; + var COLON_COLON288_tree=null; + var ANCESTOR289_tree=null; + var COLON_COLON290_tree=null; + var PRECEDING_SIBLING291_tree=null; + var COLON_COLON292_tree=null; + var PRECEDING293_tree=null; + var COLON_COLON294_tree=null; + var ANCESTOR_OR_SELF295_tree=null; + var COLON_COLON296_tree=null; + + try { + // xquery/XQueryParser.g:969:9: ( PARENT COLON_COLON | ANCESTOR COLON_COLON | PRECEDING_SIBLING COLON_COLON | PRECEDING COLON_COLON | ANCESTOR_OR_SELF COLON_COLON ) + var alt125=5; + switch ( this.input.LA(1) ) { + case PARENT: + alt125=1; + break; + case ANCESTOR: + alt125=2; + break; + case PRECEDING_SIBLING: + alt125=3; + break; + case PRECEDING: + alt125=4; + break; + case ANCESTOR_OR_SELF: + alt125=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 125, 0, this.input); + + throw nvae; + } + + switch (alt125) { + case 1 : + // xquery/XQueryParser.g:969:11: PARENT COLON_COLON + root_0 = this.adaptor.nil(); + + PARENT287=this.match(this.input,PARENT,XQueryParser.FOLLOW_PARENT_in_p_ReverseAxis7159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PARENT287_tree = this.adaptor.create(PARENT287); + this.adaptor.addChild(root_0, PARENT287_tree); + } + COLON_COLON288=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7161); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON288_tree = this.adaptor.create(COLON_COLON288); + this.adaptor.addChild(root_0, COLON_COLON288_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:970:11: ANCESTOR COLON_COLON + root_0 = this.adaptor.nil(); + + ANCESTOR289=this.match(this.input,ANCESTOR,XQueryParser.FOLLOW_ANCESTOR_in_p_ReverseAxis7173); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANCESTOR289_tree = this.adaptor.create(ANCESTOR289); + this.adaptor.addChild(root_0, ANCESTOR289_tree); + } + COLON_COLON290=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7175); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON290_tree = this.adaptor.create(COLON_COLON290); + this.adaptor.addChild(root_0, COLON_COLON290_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:971:11: PRECEDING_SIBLING COLON_COLON + root_0 = this.adaptor.nil(); + + PRECEDING_SIBLING291=this.match(this.input,PRECEDING_SIBLING,XQueryParser.FOLLOW_PRECEDING_SIBLING_in_p_ReverseAxis7187); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PRECEDING_SIBLING291_tree = this.adaptor.create(PRECEDING_SIBLING291); + this.adaptor.addChild(root_0, PRECEDING_SIBLING291_tree); + } + COLON_COLON292=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7189); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON292_tree = this.adaptor.create(COLON_COLON292); + this.adaptor.addChild(root_0, COLON_COLON292_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:972:11: PRECEDING COLON_COLON + root_0 = this.adaptor.nil(); + + PRECEDING293=this.match(this.input,PRECEDING,XQueryParser.FOLLOW_PRECEDING_in_p_ReverseAxis7201); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PRECEDING293_tree = this.adaptor.create(PRECEDING293); + this.adaptor.addChild(root_0, PRECEDING293_tree); + } + COLON_COLON294=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7203); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON294_tree = this.adaptor.create(COLON_COLON294); + this.adaptor.addChild(root_0, COLON_COLON294_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:973:11: ANCESTOR_OR_SELF COLON_COLON + root_0 = this.adaptor.nil(); + + ANCESTOR_OR_SELF295=this.match(this.input,ANCESTOR_OR_SELF,XQueryParser.FOLLOW_ANCESTOR_OR_SELF_in_p_ReverseAxis7215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANCESTOR_OR_SELF295_tree = this.adaptor.create(ANCESTOR_OR_SELF295); + this.adaptor.addChild(root_0, ANCESTOR_OR_SELF295_tree); + } + COLON_COLON296=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7217); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON296_tree = this.adaptor.create(COLON_COLON296); + this.adaptor.addChild(root_0, COLON_COLON296_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AbbrevReverseStep_return: (function() { + XQueryParser.p_AbbrevReverseStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AbbrevReverseStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:977:1: p_AbbrevReverseStep : DOT_DOT ; + // $ANTLR start "p_AbbrevReverseStep" + p_AbbrevReverseStep: function() { + var retval = new XQueryParser.p_AbbrevReverseStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOT_DOT297 = null; + + var DOT_DOT297_tree=null; + + try { + // xquery/XQueryParser.g:978:9: ( DOT_DOT ) + // xquery/XQueryParser.g:978:11: DOT_DOT + root_0 = this.adaptor.nil(); + + DOT_DOT297=this.match(this.input,DOT_DOT,XQueryParser.FOLLOW_DOT_DOT_in_p_AbbrevReverseStep7243); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOT_DOT297_tree = this.adaptor.create(DOT_DOT297); + this.adaptor.addChild(root_0, DOT_DOT297_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NodeTest_return: (function() { + XQueryParser.p_NodeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NodeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:982:1: p_NodeTest : ( p_KindTest | p_NameTest ); + // $ANTLR start "p_NodeTest" + p_NodeTest: function() { + var retval = new XQueryParser.p_NodeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_KindTest298 = null; + var p_NameTest299 = null; + + + try { + // xquery/XQueryParser.g:983:9: ( p_KindTest | p_NameTest ) + var alt126=2; + alt126 = this.dfa126.predict(this.input); + switch (alt126) { + case 1 : + // xquery/XQueryParser.g:983:11: p_KindTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_NodeTest7269); + p_KindTest298=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_KindTest298.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:983:24: p_NameTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_NodeTest7273); + p_NameTest299=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest299.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NameTest_return: (function() { + XQueryParser.p_NameTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NameTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:987:1: p_NameTest : ( ( p_Wildcard )=> p_Wildcard | ( p_NCName COLON )=> p_QName | ( p_NCName )=> p_QName ); + // $ANTLR start "p_NameTest" + p_NameTest: function() { + var retval = new XQueryParser.p_NameTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Wildcard300 = null; + var p_QName301 = null; + var p_QName302 = null; + + + try { + // xquery/XQueryParser.g:988:9: ( ( p_Wildcard )=> p_Wildcard | ( p_NCName COLON )=> p_QName | ( p_NCName )=> p_QName ) + var alt127=3; + var LA127_0 = this.input.LA(1); + + if ( (LA127_0==STAR) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( ((LA127_0>=ANCESTOR && LA127_0<=SKIP)||(LA127_0>=VALUE && LA127_0<=QUOT_ER)||LA127_0==L_NCName||LA127_0==EXPLICITLY) ) { + var LA127_2 = this.input.LA(2); + + if ( (LA127_2==COLON) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( (this.synpred14_XQueryParser()) ) { + alt127=2; + } + else if ( (this.synpred15_XQueryParser()) ) { + alt127=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 127, 2, this.input); + + throw nvae; + } + } + else if ( (LA127_0==QUOT) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( (LA127_0==APOS) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 127, 0, this.input); + + throw nvae; + } + switch (alt127) { + case 1 : + // xquery/XQueryParser.g:988:11: ( p_Wildcard )=> p_Wildcard + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Wildcard_in_p_NameTest7305); + p_Wildcard300=this.p_Wildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Wildcard300.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:989:11: ( p_NCName COLON )=> p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NameTest7326); + p_QName301=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName301.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:990:11: ( p_NCName )=> p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NameTest7344); + p_QName302=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName302.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Wildcard_return: (function() { + XQueryParser.p_Wildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Wildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:994:1: p_Wildcard : ( STAR ( COLON p_NCName )? | p_NCName COLON STAR | p_StringLiteral COLON STAR ); + // $ANTLR start "p_Wildcard" + p_Wildcard: function() { + var retval = new XQueryParser.p_Wildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR303 = null; + var COLON304 = null; + var COLON307 = null; + var STAR308 = null; + var COLON310 = null; + var STAR311 = null; + var p_NCName305 = null; + var p_NCName306 = null; + var p_StringLiteral309 = null; + + var STAR303_tree=null; + var COLON304_tree=null; + var COLON307_tree=null; + var STAR308_tree=null; + var COLON310_tree=null; + var STAR311_tree=null; + + this.setWsExplicit(true); + try { + // xquery/XQueryParser.g:995:9: ( STAR ( COLON p_NCName )? | p_NCName COLON STAR | p_StringLiteral COLON STAR ) + var alt129=3; + switch ( this.input.LA(1) ) { + case STAR: + alt129=1; + break; + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case L_NCName: + case EXPLICITLY: + alt129=2; + break; + case APOS: + case QUOT: + alt129=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 129, 0, this.input); + + throw nvae; + } + + switch (alt129) { + case 1 : + // xquery/XQueryParser.g:995:11: STAR ( COLON p_NCName )? + root_0 = this.adaptor.nil(); + + STAR303=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR303_tree = this.adaptor.create(STAR303); + this.adaptor.addChild(root_0, STAR303_tree); + } + // xquery/XQueryParser.g:995:16: ( COLON p_NCName )? + var alt128=2; + var LA128_0 = this.input.LA(1); + + if ( (LA128_0==COLON) ) { + alt128=1; + } + switch (alt128) { + case 1 : + // xquery/XQueryParser.g:995:17: COLON p_NCName + COLON304=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7377); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON304_tree = this.adaptor.create(COLON304); + this.adaptor.addChild(root_0, COLON304_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Wildcard7379); + p_NCName305=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName305.getTree()); + + + break; + + } + + + + break; + case 2 : + // xquery/XQueryParser.g:996:11: p_NCName COLON STAR + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Wildcard7393); + p_NCName306=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName306.getTree()); + COLON307=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7395); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON307_tree = this.adaptor.create(COLON307); + this.adaptor.addChild(root_0, COLON307_tree); + } + STAR308=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR308_tree = this.adaptor.create(STAR308); + this.adaptor.addChild(root_0, STAR308_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:997:11: p_StringLiteral COLON STAR + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_Wildcard7409); + p_StringLiteral309=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral309.getTree()); + COLON310=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7411); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON310_tree = this.adaptor.create(COLON310); + this.adaptor.addChild(root_0, COLON310_tree); + } + STAR311=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7413); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR311_tree = this.adaptor.create(STAR311); + this.adaptor.addChild(root_0, STAR311_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.setWsExplicit(false); + } + return retval; + }, + + // inline static return class + p_PostfixExpr_return: (function() { + XQueryParser.p_PostfixExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PostfixExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1002:1: p_PostfixExpr : p_PrimaryExpr ( p_Predicate )* ; + // $ANTLR start "p_PostfixExpr" + p_PostfixExpr: function() { + var retval = new XQueryParser.p_PostfixExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PrimaryExpr312 = null; + var p_Predicate313 = null; + + + try { + // xquery/XQueryParser.g:1003:9: ( p_PrimaryExpr ( p_Predicate )* ) + // xquery/XQueryParser.g:1003:11: p_PrimaryExpr ( p_Predicate )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PrimaryExpr_in_p_PostfixExpr7451); + p_PrimaryExpr312=this.p_PrimaryExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PrimaryExpr312.getTree()); + // xquery/XQueryParser.g:1003:25: ( p_Predicate )* + loop130: + do { + var alt130=2; + var LA130_0 = this.input.LA(1); + + if ( (LA130_0==LSQUARE) ) { + alt130=1; + } + + + switch (alt130) { + case 1 : + // xquery/XQueryParser.g:1003:26: p_Predicate + this.pushFollow(XQueryParser.FOLLOW_p_Predicate_in_p_PostfixExpr7454); + p_Predicate313=this.p_Predicate(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Predicate313.getTree()); + + + break; + + default : + break loop130; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ArgumentList_return: (function() { + XQueryParser.p_ArgumentList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ArgumentList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1010:1: p_ArgumentList : LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN ; + // $ANTLR start "p_ArgumentList" + p_ArgumentList: function() { + var retval = new XQueryParser.p_ArgumentList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN314 = null; + var COMMA316 = null; + var RPAREN318 = null; + var p_Argument315 = null; + var p_Argument317 = null; + + var LPAREN314_tree=null; + var COMMA316_tree=null; + var RPAREN318_tree=null; + + try { + // xquery/XQueryParser.g:1011:9: ( LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN ) + // xquery/XQueryParser.g:1011:11: LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN + root_0 = this.adaptor.nil(); + + LPAREN314=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ArgumentList7495); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN314_tree = this.adaptor.create(LPAREN314); + this.adaptor.addChild(root_0, LPAREN314_tree); + } + // xquery/XQueryParser.g:1011:18: ( p_Argument ( COMMA p_Argument )* )? + var alt132=2; + var LA132_0 = this.input.LA(1); + + if ( ((LA132_0>=ANCESTOR && LA132_0<=QUOT_ER)||LA132_0==LPAREN||(LA132_0>=DOLLAR && LA132_0<=LBRACKET)||(LA132_0>=QUESTION && LA132_0<=SMALLER)||(LA132_0>=SLASH && LA132_0<=DOT_DOT)||LA132_0==ATTR_SIGN||(LA132_0>=APOS && LA132_0<=QUOT)||LA132_0==L_NCName||(LA132_0>=L_Pragma && LA132_0<=L_DoubleLiteral)||LA132_0==EXPLICITLY) ) { + alt132=1; + } + switch (alt132) { + case 1 : + // xquery/XQueryParser.g:1011:19: p_Argument ( COMMA p_Argument )* + this.pushFollow(XQueryParser.FOLLOW_p_Argument_in_p_ArgumentList7498); + p_Argument315=this.p_Argument(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Argument315.getTree()); + // xquery/XQueryParser.g:1011:30: ( COMMA p_Argument )* + loop131: + do { + var alt131=2; + var LA131_0 = this.input.LA(1); + + if ( (LA131_0==COMMA) ) { + alt131=1; + } + + + switch (alt131) { + case 1 : + // xquery/XQueryParser.g:1011:31: COMMA p_Argument + COMMA316=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ArgumentList7501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA316_tree = this.adaptor.create(COMMA316); + this.adaptor.addChild(root_0, COMMA316_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Argument_in_p_ArgumentList7503); + p_Argument317=this.p_Argument(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Argument317.getTree()); + + + break; + + default : + break loop131; + } + } while (true); + + + + break; + + } + + RPAREN318=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ArgumentList7509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN318_tree = this.adaptor.create(RPAREN318); + this.adaptor.addChild(root_0, RPAREN318_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PredicateList_return: (function() { + XQueryParser.p_PredicateList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PredicateList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1015:1: p_PredicateList : ( p_Predicate )* ; + // $ANTLR start "p_PredicateList" + p_PredicateList: function() { + var retval = new XQueryParser.p_PredicateList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Predicate319 = null; + + + try { + // xquery/XQueryParser.g:1016:9: ( ( p_Predicate )* ) + // xquery/XQueryParser.g:1016:11: ( p_Predicate )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1016:11: ( p_Predicate )* + loop133: + do { + var alt133=2; + var LA133_0 = this.input.LA(1); + + if ( (LA133_0==LSQUARE) ) { + alt133=1; + } + + + switch (alt133) { + case 1 : + // xquery/XQueryParser.g:1016:11: p_Predicate + this.pushFollow(XQueryParser.FOLLOW_p_Predicate_in_p_PredicateList7535); + p_Predicate319=this.p_Predicate(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Predicate319.getTree()); + + + break; + + default : + break loop133; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Predicate_return: (function() { + XQueryParser.p_Predicate_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Predicate_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1020:1: p_Predicate : LSQUARE p_Expr[true,true] RSQUARE ; + // $ANTLR start "p_Predicate" + p_Predicate: function() { + var retval = new XQueryParser.p_Predicate_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LSQUARE320 = null; + var RSQUARE322 = null; + var p_Expr321 = null; + + var LSQUARE320_tree=null; + var RSQUARE322_tree=null; + + try { + // xquery/XQueryParser.g:1021:9: ( LSQUARE p_Expr[true,true] RSQUARE ) + // xquery/XQueryParser.g:1021:11: LSQUARE p_Expr[true,true] RSQUARE + root_0 = this.adaptor.nil(); + + LSQUARE320=this.match(this.input,LSQUARE,XQueryParser.FOLLOW_LSQUARE_in_p_Predicate7562); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LSQUARE320_tree = this.adaptor.create(LSQUARE320); + this.adaptor.addChild(root_0, LSQUARE320_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_Predicate7564); + p_Expr321=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr321.getTree()); + RSQUARE322=this.match(this.input,RSQUARE,XQueryParser.FOLLOW_RSQUARE_in_p_Predicate7567); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RSQUARE322_tree = this.adaptor.create(RSQUARE322); + this.adaptor.addChild(root_0, RSQUARE322_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PrimaryExpr_return: (function() { + XQueryParser.p_PrimaryExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PrimaryExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1026:1: p_PrimaryExpr : ( ( LPAREN )=> p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr ); + // $ANTLR start "p_PrimaryExpr" + p_PrimaryExpr: function() { + var retval = new XQueryParser.p_PrimaryExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ParenthesizedExpr323 = null; + var p_Literal324 = null; + var p_VarRef325 = null; + var p_ContextItemExpr326 = null; + var p_FunctionCall327 = null; + var p_OrderedExpr328 = null; + var p_UnorderedExpr329 = null; + var p_Constructor330 = null; + var p_BlockExpr331 = null; + + + try { + // xquery/XQueryParser.g:1027:9: ( ( LPAREN )=> p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr ) + var alt134=9; + alt134 = this.dfa134.predict(this.input); + switch (alt134) { + case 1 : + // xquery/XQueryParser.g:1027:11: ( LPAREN )=> p_ParenthesizedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ParenthesizedExpr_in_p_PrimaryExpr7600); + p_ParenthesizedExpr323=this.p_ParenthesizedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ParenthesizedExpr323.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1028:11: p_Literal + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_PrimaryExpr7612); + p_Literal324=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal324.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1029:11: p_VarRef + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarRef_in_p_PrimaryExpr7624); + p_VarRef325=this.p_VarRef(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarRef325.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1030:11: p_ContextItemExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ContextItemExpr_in_p_PrimaryExpr7636); + p_ContextItemExpr326=this.p_ContextItemExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ContextItemExpr326.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1031:11: p_FunctionCall + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FunctionCall_in_p_PrimaryExpr7648); + p_FunctionCall327=this.p_FunctionCall(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FunctionCall327.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1032:11: p_OrderedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderedExpr_in_p_PrimaryExpr7660); + p_OrderedExpr328=this.p_OrderedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderedExpr328.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1033:11: p_UnorderedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnorderedExpr_in_p_PrimaryExpr7672); + p_UnorderedExpr329=this.p_UnorderedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnorderedExpr329.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1034:11: p_Constructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Constructor_in_p_PrimaryExpr7684); + p_Constructor330=this.p_Constructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Constructor330.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:1037:11: p_BlockExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_BlockExpr_in_p_PrimaryExpr7698); + p_BlockExpr331=this.p_BlockExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockExpr331.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Literal_return: (function() { + XQueryParser.p_Literal_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Literal_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1041:1: p_Literal : ( p_NumericLiteral | p_StringLiteral ); + // $ANTLR start "p_Literal" + p_Literal: function() { + var retval = new XQueryParser.p_Literal_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_NumericLiteral332 = null; + var p_StringLiteral333 = null; + + + try { + // xquery/XQueryParser.g:1042:9: ( p_NumericLiteral | p_StringLiteral ) + var alt135=2; + var LA135_0 = this.input.LA(1); + + if ( ((LA135_0>=L_IntegerLiteral && LA135_0<=L_DoubleLiteral)) ) { + alt135=1; + } + else if ( ((LA135_0>=APOS && LA135_0<=QUOT)) ) { + alt135=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 135, 0, this.input); + + throw nvae; + } + switch (alt135) { + case 1 : + // xquery/XQueryParser.g:1042:11: p_NumericLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NumericLiteral_in_p_Literal7724); + p_NumericLiteral332=this.p_NumericLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NumericLiteral332.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1042:30: p_StringLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_Literal7728); + p_StringLiteral333=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral333.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NumericLiteral_return: (function() { + XQueryParser.p_NumericLiteral_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NumericLiteral_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1046:1: p_NumericLiteral : (d+= L_IntegerLiteral | d+= L_DecimalLiteral | d+= L_DoubleLiteral ); + // $ANTLR start "p_NumericLiteral" + p_NumericLiteral: function() { + var retval = new XQueryParser.p_NumericLiteral_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var list_d=null; + + var d_tree=null; + + try { + // xquery/XQueryParser.g:1047:9: (d+= L_IntegerLiteral | d+= L_DecimalLiteral | d+= L_DoubleLiteral ) + var alt136=3; + switch ( this.input.LA(1) ) { + case L_IntegerLiteral: + alt136=1; + break; + case L_DecimalLiteral: + alt136=2; + break; + case L_DoubleLiteral: + alt136=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 136, 0, this.input); + + throw nvae; + } + + switch (alt136) { + case 1 : + // xquery/XQueryParser.g:1047:11: d+= L_IntegerLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_NumericLiteral7756); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1047:48: d+= L_DecimalLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_DecimalLiteral,XQueryParser.FOLLOW_L_DecimalLiteral_in_p_NumericLiteral7764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1047:85: d+= L_DoubleLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_DoubleLiteral,XQueryParser.FOLLOW_L_DoubleLiteral_in_p_NumericLiteral7772); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarRef_return: (function() { + XQueryParser.p_VarRef_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarRef_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1051:1: p_VarRef : d= DOLLAR v= p_VarName ; + // $ANTLR start "p_VarRef" + p_VarRef: function() { + var retval = new XQueryParser.p_VarRef_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var v = null; + + var d_tree=null; + + try { + // xquery/XQueryParser.g:1052:9: (d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:1052:11: d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarRef7810); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarRef7814); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarName_return: (function() { + XQueryParser.p_VarName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1056:1: p_VarName : p_QName ; + // $ANTLR start "p_VarName" + p_VarName: function() { + var retval = new XQueryParser.p_VarName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName334 = null; + + + try { + // xquery/XQueryParser.g:1057:9: ( p_QName ) + // xquery/XQueryParser.g:1057:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_VarName7842); + p_QName334=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName334.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParenthesizedExpr_return: (function() { + XQueryParser.p_ParenthesizedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParenthesizedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1061:1: p_ParenthesizedExpr : LPAREN ( p_Expr[true,true] )? RPAREN ; + // $ANTLR start "p_ParenthesizedExpr" + p_ParenthesizedExpr: function() { + var retval = new XQueryParser.p_ParenthesizedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN335 = null; + var RPAREN337 = null; + var p_Expr336 = null; + + var LPAREN335_tree=null; + var RPAREN337_tree=null; + + try { + // xquery/XQueryParser.g:1062:9: ( LPAREN ( p_Expr[true,true] )? RPAREN ) + // xquery/XQueryParser.g:1062:11: LPAREN ( p_Expr[true,true] )? RPAREN + root_0 = this.adaptor.nil(); + + LPAREN335=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ParenthesizedExpr7868); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN335_tree = this.adaptor.create(LPAREN335); + this.adaptor.addChild(root_0, LPAREN335_tree); + } + // xquery/XQueryParser.g:1062:18: ( p_Expr[true,true] )? + var alt137=2; + var LA137_0 = this.input.LA(1); + + if ( ((LA137_0>=ANCESTOR && LA137_0<=QUOT_ER)||LA137_0==LPAREN||(LA137_0>=DOLLAR && LA137_0<=LBRACKET)||(LA137_0>=STAR && LA137_0<=SMALLER)||(LA137_0>=SLASH && LA137_0<=DOT_DOT)||LA137_0==ATTR_SIGN||(LA137_0>=APOS && LA137_0<=QUOT)||LA137_0==L_NCName||(LA137_0>=L_Pragma && LA137_0<=L_DoubleLiteral)||LA137_0==EXPLICITLY) ) { + alt137=1; + } + switch (alt137) { + case 1 : + // xquery/XQueryParser.g:1062:18: p_Expr[true,true] + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ParenthesizedExpr7870); + p_Expr336=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr336.getTree()); + + + break; + + } + + RPAREN337=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ParenthesizedExpr7874); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN337_tree = this.adaptor.create(RPAREN337); + this.adaptor.addChild(root_0, RPAREN337_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ContextItemExpr_return: (function() { + XQueryParser.p_ContextItemExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ContextItemExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1066:1: p_ContextItemExpr : DOT ; + // $ANTLR start "p_ContextItemExpr" + p_ContextItemExpr: function() { + var retval = new XQueryParser.p_ContextItemExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOT338 = null; + + var DOT338_tree=null; + + try { + // xquery/XQueryParser.g:1067:9: ( DOT ) + // xquery/XQueryParser.g:1067:11: DOT + root_0 = this.adaptor.nil(); + + DOT338=this.match(this.input,DOT,XQueryParser.FOLLOW_DOT_in_p_ContextItemExpr7900); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOT338_tree = this.adaptor.create(DOT338); + this.adaptor.addChild(root_0, DOT338_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderedExpr_return: (function() { + XQueryParser.p_OrderedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1071:1: p_OrderedExpr : k= ORDERED LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_OrderedExpr" + p_OrderedExpr: function() { + var retval = new XQueryParser.p_OrderedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET339 = null; + var RBRACKET341 = null; + var p_Expr340 = null; + + var k_tree=null; + var LBRACKET339_tree=null; + var RBRACKET341_tree=null; + + try { + // xquery/XQueryParser.g:1072:9: (k= ORDERED LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1072:11: k= ORDERED LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_p_OrderedExpr7928); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET339=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_OrderedExpr7932); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET339_tree = this.adaptor.create(LBRACKET339); + this.adaptor.addChild(root_0, LBRACKET339_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_OrderedExpr7934); + p_Expr340=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr340.getTree()); + RBRACKET341=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_OrderedExpr7937); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET341_tree = this.adaptor.create(RBRACKET341); + this.adaptor.addChild(root_0, RBRACKET341_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnorderedExpr_return: (function() { + XQueryParser.p_UnorderedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnorderedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1076:1: p_UnorderedExpr : k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_UnorderedExpr" + p_UnorderedExpr: function() { + var retval = new XQueryParser.p_UnorderedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET342 = null; + var RBRACKET344 = null; + var p_Expr343 = null; + + var k_tree=null; + var LBRACKET342_tree=null; + var RBRACKET344_tree=null; + + try { + // xquery/XQueryParser.g:1077:9: (k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1077:11: k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,UNORDERED,XQueryParser.FOLLOW_UNORDERED_in_p_UnorderedExpr7965); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET342=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_UnorderedExpr7969); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET342_tree = this.adaptor.create(LBRACKET342); + this.adaptor.addChild(root_0, LBRACKET342_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_UnorderedExpr7971); + p_Expr343=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr343.getTree()); + RBRACKET344=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_UnorderedExpr7974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET344_tree = this.adaptor.create(RBRACKET344); + this.adaptor.addChild(root_0, RBRACKET344_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FunctionCall_return: (function() { + XQueryParser.p_FunctionCall_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FunctionCall_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1082:1: p_FunctionCall : f= pg_FQName p_ArgumentList ; + // $ANTLR start "p_FunctionCall" + p_FunctionCall: function() { + var retval = new XQueryParser.p_FunctionCall_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var f = null; + var p_ArgumentList345 = null; + + + try { + // xquery/XQueryParser.g:1083:9: (f= pg_FQName p_ArgumentList ) + // xquery/XQueryParser.g:1083:11: f= pg_FQName p_ArgumentList + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_FQName_in_p_FunctionCall8003); + f=this.pg_FQName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, f.getTree()); + if ( this.state.backtracking===0 ) { + this.af((f?f.start:null), (f?f.stop:null)); + } + this.pushFollow(XQueryParser.FOLLOW_p_ArgumentList_in_p_FunctionCall8008); + p_ArgumentList345=this.p_ArgumentList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ArgumentList345.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Argument_return: (function() { + XQueryParser.p_Argument_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Argument_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1087:1: p_Argument : ( p_ExprSingle[true] | p_ArgumentPlaceholder ); + // $ANTLR start "p_Argument" + p_Argument: function() { + var retval = new XQueryParser.p_Argument_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle346 = null; + var p_ArgumentPlaceholder347 = null; + + + try { + // xquery/XQueryParser.g:1088:9: ( p_ExprSingle[true] | p_ArgumentPlaceholder ) + var alt138=2; + var LA138_0 = this.input.LA(1); + + if ( ((LA138_0>=ANCESTOR && LA138_0<=QUOT_ER)||LA138_0==LPAREN||(LA138_0>=DOLLAR && LA138_0<=LBRACKET)||(LA138_0>=STAR && LA138_0<=SMALLER)||(LA138_0>=SLASH && LA138_0<=DOT_DOT)||LA138_0==ATTR_SIGN||(LA138_0>=APOS && LA138_0<=QUOT)||LA138_0==L_NCName||(LA138_0>=L_Pragma && LA138_0<=L_DoubleLiteral)||LA138_0==EXPLICITLY) ) { + alt138=1; + } + else if ( (LA138_0==QUESTION) ) { + alt138=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 138, 0, this.input); + + throw nvae; + } + switch (alt138) { + case 1 : + // xquery/XQueryParser.g:1088:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Argument8034); + p_ExprSingle346=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle346.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1088:32: p_ArgumentPlaceholder + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ArgumentPlaceholder_in_p_Argument8039); + p_ArgumentPlaceholder347=this.p_ArgumentPlaceholder(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ArgumentPlaceholder347.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ArgumentPlaceholder_return: (function() { + XQueryParser.p_ArgumentPlaceholder_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ArgumentPlaceholder_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1092:1: p_ArgumentPlaceholder : QUESTION ; + // $ANTLR start "p_ArgumentPlaceholder" + p_ArgumentPlaceholder: function() { + var retval = new XQueryParser.p_ArgumentPlaceholder_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUESTION348 = null; + + var QUESTION348_tree=null; + + try { + // xquery/XQueryParser.g:1093:9: ( QUESTION ) + // xquery/XQueryParser.g:1093:11: QUESTION + root_0 = this.adaptor.nil(); + + QUESTION348=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_ArgumentPlaceholder8065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION348_tree = this.adaptor.create(QUESTION348); + this.adaptor.addChild(root_0, QUESTION348_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Constructor_return: (function() { + XQueryParser.p_Constructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Constructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1097:1: p_Constructor : ( p_DirectConstructor | p_ComputedConstructor ); + // $ANTLR start "p_Constructor" + p_Constructor: function() { + var retval = new XQueryParser.p_Constructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirectConstructor349 = null; + var p_ComputedConstructor350 = null; + + + try { + // xquery/XQueryParser.g:1098:9: ( p_DirectConstructor | p_ComputedConstructor ) + var alt139=2; + var LA139_0 = this.input.LA(1); + + if ( (LA139_0==SMALLER||(LA139_0>=L_DirCommentConstructor && LA139_0<=L_DirPIConstructor)) ) { + alt139=1; + } + else if ( (LA139_0==ATTRIBUTE||LA139_0==COMMENT||LA139_0==DOCUMENT||LA139_0==ELEMENT||LA139_0==NAMESPACE||LA139_0==PROCESSING_INSTRUCTION||LA139_0==TEXT) ) { + alt139=2; + } + else if ( (LA139_0==BINARY) && ((this.lc(MLS)))) { + alt139=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 139, 0, this.input); + + throw nvae; + } + switch (alt139) { + case 1 : + // xquery/XQueryParser.g:1098:11: p_DirectConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirectConstructor_in_p_Constructor8091); + p_DirectConstructor349=this.p_DirectConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirectConstructor349.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1099:11: p_ComputedConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ComputedConstructor_in_p_Constructor8103); + p_ComputedConstructor350=this.p_ComputedConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComputedConstructor350.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirectConstructor_return: (function() { + XQueryParser.p_DirectConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirectConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1103:1: p_DirectConstructor : ( p_DirElemConstructor | p_DirCommentConstructor | p_DirPIConstructor ); + // $ANTLR start "p_DirectConstructor" + p_DirectConstructor: function() { + var retval = new XQueryParser.p_DirectConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirElemConstructor351 = null; + var p_DirCommentConstructor352 = null; + var p_DirPIConstructor353 = null; + + + try { + // xquery/XQueryParser.g:1104:9: ( p_DirElemConstructor | p_DirCommentConstructor | p_DirPIConstructor ) + var alt140=3; + switch ( this.input.LA(1) ) { + case SMALLER: + alt140=1; + break; + case L_DirCommentConstructor: + alt140=2; + break; + case L_DirPIConstructor: + alt140=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 140, 0, this.input); + + throw nvae; + } + + switch (alt140) { + case 1 : + // xquery/XQueryParser.g:1104:11: p_DirElemConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirElemConstructor_in_p_DirectConstructor8129); + p_DirElemConstructor351=this.p_DirElemConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirElemConstructor351.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1105:11: p_DirCommentConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirCommentConstructor_in_p_DirectConstructor8141); + p_DirCommentConstructor352=this.p_DirCommentConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirCommentConstructor352.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1106:11: p_DirPIConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirPIConstructor_in_p_DirectConstructor8153); + p_DirPIConstructor353=this.p_DirPIConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirPIConstructor353.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirElemConstructor_return: (function() { + XQueryParser.p_DirElemConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirElemConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1110:1: p_DirElemConstructor : SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) ; + // $ANTLR start "p_DirElemConstructor" + p_DirElemConstructor: function() { + var retval = new XQueryParser.p_DirElemConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SMALLER354 = null; + var EMPTY_CLOSE_TAG356 = null; + var GREATER357 = null; + var CLOSE_TAG359 = null; + var S360 = null; + var GREATER361 = null; + var ts = null; + var te = null; + var p_DirAttributeList355 = null; + var pm_DirElemContent358 = null; + + var SMALLER354_tree=null; + var EMPTY_CLOSE_TAG356_tree=null; + var GREATER357_tree=null; + var CLOSE_TAG359_tree=null; + var S360_tree=null; + var GREATER361_tree=null; + var stream_CLOSE_TAG=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token CLOSE_TAG"); + var stream_GREATER=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token GREATER"); + var stream_S=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token S"); + var stream_EMPTY_CLOSE_TAG=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EMPTY_CLOSE_TAG"); + var stream_SMALLER=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SMALLER"); + var stream_p_DirAttributeList=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_DirAttributeList"); + var stream_pm_DirElemContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_DirElemContent"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:1111:9: ( SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) ) + // xquery/XQueryParser.g:1111:11: SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) + SMALLER354=this.match(this.input,SMALLER,XQueryParser.FOLLOW_SMALLER_in_p_DirElemConstructor8180); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SMALLER.add(SMALLER354); + + if ( this.state.backtracking===0 ) { + this.pushXMLLexer(); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirElemConstructor8196); + ts=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(ts.getTree()); + if ( this.state.backtracking===0 ) { + this.at((ts?ts.start:null), (ts?ts.stop:null)); + } + this.pushFollow(XQueryParser.FOLLOW_p_DirAttributeList_in_p_DirElemConstructor8201); + p_DirAttributeList355=this.p_DirAttributeList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_DirAttributeList.add(p_DirAttributeList355.getTree()); + // xquery/XQueryParser.g:1113:11: ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) + var alt143=2; + var LA143_0 = this.input.LA(1); + + if ( (LA143_0==EMPTY_CLOSE_TAG) ) { + alt143=1; + } + else if ( (LA143_0==GREATER) ) { + alt143=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 143, 0, this.input); + + throw nvae; + } + switch (alt143) { + case 1 : + // xquery/XQueryParser.g:1113:12: EMPTY_CLOSE_TAG + EMPTY_CLOSE_TAG356=this.match(this.input,EMPTY_CLOSE_TAG,XQueryParser.FOLLOW_EMPTY_CLOSE_TAG_in_p_DirElemConstructor8215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EMPTY_CLOSE_TAG.add(EMPTY_CLOSE_TAG356); + + + + break; + case 2 : + // xquery/XQueryParser.g:1113:30: ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) + // xquery/XQueryParser.g:1113:30: ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) + // xquery/XQueryParser.g:1113:31: GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER + GREATER357=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_DirElemConstructor8220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_GREATER.add(GREATER357); + + // xquery/XQueryParser.g:1113:39: ( pm_DirElemContent )* + loop141: + do { + var alt141=2; + var LA141_0 = this.input.LA(1); + + if ( ((LA141_0>=L_ElementContentChar && LA141_0<=ESCAPE_RBRACKET)||LA141_0==LBRACKET||LA141_0==SMALLER||(LA141_0>=L_DirCommentConstructor && LA141_0<=L_DirPIConstructor)) ) { + alt141=1; + } + + + switch (alt141) { + case 1 : + // xquery/XQueryParser.g:1113:39: pm_DirElemContent + this.pushFollow(XQueryParser.FOLLOW_pm_DirElemContent_in_p_DirElemConstructor8222); + pm_DirElemContent358=this.pm_DirElemContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_DirElemContent.add(pm_DirElemContent358.getTree()); + + + break; + + default : + break loop141; + } + } while (true); + + CLOSE_TAG359=this.match(this.input,CLOSE_TAG,XQueryParser.FOLLOW_CLOSE_TAG_in_p_DirElemConstructor8225); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_CLOSE_TAG.add(CLOSE_TAG359); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirElemConstructor8229); + te=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(te.getTree()); + if ( this.state.backtracking===0 ) { + this.at((te?te.start:null), (te?te.stop:null)); + } + // xquery/XQueryParser.g:1113:111: ( S )? + var alt142=2; + var LA142_0 = this.input.LA(1); + + if ( (LA142_0==S) ) { + alt142=1; + } + switch (alt142) { + case 1 : + // xquery/XQueryParser.g:1113:111: S + S360=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirElemConstructor8233); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_S.add(S360); + + + + break; + + } + + GREATER361=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_DirElemConstructor8236); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_GREATER.add(GREATER361); + + + + + + + break; + + } + + + + // AST REWRITE + // elements: pm_DirElemContent, p_DirAttributeList + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1114:17: -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) + { + // xquery/XQueryParser.g:1114:20: ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirElemConstructor, "DirElemConstructor"), root_1); + + // xquery/XQueryParser.g:1114:41: ^( DirAttributeList ( p_DirAttributeList )* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeList, "DirAttributeList"), root_2); + + // xquery/XQueryParser.g:1114:60: ( p_DirAttributeList )* + while ( stream_p_DirAttributeList.hasNext() ) { + this.adaptor.addChild(root_2, stream_p_DirAttributeList.nextTree()); + + } + stream_p_DirAttributeList.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:1114:81: ^( DirElemContent ( pm_DirElemContent )* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DirElemContent, "DirElemContent"), root_2); + + // xquery/XQueryParser.g:1114:98: ( pm_DirElemContent )* + while ( stream_pm_DirElemContent.hasNext() ) { + this.adaptor.addChild(root_2, stream_pm_DirElemContent.nextTree()); + + } + stream_pm_DirElemContent.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.popLexer(); + } + return retval; + }, + + // inline static return class + p_DirAttributeList_return: (function() { + XQueryParser.p_DirAttributeList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirAttributeList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1119:1: p_DirAttributeList : ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* ; + // $ANTLR start "p_DirAttributeList" + p_DirAttributeList: function() { + var retval = new XQueryParser.p_DirAttributeList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var S362 = null; + var S363 = null; + var EQUAL364 = null; + var S365 = null; + var t = null; + var v = null; + + var S362_tree=null; + var S363_tree=null; + var EQUAL364_tree=null; + var S365_tree=null; + + try { + // xquery/XQueryParser.g:1120:9: ( ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* ) + // xquery/XQueryParser.g:1120:11: ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1120:11: ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* + loop147: + do { + var alt147=2; + var LA147_0 = this.input.LA(1); + + if ( (LA147_0==S) ) { + alt147=1; + } + + + switch (alt147) { + case 1 : + // xquery/XQueryParser.g:1120:12: S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? + S362=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8313); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S362_tree = this.adaptor.create(S362); + this.adaptor.addChild(root_0, S362_tree); + } + // xquery/XQueryParser.g:1120:14: (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? + var alt146=2; + var LA146_0 = this.input.LA(1); + + if ( ((LA146_0>=ANCESTOR && LA146_0<=SKIP)||(LA146_0>=VALUE && LA146_0<=QUOT_ER)||LA146_0==L_NCName||LA146_0==EXPLICITLY) ) { + alt146=1; + } + switch (alt146) { + case 1 : + // xquery/XQueryParser.g:1120:15: t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirAttributeList8318); + t=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, t.getTree()); + if ( this.state.backtracking===0 ) { + this.at((t?t.start:null), (t?t.stop:null)); + } + // xquery/XQueryParser.g:1120:55: ( S )? + var alt144=2; + var LA144_0 = this.input.LA(1); + + if ( (LA144_0==S) ) { + alt144=1; + } + switch (alt144) { + case 1 : + // xquery/XQueryParser.g:1120:55: S + S363=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8322); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S363_tree = this.adaptor.create(S363); + this.adaptor.addChild(root_0, S363_tree); + } + + + break; + + } + + EQUAL364=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_DirAttributeList8325); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + EQUAL364_tree = this.adaptor.create(EQUAL364); + this.adaptor.addChild(root_0, EQUAL364_tree); + } + // xquery/XQueryParser.g:1120:64: ( S )? + var alt145=2; + var LA145_0 = this.input.LA(1); + + if ( (LA145_0==S) ) { + alt145=1; + } + switch (alt145) { + case 1 : + // xquery/XQueryParser.g:1120:64: S + S365=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S365_tree = this.adaptor.create(S365); + this.adaptor.addChild(root_0, S365_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_DirAttributeValue_in_p_DirAttributeList8332); + v=this.p_DirAttributeValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + + + break; + + } + + + + break; + + default : + break loop147; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirAttributeValue_return: (function() { + XQueryParser.p_DirAttributeValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirAttributeValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1124:1: p_DirAttributeValue : ( (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) | (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) ); + // $ANTLR start "p_DirAttributeValue" + p_DirAttributeValue: function() { + var retval = new XQueryParser.p_DirAttributeValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var list_s=null; + var p_QuotAttrValueContent366 = null; + var p_AposAttrValueContent367 = null; + + var s_tree=null; + var stream_ESCAPE_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ESCAPE_QUOT"); + var stream_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token APOS"); + var stream_ESCAPE_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ESCAPE_APOS"); + var stream_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token QUOT"); + var stream_p_QuotAttrValueContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QuotAttrValueContent"); + var stream_p_AposAttrValueContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_AposAttrValueContent"); + try { + // xquery/XQueryParser.g:1125:9: ( (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) | (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) ) + var alt150=2; + var LA150_0 = this.input.LA(1); + + if ( (LA150_0==QUOT) ) { + alt150=1; + } + else if ( (LA150_0==APOS) ) { + alt150=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 150, 0, this.input); + + throw nvae; + } + switch (alt150) { + case 1 : + // xquery/XQueryParser.g:1125:11: (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) + // xquery/XQueryParser.g:1125:11: (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) + // xquery/XQueryParser.g:1125:12: s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8366); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = true; + } + // xquery/XQueryParser.g:1125:45: (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* + loop148: + do { + var alt148=4; + switch ( this.input.LA(1) ) { + case ESCAPE_QUOT: + alt148=1; + break; + case APOS: + alt148=2; + break; + case L_QuotAttrContentChar: + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt148=3; + break; + + } + + switch (alt148) { + case 1 : + // xquery/XQueryParser.g:1125:46: s+= ESCAPE_QUOT + s=this.match(this.input,ESCAPE_QUOT,XQueryParser.FOLLOW_ESCAPE_QUOT_in_p_DirAttributeValue8373); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ESCAPE_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 2 : + // xquery/XQueryParser.g:1125:63: s+= APOS + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8379); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 3 : + // xquery/XQueryParser.g:1125:73: p_QuotAttrValueContent + this.pushFollow(XQueryParser.FOLLOW_p_QuotAttrValueContent_in_p_DirAttributeValue8383); + p_QuotAttrValueContent366=this.p_QuotAttrValueContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QuotAttrValueContent.add(p_QuotAttrValueContent366.getTree()); + + + break; + + default : + break loop148; + } + } while (true); + + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8389); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = false; + } + + + + if ( this.state.backtracking===0 ) { + this.addToken(list_s, "string"); + } + + + // AST REWRITE + // elements: p_QuotAttrValueContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1126:17: -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) + { + // xquery/XQueryParser.g:1126:20: ^( DirAttributeValue ( p_QuotAttrValueContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeValue, "DirAttributeValue"), root_1); + + // xquery/XQueryParser.g:1126:40: ( p_QuotAttrValueContent )* + while ( stream_p_QuotAttrValueContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_p_QuotAttrValueContent.nextTree()); + + } + stream_p_QuotAttrValueContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1127:11: (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) + // xquery/XQueryParser.g:1127:11: (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) + // xquery/XQueryParser.g:1127:12: s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8434); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = true; + } + // xquery/XQueryParser.g:1127:46: (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* + loop149: + do { + var alt149=4; + switch ( this.input.LA(1) ) { + case ESCAPE_APOS: + alt149=1; + break; + case QUOT: + alt149=2; + break; + case L_AposAttrContentChar: + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt149=3; + break; + + } + + switch (alt149) { + case 1 : + // xquery/XQueryParser.g:1127:47: s+= ESCAPE_APOS + s=this.match(this.input,ESCAPE_APOS,XQueryParser.FOLLOW_ESCAPE_APOS_in_p_DirAttributeValue8441); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ESCAPE_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 2 : + // xquery/XQueryParser.g:1127:64: s+= QUOT + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8447); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 3 : + // xquery/XQueryParser.g:1127:74: p_AposAttrValueContent + this.pushFollow(XQueryParser.FOLLOW_p_AposAttrValueContent_in_p_DirAttributeValue8451); + p_AposAttrValueContent367=this.p_AposAttrValueContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_AposAttrValueContent.add(p_AposAttrValueContent367.getTree()); + + + break; + + default : + break loop149; + } + } while (true); + + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = false; + } + + + + if ( this.state.backtracking===0 ) { + this.addToken(list_s, "string"); + } + + + // AST REWRITE + // elements: p_AposAttrValueContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1128:17: -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) + { + // xquery/XQueryParser.g:1128:20: ^( DirAttributeValue ( p_AposAttrValueContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeValue, "DirAttributeValue"), root_1); + + // xquery/XQueryParser.g:1128:40: ( p_AposAttrValueContent )* + while ( stream_p_AposAttrValueContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_p_AposAttrValueContent.nextTree()); + + } + stream_p_AposAttrValueContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuotAttrValueContent_return: (function() { + XQueryParser.p_QuotAttrValueContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuotAttrValueContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1132:1: p_QuotAttrValueContent : (s= p_QuotAttrContentChar | pm_CommonContent ); + // $ANTLR start "p_QuotAttrValueContent" + p_QuotAttrValueContent: function() { + var retval = new XQueryParser.p_QuotAttrValueContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var pm_CommonContent368 = null; + + + try { + // xquery/XQueryParser.g:1133:9: (s= p_QuotAttrContentChar | pm_CommonContent ) + var alt151=2; + var LA151_0 = this.input.LA(1); + + if ( (LA151_0==L_QuotAttrContentChar) ) { + alt151=1; + } + else if ( ((LA151_0>=L_PredefinedEntityRef && LA151_0<=ESCAPE_RBRACKET)||LA151_0==LBRACKET) ) { + alt151=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 151, 0, this.input); + + throw nvae; + } + switch (alt151) { + case 1 : + // xquery/XQueryParser.g:1133:11: s= p_QuotAttrContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QuotAttrContentChar_in_p_QuotAttrValueContent8515); + s=this.p_QuotAttrContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, s.getTree()); + if ( this.state.backtracking===0 ) { + this.addString((s?s.start:null), (s?s.stop:null)); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1133:76: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_p_QuotAttrValueContent8521); + pm_CommonContent368=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent368.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AposAttrValueContent_return: (function() { + XQueryParser.p_AposAttrValueContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AposAttrValueContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1137:1: p_AposAttrValueContent : (s= p_AposAttrContentChar | pm_CommonContent ); + // $ANTLR start "p_AposAttrValueContent" + p_AposAttrValueContent: function() { + var retval = new XQueryParser.p_AposAttrValueContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var pm_CommonContent369 = null; + + + try { + // xquery/XQueryParser.g:1138:9: (s= p_AposAttrContentChar | pm_CommonContent ) + var alt152=2; + var LA152_0 = this.input.LA(1); + + if ( (LA152_0==L_AposAttrContentChar) ) { + alt152=1; + } + else if ( ((LA152_0>=L_PredefinedEntityRef && LA152_0<=ESCAPE_RBRACKET)||LA152_0==LBRACKET) ) { + alt152=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 152, 0, this.input); + + throw nvae; + } + switch (alt152) { + case 1 : + // xquery/XQueryParser.g:1138:11: s= p_AposAttrContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AposAttrContentChar_in_p_AposAttrValueContent8549); + s=this.p_AposAttrContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, s.getTree()); + if ( this.state.backtracking===0 ) { + this.addString((s?s.start:null), (s?s.stop:null)); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1138:76: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_p_AposAttrValueContent8555); + pm_CommonContent369=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent369.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DirElemContent_return: (function() { + XQueryParser.pm_DirElemContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DirElemContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1142:1: pm_DirElemContent : ( p_DirectConstructor | p_CDataSection | pm_CommonContent | p_ElementContentChar ); + // $ANTLR start "pm_DirElemContent" + pm_DirElemContent: function() { + var retval = new XQueryParser.pm_DirElemContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirectConstructor370 = null; + var p_CDataSection371 = null; + var pm_CommonContent372 = null; + var p_ElementContentChar373 = null; + + + try { + // xquery/XQueryParser.g:1143:9: ( p_DirectConstructor | p_CDataSection | pm_CommonContent | p_ElementContentChar ) + var alt153=4; + switch ( this.input.LA(1) ) { + case SMALLER: + case L_DirCommentConstructor: + case L_DirPIConstructor: + alt153=1; + break; + case L_CDataSection: + alt153=2; + break; + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt153=3; + break; + case L_ElementContentChar: + alt153=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 153, 0, this.input); + + throw nvae; + } + + switch (alt153) { + case 1 : + // xquery/XQueryParser.g:1143:11: p_DirectConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirectConstructor_in_pm_DirElemContent8581); + p_DirectConstructor370=this.p_DirectConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirectConstructor370.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1144:11: p_CDataSection + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CDataSection_in_pm_DirElemContent8593); + p_CDataSection371=this.p_CDataSection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CDataSection371.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1145:11: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_pm_DirElemContent8605); + pm_CommonContent372=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent372.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1146:11: p_ElementContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementContentChar_in_pm_DirElemContent8617); + p_ElementContentChar373=this.p_ElementContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementContentChar373.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CommonContent_return: (function() { + XQueryParser.pm_CommonContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CommonContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1152:1: pm_CommonContent : ( L_PredefinedEntityRef | L_CharRef | s= ESCAPE_LBRACKET | s= ESCAPE_RBRACKET | pg_EnclosedExprXml ); + // $ANTLR start "pm_CommonContent" + pm_CommonContent: function() { + var retval = new XQueryParser.pm_CommonContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var L_PredefinedEntityRef374 = null; + var L_CharRef375 = null; + var pg_EnclosedExprXml376 = null; + + var s_tree=null; + var L_PredefinedEntityRef374_tree=null; + var L_CharRef375_tree=null; + + try { + // xquery/XQueryParser.g:1153:9: ( L_PredefinedEntityRef | L_CharRef | s= ESCAPE_LBRACKET | s= ESCAPE_RBRACKET | pg_EnclosedExprXml ) + var alt154=5; + switch ( this.input.LA(1) ) { + case L_PredefinedEntityRef: + alt154=1; + break; + case L_CharRef: + alt154=2; + break; + case ESCAPE_LBRACKET: + alt154=3; + break; + case ESCAPE_RBRACKET: + alt154=4; + break; + case LBRACKET: + alt154=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 154, 0, this.input); + + throw nvae; + } + + switch (alt154) { + case 1 : + // xquery/XQueryParser.g:1153:11: L_PredefinedEntityRef + root_0 = this.adaptor.nil(); + + L_PredefinedEntityRef374=this.match(this.input,L_PredefinedEntityRef,XQueryParser.FOLLOW_L_PredefinedEntityRef_in_pm_CommonContent8645); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_PredefinedEntityRef374_tree = this.adaptor.create(L_PredefinedEntityRef374); + this.adaptor.addChild(root_0, L_PredefinedEntityRef374_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1154:11: L_CharRef + root_0 = this.adaptor.nil(); + + L_CharRef375=this.match(this.input,L_CharRef,XQueryParser.FOLLOW_L_CharRef_in_pm_CommonContent8657); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_CharRef375_tree = this.adaptor.create(L_CharRef375); + this.adaptor.addChild(root_0, L_CharRef375_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1155:11: s= ESCAPE_LBRACKET + root_0 = this.adaptor.nil(); + + s=this.match(this.input,ESCAPE_LBRACKET,XQueryParser.FOLLOW_ESCAPE_LBRACKET_in_pm_CommonContent8671); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + if ( this.state.backtracking===0 ) { + if(this.isInAttr) { this.addToken(s, "string"); } + } + + + break; + case 4 : + // xquery/XQueryParser.g:1156:11: s= ESCAPE_RBRACKET + root_0 = this.adaptor.nil(); + + s=this.match(this.input,ESCAPE_RBRACKET,XQueryParser.FOLLOW_ESCAPE_RBRACKET_in_pm_CommonContent8687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + if ( this.state.backtracking===0 ) { + if(this.isInAttr) { this.addToken(s, "string"); } + } + + + break; + case 5 : + // xquery/XQueryParser.g:1157:11: pg_EnclosedExprXml + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_EnclosedExprXml_in_pm_CommonContent8701); + pg_EnclosedExprXml376=this.pg_EnclosedExprXml(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_EnclosedExprXml376.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_EnclosedExprXml_return: (function() { + XQueryParser.pg_EnclosedExprXml_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_EnclosedExprXml_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1165:1: pg_EnclosedExprXml : LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pg_EnclosedExprXml" + pg_EnclosedExprXml: function() { + var retval = new XQueryParser.pg_EnclosedExprXml_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET377 = null; + var RBRACKET379 = null; + var p_StatementsAndOptionalExpr378 = null; + + var LBRACKET377_tree=null; + var RBRACKET379_tree=null; + + try { + // xquery/XQueryParser.g:1166:9: ( LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1166:13: LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET377=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pg_EnclosedExprXml8733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET377_tree = this.adaptor.create(LBRACKET377); + this.adaptor.addChild(root_0, LBRACKET377_tree); + } + if ( this.state.backtracking===0 ) { + this.pushXQueryLexer(); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pg_EnclosedExprXml8749); + p_StatementsAndOptionalExpr378=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr378.getTree()); + RBRACKET379=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pg_EnclosedExprXml8763); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET379_tree = this.adaptor.create(RBRACKET379); + this.adaptor.addChild(root_0, RBRACKET379_tree); + } + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirCommentConstructor_return: (function() { + XQueryParser.p_DirCommentConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirCommentConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1173:1: p_DirCommentConstructor : c= L_DirCommentConstructor ; + // $ANTLR start "p_DirCommentConstructor" + p_DirCommentConstructor: function() { + var retval = new XQueryParser.p_DirCommentConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var c = null; + + var c_tree=null; + + try { + // xquery/XQueryParser.g:1174:9: (c= L_DirCommentConstructor ) + // xquery/XQueryParser.g:1174:11: c= L_DirCommentConstructor + root_0 = this.adaptor.nil(); + + c=this.match(this.input,L_DirCommentConstructor,XQueryParser.FOLLOW_L_DirCommentConstructor_in_p_DirCommentConstructor8794); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + c_tree = this.adaptor.create(c); + this.adaptor.addChild(root_0, c_tree); + } + if ( this.state.backtracking===0 ) { + this.ac(c); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirPIConstructor_return: (function() { + XQueryParser.p_DirPIConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirPIConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1181:1: p_DirPIConstructor : p= L_DirPIConstructor ; + // $ANTLR start "p_DirPIConstructor" + p_DirPIConstructor: function() { + var retval = new XQueryParser.p_DirPIConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p = null; + + var p_tree=null; + + try { + // xquery/XQueryParser.g:1182:9: (p= L_DirPIConstructor ) + // xquery/XQueryParser.g:1182:11: p= L_DirPIConstructor + root_0 = this.adaptor.nil(); + + p=this.match(this.input,L_DirPIConstructor,XQueryParser.FOLLOW_L_DirPIConstructor_in_p_DirPIConstructor8830); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + p_tree = this.adaptor.create(p); + this.adaptor.addChild(root_0, p_tree); + } + if ( this.state.backtracking===0 ) { + this.ap(p); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CDataSection_return: (function() { + XQueryParser.p_CDataSection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CDataSection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1189:1: p_CDataSection : L_CDataSection ; + // $ANTLR start "p_CDataSection" + p_CDataSection: function() { + var retval = new XQueryParser.p_CDataSection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_CDataSection380 = null; + + var L_CDataSection380_tree=null; + + try { + // xquery/XQueryParser.g:1190:9: ( L_CDataSection ) + // xquery/XQueryParser.g:1190:11: L_CDataSection + root_0 = this.adaptor.nil(); + + L_CDataSection380=this.match(this.input,L_CDataSection,XQueryParser.FOLLOW_L_CDataSection_in_p_CDataSection8865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_CDataSection380_tree = this.adaptor.create(L_CDataSection380); + this.adaptor.addChild(root_0, L_CDataSection380_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ComputedConstructor_return: (function() { + XQueryParser.p_ComputedConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ComputedConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1197:1: p_ComputedConstructor : ( pm_CompDocConstructor | pm_CompElemConstructor | pm_CompAttrConstructor | p_CompNamespaceConstructor | p_CompTextConstructor | pm_CompCommentConstructor | pm_CompPIConstructor | {...}? => p_CompBinaryConstructor ); + // $ANTLR start "p_ComputedConstructor" + p_ComputedConstructor: function() { + var retval = new XQueryParser.p_ComputedConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_CompDocConstructor381 = null; + var pm_CompElemConstructor382 = null; + var pm_CompAttrConstructor383 = null; + var p_CompNamespaceConstructor384 = null; + var p_CompTextConstructor385 = null; + var pm_CompCommentConstructor386 = null; + var pm_CompPIConstructor387 = null; + var p_CompBinaryConstructor388 = null; + + + try { + // xquery/XQueryParser.g:1198:9: ( pm_CompDocConstructor | pm_CompElemConstructor | pm_CompAttrConstructor | p_CompNamespaceConstructor | p_CompTextConstructor | pm_CompCommentConstructor | pm_CompPIConstructor | {...}? => p_CompBinaryConstructor ) + var alt155=8; + var LA155_0 = this.input.LA(1); + + if ( (LA155_0==DOCUMENT) ) { + alt155=1; + } + else if ( (LA155_0==ELEMENT) ) { + alt155=2; + } + else if ( (LA155_0==ATTRIBUTE) ) { + alt155=3; + } + else if ( (LA155_0==NAMESPACE) ) { + alt155=4; + } + else if ( (LA155_0==TEXT) ) { + alt155=5; + } + else if ( (LA155_0==COMMENT) ) { + alt155=6; + } + else if ( (LA155_0==PROCESSING_INSTRUCTION) ) { + alt155=7; + } + else if ( (LA155_0==BINARY) && ((this.lc(MLS)))) { + alt155=8; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 155, 0, this.input); + + throw nvae; + } + switch (alt155) { + case 1 : + // xquery/XQueryParser.g:1198:11: pm_CompDocConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompDocConstructor_in_p_ComputedConstructor8897); + pm_CompDocConstructor381=this.pm_CompDocConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompDocConstructor381.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1199:11: pm_CompElemConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompElemConstructor_in_p_ComputedConstructor8909); + pm_CompElemConstructor382=this.pm_CompElemConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompElemConstructor382.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1200:11: pm_CompAttrConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompAttrConstructor_in_p_ComputedConstructor8921); + pm_CompAttrConstructor383=this.pm_CompAttrConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompAttrConstructor383.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1201:11: p_CompNamespaceConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CompNamespaceConstructor_in_p_ComputedConstructor8933); + p_CompNamespaceConstructor384=this.p_CompNamespaceConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompNamespaceConstructor384.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1202:11: p_CompTextConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CompTextConstructor_in_p_ComputedConstructor8945); + p_CompTextConstructor385=this.p_CompTextConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompTextConstructor385.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1203:11: pm_CompCommentConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompCommentConstructor_in_p_ComputedConstructor8957); + pm_CompCommentConstructor386=this.pm_CompCommentConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompCommentConstructor386.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1204:11: pm_CompPIConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompPIConstructor_in_p_ComputedConstructor8969); + pm_CompPIConstructor387=this.pm_CompPIConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompPIConstructor387.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1205:11: {...}? => p_CompBinaryConstructor + root_0 = this.adaptor.nil(); + + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ComputedConstructor", "this.lc(MLS)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_CompBinaryConstructor_in_p_ComputedConstructor8984); + p_CompBinaryConstructor388=this.p_CompBinaryConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompBinaryConstructor388.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompDocConstructor_return: (function() { + XQueryParser.pm_CompDocConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompDocConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1210:1: pm_CompDocConstructor : k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompDocConstructor" + pm_CompDocConstructor: function() { + var retval = new XQueryParser.pm_CompDocConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET389 = null; + var RBRACKET391 = null; + var p_StatementsAndOptionalExpr390 = null; + + var k_tree=null; + var LBRACKET389_tree=null; + var RBRACKET391_tree=null; + + try { + // xquery/XQueryParser.g:1211:9: (k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1211:11: k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DOCUMENT,XQueryParser.FOLLOW_DOCUMENT_in_pm_CompDocConstructor9013); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET389=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompDocConstructor9017); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET389_tree = this.adaptor.create(LBRACKET389); + this.adaptor.addChild(root_0, LBRACKET389_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompDocConstructor9019); + p_StatementsAndOptionalExpr390=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr390.getTree()); + RBRACKET391=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompDocConstructor9021); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET391_tree = this.adaptor.create(RBRACKET391); + this.adaptor.addChild(root_0, RBRACKET391_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompElemConstructor_return: (function() { + XQueryParser.pm_CompElemConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompElemConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1215:1: pm_CompElemConstructor : k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET ; + // $ANTLR start "pm_CompElemConstructor" + pm_CompElemConstructor: function() { + var retval = new XQueryParser.pm_CompElemConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET393 = null; + var RBRACKET395 = null; + var LBRACKET396 = null; + var RBRACKET398 = null; + var p_QName392 = null; + var p_Expr394 = null; + var pm_ContentExpr397 = null; + + var k_tree=null; + var LBRACKET393_tree=null; + var RBRACKET395_tree=null; + var LBRACKET396_tree=null; + var RBRACKET398_tree=null; + + try { + // xquery/XQueryParser.g:1216:9: (k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET ) + // xquery/XQueryParser.g:1216:11: k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_pm_CompElemConstructor9057); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1216:36: ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt156=2; + var LA156_0 = this.input.LA(1); + + if ( ((LA156_0>=ANCESTOR && LA156_0<=SKIP)||(LA156_0>=VALUE && LA156_0<=QUOT_ER)||LA156_0==L_NCName||LA156_0==EXPLICITLY) ) { + alt156=1; + } + else if ( (LA156_0==LBRACKET) ) { + alt156=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 156, 0, this.input); + + throw nvae; + } + switch (alt156) { + case 1 : + // xquery/XQueryParser.g:1216:37: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_CompElemConstructor9062); + p_QName392=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName392.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1216:47: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1216:47: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1216:48: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET393=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompElemConstructor9067); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET393_tree = this.adaptor.create(LBRACKET393); + this.adaptor.addChild(root_0, LBRACKET393_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompElemConstructor9069); + p_Expr394=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr394.getTree()); + RBRACKET395=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompElemConstructor9072); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET395_tree = this.adaptor.create(RBRACKET395); + this.adaptor.addChild(root_0, RBRACKET395_tree); + } + + + + + + break; + + } + + LBRACKET396=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompElemConstructor9076); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET396_tree = this.adaptor.create(LBRACKET396); + this.adaptor.addChild(root_0, LBRACKET396_tree); + } + this.pushFollow(XQueryParser.FOLLOW_pm_ContentExpr_in_pm_CompElemConstructor9078); + pm_ContentExpr397=this.pm_ContentExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ContentExpr397.getTree()); + RBRACKET398=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompElemConstructor9080); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET398_tree = this.adaptor.create(RBRACKET398); + this.adaptor.addChild(root_0, RBRACKET398_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ContentExpr_return: (function() { + XQueryParser.pm_ContentExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ContentExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1221:1: pm_ContentExpr : p_StatementsAndOptionalExpr ; + // $ANTLR start "pm_ContentExpr" + pm_ContentExpr: function() { + var retval = new XQueryParser.pm_ContentExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_StatementsAndOptionalExpr399 = null; + + + try { + // xquery/XQueryParser.g:1222:9: ( p_StatementsAndOptionalExpr ) + // xquery/XQueryParser.g:1222:11: p_StatementsAndOptionalExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_ContentExpr9107); + p_StatementsAndOptionalExpr399=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr399.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompAttrConstructor_return: (function() { + XQueryParser.pm_CompAttrConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompAttrConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1227:1: pm_CompAttrConstructor : k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompAttrConstructor" + pm_CompAttrConstructor: function() { + var retval = new XQueryParser.pm_CompAttrConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET401 = null; + var RBRACKET403 = null; + var LBRACKET404 = null; + var RBRACKET406 = null; + var p_QName400 = null; + var p_Expr402 = null; + var p_StatementsAndOptionalExpr405 = null; + + var k_tree=null; + var LBRACKET401_tree=null; + var RBRACKET403_tree=null; + var LBRACKET404_tree=null; + var RBRACKET406_tree=null; + + try { + // xquery/XQueryParser.g:1228:9: (k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1228:11: k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_pm_CompAttrConstructor9136); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1228:38: ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt157=2; + var LA157_0 = this.input.LA(1); + + if ( ((LA157_0>=ANCESTOR && LA157_0<=SKIP)||(LA157_0>=VALUE && LA157_0<=QUOT_ER)||LA157_0==L_NCName||LA157_0==EXPLICITLY) ) { + alt157=1; + } + else if ( (LA157_0==LBRACKET) ) { + alt157=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 157, 0, this.input); + + throw nvae; + } + switch (alt157) { + case 1 : + // xquery/XQueryParser.g:1228:39: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_CompAttrConstructor9141); + p_QName400=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName400.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1228:49: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1228:49: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1228:50: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET401=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompAttrConstructor9146); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET401_tree = this.adaptor.create(LBRACKET401); + this.adaptor.addChild(root_0, LBRACKET401_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompAttrConstructor9148); + p_Expr402=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr402.getTree()); + RBRACKET403=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompAttrConstructor9151); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET403_tree = this.adaptor.create(RBRACKET403); + this.adaptor.addChild(root_0, RBRACKET403_tree); + } + + + + + + break; + + } + + LBRACKET404=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompAttrConstructor9155); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET404_tree = this.adaptor.create(LBRACKET404); + this.adaptor.addChild(root_0, LBRACKET404_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompAttrConstructor9157); + p_StatementsAndOptionalExpr405=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr405.getTree()); + RBRACKET406=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompAttrConstructor9159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET406_tree = this.adaptor.create(RBRACKET406); + this.adaptor.addChild(root_0, RBRACKET406_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompNamespaceConstructor_return: (function() { + XQueryParser.p_CompNamespaceConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompNamespaceConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1232:1: p_CompNamespaceConstructor : k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET ; + // $ANTLR start "p_CompNamespaceConstructor" + p_CompNamespaceConstructor: function() { + var retval = new XQueryParser.p_CompNamespaceConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET408 = null; + var RBRACKET410 = null; + var LBRACKET411 = null; + var RBRACKET413 = null; + var p_Prefix407 = null; + var p_PrefixExpr409 = null; + var p_URIExpr412 = null; + + var k_tree=null; + var LBRACKET408_tree=null; + var RBRACKET410_tree=null; + var LBRACKET411_tree=null; + var RBRACKET413_tree=null; + + try { + // xquery/XQueryParser.g:1233:9: (k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET ) + // xquery/XQueryParser.g:1233:11: k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_CompNamespaceConstructor9187); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1233:38: ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) + var alt158=2; + var LA158_0 = this.input.LA(1); + + if ( ((LA158_0>=ANCESTOR && LA158_0<=SKIP)||(LA158_0>=VALUE && LA158_0<=QUOT_ER)||LA158_0==L_NCName||LA158_0==EXPLICITLY) ) { + alt158=1; + } + else if ( (LA158_0==LBRACKET) ) { + alt158=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 158, 0, this.input); + + throw nvae; + } + switch (alt158) { + case 1 : + // xquery/XQueryParser.g:1233:39: p_Prefix + this.pushFollow(XQueryParser.FOLLOW_p_Prefix_in_p_CompNamespaceConstructor9192); + p_Prefix407=this.p_Prefix(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Prefix407.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1233:50: ( LBRACKET p_PrefixExpr RBRACKET ) + // xquery/XQueryParser.g:1233:50: ( LBRACKET p_PrefixExpr RBRACKET ) + // xquery/XQueryParser.g:1233:51: LBRACKET p_PrefixExpr RBRACKET + LBRACKET408=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9197); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET408_tree = this.adaptor.create(LBRACKET408); + this.adaptor.addChild(root_0, LBRACKET408_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_PrefixExpr_in_p_CompNamespaceConstructor9199); + p_PrefixExpr409=this.p_PrefixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PrefixExpr409.getTree()); + RBRACKET410=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9201); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET410_tree = this.adaptor.create(RBRACKET410); + this.adaptor.addChild(root_0, RBRACKET410_tree); + } + + + + + + break; + + } + + LBRACKET411=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9205); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET411_tree = this.adaptor.create(LBRACKET411); + this.adaptor.addChild(root_0, LBRACKET411_tree); + } + // xquery/XQueryParser.g:1233:93: ( p_URIExpr )? + var alt159=2; + var LA159_0 = this.input.LA(1); + + if ( ((LA159_0>=ANCESTOR && LA159_0<=QUOT_ER)||LA159_0==LPAREN||(LA159_0>=DOLLAR && LA159_0<=LBRACKET)||(LA159_0>=STAR && LA159_0<=SMALLER)||(LA159_0>=SLASH && LA159_0<=DOT_DOT)||LA159_0==ATTR_SIGN||(LA159_0>=APOS && LA159_0<=QUOT)||LA159_0==L_NCName||(LA159_0>=L_Pragma && LA159_0<=L_DoubleLiteral)||LA159_0==EXPLICITLY) ) { + alt159=1; + } + switch (alt159) { + case 1 : + // xquery/XQueryParser.g:1233:93: p_URIExpr + this.pushFollow(XQueryParser.FOLLOW_p_URIExpr_in_p_CompNamespaceConstructor9207); + p_URIExpr412=this.p_URIExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_URIExpr412.getTree()); + + + break; + + } + + RBRACKET413=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9210); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET413_tree = this.adaptor.create(RBRACKET413); + this.adaptor.addChild(root_0, RBRACKET413_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Prefix_return: (function() { + XQueryParser.p_Prefix_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Prefix_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1237:1: p_Prefix : p_NCName ; + // $ANTLR start "p_Prefix" + p_Prefix: function() { + var retval = new XQueryParser.p_Prefix_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_NCName414 = null; + + + try { + // xquery/XQueryParser.g:1238:9: ( p_NCName ) + // xquery/XQueryParser.g:1238:11: p_NCName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Prefix9236); + p_NCName414=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName414.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PrefixExpr_return: (function() { + XQueryParser.p_PrefixExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PrefixExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1242:1: p_PrefixExpr : p_Expr[true,true] ; + // $ANTLR start "p_PrefixExpr" + p_PrefixExpr: function() { + var retval = new XQueryParser.p_PrefixExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr415 = null; + + + try { + // xquery/XQueryParser.g:1243:9: ( p_Expr[true,true] ) + // xquery/XQueryParser.g:1243:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_PrefixExpr9262); + p_Expr415=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr415.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_URIExpr_return: (function() { + XQueryParser.p_URIExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_URIExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1247:1: p_URIExpr : p_Expr[true,true] ; + // $ANTLR start "p_URIExpr" + p_URIExpr: function() { + var retval = new XQueryParser.p_URIExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr416 = null; + + + try { + // xquery/XQueryParser.g:1248:9: ( p_Expr[true,true] ) + // xquery/XQueryParser.g:1248:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_URIExpr9289); + p_Expr416=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr416.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompTextConstructor_return: (function() { + XQueryParser.p_CompTextConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompTextConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1252:1: p_CompTextConstructor : k= TEXT LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_CompTextConstructor" + p_CompTextConstructor: function() { + var retval = new XQueryParser.p_CompTextConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET417 = null; + var RBRACKET419 = null; + var p_Expr418 = null; + + var k_tree=null; + var LBRACKET417_tree=null; + var RBRACKET419_tree=null; + + try { + // xquery/XQueryParser.g:1253:9: (k= TEXT LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1253:11: k= TEXT LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_CompTextConstructor9318); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET417=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompTextConstructor9322); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET417_tree = this.adaptor.create(LBRACKET417); + this.adaptor.addChild(root_0, LBRACKET417_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CompTextConstructor9324); + p_Expr418=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr418.getTree()); + RBRACKET419=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompTextConstructor9327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET419_tree = this.adaptor.create(RBRACKET419); + this.adaptor.addChild(root_0, RBRACKET419_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompBinaryConstructor_return: (function() { + XQueryParser.p_CompBinaryConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompBinaryConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1257:1: p_CompBinaryConstructor : k= BINARY LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_CompBinaryConstructor" + p_CompBinaryConstructor: function() { + var retval = new XQueryParser.p_CompBinaryConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET420 = null; + var RBRACKET422 = null; + var p_Expr421 = null; + + var k_tree=null; + var LBRACKET420_tree=null; + var RBRACKET422_tree=null; + + try { + // xquery/XQueryParser.g:1258:9: (k= BINARY LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1258:11: k= BINARY LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,BINARY,XQueryParser.FOLLOW_BINARY_in_p_CompBinaryConstructor9355); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET420=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompBinaryConstructor9359); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET420_tree = this.adaptor.create(LBRACKET420); + this.adaptor.addChild(root_0, LBRACKET420_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CompBinaryConstructor9361); + p_Expr421=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr421.getTree()); + RBRACKET422=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompBinaryConstructor9364); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET422_tree = this.adaptor.create(RBRACKET422); + this.adaptor.addChild(root_0, RBRACKET422_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompCommentConstructor_return: (function() { + XQueryParser.pm_CompCommentConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompCommentConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1263:1: pm_CompCommentConstructor : k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompCommentConstructor" + pm_CompCommentConstructor: function() { + var retval = new XQueryParser.pm_CompCommentConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET423 = null; + var RBRACKET425 = null; + var p_StatementsAndOptionalExpr424 = null; + + var k_tree=null; + var LBRACKET423_tree=null; + var RBRACKET425_tree=null; + + try { + // xquery/XQueryParser.g:1264:9: (k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1264:11: k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COMMENT,XQueryParser.FOLLOW_COMMENT_in_pm_CompCommentConstructor9393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET423=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompCommentConstructor9397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET423_tree = this.adaptor.create(LBRACKET423); + this.adaptor.addChild(root_0, LBRACKET423_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompCommentConstructor9399); + p_StatementsAndOptionalExpr424=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr424.getTree()); + RBRACKET425=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompCommentConstructor9401); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET425_tree = this.adaptor.create(RBRACKET425); + this.adaptor.addChild(root_0, RBRACKET425_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompPIConstructor_return: (function() { + XQueryParser.pm_CompPIConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompPIConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1269:1: pm_CompPIConstructor : k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompPIConstructor" + pm_CompPIConstructor: function() { + var retval = new XQueryParser.pm_CompPIConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET427 = null; + var RBRACKET429 = null; + var LBRACKET430 = null; + var RBRACKET432 = null; + var p_NCName426 = null; + var p_Expr428 = null; + var p_StatementsAndOptionalExpr431 = null; + + var k_tree=null; + var LBRACKET427_tree=null; + var RBRACKET429_tree=null; + var LBRACKET430_tree=null; + var RBRACKET432_tree=null; + + try { + // xquery/XQueryParser.g:1270:9: (k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1270:11: k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,PROCESSING_INSTRUCTION,XQueryParser.FOLLOW_PROCESSING_INSTRUCTION_in_pm_CompPIConstructor9430); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1270:51: ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt160=2; + var LA160_0 = this.input.LA(1); + + if ( ((LA160_0>=ANCESTOR && LA160_0<=SKIP)||(LA160_0>=VALUE && LA160_0<=QUOT_ER)||LA160_0==L_NCName||LA160_0==EXPLICITLY) ) { + alt160=1; + } + else if ( (LA160_0==LBRACKET) ) { + alt160=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 160, 0, this.input); + + throw nvae; + } + switch (alt160) { + case 1 : + // xquery/XQueryParser.g:1270:52: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_CompPIConstructor9435); + p_NCName426=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName426.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1270:63: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1270:63: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1270:64: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET427=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompPIConstructor9440); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET427_tree = this.adaptor.create(LBRACKET427); + this.adaptor.addChild(root_0, LBRACKET427_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompPIConstructor9442); + p_Expr428=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr428.getTree()); + RBRACKET429=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompPIConstructor9445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET429_tree = this.adaptor.create(RBRACKET429); + this.adaptor.addChild(root_0, RBRACKET429_tree); + } + + + + + + break; + + } + + LBRACKET430=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompPIConstructor9449); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET430_tree = this.adaptor.create(LBRACKET430); + this.adaptor.addChild(root_0, LBRACKET430_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompPIConstructor9451); + p_StatementsAndOptionalExpr431=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr431.getTree()); + RBRACKET432=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompPIConstructor9453); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET432_tree = this.adaptor.create(RBRACKET432); + this.adaptor.addChild(root_0, RBRACKET432_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SingleType_return: (function() { + XQueryParser.p_SingleType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SingleType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1292:1: p_SingleType : p_AtomicOrUnionType ( QUESTION )? ; + // $ANTLR start "p_SingleType" + p_SingleType: function() { + var retval = new XQueryParser.p_SingleType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUESTION434 = null; + var p_AtomicOrUnionType433 = null; + + var QUESTION434_tree=null; + + try { + // xquery/XQueryParser.g:1293:9: ( p_AtomicOrUnionType ( QUESTION )? ) + // xquery/XQueryParser.g:1293:11: p_AtomicOrUnionType ( QUESTION )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AtomicOrUnionType_in_p_SingleType9497); + p_AtomicOrUnionType433=this.p_AtomicOrUnionType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicOrUnionType433.getTree()); + // xquery/XQueryParser.g:1293:31: ( QUESTION )? + var alt161=2; + var LA161_0 = this.input.LA(1); + + if ( (LA161_0==QUESTION) ) { + alt161=1; + } + switch (alt161) { + case 1 : + // xquery/XQueryParser.g:1293:31: QUESTION + QUESTION434=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_SingleType9499); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION434_tree = this.adaptor.create(QUESTION434); + this.adaptor.addChild(root_0, QUESTION434_tree); + } + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeDeclaration_return: (function() { + XQueryParser.p_TypeDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1297:1: p_TypeDeclaration : k= AS st= p_SequenceType -> ^( TypeDeclaration $st) ; + // $ANTLR start "p_TypeDeclaration" + p_TypeDeclaration: function() { + var retval = new XQueryParser.p_TypeDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var st = null; + + var k_tree=null; + var stream_AS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AS"); + var stream_p_SequenceType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SequenceType"); + try { + // xquery/XQueryParser.g:1298:9: (k= AS st= p_SequenceType -> ^( TypeDeclaration $st) ) + // xquery/XQueryParser.g:1298:11: k= AS st= p_SequenceType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TypeDeclaration9528); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AS.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypeDeclaration9534); + st=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SequenceType.add(st.getTree()); + + + // AST REWRITE + // elements: st + // token labels: + // rule labels: retval, st + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null); + + root_0 = this.adaptor.nil(); + // 1299:17: -> ^( TypeDeclaration $st) + { + // xquery/XQueryParser.g:1299:20: ^( TypeDeclaration $st) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(TypeDeclaration, "TypeDeclaration"), root_1); + + this.adaptor.addChild(root_1, stream_st.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SequenceType_return: (function() { + XQueryParser.p_SequenceType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SequenceType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1303:1: p_SequenceType : (k= EMPTY_SEQUENCE l= LPAREN r= RPAREN -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) | it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? -> ^( SequenceType $it ( $oi)? ) ); + // $ANTLR start "p_SequenceType" + p_SequenceType: function() { + var retval = new XQueryParser.p_SequenceType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var l = null; + var r = null; + var it = null; + var oi = null; + + var k_tree=null; + var l_tree=null; + var r_tree=null; + var stream_EMPTY_SEQUENCE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EMPTY_SEQUENCE"); + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_p_ItemType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ItemType"); + var stream_p_OccurrenceIndicator=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_OccurrenceIndicator"); + try { + // xquery/XQueryParser.g:1304:9: (k= EMPTY_SEQUENCE l= LPAREN r= RPAREN -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) | it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? -> ^( SequenceType $it ( $oi)? ) ) + var alt163=2; + var LA163_0 = this.input.LA(1); + + if ( (LA163_0==EMPTY_SEQUENCE) ) { + var LA163_1 = this.input.LA(2); + + if ( (LA163_1==LPAREN) ) { + alt163=1; + } + else if ( (LA163_1==EOF||(LA163_1>=AND && LA163_1<=AT)||LA163_1==CASE||LA163_1==COLLATION||LA163_1==DEFAULT||(LA163_1>=DESCENDING && LA163_1<=DIV)||LA163_1==EMPTY||LA163_1==EQ||(LA163_1>=EXCEPT && LA163_1<=EXTERNAL)||LA163_1==FOR||LA163_1==GE||(LA163_1>=GT && LA163_1<=IDIV)||LA163_1==IN||(LA163_1>=INSTANCE && LA163_1<=IS)||LA163_1==LE||(LA163_1>=LET && LA163_1<=MOD)||LA163_1==NE||(LA163_1>=OR && LA163_1<=ORDER)||(LA163_1>=RETURN && LA163_1<=SATISFIES)||LA163_1==STABLE||LA163_1==TO||LA163_1==UNION||LA163_1==WHERE||LA163_1==ALLOWING||LA163_1==COUNT||(LA163_1>=END && LA163_1<=GROUP)||LA163_1==ONLY||LA163_1==START||(LA163_1>=AFTER && LA163_1<=BEFORE)||LA163_1==INTO||LA163_1==MODIFY||LA163_1==WITH||LA163_1==CONTAINS||LA163_1==PARAGRAPHS||LA163_1==SCORE||LA163_1==SENTENCES||LA163_1==TIMES||LA163_1==WORDS||LA163_1==CONCAT||LA163_1==RPAREN||(LA163_1>=LBRACKET && LA163_1<=RBRACKET)||(LA163_1>=RSQUARE && LA163_1<=NOTEQUAL)||(LA163_1>=COMMA && LA163_1<=GREATER_GREATER)||LA163_1==COLON||(LA163_1>=SEMICOLON && LA163_1<=VBAR)) ) { + alt163=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 163, 1, this.input); + + throw nvae; + } + } + else if ( ((LA163_0>=ANCESTOR && LA163_0<=EMPTY)||(LA163_0>=ENCODING && LA163_0<=SKIP)||(LA163_0>=VALUE && LA163_0<=QUOT_ER)||LA163_0==LPAREN||LA163_0==L_NCName||LA163_0==EXPLICITLY) ) { + alt163=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 163, 0, this.input); + + throw nvae; + } + switch (alt163) { + case 1 : + // xquery/XQueryParser.g:1304:11: k= EMPTY_SEQUENCE l= LPAREN r= RPAREN + k=this.match(this.input,EMPTY_SEQUENCE,XQueryParser.FOLLOW_EMPTY_SEQUENCE_in_p_SequenceType9587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EMPTY_SEQUENCE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + l=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SequenceType9593); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(l); + + r=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SequenceType9597); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(r); + + + + // AST REWRITE + // elements: k, r, l + // token labels: r, l, k + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_r=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token r",r); + var stream_l=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token l",l); + var stream_k=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token k",k); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1305:17: -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) + { + // xquery/XQueryParser.g:1305:20: ^( SequenceType ^( EmptySequenceTest $k $l $r) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SequenceType, "SequenceType"), root_1); + + // xquery/XQueryParser.g:1305:35: ^( EmptySequenceTest $k $l $r) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(EmptySequenceTest, "EmptySequenceTest"), root_2); + + this.adaptor.addChild(root_2, stream_k.nextNode()); + this.adaptor.addChild(root_2, stream_l.nextNode()); + this.adaptor.addChild(root_2, stream_r.nextNode()); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1306:11: it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_p_SequenceType9646); + it=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ItemType.add(it.getTree()); + // xquery/XQueryParser.g:1306:25: ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? + var alt162=2; + alt162 = this.dfa162.predict(this.input); + switch (alt162) { + case 1 : + // xquery/XQueryParser.g:1306:26: ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_SequenceType9657); + oi=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_OccurrenceIndicator.add(oi.getTree()); + + + break; + + } + + + + // AST REWRITE + // elements: oi, it + // token labels: + // rule labels: retval, it, oi + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_it=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token it",it!=null?it.tree:null); + var stream_oi=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token oi",oi!=null?oi.tree:null); + + root_0 = this.adaptor.nil(); + // 1307:17: -> ^( SequenceType $it ( $oi)? ) + { + // xquery/XQueryParser.g:1307:20: ^( SequenceType $it ( $oi)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SequenceType, "SequenceType"), root_1); + + this.adaptor.addChild(root_1, stream_it.nextTree()); + // xquery/XQueryParser.g:1307:39: ( $oi)? + if ( stream_oi.hasNext() ) { + this.adaptor.addChild(root_1, stream_oi.nextTree()); + + } + stream_oi.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OccurrenceIndicator_return: (function() { + XQueryParser.p_OccurrenceIndicator_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OccurrenceIndicator_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1311:1: p_OccurrenceIndicator : ( QUESTION | STAR | PLUS ); + // $ANTLR start "p_OccurrenceIndicator" + p_OccurrenceIndicator: function() { + var retval = new XQueryParser.p_OccurrenceIndicator_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set435 = null; + + var set435_tree=null; + + try { + // xquery/XQueryParser.g:1312:9: ( QUESTION | STAR | PLUS ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set435=this.input.LT(1); + if ( (this.input.LA(1)>=QUESTION && this.input.LA(1)<=PLUS) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set435)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ItemType_return: (function() { + XQueryParser.p_ItemType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ItemType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1316:1: p_ItemType : ( p_KindTest -> ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType ); + // $ANTLR start "p_ItemType" + p_ItemType: function() { + var retval = new XQueryParser.p_ItemType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var BINARY437 = null; + var LPAREN438 = null; + var RPAREN439 = null; + var ITEM440 = null; + var LPAREN441 = null; + var RPAREN442 = null; + var p_KindTest436 = null; + var p_AtomicOrUnionType443 = null; + var p_ParenthesizedItemType444 = null; + + var BINARY437_tree=null; + var LPAREN438_tree=null; + var RPAREN439_tree=null; + var ITEM440_tree=null; + var LPAREN441_tree=null; + var RPAREN442_tree=null; + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_ITEM=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ITEM"); + var stream_BINARY=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BINARY"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_p_KindTest=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_KindTest"); + try { + // xquery/XQueryParser.g:1317:9: ( p_KindTest -> ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType ) + var alt164=5; + alt164 = this.dfa164.predict(this.input); + switch (alt164) { + case 1 : + // xquery/XQueryParser.g:1317:11: p_KindTest + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_ItemType9759); + p_KindTest436=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_KindTest.add(p_KindTest436.getTree()); + + + // AST REWRITE + // elements: p_KindTest + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1318:17: -> ^( KindTest p_KindTest ) + { + // xquery/XQueryParser.g:1318:20: ^( KindTest p_KindTest ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(KindTest, "KindTest"), root_1); + + this.adaptor.addChild(root_1, stream_p_KindTest.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1319:11: {...}? => ( BINARY LPAREN RPAREN ) + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ItemType", "this.lc(MLS)"); + } + // xquery/XQueryParser.g:1319:29: ( BINARY LPAREN RPAREN ) + // xquery/XQueryParser.g:1319:30: BINARY LPAREN RPAREN + BINARY437=this.match(this.input,BINARY,XQueryParser.FOLLOW_BINARY_in_p_ItemType9799); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BINARY.add(BINARY437); + + LPAREN438=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ItemType9801); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN438); + + RPAREN439=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ItemType9803); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN439); + + + + + + + // AST REWRITE + // elements: BINARY, LPAREN, RPAREN + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1320:17: -> ^( BinaryTest BINARY LPAREN RPAREN ) + { + // xquery/XQueryParser.g:1320:20: ^( BinaryTest BINARY LPAREN RPAREN ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(BinaryTest, "BinaryTest"), root_1); + + this.adaptor.addChild(root_1, stream_BINARY.nextNode()); + this.adaptor.addChild(root_1, stream_LPAREN.nextNode()); + this.adaptor.addChild(root_1, stream_RPAREN.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 3 : + // xquery/XQueryParser.g:1321:11: ( ITEM LPAREN RPAREN ) + // xquery/XQueryParser.g:1321:11: ( ITEM LPAREN RPAREN ) + // xquery/XQueryParser.g:1321:12: ITEM LPAREN RPAREN + ITEM440=this.match(this.input,ITEM,XQueryParser.FOLLOW_ITEM_in_p_ItemType9845); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ITEM.add(ITEM440); + + LPAREN441=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ItemType9847); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN441); + + RPAREN442=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ItemType9849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN442); + + + + + + + // AST REWRITE + // elements: RPAREN, LPAREN, ITEM + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1322:17: -> ^( ItemTest ITEM LPAREN RPAREN ) + { + // xquery/XQueryParser.g:1322:20: ^( ItemTest ITEM LPAREN RPAREN ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ItemTest, "ItemTest"), root_1); + + this.adaptor.addChild(root_1, stream_ITEM.nextNode()); + this.adaptor.addChild(root_1, stream_LPAREN.nextNode()); + this.adaptor.addChild(root_1, stream_RPAREN.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 4 : + // xquery/XQueryParser.g:1326:11: p_AtomicOrUnionType + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AtomicOrUnionType_in_p_ItemType9893); + p_AtomicOrUnionType443=this.p_AtomicOrUnionType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicOrUnionType443.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1327:11: p_ParenthesizedItemType + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ParenthesizedItemType_in_p_ItemType9905); + p_ParenthesizedItemType444=this.p_ParenthesizedItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ParenthesizedItemType444.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AtomicOrUnionType_return: (function() { + XQueryParser.p_AtomicOrUnionType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AtomicOrUnionType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1331:1: p_AtomicOrUnionType : p_QName -> ^( AtomicOrUnionType p_QName ) ; + // $ANTLR start "p_AtomicOrUnionType" + p_AtomicOrUnionType: function() { + var retval = new XQueryParser.p_AtomicOrUnionType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName445 = null; + + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:1332:9: ( p_QName -> ^( AtomicOrUnionType p_QName ) ) + // xquery/XQueryParser.g:1332:11: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AtomicOrUnionType9931); + p_QName445=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(p_QName445.getTree()); + + + // AST REWRITE + // elements: p_QName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1333:17: -> ^( AtomicOrUnionType p_QName ) + { + // xquery/XQueryParser.g:1333:20: ^( AtomicOrUnionType p_QName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AtomicOrUnionType, "AtomicOrUnionType"), root_1); + + this.adaptor.addChild(root_1, stream_p_QName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_KindTest_return: (function() { + XQueryParser.p_KindTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_KindTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1337:1: p_KindTest : ( p_DocumentTest | p_ElementTest | p_AttributeTest | p_SchemaElementTest | p_SchemaAttributeTest | p_PITest | p_CommentTest | p_TextTest | p_NamespaceNodeTest | p_AnyKindTest ); + // $ANTLR start "p_KindTest" + p_KindTest: function() { + var retval = new XQueryParser.p_KindTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DocumentTest446 = null; + var p_ElementTest447 = null; + var p_AttributeTest448 = null; + var p_SchemaElementTest449 = null; + var p_SchemaAttributeTest450 = null; + var p_PITest451 = null; + var p_CommentTest452 = null; + var p_TextTest453 = null; + var p_NamespaceNodeTest454 = null; + var p_AnyKindTest455 = null; + + + try { + // xquery/XQueryParser.g:1338:9: ( p_DocumentTest | p_ElementTest | p_AttributeTest | p_SchemaElementTest | p_SchemaAttributeTest | p_PITest | p_CommentTest | p_TextTest | p_NamespaceNodeTest | p_AnyKindTest ) + var alt165=10; + switch ( this.input.LA(1) ) { + case DOCUMENT_NODE: + alt165=1; + break; + case ELEMENT: + alt165=2; + break; + case ATTRIBUTE: + alt165=3; + break; + case SCHEMA_ELEMENT: + alt165=4; + break; + case SCHEMA_ATTRIBUTE: + alt165=5; + break; + case PROCESSING_INSTRUCTION: + alt165=6; + break; + case COMMENT: + alt165=7; + break; + case TEXT: + alt165=8; + break; + case NAMESPACE_NODE: + alt165=9; + break; + case NODE: + alt165=10; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 165, 0, this.input); + + throw nvae; + } + + switch (alt165) { + case 1 : + // xquery/XQueryParser.g:1338:11: p_DocumentTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DocumentTest_in_p_KindTest9981); + p_DocumentTest446=this.p_DocumentTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DocumentTest446.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1339:11: p_ElementTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementTest_in_p_KindTest9993); + p_ElementTest447=this.p_ElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementTest447.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1340:11: p_AttributeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeTest_in_p_KindTest10005); + p_AttributeTest448=this.p_AttributeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeTest448.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1341:11: p_SchemaElementTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SchemaElementTest_in_p_KindTest10017); + p_SchemaElementTest449=this.p_SchemaElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaElementTest449.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1342:11: p_SchemaAttributeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SchemaAttributeTest_in_p_KindTest10029); + p_SchemaAttributeTest450=this.p_SchemaAttributeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaAttributeTest450.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1343:11: p_PITest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PITest_in_p_KindTest10041); + p_PITest451=this.p_PITest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PITest451.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1344:11: p_CommentTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CommentTest_in_p_KindTest10053); + p_CommentTest452=this.p_CommentTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CommentTest452.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1345:11: p_TextTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TextTest_in_p_KindTest10065); + p_TextTest453=this.p_TextTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TextTest453.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:1346:11: p_NamespaceNodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NamespaceNodeTest_in_p_KindTest10077); + p_NamespaceNodeTest454=this.p_NamespaceNodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NamespaceNodeTest454.getTree()); + + + break; + case 10 : + // xquery/XQueryParser.g:1347:11: p_AnyKindTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AnyKindTest_in_p_KindTest10089); + p_AnyKindTest455=this.p_AnyKindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AnyKindTest455.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AnyKindTest_return: (function() { + XQueryParser.p_AnyKindTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AnyKindTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1351:1: p_AnyKindTest : NODE LPAREN RPAREN ; + // $ANTLR start "p_AnyKindTest" + p_AnyKindTest: function() { + var retval = new XQueryParser.p_AnyKindTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var NODE456 = null; + var LPAREN457 = null; + var RPAREN458 = null; + + var NODE456_tree=null; + var LPAREN457_tree=null; + var RPAREN458_tree=null; + + try { + // xquery/XQueryParser.g:1352:9: ( NODE LPAREN RPAREN ) + // xquery/XQueryParser.g:1352:11: NODE LPAREN RPAREN + root_0 = this.adaptor.nil(); + + NODE456=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_AnyKindTest10115); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + NODE456_tree = this.adaptor.create(NODE456); + this.adaptor.addChild(root_0, NODE456_tree); + } + LPAREN457=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AnyKindTest10117); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN457_tree = this.adaptor.create(LPAREN457); + this.adaptor.addChild(root_0, LPAREN457_tree); + } + RPAREN458=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AnyKindTest10119); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN458_tree = this.adaptor.create(RPAREN458); + this.adaptor.addChild(root_0, RPAREN458_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DocumentTest_return: (function() { + XQueryParser.p_DocumentTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DocumentTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1356:1: p_DocumentTest : DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN ; + // $ANTLR start "p_DocumentTest" + p_DocumentTest: function() { + var retval = new XQueryParser.p_DocumentTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOCUMENT_NODE459 = null; + var LPAREN460 = null; + var RPAREN463 = null; + var p_ElementTest461 = null; + var p_SchemaElementTest462 = null; + + var DOCUMENT_NODE459_tree=null; + var LPAREN460_tree=null; + var RPAREN463_tree=null; + + try { + // xquery/XQueryParser.g:1357:9: ( DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN ) + // xquery/XQueryParser.g:1357:11: DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN + root_0 = this.adaptor.nil(); + + DOCUMENT_NODE459=this.match(this.input,DOCUMENT_NODE,XQueryParser.FOLLOW_DOCUMENT_NODE_in_p_DocumentTest10145); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOCUMENT_NODE459_tree = this.adaptor.create(DOCUMENT_NODE459); + this.adaptor.addChild(root_0, DOCUMENT_NODE459_tree); + } + LPAREN460=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_DocumentTest10147); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN460_tree = this.adaptor.create(LPAREN460); + this.adaptor.addChild(root_0, LPAREN460_tree); + } + // xquery/XQueryParser.g:1357:32: ( p_ElementTest | p_SchemaElementTest )? + var alt166=3; + var LA166_0 = this.input.LA(1); + + if ( (LA166_0==ELEMENT) ) { + alt166=1; + } + else if ( (LA166_0==SCHEMA_ELEMENT) ) { + alt166=2; + } + switch (alt166) { + case 1 : + // xquery/XQueryParser.g:1357:33: p_ElementTest + this.pushFollow(XQueryParser.FOLLOW_p_ElementTest_in_p_DocumentTest10150); + p_ElementTest461=this.p_ElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementTest461.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1357:49: p_SchemaElementTest + this.pushFollow(XQueryParser.FOLLOW_p_SchemaElementTest_in_p_DocumentTest10154); + p_SchemaElementTest462=this.p_SchemaElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaElementTest462.getTree()); + + + break; + + } + + RPAREN463=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_DocumentTest10158); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN463_tree = this.adaptor.create(RPAREN463); + this.adaptor.addChild(root_0, RPAREN463_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TextTest_return: (function() { + XQueryParser.p_TextTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TextTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1361:1: p_TextTest : TEXT LPAREN RPAREN ; + // $ANTLR start "p_TextTest" + p_TextTest: function() { + var retval = new XQueryParser.p_TextTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var TEXT464 = null; + var LPAREN465 = null; + var RPAREN466 = null; + + var TEXT464_tree=null; + var LPAREN465_tree=null; + var RPAREN466_tree=null; + + try { + // xquery/XQueryParser.g:1362:9: ( TEXT LPAREN RPAREN ) + // xquery/XQueryParser.g:1362:11: TEXT LPAREN RPAREN + root_0 = this.adaptor.nil(); + + TEXT464=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_TextTest10184); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + TEXT464_tree = this.adaptor.create(TEXT464); + this.adaptor.addChild(root_0, TEXT464_tree); + } + LPAREN465=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TextTest10186); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN465_tree = this.adaptor.create(LPAREN465); + this.adaptor.addChild(root_0, LPAREN465_tree); + } + RPAREN466=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TextTest10188); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN466_tree = this.adaptor.create(RPAREN466); + this.adaptor.addChild(root_0, RPAREN466_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CommentTest_return: (function() { + XQueryParser.p_CommentTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CommentTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1366:1: p_CommentTest : COMMENT LPAREN RPAREN ; + // $ANTLR start "p_CommentTest" + p_CommentTest: function() { + var retval = new XQueryParser.p_CommentTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMENT467 = null; + var LPAREN468 = null; + var RPAREN469 = null; + + var COMMENT467_tree=null; + var LPAREN468_tree=null; + var RPAREN469_tree=null; + + try { + // xquery/XQueryParser.g:1367:9: ( COMMENT LPAREN RPAREN ) + // xquery/XQueryParser.g:1367:11: COMMENT LPAREN RPAREN + root_0 = this.adaptor.nil(); + + COMMENT467=this.match(this.input,COMMENT,XQueryParser.FOLLOW_COMMENT_in_p_CommentTest10214); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMENT467_tree = this.adaptor.create(COMMENT467); + this.adaptor.addChild(root_0, COMMENT467_tree); + } + LPAREN468=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_CommentTest10216); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN468_tree = this.adaptor.create(LPAREN468); + this.adaptor.addChild(root_0, LPAREN468_tree); + } + RPAREN469=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_CommentTest10218); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN469_tree = this.adaptor.create(RPAREN469); + this.adaptor.addChild(root_0, RPAREN469_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NamespaceNodeTest_return: (function() { + XQueryParser.p_NamespaceNodeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NamespaceNodeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1371:1: p_NamespaceNodeTest : NAMESPACE_NODE LPAREN RPAREN ; + // $ANTLR start "p_NamespaceNodeTest" + p_NamespaceNodeTest: function() { + var retval = new XQueryParser.p_NamespaceNodeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var NAMESPACE_NODE470 = null; + var LPAREN471 = null; + var RPAREN472 = null; + + var NAMESPACE_NODE470_tree=null; + var LPAREN471_tree=null; + var RPAREN472_tree=null; + + try { + // xquery/XQueryParser.g:1372:9: ( NAMESPACE_NODE LPAREN RPAREN ) + // xquery/XQueryParser.g:1372:11: NAMESPACE_NODE LPAREN RPAREN + root_0 = this.adaptor.nil(); + + NAMESPACE_NODE470=this.match(this.input,NAMESPACE_NODE,XQueryParser.FOLLOW_NAMESPACE_NODE_in_p_NamespaceNodeTest10244); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + NAMESPACE_NODE470_tree = this.adaptor.create(NAMESPACE_NODE470); + this.adaptor.addChild(root_0, NAMESPACE_NODE470_tree); + } + LPAREN471=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_NamespaceNodeTest10246); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN471_tree = this.adaptor.create(LPAREN471); + this.adaptor.addChild(root_0, LPAREN471_tree); + } + RPAREN472=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_NamespaceNodeTest10248); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN472_tree = this.adaptor.create(RPAREN472); + this.adaptor.addChild(root_0, RPAREN472_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PITest_return: (function() { + XQueryParser.p_PITest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PITest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1376:1: p_PITest : PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN ; + // $ANTLR start "p_PITest" + p_PITest: function() { + var retval = new XQueryParser.p_PITest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var PROCESSING_INSTRUCTION473 = null; + var LPAREN474 = null; + var RPAREN477 = null; + var p_NCName475 = null; + var p_StringLiteral476 = null; + + var PROCESSING_INSTRUCTION473_tree=null; + var LPAREN474_tree=null; + var RPAREN477_tree=null; + + try { + // xquery/XQueryParser.g:1377:9: ( PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN ) + // xquery/XQueryParser.g:1377:11: PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN + root_0 = this.adaptor.nil(); + + PROCESSING_INSTRUCTION473=this.match(this.input,PROCESSING_INSTRUCTION,XQueryParser.FOLLOW_PROCESSING_INSTRUCTION_in_p_PITest10274); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PROCESSING_INSTRUCTION473_tree = this.adaptor.create(PROCESSING_INSTRUCTION473); + this.adaptor.addChild(root_0, PROCESSING_INSTRUCTION473_tree); + } + LPAREN474=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_PITest10276); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN474_tree = this.adaptor.create(LPAREN474); + this.adaptor.addChild(root_0, LPAREN474_tree); + } + // xquery/XQueryParser.g:1377:41: ( p_NCName | p_StringLiteral )? + var alt167=3; + var LA167_0 = this.input.LA(1); + + if ( ((LA167_0>=ANCESTOR && LA167_0<=SKIP)||(LA167_0>=VALUE && LA167_0<=QUOT_ER)||LA167_0==L_NCName||LA167_0==EXPLICITLY) ) { + alt167=1; + } + else if ( ((LA167_0>=APOS && LA167_0<=QUOT)) ) { + alt167=2; + } + switch (alt167) { + case 1 : + // xquery/XQueryParser.g:1377:42: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_PITest10279); + p_NCName475=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName475.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1377:53: p_StringLiteral + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_PITest10283); + p_StringLiteral476=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral476.getTree()); + + + break; + + } + + RPAREN477=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_PITest10287); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN477_tree = this.adaptor.create(RPAREN477); + this.adaptor.addChild(root_0, RPAREN477_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeTest_return: (function() { + XQueryParser.p_AttributeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1381:1: p_AttributeTest : ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN ; + // $ANTLR start "p_AttributeTest" + p_AttributeTest: function() { + var retval = new XQueryParser.p_AttributeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ATTRIBUTE478 = null; + var LPAREN479 = null; + var COMMA481 = null; + var RPAREN483 = null; + var p_AttribNameOrWildcard480 = null; + var p_TypeName482 = null; + + var ATTRIBUTE478_tree=null; + var LPAREN479_tree=null; + var COMMA481_tree=null; + var RPAREN483_tree=null; + + try { + // xquery/XQueryParser.g:1382:9: ( ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN ) + // xquery/XQueryParser.g:1382:11: ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN + root_0 = this.adaptor.nil(); + + ATTRIBUTE478=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_p_AttributeTest10313); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTRIBUTE478_tree = this.adaptor.create(ATTRIBUTE478); + this.adaptor.addChild(root_0, ATTRIBUTE478_tree); + } + LPAREN479=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AttributeTest10315); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN479_tree = this.adaptor.create(LPAREN479); + this.adaptor.addChild(root_0, LPAREN479_tree); + } + // xquery/XQueryParser.g:1382:28: ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? + var alt169=2; + var LA169_0 = this.input.LA(1); + + if ( ((LA169_0>=ANCESTOR && LA169_0<=SKIP)||(LA169_0>=VALUE && LA169_0<=QUOT_ER)||LA169_0==STAR||LA169_0==L_NCName||LA169_0==EXPLICITLY) ) { + alt169=1; + } + switch (alt169) { + case 1 : + // xquery/XQueryParser.g:1382:29: p_AttribNameOrWildcard ( COMMA p_TypeName )? + this.pushFollow(XQueryParser.FOLLOW_p_AttribNameOrWildcard_in_p_AttributeTest10318); + p_AttribNameOrWildcard480=this.p_AttribNameOrWildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttribNameOrWildcard480.getTree()); + // xquery/XQueryParser.g:1382:52: ( COMMA p_TypeName )? + var alt168=2; + var LA168_0 = this.input.LA(1); + + if ( (LA168_0==COMMA) ) { + alt168=1; + } + switch (alt168) { + case 1 : + // xquery/XQueryParser.g:1382:53: COMMA p_TypeName + COMMA481=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_AttributeTest10321); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA481_tree = this.adaptor.create(COMMA481); + this.adaptor.addChild(root_0, COMMA481_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_AttributeTest10323); + p_TypeName482=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName482.getTree()); + + + break; + + } + + + + break; + + } + + RPAREN483=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AttributeTest10329); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN483_tree = this.adaptor.create(RPAREN483); + this.adaptor.addChild(root_0, RPAREN483_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttribNameOrWildcard_return: (function() { + XQueryParser.p_AttribNameOrWildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttribNameOrWildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1386:1: p_AttribNameOrWildcard : ( p_AttributeName | STAR ); + // $ANTLR start "p_AttribNameOrWildcard" + p_AttribNameOrWildcard: function() { + var retval = new XQueryParser.p_AttribNameOrWildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR485 = null; + var p_AttributeName484 = null; + + var STAR485_tree=null; + + try { + // xquery/XQueryParser.g:1387:9: ( p_AttributeName | STAR ) + var alt170=2; + var LA170_0 = this.input.LA(1); + + if ( ((LA170_0>=ANCESTOR && LA170_0<=SKIP)||(LA170_0>=VALUE && LA170_0<=QUOT_ER)||LA170_0==L_NCName||LA170_0==EXPLICITLY) ) { + alt170=1; + } + else if ( (LA170_0==STAR) ) { + alt170=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 170, 0, this.input); + + throw nvae; + } + switch (alt170) { + case 1 : + // xquery/XQueryParser.g:1387:11: p_AttributeName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeName_in_p_AttribNameOrWildcard10357); + p_AttributeName484=this.p_AttributeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeName484.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1387:29: STAR + root_0 = this.adaptor.nil(); + + STAR485=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_AttribNameOrWildcard10361); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR485_tree = this.adaptor.create(STAR485); + this.adaptor.addChild(root_0, STAR485_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaAttributeTest_return: (function() { + XQueryParser.p_SchemaAttributeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaAttributeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1391:1: p_SchemaAttributeTest : SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN ; + // $ANTLR start "p_SchemaAttributeTest" + p_SchemaAttributeTest: function() { + var retval = new XQueryParser.p_SchemaAttributeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SCHEMA_ATTRIBUTE486 = null; + var LPAREN487 = null; + var RPAREN489 = null; + var p_AttributeDeclaration488 = null; + + var SCHEMA_ATTRIBUTE486_tree=null; + var LPAREN487_tree=null; + var RPAREN489_tree=null; + + try { + // xquery/XQueryParser.g:1392:9: ( SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN ) + // xquery/XQueryParser.g:1392:11: SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN + root_0 = this.adaptor.nil(); + + SCHEMA_ATTRIBUTE486=this.match(this.input,SCHEMA_ATTRIBUTE,XQueryParser.FOLLOW_SCHEMA_ATTRIBUTE_in_p_SchemaAttributeTest10387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SCHEMA_ATTRIBUTE486_tree = this.adaptor.create(SCHEMA_ATTRIBUTE486); + this.adaptor.addChild(root_0, SCHEMA_ATTRIBUTE486_tree); + } + LPAREN487=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SchemaAttributeTest10389); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN487_tree = this.adaptor.create(LPAREN487); + this.adaptor.addChild(root_0, LPAREN487_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_AttributeDeclaration_in_p_SchemaAttributeTest10391); + p_AttributeDeclaration488=this.p_AttributeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeDeclaration488.getTree()); + RPAREN489=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SchemaAttributeTest10393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN489_tree = this.adaptor.create(RPAREN489); + this.adaptor.addChild(root_0, RPAREN489_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeDeclaration_return: (function() { + XQueryParser.p_AttributeDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1396:1: p_AttributeDeclaration : p_AttributeName ; + // $ANTLR start "p_AttributeDeclaration" + p_AttributeDeclaration: function() { + var retval = new XQueryParser.p_AttributeDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_AttributeName490 = null; + + + try { + // xquery/XQueryParser.g:1397:9: ( p_AttributeName ) + // xquery/XQueryParser.g:1397:11: p_AttributeName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeName_in_p_AttributeDeclaration10419); + p_AttributeName490=this.p_AttributeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeName490.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementTest_return: (function() { + XQueryParser.p_ElementTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1401:1: p_ElementTest : ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN ; + // $ANTLR start "p_ElementTest" + p_ElementTest: function() { + var retval = new XQueryParser.p_ElementTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ELEMENT491 = null; + var LPAREN492 = null; + var COMMA494 = null; + var QUESTION496 = null; + var RPAREN497 = null; + var p_ElementNameOrWildcard493 = null; + var p_TypeName495 = null; + + var ELEMENT491_tree=null; + var LPAREN492_tree=null; + var COMMA494_tree=null; + var QUESTION496_tree=null; + var RPAREN497_tree=null; + + try { + // xquery/XQueryParser.g:1402:9: ( ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN ) + // xquery/XQueryParser.g:1402:11: ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN + root_0 = this.adaptor.nil(); + + ELEMENT491=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_p_ElementTest10445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ELEMENT491_tree = this.adaptor.create(ELEMENT491); + this.adaptor.addChild(root_0, ELEMENT491_tree); + } + LPAREN492=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ElementTest10447); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN492_tree = this.adaptor.create(LPAREN492); + this.adaptor.addChild(root_0, LPAREN492_tree); + } + // xquery/XQueryParser.g:1402:26: ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? + var alt173=2; + var LA173_0 = this.input.LA(1); + + if ( ((LA173_0>=ANCESTOR && LA173_0<=SKIP)||(LA173_0>=VALUE && LA173_0<=QUOT_ER)||LA173_0==STAR||LA173_0==L_NCName||LA173_0==EXPLICITLY) ) { + alt173=1; + } + switch (alt173) { + case 1 : + // xquery/XQueryParser.g:1402:27: p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? + this.pushFollow(XQueryParser.FOLLOW_p_ElementNameOrWildcard_in_p_ElementTest10450); + p_ElementNameOrWildcard493=this.p_ElementNameOrWildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementNameOrWildcard493.getTree()); + // xquery/XQueryParser.g:1402:51: ( COMMA p_TypeName ( QUESTION )? )? + var alt172=2; + var LA172_0 = this.input.LA(1); + + if ( (LA172_0==COMMA) ) { + alt172=1; + } + switch (alt172) { + case 1 : + // xquery/XQueryParser.g:1402:52: COMMA p_TypeName ( QUESTION )? + COMMA494=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ElementTest10453); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA494_tree = this.adaptor.create(COMMA494); + this.adaptor.addChild(root_0, COMMA494_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_ElementTest10455); + p_TypeName495=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName495.getTree()); + // xquery/XQueryParser.g:1402:69: ( QUESTION )? + var alt171=2; + var LA171_0 = this.input.LA(1); + + if ( (LA171_0==QUESTION) ) { + alt171=1; + } + switch (alt171) { + case 1 : + // xquery/XQueryParser.g:1402:69: QUESTION + QUESTION496=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_ElementTest10457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION496_tree = this.adaptor.create(QUESTION496); + this.adaptor.addChild(root_0, QUESTION496_tree); + } + + + break; + + } + + + + break; + + } + + + + break; + + } + + RPAREN497=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ElementTest10464); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN497_tree = this.adaptor.create(RPAREN497); + this.adaptor.addChild(root_0, RPAREN497_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementNameOrWildcard_return: (function() { + XQueryParser.p_ElementNameOrWildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementNameOrWildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1406:1: p_ElementNameOrWildcard : ( p_QName | STAR ); + // $ANTLR start "p_ElementNameOrWildcard" + p_ElementNameOrWildcard: function() { + var retval = new XQueryParser.p_ElementNameOrWildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR499 = null; + var p_QName498 = null; + + var STAR499_tree=null; + + try { + // xquery/XQueryParser.g:1407:9: ( p_QName | STAR ) + var alt174=2; + var LA174_0 = this.input.LA(1); + + if ( ((LA174_0>=ANCESTOR && LA174_0<=SKIP)||(LA174_0>=VALUE && LA174_0<=QUOT_ER)||LA174_0==L_NCName||LA174_0==EXPLICITLY) ) { + alt174=1; + } + else if ( (LA174_0==STAR) ) { + alt174=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 174, 0, this.input); + + throw nvae; + } + switch (alt174) { + case 1 : + // xquery/XQueryParser.g:1407:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ElementNameOrWildcard10490); + p_QName498=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName498.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1407:21: STAR + root_0 = this.adaptor.nil(); + + STAR499=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_ElementNameOrWildcard10494); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR499_tree = this.adaptor.create(STAR499); + this.adaptor.addChild(root_0, STAR499_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaElementTest_return: (function() { + XQueryParser.p_SchemaElementTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaElementTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1410:1: p_SchemaElementTest : SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN ; + // $ANTLR start "p_SchemaElementTest" + p_SchemaElementTest: function() { + var retval = new XQueryParser.p_SchemaElementTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SCHEMA_ELEMENT500 = null; + var LPAREN501 = null; + var RPAREN503 = null; + var p_ElementDeclaration502 = null; + + var SCHEMA_ELEMENT500_tree=null; + var LPAREN501_tree=null; + var RPAREN503_tree=null; + + try { + // xquery/XQueryParser.g:1411:9: ( SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN ) + // xquery/XQueryParser.g:1411:11: SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN + root_0 = this.adaptor.nil(); + + SCHEMA_ELEMENT500=this.match(this.input,SCHEMA_ELEMENT,XQueryParser.FOLLOW_SCHEMA_ELEMENT_in_p_SchemaElementTest10512); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SCHEMA_ELEMENT500_tree = this.adaptor.create(SCHEMA_ELEMENT500); + this.adaptor.addChild(root_0, SCHEMA_ELEMENT500_tree); + } + LPAREN501=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SchemaElementTest10514); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN501_tree = this.adaptor.create(LPAREN501); + this.adaptor.addChild(root_0, LPAREN501_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ElementDeclaration_in_p_SchemaElementTest10516); + p_ElementDeclaration502=this.p_ElementDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementDeclaration502.getTree()); + RPAREN503=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SchemaElementTest10518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN503_tree = this.adaptor.create(RPAREN503); + this.adaptor.addChild(root_0, RPAREN503_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementDeclaration_return: (function() { + XQueryParser.p_ElementDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1415:1: p_ElementDeclaration : p_ElementName ; + // $ANTLR start "p_ElementDeclaration" + p_ElementDeclaration: function() { + var retval = new XQueryParser.p_ElementDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ElementName504 = null; + + + try { + // xquery/XQueryParser.g:1416:9: ( p_ElementName ) + // xquery/XQueryParser.g:1416:11: p_ElementName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementName_in_p_ElementDeclaration10544); + p_ElementName504=this.p_ElementName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementName504.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeName_return: (function() { + XQueryParser.p_AttributeName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1420:1: p_AttributeName : p_QName ; + // $ANTLR start "p_AttributeName" + p_AttributeName: function() { + var retval = new XQueryParser.p_AttributeName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName505 = null; + + + try { + // xquery/XQueryParser.g:1421:9: ( p_QName ) + // xquery/XQueryParser.g:1421:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AttributeName10570); + p_QName505=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName505.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementName_return: (function() { + XQueryParser.p_ElementName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1425:1: p_ElementName : p_QName ; + // $ANTLR start "p_ElementName" + p_ElementName: function() { + var retval = new XQueryParser.p_ElementName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName506 = null; + + + try { + // xquery/XQueryParser.g:1426:9: ( p_QName ) + // xquery/XQueryParser.g:1426:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ElementName10596); + p_QName506=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName506.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeName_return: (function() { + XQueryParser.p_TypeName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1430:1: p_TypeName : p_QName ; + // $ANTLR start "p_TypeName" + p_TypeName: function() { + var retval = new XQueryParser.p_TypeName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName507 = null; + + + try { + // xquery/XQueryParser.g:1431:9: ( p_QName ) + // xquery/XQueryParser.g:1431:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_TypeName10622); + p_QName507=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName507.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FunctionTest_return: (function() { + XQueryParser.p_FunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1435:1: p_FunctionTest : ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) ; + // $ANTLR start "p_FunctionTest" + p_FunctionTest: function() { + var retval = new XQueryParser.p_FunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Annotation508 = null; + var p_AnyFunctionTest509 = null; + var p_TypedFunctionTest510 = null; + + + try { + // xquery/XQueryParser.g:1436:9: ( ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) ) + // xquery/XQueryParser.g:1436:11: ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1436:11: ( p_Annotation )* + loop175: + do { + var alt175=2; + var LA175_0 = this.input.LA(1); + + if ( (LA175_0==ANN_PERCENT) ) { + alt175=1; + } + + + switch (alt175) { + case 1 : + // xquery/XQueryParser.g:1436:11: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_p_FunctionTest10648); + p_Annotation508=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation508.getTree()); + + + break; + + default : + break loop175; + } + } while (true); + + // xquery/XQueryParser.g:1436:25: ( p_AnyFunctionTest | p_TypedFunctionTest ) + var alt176=2; + var LA176_0 = this.input.LA(1); + + if ( (LA176_0==FUNCTION) ) { + var LA176_1 = this.input.LA(2); + + if ( (LA176_1==LPAREN) ) { + var LA176_2 = this.input.LA(3); + + if ( (LA176_2==STAR) ) { + alt176=1; + } + else if ( ((LA176_2>=ANCESTOR && LA176_2<=SKIP)||(LA176_2>=VALUE && LA176_2<=QUOT_ER)||(LA176_2>=LPAREN && LA176_2<=RPAREN)||LA176_2==L_NCName||LA176_2==EXPLICITLY) ) { + alt176=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 2, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 0, this.input); + + throw nvae; + } + switch (alt176) { + case 1 : + // xquery/XQueryParser.g:1436:26: p_AnyFunctionTest + this.pushFollow(XQueryParser.FOLLOW_p_AnyFunctionTest_in_p_FunctionTest10652); + p_AnyFunctionTest509=this.p_AnyFunctionTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AnyFunctionTest509.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1436:46: p_TypedFunctionTest + this.pushFollow(XQueryParser.FOLLOW_p_TypedFunctionTest_in_p_FunctionTest10656); + p_TypedFunctionTest510=this.p_TypedFunctionTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypedFunctionTest510.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AnyFunctionTest_return: (function() { + XQueryParser.p_AnyFunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AnyFunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1440:1: p_AnyFunctionTest : FUNCTION LPAREN STAR RPAREN ; + // $ANTLR start "p_AnyFunctionTest" + p_AnyFunctionTest: function() { + var retval = new XQueryParser.p_AnyFunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var FUNCTION511 = null; + var LPAREN512 = null; + var STAR513 = null; + var RPAREN514 = null; + + var FUNCTION511_tree=null; + var LPAREN512_tree=null; + var STAR513_tree=null; + var RPAREN514_tree=null; + + try { + // xquery/XQueryParser.g:1441:9: ( FUNCTION LPAREN STAR RPAREN ) + // xquery/XQueryParser.g:1441:11: FUNCTION LPAREN STAR RPAREN + root_0 = this.adaptor.nil(); + + FUNCTION511=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_p_AnyFunctionTest10683); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FUNCTION511_tree = this.adaptor.create(FUNCTION511); + this.adaptor.addChild(root_0, FUNCTION511_tree); + } + LPAREN512=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AnyFunctionTest10685); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN512_tree = this.adaptor.create(LPAREN512); + this.adaptor.addChild(root_0, LPAREN512_tree); + } + STAR513=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_AnyFunctionTest10687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR513_tree = this.adaptor.create(STAR513); + this.adaptor.addChild(root_0, STAR513_tree); + } + RPAREN514=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AnyFunctionTest10689); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN514_tree = this.adaptor.create(RPAREN514); + this.adaptor.addChild(root_0, RPAREN514_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypedFunctionTest_return: (function() { + XQueryParser.p_TypedFunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypedFunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1445:1: p_TypedFunctionTest : FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType ; + // $ANTLR start "p_TypedFunctionTest" + p_TypedFunctionTest: function() { + var retval = new XQueryParser.p_TypedFunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var FUNCTION515 = null; + var LPAREN516 = null; + var COMMA518 = null; + var RPAREN520 = null; + var AS521 = null; + var p_SequenceType517 = null; + var p_SequenceType519 = null; + var p_SequenceType522 = null; + + var FUNCTION515_tree=null; + var LPAREN516_tree=null; + var COMMA518_tree=null; + var RPAREN520_tree=null; + var AS521_tree=null; + + try { + // xquery/XQueryParser.g:1446:9: ( FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType ) + // xquery/XQueryParser.g:1446:11: FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType + root_0 = this.adaptor.nil(); + + FUNCTION515=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_p_TypedFunctionTest10715); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FUNCTION515_tree = this.adaptor.create(FUNCTION515); + this.adaptor.addChild(root_0, FUNCTION515_tree); + } + LPAREN516=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypedFunctionTest10717); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN516_tree = this.adaptor.create(LPAREN516); + this.adaptor.addChild(root_0, LPAREN516_tree); + } + // xquery/XQueryParser.g:1446:27: ( p_SequenceType ( COMMA p_SequenceType )* )? + var alt178=2; + var LA178_0 = this.input.LA(1); + + if ( ((LA178_0>=ANCESTOR && LA178_0<=SKIP)||(LA178_0>=VALUE && LA178_0<=QUOT_ER)||LA178_0==LPAREN||LA178_0==L_NCName||LA178_0==EXPLICITLY) ) { + alt178=1; + } + switch (alt178) { + case 1 : + // xquery/XQueryParser.g:1446:28: p_SequenceType ( COMMA p_SequenceType )* + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10720); + p_SequenceType517=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType517.getTree()); + // xquery/XQueryParser.g:1446:43: ( COMMA p_SequenceType )* + loop177: + do { + var alt177=2; + var LA177_0 = this.input.LA(1); + + if ( (LA177_0==COMMA) ) { + alt177=1; + } + + + switch (alt177) { + case 1 : + // xquery/XQueryParser.g:1446:44: COMMA p_SequenceType + COMMA518=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_TypedFunctionTest10723); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA518_tree = this.adaptor.create(COMMA518); + this.adaptor.addChild(root_0, COMMA518_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10725); + p_SequenceType519=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType519.getTree()); + + + break; + + default : + break loop177; + } + } while (true); + + + + break; + + } + + RPAREN520=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypedFunctionTest10731); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN520_tree = this.adaptor.create(RPAREN520); + this.adaptor.addChild(root_0, RPAREN520_tree); + } + AS521=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TypedFunctionTest10733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + AS521_tree = this.adaptor.create(AS521); + this.adaptor.addChild(root_0, AS521_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10735); + p_SequenceType522=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType522.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParenthesizedItemType_return: (function() { + XQueryParser.p_ParenthesizedItemType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParenthesizedItemType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1450:1: p_ParenthesizedItemType : LPAREN p_ItemType RPAREN ; + // $ANTLR start "p_ParenthesizedItemType" + p_ParenthesizedItemType: function() { + var retval = new XQueryParser.p_ParenthesizedItemType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN523 = null; + var RPAREN525 = null; + var p_ItemType524 = null; + + var LPAREN523_tree=null; + var RPAREN525_tree=null; + + try { + // xquery/XQueryParser.g:1451:9: ( LPAREN p_ItemType RPAREN ) + // xquery/XQueryParser.g:1451:11: LPAREN p_ItemType RPAREN + root_0 = this.adaptor.nil(); + + LPAREN523=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ParenthesizedItemType10761); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN523_tree = this.adaptor.create(LPAREN523); + this.adaptor.addChild(root_0, LPAREN523_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_p_ParenthesizedItemType10763); + p_ItemType524=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ItemType524.getTree()); + RPAREN525=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ParenthesizedItemType10765); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN525_tree = this.adaptor.create(RPAREN525); + this.adaptor.addChild(root_0, RPAREN525_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StringLiteral_return: (function() { + XQueryParser.p_StringLiteral_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StringLiteral_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1480:1: p_StringLiteral : ( QUOT pg_QuotStringLiteralContent QUOT -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) | APOS pg_AposStringLiteralContent APOS -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) ); + // $ANTLR start "p_StringLiteral" + p_StringLiteral: function() { + var retval = new XQueryParser.p_StringLiteral_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUOT526 = null; + var QUOT528 = null; + var APOS529 = null; + var APOS531 = null; + var pg_QuotStringLiteralContent527 = null; + var pg_AposStringLiteralContent530 = null; + + var QUOT526_tree=null; + var QUOT528_tree=null; + var APOS529_tree=null; + var APOS531_tree=null; + var stream_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token APOS"); + var stream_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token QUOT"); + var stream_pg_QuotStringLiteralContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_QuotStringLiteralContent"); + var stream_pg_AposStringLiteralContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_AposStringLiteralContent"); + try { + // xquery/XQueryParser.g:1481:9: ( QUOT pg_QuotStringLiteralContent QUOT -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) | APOS pg_AposStringLiteralContent APOS -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) ) + var alt179=2; + var LA179_0 = this.input.LA(1); + + if ( (LA179_0==QUOT) ) { + alt179=1; + } + else if ( (LA179_0==APOS) ) { + alt179=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 179, 0, this.input); + + throw nvae; + } + switch (alt179) { + case 1 : + // xquery/XQueryParser.g:1481:11: QUOT pg_QuotStringLiteralContent QUOT + QUOT526=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_StringLiteral10816); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(QUOT526); + + if ( this.state.backtracking===0 ) { + this.pushStringLexer(false); + } + this.pushFollow(XQueryParser.FOLLOW_pg_QuotStringLiteralContent_in_p_StringLiteral10820); + pg_QuotStringLiteralContent527=this.pg_QuotStringLiteralContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_QuotStringLiteralContent.add(pg_QuotStringLiteralContent527.getTree()); + QUOT528=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_StringLiteral10822); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(QUOT528); + + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + // AST REWRITE + // elements: pg_QuotStringLiteralContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1482:17: -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) + { + // xquery/XQueryParser.g:1482:20: ^( StringLiteral ( pg_QuotStringLiteralContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(StringLiteral, "StringLiteral"), root_1); + + // xquery/XQueryParser.g:1482:36: ( pg_QuotStringLiteralContent )* + while ( stream_pg_QuotStringLiteralContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_pg_QuotStringLiteralContent.nextTree()); + + } + stream_pg_QuotStringLiteralContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1483:11: APOS pg_AposStringLiteralContent APOS + APOS529=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_StringLiteral10861); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(APOS529); + + if ( this.state.backtracking===0 ) { + this.pushStringLexer(true); + } + this.pushFollow(XQueryParser.FOLLOW_pg_AposStringLiteralContent_in_p_StringLiteral10865); + pg_AposStringLiteralContent530=this.pg_AposStringLiteralContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_AposStringLiteralContent.add(pg_AposStringLiteralContent530.getTree()); + APOS531=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_StringLiteral10867); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(APOS531); + + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + // AST REWRITE + // elements: pg_AposStringLiteralContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1484:17: -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) + { + // xquery/XQueryParser.g:1484:20: ^( StringLiteral ( pg_AposStringLiteralContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(StringLiteral, "StringLiteral"), root_1); + + // xquery/XQueryParser.g:1484:36: ( pg_AposStringLiteralContent )* + while ( stream_pg_AposStringLiteralContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_pg_AposStringLiteralContent.nextTree()); + + } + stream_pg_AposStringLiteralContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.addString(retval.start, retval.stop); + } + return retval; + }, + + // inline static return class + pg_QuotStringLiteralContent_return: (function() { + XQueryParser.pg_QuotStringLiteralContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_QuotStringLiteralContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1490:1: pg_QuotStringLiteralContent : ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* ; + // $ANTLR start "pg_QuotStringLiteralContent" + pg_QuotStringLiteralContent: function() { + var retval = new XQueryParser.pg_QuotStringLiteralContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set532 = null; + + var set532_tree=null; + + try { + // xquery/XQueryParser.g:1491:9: ( ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* ) + // xquery/XQueryParser.g:1491:11: ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1491:11: ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* + loop180: + do { + var alt180=2; + var LA180_0 = this.input.LA(1); + + if ( ((LA180_0>=L_QuotAttrContentChar && LA180_0<=HASH)||(LA180_0>=COMMA && LA180_0<=APOS)||(LA180_0>=NCNameStartChar && LA180_0<=EXPLICITLY)) ) { + alt180=1; + } + + + switch (alt180) { + case 1 : + // xquery/XQueryParser.g: + set532=this.input.LT(1); + if ( (this.input.LA(1)>=L_QuotAttrContentChar && this.input.LA(1)<=HASH)||(this.input.LA(1)>=COMMA && this.input.LA(1)<=APOS)||(this.input.LA(1)>=NCNameStartChar && this.input.LA(1)<=EXPLICITLY) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set532)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + break; + + default : + break loop180; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_AposStringLiteralContent_return: (function() { + XQueryParser.pg_AposStringLiteralContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_AposStringLiteralContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1498:1: pg_AposStringLiteralContent : ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* ; + // $ANTLR start "pg_AposStringLiteralContent" + pg_AposStringLiteralContent: function() { + var retval = new XQueryParser.pg_AposStringLiteralContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set533 = null; + + var set533_tree=null; + + try { + // xquery/XQueryParser.g:1499:9: ( ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* ) + // xquery/XQueryParser.g:1499:11: ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1499:11: ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* + loop181: + do { + var alt181=2; + var LA181_0 = this.input.LA(1); + + if ( ((LA181_0>=L_QuotAttrContentChar && LA181_0<=HASH)||(LA181_0>=COMMA && LA181_0<=CHARREF_HEX)||(LA181_0>=QUOT && LA181_0<=EXPLICITLY)) ) { + alt181=1; + } + + + switch (alt181) { + case 1 : + // xquery/XQueryParser.g: + set533=this.input.LT(1); + if ( (this.input.LA(1)>=L_QuotAttrContentChar && this.input.LA(1)<=HASH)||(this.input.LA(1)>=COMMA && this.input.LA(1)<=CHARREF_HEX)||(this.input.LA(1)>=QUOT && this.input.LA(1)<=EXPLICITLY) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set533)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + break; + + default : + break loop181; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementContentChar_return: (function() { + XQueryParser.p_ElementContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1513:1: p_ElementContentChar : L_ElementContentChar ; + // $ANTLR start "p_ElementContentChar" + p_ElementContentChar: function() { + var retval = new XQueryParser.p_ElementContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_ElementContentChar534 = null; + + var L_ElementContentChar534_tree=null; + + try { + // xquery/XQueryParser.g:1514:9: ( L_ElementContentChar ) + // xquery/XQueryParser.g:1514:11: L_ElementContentChar + root_0 = this.adaptor.nil(); + + L_ElementContentChar534=this.match(this.input,L_ElementContentChar,XQueryParser.FOLLOW_L_ElementContentChar_in_p_ElementContentChar11042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_ElementContentChar534_tree = this.adaptor.create(L_ElementContentChar534); + this.adaptor.addChild(root_0, L_ElementContentChar534_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuotAttrContentChar_return: (function() { + XQueryParser.p_QuotAttrContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuotAttrContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1518:1: p_QuotAttrContentChar : L_QuotAttrContentChar -> ^( AttributeValueChar L_QuotAttrContentChar ) ; + // $ANTLR start "p_QuotAttrContentChar" + p_QuotAttrContentChar: function() { + var retval = new XQueryParser.p_QuotAttrContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_QuotAttrContentChar535 = null; + + var L_QuotAttrContentChar535_tree=null; + var stream_L_QuotAttrContentChar=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token L_QuotAttrContentChar"); + + try { + // xquery/XQueryParser.g:1519:9: ( L_QuotAttrContentChar -> ^( AttributeValueChar L_QuotAttrContentChar ) ) + // xquery/XQueryParser.g:1519:11: L_QuotAttrContentChar + L_QuotAttrContentChar535=this.match(this.input,L_QuotAttrContentChar,XQueryParser.FOLLOW_L_QuotAttrContentChar_in_p_QuotAttrContentChar11068); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_L_QuotAttrContentChar.add(L_QuotAttrContentChar535); + + + + // AST REWRITE + // elements: L_QuotAttrContentChar + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1520:17: -> ^( AttributeValueChar L_QuotAttrContentChar ) + { + // xquery/XQueryParser.g:1520:20: ^( AttributeValueChar L_QuotAttrContentChar ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AttributeValueChar, "AttributeValueChar"), root_1); + + this.adaptor.addChild(root_1, stream_L_QuotAttrContentChar.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AposAttrContentChar_return: (function() { + XQueryParser.p_AposAttrContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AposAttrContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1524:1: p_AposAttrContentChar : L_AposAttrContentChar -> ^( AttributeValueChar L_AposAttrContentChar ) ; + // $ANTLR start "p_AposAttrContentChar" + p_AposAttrContentChar: function() { + var retval = new XQueryParser.p_AposAttrContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_AposAttrContentChar536 = null; + + var L_AposAttrContentChar536_tree=null; + var stream_L_AposAttrContentChar=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token L_AposAttrContentChar"); + + try { + // xquery/XQueryParser.g:1525:9: ( L_AposAttrContentChar -> ^( AttributeValueChar L_AposAttrContentChar ) ) + // xquery/XQueryParser.g:1525:11: L_AposAttrContentChar + L_AposAttrContentChar536=this.match(this.input,L_AposAttrContentChar,XQueryParser.FOLLOW_L_AposAttrContentChar_in_p_AposAttrContentChar11118); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_L_AposAttrContentChar.add(L_AposAttrContentChar536); + + + + // AST REWRITE + // elements: L_AposAttrContentChar + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1526:17: -> ^( AttributeValueChar L_AposAttrContentChar ) + { + // xquery/XQueryParser.g:1526:20: ^( AttributeValueChar L_AposAttrContentChar ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AttributeValueChar, "AttributeValueChar"), root_1); + + this.adaptor.addChild(root_1, stream_L_AposAttrContentChar.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QName_return: (function() { + XQueryParser.p_QName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1544:1: p_QName : ( pg_QName | p_NCName -> ^( QName p_NCName ) ); + // $ANTLR start "p_QName" + p_QName: function() { + var retval = new XQueryParser.p_QName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pg_QName537 = null; + var p_NCName538 = null; + + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + this.setWsExplicit(true); + try { + // xquery/XQueryParser.g:1546:9: ( pg_QName | p_NCName -> ^( QName p_NCName ) ) + var alt182=2; + var LA182_0 = this.input.LA(1); + + if ( ((LA182_0>=ANCESTOR && LA182_0<=SKIP)||(LA182_0>=VALUE && LA182_0<=QUOT_ER)||LA182_0==L_NCName||LA182_0==EXPLICITLY) ) { + var LA182_1 = this.input.LA(2); + + if ( (LA182_1==COLON) ) { + alt182=1; + } + else if ( (LA182_1==EOF||(LA182_1>=AND && LA182_1<=AT)||(LA182_1>=BY && LA182_1<=CASTABLE)||LA182_1==COLLATION||LA182_1==DEFAULT||(LA182_1>=DESCENDING && LA182_1<=DIV)||LA182_1==EMPTY||LA182_1==EQ||(LA182_1>=EXCEPT && LA182_1<=EXTERNAL)||(LA182_1>=FOR && LA182_1<=GE)||(LA182_1>=GT && LA182_1<=IDIV)||LA182_1==IN||(LA182_1>=INSTANCE && LA182_1<=IS)||LA182_1==LE||(LA182_1>=LET && LA182_1<=MOD)||LA182_1==NE||LA182_1==NODE||(LA182_1>=OR && LA182_1<=ORDER)||(LA182_1>=RETURN && LA182_1<=SATISFIES)||LA182_1==STABLE||(LA182_1>=TO && LA182_1<=TREAT)||LA182_1==UNION||LA182_1==VARIABLE||LA182_1==WHERE||LA182_1==ALLOWING||LA182_1==COUNT||(LA182_1>=DECIMAL_SEPARATOR && LA182_1<=MINUS_SIGN)||(LA182_1>=NAN && LA182_1<=PREVIOUS)||LA182_1==START||LA182_1==WHEN||(LA182_1>=ZERO_DIGIT && LA182_1<=BEFORE)||LA182_1==INTO||LA182_1==MODIFY||LA182_1==UPDATING||LA182_1==WITH||LA182_1==CONTAINS||LA182_1==PARAGRAPHS||LA182_1==SCORE||LA182_1==SENTENCES||LA182_1==TIMES||LA182_1==WORDS||(LA182_1>=CHECK && LA182_1<=COLLECTION)||(LA182_1>=FOREACH && LA182_1<=ON)||(LA182_1>=CONCAT && LA182_1<=ANN_PERCENT)||(LA182_1>=COMMA && LA182_1<=SLASH_SLASH)||LA182_1==EMPTY_CLOSE_TAG||(LA182_1>=SEMICOLON && LA182_1<=VBAR)||(LA182_1>=APOS && LA182_1<=QUOT)||LA182_1==S) ) { + alt182=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 182, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 182, 0, this.input); + + throw nvae; + } + switch (alt182) { + case 1 : + // xquery/XQueryParser.g:1546:11: pg_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_QName_in_p_QName11204); + pg_QName537=this.pg_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_QName537.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1547:11: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_QName11216); + p_NCName538=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(p_NCName538.getTree()); + + + // AST REWRITE + // elements: p_NCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1548:17: -> ^( QName p_NCName ) + { + // xquery/XQueryParser.g:1548:20: ^( QName p_NCName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_p_NCName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.setWsExplicit(false); + } + return retval; + }, + + // inline static return class + pg_FQName_return: (function() { + XQueryParser.pg_FQName_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_FQName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1552:1: pg_FQName : ( pg_QName | p_FNCName -> ^( QName p_FNCName ) ); + // $ANTLR start "pg_FQName" + pg_FQName: function() { + var retval = new XQueryParser.pg_FQName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pg_QName539 = null; + var p_FNCName540 = null; + + var stream_p_FNCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_FNCName"); + try { + // xquery/XQueryParser.g:1553:9: ( pg_QName | p_FNCName -> ^( QName p_FNCName ) ) + var alt183=2; + switch ( this.input.LA(1) ) { + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case ELSE: + case EMPTY: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case RETURN: + case SATISFIES: + case SCHEMA: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case THEN: + case TO: + case TREAT: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case L_NCName: + case EXPLICITLY: + var LA183_1 = this.input.LA(2); + + if ( (LA183_1==COLON) ) { + alt183=1; + } + else if ( (LA183_1==LPAREN) ) { + alt183=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 183, 1, this.input); + + throw nvae; + } + break; + case ATTRIBUTE: + case COMMENT: + case DOCUMENT_NODE: + case ELEMENT: + case EMPTY_SEQUENCE: + case IF: + case ITEM: + case NODE: + case PROCESSING_INSTRUCTION: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case TEXT: + case TYPESWITCH: + case NAMESPACE_NODE: + case SWITCH: + case WHILE: + alt183=1; + break; + case UPDATING: + alt183=2; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 183, 0, this.input); + + throw nvae; + } + + switch (alt183) { + case 1 : + // xquery/XQueryParser.g:1553:11: pg_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_QName_in_pg_FQName11277); + pg_QName539=this.pg_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_QName539.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1554:11: p_FNCName + this.pushFollow(XQueryParser.FOLLOW_p_FNCName_in_pg_FQName11289); + p_FNCName540=this.p_FNCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_FNCName.add(p_FNCName540.getTree()); + + + // AST REWRITE + // elements: p_FNCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1555:17: -> ^( QName p_FNCName ) + { + // xquery/XQueryParser.g:1555:20: ^( QName p_FNCName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_p_FNCName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_QName_return: (function() { + XQueryParser.pg_QName_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_QName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1557:1: pg_QName : nn= p_NCName COLON nl= p_NCName -> ^( QName $nn $nl) ; + // $ANTLR start "pg_QName" + pg_QName: function() { + var retval = new XQueryParser.pg_QName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COLON541 = null; + var nn = null; + var nl = null; + + var COLON541_tree=null; + var stream_COLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COLON"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + try { + // xquery/XQueryParser.g:1558:9: (nn= p_NCName COLON nl= p_NCName -> ^( QName $nn $nl) ) + // xquery/XQueryParser.g:1558:11: nn= p_NCName COLON nl= p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pg_QName11333); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + COLON541=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_pg_QName11335); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COLON.add(COLON541); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pg_QName11339); + nl=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nl.getTree()); + + + // AST REWRITE + // elements: nn, nl + // token labels: + // rule labels: retval, nn, nl + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_nl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nl",nl!=null?nl.tree:null); + + root_0 = this.adaptor.nil(); + // 1559:17: -> ^( QName $nn $nl) + { + // xquery/XQueryParser.g:1559:20: ^( QName $nn $nl) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + this.adaptor.addChild(root_1, stream_nl.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NCName_return: (function() { + XQueryParser.p_NCName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NCName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1589:1: p_NCName : ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | SWITCH | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ); + // $ANTLR start "p_NCName" + p_NCName: function() { + var retval = new XQueryParser.p_NCName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set542 = null; + + var set542_tree=null; + + try { + // xquery/XQueryParser.g:1590:9: ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | SWITCH | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set542=this.input.LT(1); + if ( (this.input.LA(1)>=ANCESTOR && this.input.LA(1)<=SKIP)||(this.input.LA(1)>=VALUE && this.input.LA(1)<=QUOT_ER)||this.input.LA(1)==L_NCName||this.input.LA(1)==EXPLICITLY ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set542)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FNCName_return: (function() { + XQueryParser.p_FNCName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FNCName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1608:1: p_FNCName : ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | ELSE | EMPTY | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | RETURN | SATISFIES | SCHEMA | SELF | SOME | STABLE | STRICT | STRIP | THEN | TO | TREAT | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ); + // $ANTLR start "p_FNCName" + p_FNCName: function() { + var retval = new XQueryParser.p_FNCName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set543 = null; + + var set543_tree=null; + + try { + // xquery/XQueryParser.g:1609:9: ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | ELSE | EMPTY | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | RETURN | SATISFIES | SCHEMA | SELF | SOME | STABLE | STRICT | STRIP | THEN | TO | TREAT | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set543=this.input.LT(1); + if ( (this.input.LA(1)>=ANCESTOR && this.input.LA(1)<=AT)||(this.input.LA(1)>=BASE_URI && this.input.LA(1)<=COLLATION)||(this.input.LA(1)>=CONSTRUCTION && this.input.LA(1)<=DOCUMENT)||(this.input.LA(1)>=ELSE && this.input.LA(1)<=EMPTY)||(this.input.LA(1)>=ENCODING && this.input.LA(1)<=IDIV)||(this.input.LA(1)>=IMPORT && this.input.LA(1)<=IS)||(this.input.LA(1)>=LAX && this.input.LA(1)<=NO_PRESERVE)||(this.input.LA(1)>=OF && this.input.LA(1)<=PRESERVE)||(this.input.LA(1)>=RETURN && this.input.LA(1)<=SCHEMA)||(this.input.LA(1)>=SELF && this.input.LA(1)<=STRIP)||(this.input.LA(1)>=THEN && this.input.LA(1)<=TREAT)||(this.input.LA(1)>=UNION && this.input.LA(1)<=MINUS_SIGN)||(this.input.LA(1)>=NAN && this.input.LA(1)<=START)||(this.input.LA(1)>=TRY && this.input.LA(1)<=RETURNING)||(this.input.LA(1)>=CHECK && this.input.LA(1)<=QUOT_ER)||this.input.LA(1)==L_NCName||this.input.LA(1)==EXPLICITLY ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set543)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_UpdateExpr_return: (function() { + XQueryParser.pg_UpdateExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_UpdateExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1646:1: pg_UpdateExpr : ( p_InsertExpr | p_DeleteExpr | p_RenameExpr | p_ReplaceExpr | p_TransformExpr ); + // $ANTLR start "pg_UpdateExpr" + pg_UpdateExpr: function() { + var retval = new XQueryParser.pg_UpdateExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InsertExpr544 = null; + var p_DeleteExpr545 = null; + var p_RenameExpr546 = null; + var p_ReplaceExpr547 = null; + var p_TransformExpr548 = null; + + + try { + // xquery/XQueryParser.g:1647:9: ( p_InsertExpr | p_DeleteExpr | p_RenameExpr | p_ReplaceExpr | p_TransformExpr ) + var alt184=5; + switch ( this.input.LA(1) ) { + case INSERT: + alt184=1; + break; + case DELETE: + alt184=2; + break; + case RENAME: + alt184=3; + break; + case REPLACE: + alt184=4; + break; + case COPY: + alt184=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 184, 0, this.input); + + throw nvae; + } + + switch (alt184) { + case 1 : + // xquery/XQueryParser.g:1647:11: p_InsertExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InsertExpr_in_pg_UpdateExpr13330); + p_InsertExpr544=this.p_InsertExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InsertExpr544.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1648:11: p_DeleteExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DeleteExpr_in_pg_UpdateExpr13342); + p_DeleteExpr545=this.p_DeleteExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DeleteExpr545.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1649:11: p_RenameExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RenameExpr_in_pg_UpdateExpr13354); + p_RenameExpr546=this.p_RenameExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RenameExpr546.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1650:11: p_ReplaceExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ReplaceExpr_in_pg_UpdateExpr13366); + p_ReplaceExpr547=this.p_ReplaceExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReplaceExpr547.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1651:11: p_TransformExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TransformExpr_in_pg_UpdateExpr13378); + p_TransformExpr548=this.p_TransformExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TransformExpr548.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_RevalidationDecl_return: (function() { + XQueryParser.pm_RevalidationDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_RevalidationDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1655:1: pm_RevalidationDecl : k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON ; + // $ANTLR start "pm_RevalidationDecl" + pm_RevalidationDecl: function() { + var retval = new XQueryParser.pm_RevalidationDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON549 = null; + var k = null; + var list_k=null; + + var SEMICOLON549_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1656:9: (k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON ) + // xquery/XQueryParser.g:1656:11: k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_RevalidationDecl13406); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,REVALIDATION,XQueryParser.FOLLOW_REVALIDATION_in_pm_RevalidationDecl13410); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1656:38: (k+= STRICT | k+= LAX | k+= SKIP ) + var alt185=3; + switch ( this.input.LA(1) ) { + case STRICT: + alt185=1; + break; + case LAX: + alt185=2; + break; + case SKIP: + alt185=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 185, 0, this.input); + + throw nvae; + } + + switch (alt185) { + case 1 : + // xquery/XQueryParser.g:1656:39: k+= STRICT + k=this.match(this.input,STRICT,XQueryParser.FOLLOW_STRICT_in_pm_RevalidationDecl13415); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1656:51: k+= LAX + k=this.match(this.input,LAX,XQueryParser.FOLLOW_LAX_in_pm_RevalidationDecl13421); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 3 : + // xquery/XQueryParser.g:1656:60: k+= SKIP + k=this.match(this.input,SKIP,XQueryParser.FOLLOW_SKIP_in_pm_RevalidationDecl13427); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + SEMICOLON549=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_RevalidationDecl13432); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON549_tree = this.adaptor.create(SEMICOLON549); + this.adaptor.addChild(root_0, SEMICOLON549_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InsertExprTargetChoice_return: (function() { + XQueryParser.p_InsertExprTargetChoice_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InsertExprTargetChoice_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1660:1: p_InsertExprTargetChoice : ( ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) | ka= AFTER | kb= BEFORE ); + // $ANTLR start "p_InsertExprTargetChoice" + p_InsertExprTargetChoice: function() { + var retval = new XQueryParser.p_InsertExprTargetChoice_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var kb = null; + var k = null; + var list_k=null; + + var ka_tree=null; + var kb_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1661:9: ( ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) | ka= AFTER | kb= BEFORE ) + var alt188=3; + switch ( this.input.LA(1) ) { + case AS: + case INTO: + alt188=1; + break; + case AFTER: + alt188=2; + break; + case BEFORE: + alt188=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 188, 0, this.input); + + throw nvae; + } + + switch (alt188) { + case 1 : + // xquery/XQueryParser.g:1661:11: ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1661:11: ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) + // xquery/XQueryParser.g:1661:12: (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO + // xquery/XQueryParser.g:1661:12: (k+= AS (k+= FIRST | k+= LAST ) )? + var alt187=2; + var LA187_0 = this.input.LA(1); + + if ( (LA187_0==AS) ) { + alt187=1; + } + switch (alt187) { + case 1 : + // xquery/XQueryParser.g:1661:13: k+= AS (k+= FIRST | k+= LAST ) + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_InsertExprTargetChoice13462); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1661:19: (k+= FIRST | k+= LAST ) + var alt186=2; + var LA186_0 = this.input.LA(1); + + if ( (LA186_0==FIRST) ) { + alt186=1; + } + else if ( (LA186_0==LAST) ) { + alt186=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 186, 0, this.input); + + throw nvae; + } + switch (alt186) { + case 1 : + // xquery/XQueryParser.g:1661:20: k+= FIRST + k=this.match(this.input,FIRST,XQueryParser.FOLLOW_FIRST_in_p_InsertExprTargetChoice13467); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1661:31: k+= LAST + k=this.match(this.input,LAST,XQueryParser.FOLLOW_LAST_in_p_InsertExprTargetChoice13473); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + break; + + } + + k=this.match(this.input,INTO,XQueryParser.FOLLOW_INTO_in_p_InsertExprTargetChoice13480); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1662:11: ka= AFTER + root_0 = this.adaptor.nil(); + + ka=this.match(this.input,AFTER,XQueryParser.FOLLOW_AFTER_in_p_InsertExprTargetChoice13497); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1663:11: kb= BEFORE + root_0 = this.adaptor.nil(); + + kb=this.match(this.input,BEFORE,XQueryParser.FOLLOW_BEFORE_in_p_InsertExprTargetChoice13513); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kb_tree = this.adaptor.create(kb); + this.adaptor.addChild(root_0, kb_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kb); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InsertExpr_return: (function() { + XQueryParser.p_InsertExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InsertExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1667:1: p_InsertExpr : k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr ; + // $ANTLR start "p_InsertExpr" + p_InsertExpr: function() { + var retval = new XQueryParser.p_InsertExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_SourceExpr550 = null; + var p_InsertExprTargetChoice551 = null; + var p_TargetExpr552 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1668:9: (k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr ) + // xquery/XQueryParser.g:1668:11: k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INSERT,XQueryParser.FOLLOW_INSERT_in_p_InsertExpr13543); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1668:21: (k+= NODE | k+= NODES ) + var alt189=2; + var LA189_0 = this.input.LA(1); + + if ( (LA189_0==NODE) ) { + alt189=1; + } + else if ( (LA189_0==NODES) ) { + alt189=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 189, 0, this.input); + + throw nvae; + } + switch (alt189) { + case 1 : + // xquery/XQueryParser.g:1668:22: k+= NODE + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_InsertExpr13548); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1668:32: k+= NODES + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_InsertExpr13554); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SourceExpr_in_p_InsertExpr13557); + p_SourceExpr550=this.p_SourceExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SourceExpr550.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_InsertExprTargetChoice_in_p_InsertExpr13559); + p_InsertExprTargetChoice551=this.p_InsertExprTargetChoice(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InsertExprTargetChoice551.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_InsertExpr13561); + p_TargetExpr552=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr552.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DeleteExpr_return: (function() { + XQueryParser.p_DeleteExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DeleteExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1672:1: p_DeleteExpr : k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr ; + // $ANTLR start "p_DeleteExpr" + p_DeleteExpr: function() { + var retval = new XQueryParser.p_DeleteExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_TargetExpr553 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1673:9: (k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr ) + // xquery/XQueryParser.g:1673:11: k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DELETE,XQueryParser.FOLLOW_DELETE_in_p_DeleteExpr13591); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1673:21: (k+= NODE | k+= NODES ) + var alt190=2; + var LA190_0 = this.input.LA(1); + + if ( (LA190_0==NODE) ) { + alt190=1; + } + else if ( (LA190_0==NODES) ) { + alt190=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 190, 0, this.input); + + throw nvae; + } + switch (alt190) { + case 1 : + // xquery/XQueryParser.g:1673:22: k+= NODE + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_DeleteExpr13596); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1673:32: k+= NODES + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_DeleteExpr13602); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_DeleteExpr13605); + p_TargetExpr553=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr553.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReplaceExpr_return: (function() { + XQueryParser.p_ReplaceExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReplaceExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1677:1: p_ReplaceExpr : k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] ; + // $ANTLR start "p_ReplaceExpr" + p_ReplaceExpr: function() { + var retval = new XQueryParser.p_ReplaceExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_ExprSingle554 = null; + var p_ExprSingle555 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1678:9: (k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] ) + // xquery/XQueryParser.g:1678:11: k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,REPLACE,XQueryParser.FOLLOW_REPLACE_in_p_ReplaceExpr13635); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1678:22: (k+= VALUE k+= OF )? + var alt191=2; + var LA191_0 = this.input.LA(1); + + if ( (LA191_0==VALUE) ) { + alt191=1; + } + switch (alt191) { + case 1 : + // xquery/XQueryParser.g:1678:23: k+= VALUE k+= OF + k=this.match(this.input,VALUE,XQueryParser.FOLLOW_VALUE_in_p_ReplaceExpr13640); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,OF,XQueryParser.FOLLOW_OF_in_p_ReplaceExpr13644); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ReplaceExpr13650); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ReplaceExpr13652); + p_ExprSingle554=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle554.getTree()); + k=this.match(this.input,WITH,XQueryParser.FOLLOW_WITH_in_p_ReplaceExpr13657); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ReplaceExpr13659); + p_ExprSingle555=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle555.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RenameExpr_return: (function() { + XQueryParser.p_RenameExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RenameExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1682:1: p_RenameExpr : k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr ; + // $ANTLR start "p_RenameExpr" + p_RenameExpr: function() { + var retval = new XQueryParser.p_RenameExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_TargetExpr556 = null; + var p_NewNameExpr557 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1683:9: (k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr ) + // xquery/XQueryParser.g:1683:11: k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RENAME,XQueryParser.FOLLOW_RENAME_in_p_RenameExpr13690); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_RenameExpr13694); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_RenameExpr13696); + p_TargetExpr556=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr556.getTree()); + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_RenameExpr13700); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_NewNameExpr_in_p_RenameExpr13702); + p_NewNameExpr557=this.p_NewNameExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NewNameExpr557.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SourceExpr_return: (function() { + XQueryParser.p_SourceExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SourceExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1687:1: p_SourceExpr : p_ExprSingle[true] ; + // $ANTLR start "p_SourceExpr" + p_SourceExpr: function() { + var retval = new XQueryParser.p_SourceExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle558 = null; + + + try { + // xquery/XQueryParser.g:1688:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1688:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SourceExpr13730); + p_ExprSingle558=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle558.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TargetExpr_return: (function() { + XQueryParser.p_TargetExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TargetExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1692:1: p_TargetExpr : p_ExprSingle[true] ; + // $ANTLR start "p_TargetExpr" + p_TargetExpr: function() { + var retval = new XQueryParser.p_TargetExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle559 = null; + + + try { + // xquery/XQueryParser.g:1693:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1693:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TargetExpr13757); + p_ExprSingle559=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle559.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NewNameExpr_return: (function() { + XQueryParser.p_NewNameExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NewNameExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1697:1: p_NewNameExpr : p_ExprSingle[true] ; + // $ANTLR start "p_NewNameExpr" + p_NewNameExpr: function() { + var retval = new XQueryParser.p_NewNameExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle560 = null; + + + try { + // xquery/XQueryParser.g:1698:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1698:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_NewNameExpr13784); + p_ExprSingle560=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle560.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TransformExpr_return: (function() { + XQueryParser.p_TransformExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TransformExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1702:1: p_TransformExpr : k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] ; + // $ANTLR start "p_TransformExpr" + p_TransformExpr: function() { + var retval = new XQueryParser.p_TransformExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var e = null; + var BIND561 = null; + var COMMA563 = null; + var BIND564 = null; + var k = null; + var list_k=null; + var v = null; + var w = null; + var p_ExprSingle562 = null; + var p_ExprSingle565 = null; + var p_ExprSingle566 = null; + var p_ExprSingle567 = null; + + var d_tree=null; + var e_tree=null; + var BIND561_tree=null; + var COMMA563_tree=null; + var BIND564_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1703:9: (k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] ) + // xquery/XQueryParser.g:1703:11: k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COPY,XQueryParser.FOLLOW_COPY_in_p_TransformExpr13813); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TransformExpr13817); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TransformExpr13821); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + BIND561=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_TransformExpr13825); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND561_tree = this.adaptor.create(BIND561); + this.adaptor.addChild(root_0, BIND561_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13827); + p_ExprSingle562=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle562.getTree()); + // xquery/XQueryParser.g:1703:90: ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* + loop192: + do { + var alt192=2; + var LA192_0 = this.input.LA(1); + + if ( (LA192_0==COMMA) ) { + alt192=1; + } + + + switch (alt192) { + case 1 : + // xquery/XQueryParser.g:1703:91: COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] + COMMA563=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_TransformExpr13831); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA563_tree = this.adaptor.create(COMMA563); + this.adaptor.addChild(root_0, COMMA563_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TransformExpr13835); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TransformExpr13839); + w=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + BIND564=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_TransformExpr13843); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND564_tree = this.adaptor.create(BIND564); + this.adaptor.addChild(root_0, BIND564_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13845); + p_ExprSingle565=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle565.getTree()); + + + break; + + default : + break loop192; + } + } while (true); + + k=this.match(this.input,MODIFY,XQueryParser.FOLLOW_MODIFY_in_p_TransformExpr13852); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13854); + p_ExprSingle566=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle566.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TransformExpr13859); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13861); + p_ExprSingle567=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle567.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FTOptionDecl_return: (function() { + XQueryParser.pm_FTOptionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FTOptionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1713:1: pm_FTOptionDecl : k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON ; + // $ANTLR start "pm_FTOptionDecl" + pm_FTOptionDecl: function() { + var retval = new XQueryParser.pm_FTOptionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON569 = null; + var k = null; + var list_k=null; + var p_FTMatchOptions568 = null; + + var SEMICOLON569_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1714:9: (k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON ) + // xquery/XQueryParser.g:1714:11: k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_FTOptionDecl13899); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,FT_OPTION,XQueryParser.FOLLOW_FT_OPTION_in_pm_FTOptionDecl13903); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOptions_in_pm_FTOptionDecl13905); + p_FTMatchOptions568=this.p_FTMatchOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOptions568.getTree()); + SEMICOLON569=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_FTOptionDecl13907); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON569_tree = this.adaptor.create(SEMICOLON569); + this.adaptor.addChild(root_0, SEMICOLON569_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTScoreVar_return: (function() { + XQueryParser.p_FTScoreVar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTScoreVar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1718:1: p_FTScoreVar : ks= SCORE d= DOLLAR v= p_VarName ; + // $ANTLR start "p_FTScoreVar" + p_FTScoreVar: function() { + var retval = new XQueryParser.p_FTScoreVar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ks = null; + var d = null; + var v = null; + + var ks_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:1719:9: (ks= SCORE d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:1719:11: ks= SCORE d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + ks=this.match(this.input,SCORE,XQueryParser.FOLLOW_SCORE_in_p_FTScoreVar13937); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ks_tree = this.adaptor.create(ks); + this.adaptor.addChild(root_0, ks_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ks); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_FTScoreVar13943); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_FTScoreVar13947); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTContainsExpr_return: (function() { + XQueryParser.p_FTContainsExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTContainsExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1723:1: p_FTContainsExpr : p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? ; + // $ANTLR start "p_FTContainsExpr" + p_FTContainsExpr: function() { + var retval = new XQueryParser.p_FTContainsExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringConcatExpr570 = null; + var p_FTSelection571 = null; + var p_FTIgnoreOption572 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1724:9: ( p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? ) + // xquery/XQueryParser.g:1724:11: p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringConcatExpr_in_p_FTContainsExpr13975); + p_StringConcatExpr570=this.p_StringConcatExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringConcatExpr570.getTree()); + // xquery/XQueryParser.g:1724:30: (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? + var alt194=2; + var LA194_0 = this.input.LA(1); + + if ( (LA194_0==CONTAINS) ) { + alt194=1; + } + switch (alt194) { + case 1 : + // xquery/XQueryParser.g:1724:32: k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? + k=this.match(this.input,CONTAINS,XQueryParser.FOLLOW_CONTAINS_in_p_FTContainsExpr13981); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_FTContainsExpr13985); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTContainsExpr13989); + p_FTSelection571=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection571.getTree()); + // xquery/XQueryParser.g:1724:81: ( p_FTIgnoreOption )? + var alt193=2; + var LA193_0 = this.input.LA(1); + + if ( (LA193_0==WITHOUT) ) { + alt193=1; + } + switch (alt193) { + case 1 : + // xquery/XQueryParser.g:1724:81: p_FTIgnoreOption + this.pushFollow(XQueryParser.FOLLOW_p_FTIgnoreOption_in_p_FTContainsExpr13991); + p_FTIgnoreOption572=this.p_FTIgnoreOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTIgnoreOption572.getTree()); + + + break; + + } + + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTSelection_return: (function() { + XQueryParser.p_FTSelection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTSelection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1728:1: p_FTSelection : p_FTOr ( p_FTPosFilter )* ; + // $ANTLR start "p_FTSelection" + p_FTSelection: function() { + var retval = new XQueryParser.p_FTSelection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTOr573 = null; + var p_FTPosFilter574 = null; + + + try { + // xquery/XQueryParser.g:1729:9: ( p_FTOr ( p_FTPosFilter )* ) + // xquery/XQueryParser.g:1729:11: p_FTOr ( p_FTPosFilter )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTOr_in_p_FTSelection14021); + p_FTOr573=this.p_FTOr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTOr573.getTree()); + // xquery/XQueryParser.g:1729:18: ( p_FTPosFilter )* + loop195: + do { + var alt195=2; + var LA195_0 = this.input.LA(1); + + if ( (LA195_0==AT||LA195_0==ORDERED||LA195_0==WINDOW||(LA195_0>=DIFFERENT && LA195_0<=ENTIRE)||LA195_0==SAME) ) { + alt195=1; + } + + + switch (alt195) { + case 1 : + // xquery/XQueryParser.g:1729:18: p_FTPosFilter + this.pushFollow(XQueryParser.FOLLOW_p_FTPosFilter_in_p_FTSelection14023); + p_FTPosFilter574=this.p_FTPosFilter(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPosFilter574.getTree()); + + + break; + + default : + break loop195; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWeight_return: (function() { + XQueryParser.p_FTWeight_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWeight_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1733:1: p_FTWeight : kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_FTWeight" + p_FTWeight: function() { + var retval = new XQueryParser.p_FTWeight_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kw = null; + var LBRACKET575 = null; + var RBRACKET577 = null; + var p_Expr576 = null; + + var kw_tree=null; + var LBRACKET575_tree=null; + var RBRACKET577_tree=null; + + try { + // xquery/XQueryParser.g:1734:9: (kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1734:11: kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + kw=this.match(this.input,WEIGHT,XQueryParser.FOLLOW_WEIGHT_in_p_FTWeight14052); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kw_tree = this.adaptor.create(kw); + this.adaptor.addChild(root_0, kw_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kw); + } + LBRACKET575=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTWeight14056); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET575_tree = this.adaptor.create(LBRACKET575); + this.adaptor.addChild(root_0, LBRACKET575_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_FTWeight14058); + p_Expr576=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr576.getTree()); + RBRACKET577=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTWeight14061); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET577_tree = this.adaptor.create(RBRACKET577); + this.adaptor.addChild(root_0, RBRACKET577_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTOr_return: (function() { + XQueryParser.p_FTOr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTOr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1738:1: p_FTOr : p_FTAnd (ko= FTOR p_FTAnd )* ; + // $ANTLR start "p_FTOr" + p_FTOr: function() { + var retval = new XQueryParser.p_FTOr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + var p_FTAnd578 = null; + var p_FTAnd579 = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1739:9: ( p_FTAnd (ko= FTOR p_FTAnd )* ) + // xquery/XQueryParser.g:1739:11: p_FTAnd (ko= FTOR p_FTAnd )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTAnd_in_p_FTOr14087); + p_FTAnd578=this.p_FTAnd(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnd578.getTree()); + // xquery/XQueryParser.g:1739:19: (ko= FTOR p_FTAnd )* + loop196: + do { + var alt196=2; + var LA196_0 = this.input.LA(1); + + if ( (LA196_0==FTOR) ) { + alt196=1; + } + + + switch (alt196) { + case 1 : + // xquery/XQueryParser.g:1739:21: ko= FTOR p_FTAnd + ko=this.match(this.input,FTOR,XQueryParser.FOLLOW_FTOR_in_p_FTOr14093); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTAnd_in_p_FTOr14097); + p_FTAnd579=this.p_FTAnd(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnd579.getTree()); + + + break; + + default : + break loop196; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTAnd_return: (function() { + XQueryParser.p_FTAnd_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTAnd_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1743:1: p_FTAnd : p_FTMildNot (ka= FTAND p_FTMildNot )* ; + // $ANTLR start "p_FTAnd" + p_FTAnd: function() { + var retval = new XQueryParser.p_FTAnd_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var p_FTMildNot580 = null; + var p_FTMildNot581 = null; + + var ka_tree=null; + + try { + // xquery/XQueryParser.g:1744:9: ( p_FTMildNot (ka= FTAND p_FTMildNot )* ) + // xquery/XQueryParser.g:1744:11: p_FTMildNot (ka= FTAND p_FTMildNot )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTMildNot_in_p_FTAnd14126); + p_FTMildNot580=this.p_FTMildNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMildNot580.getTree()); + // xquery/XQueryParser.g:1744:23: (ka= FTAND p_FTMildNot )* + loop197: + do { + var alt197=2; + var LA197_0 = this.input.LA(1); + + if ( (LA197_0==FTAND) ) { + alt197=1; + } + + + switch (alt197) { + case 1 : + // xquery/XQueryParser.g:1744:25: ka= FTAND p_FTMildNot + ka=this.match(this.input,FTAND,XQueryParser.FOLLOW_FTAND_in_p_FTAnd14132); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTMildNot_in_p_FTAnd14136); + p_FTMildNot581=this.p_FTMildNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMildNot581.getTree()); + + + break; + + default : + break loop197; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMildNot_return: (function() { + XQueryParser.p_FTMildNot_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMildNot_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1748:1: p_FTMildNot : p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* ; + // $ANTLR start "p_FTMildNot" + p_FTMildNot: function() { + var retval = new XQueryParser.p_FTMildNot_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTUnaryNot582 = null; + var p_FTUnaryNot583 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1749:9: ( p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* ) + // xquery/XQueryParser.g:1749:11: p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTUnaryNot_in_p_FTMildNot14165); + p_FTUnaryNot582=this.p_FTUnaryNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnaryNot582.getTree()); + // xquery/XQueryParser.g:1749:24: (k+= NOT k+= IN p_FTUnaryNot )* + loop198: + do { + var alt198=2; + var LA198_0 = this.input.LA(1); + + if ( (LA198_0==NOT) ) { + alt198=1; + } + + + switch (alt198) { + case 1 : + // xquery/XQueryParser.g:1749:26: k+= NOT k+= IN p_FTUnaryNot + k=this.match(this.input,NOT,XQueryParser.FOLLOW_NOT_in_p_FTMildNot14171); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_FTMildNot14175); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTUnaryNot_in_p_FTMildNot14179); + p_FTUnaryNot583=this.p_FTUnaryNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnaryNot583.getTree()); + + + break; + + default : + break loop198; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTUnaryNot_return: (function() { + XQueryParser.p_FTUnaryNot_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTUnaryNot_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1753:1: p_FTUnaryNot : (kn= FTNOT )? p_FTPrimaryWithOptions ; + // $ANTLR start "p_FTUnaryNot" + p_FTUnaryNot: function() { + var retval = new XQueryParser.p_FTUnaryNot_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kn = null; + var p_FTPrimaryWithOptions584 = null; + + var kn_tree=null; + + try { + // xquery/XQueryParser.g:1754:9: ( (kn= FTNOT )? p_FTPrimaryWithOptions ) + // xquery/XQueryParser.g:1754:11: (kn= FTNOT )? p_FTPrimaryWithOptions + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1754:11: (kn= FTNOT )? + var alt199=2; + var LA199_0 = this.input.LA(1); + + if ( (LA199_0==FTNOT) ) { + alt199=1; + } + switch (alt199) { + case 1 : + // xquery/XQueryParser.g:1754:13: kn= FTNOT + kn=this.match(this.input,FTNOT,XQueryParser.FOLLOW_FTNOT_in_p_FTUnaryNot14212); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kn_tree = this.adaptor.create(kn); + this.adaptor.addChild(root_0, kn_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kn); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTPrimaryWithOptions_in_p_FTUnaryNot14219); + p_FTPrimaryWithOptions584=this.p_FTPrimaryWithOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPrimaryWithOptions584.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPrimaryWithOptions_return: (function() { + XQueryParser.p_FTPrimaryWithOptions_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPrimaryWithOptions_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1758:1: p_FTPrimaryWithOptions : p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? ; + // $ANTLR start "p_FTPrimaryWithOptions" + p_FTPrimaryWithOptions: function() { + var retval = new XQueryParser.p_FTPrimaryWithOptions_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTPrimary585 = null; + var p_FTMatchOptions586 = null; + var p_FTWeight587 = null; + + + try { + // xquery/XQueryParser.g:1759:9: ( p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? ) + // xquery/XQueryParser.g:1759:11: p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTPrimary_in_p_FTPrimaryWithOptions14245); + p_FTPrimary585=this.p_FTPrimary(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPrimary585.getTree()); + // xquery/XQueryParser.g:1759:23: ( p_FTMatchOptions )? + var alt200=2; + var LA200_0 = this.input.LA(1); + + if ( (LA200_0==USING) ) { + alt200=1; + } + switch (alt200) { + case 1 : + // xquery/XQueryParser.g:1759:23: p_FTMatchOptions + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOptions_in_p_FTPrimaryWithOptions14247); + p_FTMatchOptions586=this.p_FTMatchOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOptions586.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:1759:41: ( p_FTWeight )? + var alt201=2; + var LA201_0 = this.input.LA(1); + + if ( (LA201_0==WEIGHT) ) { + alt201=1; + } + switch (alt201) { + case 1 : + // xquery/XQueryParser.g:1759:41: p_FTWeight + this.pushFollow(XQueryParser.FOLLOW_p_FTWeight_in_p_FTPrimaryWithOptions14250); + p_FTWeight587=this.p_FTWeight(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWeight587.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPrimary_return: (function() { + XQueryParser.p_FTPrimary_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPrimary_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1766:1: p_FTPrimary : ( ( p_FTWords ( p_FTTimes )? ) | ( LPAREN p_FTSelection RPAREN ) | p_FTExtensionSelection ); + // $ANTLR start "p_FTPrimary" + p_FTPrimary: function() { + var retval = new XQueryParser.p_FTPrimary_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN590 = null; + var RPAREN592 = null; + var p_FTWords588 = null; + var p_FTTimes589 = null; + var p_FTSelection591 = null; + var p_FTExtensionSelection593 = null; + + var LPAREN590_tree=null; + var RPAREN592_tree=null; + + try { + // xquery/XQueryParser.g:1767:9: ( ( p_FTWords ( p_FTTimes )? ) | ( LPAREN p_FTSelection RPAREN ) | p_FTExtensionSelection ) + var alt203=3; + switch ( this.input.LA(1) ) { + case LBRACKET: + case APOS: + case QUOT: + alt203=1; + break; + case LPAREN: + alt203=2; + break; + case L_Pragma: + alt203=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 203, 0, this.input); + + throw nvae; + } + + switch (alt203) { + case 1 : + // xquery/XQueryParser.g:1767:11: ( p_FTWords ( p_FTTimes )? ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1767:11: ( p_FTWords ( p_FTTimes )? ) + // xquery/XQueryParser.g:1767:12: p_FTWords ( p_FTTimes )? + this.pushFollow(XQueryParser.FOLLOW_p_FTWords_in_p_FTPrimary14281); + p_FTWords588=this.p_FTWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWords588.getTree()); + // xquery/XQueryParser.g:1767:22: ( p_FTTimes )? + var alt202=2; + var LA202_0 = this.input.LA(1); + + if ( (LA202_0==OCCURS) ) { + alt202=1; + } + switch (alt202) { + case 1 : + // xquery/XQueryParser.g:1767:22: p_FTTimes + this.pushFollow(XQueryParser.FOLLOW_p_FTTimes_in_p_FTPrimary14283); + p_FTTimes589=this.p_FTTimes(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTTimes589.getTree()); + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1768:11: ( LPAREN p_FTSelection RPAREN ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1768:11: ( LPAREN p_FTSelection RPAREN ) + // xquery/XQueryParser.g:1768:12: LPAREN p_FTSelection RPAREN + LPAREN590=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTPrimary14298); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN590_tree = this.adaptor.create(LPAREN590); + this.adaptor.addChild(root_0, LPAREN590_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTPrimary14300); + p_FTSelection591=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection591.getTree()); + RPAREN592=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTPrimary14302); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN592_tree = this.adaptor.create(RPAREN592); + this.adaptor.addChild(root_0, RPAREN592_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1769:11: p_FTExtensionSelection + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTExtensionSelection_in_p_FTPrimary14315); + p_FTExtensionSelection593=this.p_FTExtensionSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTExtensionSelection593.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWords_return: (function() { + XQueryParser.p_FTWords_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWords_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1773:1: p_FTWords : p_FTWordsValue ( p_FTAnyallOption )? ; + // $ANTLR start "p_FTWords" + p_FTWords: function() { + var retval = new XQueryParser.p_FTWords_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTWordsValue594 = null; + var p_FTAnyallOption595 = null; + + + try { + // xquery/XQueryParser.g:1774:9: ( p_FTWordsValue ( p_FTAnyallOption )? ) + // xquery/XQueryParser.g:1774:11: p_FTWordsValue ( p_FTAnyallOption )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWordsValue_in_p_FTWords14341); + p_FTWordsValue594=this.p_FTWordsValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWordsValue594.getTree()); + // xquery/XQueryParser.g:1774:26: ( p_FTAnyallOption )? + var alt204=2; + var LA204_0 = this.input.LA(1); + + if ( ((LA204_0>=ALL && LA204_0<=ANY)||LA204_0==PHRASE) ) { + alt204=1; + } + switch (alt204) { + case 1 : + // xquery/XQueryParser.g:1774:26: p_FTAnyallOption + this.pushFollow(XQueryParser.FOLLOW_p_FTAnyallOption_in_p_FTWords14343); + p_FTAnyallOption595=this.p_FTAnyallOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnyallOption595.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWordsValue_return: (function() { + XQueryParser.p_FTWordsValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWordsValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1778:1: p_FTWordsValue : ( p_StringLiteral | ( LBRACKET p_Expr[true,true] RBRACKET ) ); + // $ANTLR start "p_FTWordsValue" + p_FTWordsValue: function() { + var retval = new XQueryParser.p_FTWordsValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET597 = null; + var RBRACKET599 = null; + var p_StringLiteral596 = null; + var p_Expr598 = null; + + var LBRACKET597_tree=null; + var RBRACKET599_tree=null; + + try { + // xquery/XQueryParser.g:1779:9: ( p_StringLiteral | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt205=2; + var LA205_0 = this.input.LA(1); + + if ( ((LA205_0>=APOS && LA205_0<=QUOT)) ) { + alt205=1; + } + else if ( (LA205_0==LBRACKET) ) { + alt205=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 205, 0, this.input); + + throw nvae; + } + switch (alt205) { + case 1 : + // xquery/XQueryParser.g:1779:11: p_StringLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTWordsValue14370); + p_StringLiteral596=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral596.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1780:11: ( LBRACKET p_Expr[true,true] RBRACKET ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1780:11: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1780:12: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET597=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTWordsValue14383); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET597_tree = this.adaptor.create(LBRACKET597); + this.adaptor.addChild(root_0, LBRACKET597_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_FTWordsValue14385); + p_Expr598=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr598.getTree()); + RBRACKET599=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTWordsValue14388); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET599_tree = this.adaptor.create(RBRACKET599); + this.adaptor.addChild(root_0, RBRACKET599_tree); + } + + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTExtensionSelection_return: (function() { + XQueryParser.p_FTExtensionSelection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTExtensionSelection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1784:1: p_FTExtensionSelection : ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET ; + // $ANTLR start "p_FTExtensionSelection" + p_FTExtensionSelection: function() { + var retval = new XQueryParser.p_FTExtensionSelection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_Pragma600 = null; + var LBRACKET601 = null; + var RBRACKET603 = null; + var p_FTSelection602 = null; + + var L_Pragma600_tree=null; + var LBRACKET601_tree=null; + var RBRACKET603_tree=null; + + try { + // xquery/XQueryParser.g:1785:9: ( ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET ) + // xquery/XQueryParser.g:1785:11: ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1785:11: ( L_Pragma )+ + var cnt206=0; + loop206: + do { + var alt206=2; + var LA206_0 = this.input.LA(1); + + if ( (LA206_0==L_Pragma) ) { + alt206=1; + } + + + switch (alt206) { + case 1 : + // xquery/XQueryParser.g:1785:11: L_Pragma + L_Pragma600=this.match(this.input,L_Pragma,XQueryParser.FOLLOW_L_Pragma_in_p_FTExtensionSelection14415); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_Pragma600_tree = this.adaptor.create(L_Pragma600); + this.adaptor.addChild(root_0, L_Pragma600_tree); + } + + + break; + + default : + if ( cnt206 >= 1 ) { + break loop206; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(206, this.input); + throw eee; + } + cnt206++; + } while (true); + + LBRACKET601=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTExtensionSelection14418); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET601_tree = this.adaptor.create(LBRACKET601); + this.adaptor.addChild(root_0, LBRACKET601_tree); + } + // xquery/XQueryParser.g:1785:30: ( p_FTSelection )? + var alt207=2; + var LA207_0 = this.input.LA(1); + + if ( (LA207_0==FTNOT||LA207_0==LPAREN||LA207_0==LBRACKET||(LA207_0>=APOS && LA207_0<=QUOT)||LA207_0==L_Pragma) ) { + alt207=1; + } + switch (alt207) { + case 1 : + // xquery/XQueryParser.g:1785:30: p_FTSelection + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTExtensionSelection14420); + p_FTSelection602=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection602.getTree()); + + + break; + + } + + RBRACKET603=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTExtensionSelection14423); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET603_tree = this.adaptor.create(RBRACKET603); + this.adaptor.addChild(root_0, RBRACKET603_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTAnyallOption_return: (function() { + XQueryParser.p_FTAnyallOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTAnyallOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1789:1: p_FTAnyallOption : ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) ; + // $ANTLR start "p_FTAnyallOption" + p_FTAnyallOption: function() { + var retval = new XQueryParser.p_FTAnyallOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var WORDS604 = null; + var k = null; + var list_k=null; + + var WORDS604_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1790:9: ( ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) ) + // xquery/XQueryParser.g:1790:11: ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1790:11: ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) + var alt210=3; + switch ( this.input.LA(1) ) { + case ANY: + alt210=1; + break; + case ALL: + alt210=2; + break; + case PHRASE: + alt210=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 210, 0, this.input); + + throw nvae; + } + + switch (alt210) { + case 1 : + // xquery/XQueryParser.g:1790:13: (k+= ANY (k+= WORD )? ) + // xquery/XQueryParser.g:1790:13: (k+= ANY (k+= WORD )? ) + // xquery/XQueryParser.g:1790:14: k+= ANY (k+= WORD )? + k=this.match(this.input,ANY,XQueryParser.FOLLOW_ANY_in_p_FTAnyallOption14454); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1790:22: (k+= WORD )? + var alt208=2; + var LA208_0 = this.input.LA(1); + + if ( (LA208_0==WORD) ) { + alt208=1; + } + switch (alt208) { + case 1 : + // xquery/XQueryParser.g:1790:22: k+= WORD + k=this.match(this.input,WORD,XQueryParser.FOLLOW_WORD_in_p_FTAnyallOption14458); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1790:33: (k+= ALL ( WORDS )? ) + // xquery/XQueryParser.g:1790:33: (k+= ALL ( WORDS )? ) + // xquery/XQueryParser.g:1790:34: k+= ALL ( WORDS )? + k=this.match(this.input,ALL,XQueryParser.FOLLOW_ALL_in_p_FTAnyallOption14467); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1790:41: ( WORDS )? + var alt209=2; + var LA209_0 = this.input.LA(1); + + if ( (LA209_0==WORDS) ) { + alt209=1; + } + switch (alt209) { + case 1 : + // xquery/XQueryParser.g:1790:41: WORDS + WORDS604=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTAnyallOption14469); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + WORDS604_tree = this.adaptor.create(WORDS604); + this.adaptor.addChild(root_0, WORDS604_tree); + } + + + break; + + } + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1790:51: k+= PHRASE + k=this.match(this.input,PHRASE,XQueryParser.FOLLOW_PHRASE_in_p_FTAnyallOption14477); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTTimes_return: (function() { + XQueryParser.p_FTTimes_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTTimes_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1794:1: p_FTTimes : k+= OCCURS p_FTRange k+= TIMES ; + // $ANTLR start "p_FTTimes" + p_FTTimes: function() { + var retval = new XQueryParser.p_FTTimes_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTRange605 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1795:9: (k+= OCCURS p_FTRange k+= TIMES ) + // xquery/XQueryParser.g:1795:11: k+= OCCURS p_FTRange k+= TIMES + root_0 = this.adaptor.nil(); + + k=this.match(this.input,OCCURS,XQueryParser.FOLLOW_OCCURS_in_p_FTTimes14509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTRange_in_p_FTTimes14511); + p_FTRange605=this.p_FTRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTRange605.getTree()); + k=this.match(this.input,TIMES,XQueryParser.FOLLOW_TIMES_in_p_FTTimes14515); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTRange_return: (function() { + XQueryParser.p_FTRange_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTRange_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1799:1: p_FTRange : ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) ; + // $ANTLR start "p_FTRange" + p_FTRange: function() { + var retval = new XQueryParser.p_FTRange_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_AdditiveExpr606 = null; + var p_AdditiveExpr607 = null; + var p_AdditiveExpr608 = null; + var p_AdditiveExpr609 = null; + var p_AdditiveExpr610 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1800:9: ( ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) ) + // xquery/XQueryParser.g:1800:11: ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1800:11: ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) + var alt211=4; + switch ( this.input.LA(1) ) { + case EXACTLY: + alt211=1; + break; + case AT: + var LA211_2 = this.input.LA(2); + + if ( (LA211_2==LEAST) ) { + alt211=2; + } + else if ( (LA211_2==MOST) ) { + alt211=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 211, 2, this.input); + + throw nvae; + } + break; + case FROM: + alt211=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 211, 0, this.input); + + throw nvae; + } + + switch (alt211) { + case 1 : + // xquery/XQueryParser.g:1800:13: (k+= EXACTLY p_AdditiveExpr ) + // xquery/XQueryParser.g:1800:13: (k+= EXACTLY p_AdditiveExpr ) + // xquery/XQueryParser.g:1800:14: k+= EXACTLY p_AdditiveExpr + k=this.match(this.input,EXACTLY,XQueryParser.FOLLOW_EXACTLY_in_p_FTRange14548); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14550); + p_AdditiveExpr606=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr606.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1801:13: (k+= AT k+= LEAST p_AdditiveExpr ) + // xquery/XQueryParser.g:1801:13: (k+= AT k+= LEAST p_AdditiveExpr ) + // xquery/XQueryParser.g:1801:14: k+= AT k+= LEAST p_AdditiveExpr + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTRange14568); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_FTRange14572); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14574); + p_AdditiveExpr607=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr607.getTree()); + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1802:13: (k+= AT k+= MOST p_AdditiveExpr ) + // xquery/XQueryParser.g:1802:13: (k+= AT k+= MOST p_AdditiveExpr ) + // xquery/XQueryParser.g:1802:14: k+= AT k+= MOST p_AdditiveExpr + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTRange14592); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,MOST,XQueryParser.FOLLOW_MOST_in_p_FTRange14596); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14598); + p_AdditiveExpr608=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr608.getTree()); + + + + + + break; + case 4 : + // xquery/XQueryParser.g:1803:13: (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) + // xquery/XQueryParser.g:1803:13: (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) + // xquery/XQueryParser.g:1803:14: k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_FTRange14616); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14618); + p_AdditiveExpr609=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr609.getTree()); + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_FTRange14622); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14624); + p_AdditiveExpr610=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr610.getTree()); + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPosFilter_return: (function() { + XQueryParser.p_FTPosFilter_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPosFilter_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1807:1: p_FTPosFilter : ( p_FTOrder | p_FTWindow | p_FTDistance | p_FTScope | p_FTContent ); + // $ANTLR start "p_FTPosFilter" + p_FTPosFilter: function() { + var retval = new XQueryParser.p_FTPosFilter_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTOrder611 = null; + var p_FTWindow612 = null; + var p_FTDistance613 = null; + var p_FTScope614 = null; + var p_FTContent615 = null; + + + try { + // xquery/XQueryParser.g:1808:9: ( p_FTOrder | p_FTWindow | p_FTDistance | p_FTScope | p_FTContent ) + var alt212=5; + switch ( this.input.LA(1) ) { + case ORDERED: + alt212=1; + break; + case WINDOW: + alt212=2; + break; + case DISTANCE: + alt212=3; + break; + case DIFFERENT: + case SAME: + alt212=4; + break; + case AT: + case ENTIRE: + alt212=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 212, 0, this.input); + + throw nvae; + } + + switch (alt212) { + case 1 : + // xquery/XQueryParser.g:1808:11: p_FTOrder + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTOrder_in_p_FTPosFilter14655); + p_FTOrder611=this.p_FTOrder(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTOrder611.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1808:23: p_FTWindow + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWindow_in_p_FTPosFilter14659); + p_FTWindow612=this.p_FTWindow(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWindow612.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1808:36: p_FTDistance + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTDistance_in_p_FTPosFilter14663); + p_FTDistance613=this.p_FTDistance(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTDistance613.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1808:51: p_FTScope + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTScope_in_p_FTPosFilter14667); + p_FTScope614=this.p_FTScope(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScope614.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1808:63: p_FTContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTContent_in_p_FTPosFilter14671); + p_FTContent615=this.p_FTContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContent615.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTOrder_return: (function() { + XQueryParser.p_FTOrder_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTOrder_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1812:1: p_FTOrder : ko= ORDERED ; + // $ANTLR start "p_FTOrder" + p_FTOrder: function() { + var retval = new XQueryParser.p_FTOrder_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1813:9: (ko= ORDERED ) + // xquery/XQueryParser.g:1813:11: ko= ORDERED + root_0 = this.adaptor.nil(); + + ko=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_p_FTOrder14699); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWindow_return: (function() { + XQueryParser.p_FTWindow_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWindow_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1817:1: p_FTWindow : kw= WINDOW p_AdditiveExpr p_FTUnit ; + // $ANTLR start "p_FTWindow" + p_FTWindow: function() { + var retval = new XQueryParser.p_FTWindow_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kw = null; + var p_AdditiveExpr616 = null; + var p_FTUnit617 = null; + + var kw_tree=null; + + try { + // xquery/XQueryParser.g:1818:9: (kw= WINDOW p_AdditiveExpr p_FTUnit ) + // xquery/XQueryParser.g:1818:11: kw= WINDOW p_AdditiveExpr p_FTUnit + root_0 = this.adaptor.nil(); + + kw=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_FTWindow14729); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kw_tree = this.adaptor.create(kw); + this.adaptor.addChild(root_0, kw_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kw); + } + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTWindow14733); + p_AdditiveExpr616=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr616.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_FTUnit_in_p_FTWindow14735); + p_FTUnit617=this.p_FTUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnit617.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTDistance_return: (function() { + XQueryParser.p_FTDistance_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTDistance_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1822:1: p_FTDistance : kd= DISTANCE p_FTRange p_FTUnit ; + // $ANTLR start "p_FTDistance" + p_FTDistance: function() { + var retval = new XQueryParser.p_FTDistance_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kd = null; + var p_FTRange618 = null; + var p_FTUnit619 = null; + + var kd_tree=null; + + try { + // xquery/XQueryParser.g:1823:9: (kd= DISTANCE p_FTRange p_FTUnit ) + // xquery/XQueryParser.g:1823:11: kd= DISTANCE p_FTRange p_FTUnit + root_0 = this.adaptor.nil(); + + kd=this.match(this.input,DISTANCE,XQueryParser.FOLLOW_DISTANCE_in_p_FTDistance14763); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kd_tree = this.adaptor.create(kd); + this.adaptor.addChild(root_0, kd_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kd); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTRange_in_p_FTDistance14767); + p_FTRange618=this.p_FTRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTRange618.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_FTUnit_in_p_FTDistance14769); + p_FTUnit619=this.p_FTUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnit619.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTUnit_return: (function() { + XQueryParser.p_FTUnit_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTUnit_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1827:1: p_FTUnit : (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) ; + // $ANTLR start "p_FTUnit" + p_FTUnit: function() { + var retval = new XQueryParser.p_FTUnit_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1828:9: ( (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) ) + // xquery/XQueryParser.g:1828:11: (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1828:11: (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) + var alt213=3; + switch ( this.input.LA(1) ) { + case WORDS: + alt213=1; + break; + case SENTENCES: + alt213=2; + break; + case PARAGRAPHS: + alt213=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 213, 0, this.input); + + throw nvae; + } + + switch (alt213) { + case 1 : + // xquery/XQueryParser.g:1828:13: k+= WORDS + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTUnit14799); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1828:24: k+= SENTENCES + k=this.match(this.input,SENTENCES,XQueryParser.FOLLOW_SENTENCES_in_p_FTUnit14805); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 3 : + // xquery/XQueryParser.g:1828:39: k+= PARAGRAPHS + k=this.match(this.input,PARAGRAPHS,XQueryParser.FOLLOW_PARAGRAPHS_in_p_FTUnit14811); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTScope_return: (function() { + XQueryParser.p_FTScope_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTScope_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1832:1: p_FTScope : (k+= SAME | k+= DIFFERENT ) p_FTBigUnit ; + // $ANTLR start "p_FTScope" + p_FTScope: function() { + var retval = new XQueryParser.p_FTScope_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTBigUnit620 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1833:9: ( (k+= SAME | k+= DIFFERENT ) p_FTBigUnit ) + // xquery/XQueryParser.g:1833:11: (k+= SAME | k+= DIFFERENT ) p_FTBigUnit + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1833:11: (k+= SAME | k+= DIFFERENT ) + var alt214=2; + var LA214_0 = this.input.LA(1); + + if ( (LA214_0==SAME) ) { + alt214=1; + } + else if ( (LA214_0==DIFFERENT) ) { + alt214=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 214, 0, this.input); + + throw nvae; + } + switch (alt214) { + case 1 : + // xquery/XQueryParser.g:1833:12: k+= SAME + k=this.match(this.input,SAME,XQueryParser.FOLLOW_SAME_in_p_FTScope14844); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1833:22: k+= DIFFERENT + k=this.match(this.input,DIFFERENT,XQueryParser.FOLLOW_DIFFERENT_in_p_FTScope14850); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTBigUnit_in_p_FTScope14855); + p_FTBigUnit620=this.p_FTBigUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTBigUnit620.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTBigUnit_return: (function() { + XQueryParser.p_FTBigUnit_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTBigUnit_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1837:1: p_FTBigUnit : (k+= SENTENCE | k+= PARAGRAPH ) ; + // $ANTLR start "p_FTBigUnit" + p_FTBigUnit: function() { + var retval = new XQueryParser.p_FTBigUnit_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1838:9: ( (k+= SENTENCE | k+= PARAGRAPH ) ) + // xquery/XQueryParser.g:1838:11: (k+= SENTENCE | k+= PARAGRAPH ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1838:11: (k+= SENTENCE | k+= PARAGRAPH ) + var alt215=2; + var LA215_0 = this.input.LA(1); + + if ( (LA215_0==SENTENCE) ) { + alt215=1; + } + else if ( (LA215_0==PARAGRAPH) ) { + alt215=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 215, 0, this.input); + + throw nvae; + } + switch (alt215) { + case 1 : + // xquery/XQueryParser.g:1838:13: k+= SENTENCE + k=this.match(this.input,SENTENCE,XQueryParser.FOLLOW_SENTENCE_in_p_FTBigUnit14885); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1838:27: k+= PARAGRAPH + k=this.match(this.input,PARAGRAPH,XQueryParser.FOLLOW_PARAGRAPH_in_p_FTBigUnit14891); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTContent_return: (function() { + XQueryParser.p_FTContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1842:1: p_FTContent : ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) ; + // $ANTLR start "p_FTContent" + p_FTContent: function() { + var retval = new XQueryParser.p_FTContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1843:9: ( ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) ) + // xquery/XQueryParser.g:1843:11: ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1843:11: ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) + var alt216=3; + var LA216_0 = this.input.LA(1); + + if ( (LA216_0==AT) ) { + var LA216_1 = this.input.LA(2); + + if ( (LA216_1==START) ) { + alt216=1; + } + else if ( (LA216_1==END) ) { + alt216=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 216, 1, this.input); + + throw nvae; + } + } + else if ( (LA216_0==ENTIRE) ) { + alt216=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 216, 0, this.input); + + throw nvae; + } + switch (alt216) { + case 1 : + // xquery/XQueryParser.g:1843:13: (k+= AT k+= START ) + // xquery/XQueryParser.g:1843:13: (k+= AT k+= START ) + // xquery/XQueryParser.g:1843:14: k+= AT k+= START + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTContent14926); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,START,XQueryParser.FOLLOW_START_in_p_FTContent14930); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1843:32: (k+= AT k+= END ) + // xquery/XQueryParser.g:1843:32: (k+= AT k+= END ) + // xquery/XQueryParser.g:1843:33: k+= AT k+= END + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTContent14938); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,END,XQueryParser.FOLLOW_END_in_p_FTContent14942); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1843:49: (k+= ENTIRE k+= CONTENT ) + // xquery/XQueryParser.g:1843:49: (k+= ENTIRE k+= CONTENT ) + // xquery/XQueryParser.g:1843:50: k+= ENTIRE k+= CONTENT + k=this.match(this.input,ENTIRE,XQueryParser.FOLLOW_ENTIRE_in_p_FTContent14950); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,CONTENT,XQueryParser.FOLLOW_CONTENT_in_p_FTContent14954); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMatchOptions_return: (function() { + XQueryParser.p_FTMatchOptions_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMatchOptions_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1847:1: p_FTMatchOptions : (ku= USING p_FTMatchOption )+ ; + // $ANTLR start "p_FTMatchOptions" + p_FTMatchOptions: function() { + var retval = new XQueryParser.p_FTMatchOptions_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ku = null; + var p_FTMatchOption621 = null; + + var ku_tree=null; + + try { + // xquery/XQueryParser.g:1848:9: ( (ku= USING p_FTMatchOption )+ ) + // xquery/XQueryParser.g:1848:11: (ku= USING p_FTMatchOption )+ + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1848:11: (ku= USING p_FTMatchOption )+ + var cnt217=0; + loop217: + do { + var alt217=2; + var LA217_0 = this.input.LA(1); + + if ( (LA217_0==USING) ) { + alt217=1; + } + + + switch (alt217) { + case 1 : + // xquery/XQueryParser.g:1848:12: ku= USING p_FTMatchOption + ku=this.match(this.input,USING,XQueryParser.FOLLOW_USING_in_p_FTMatchOptions14988); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ku_tree = this.adaptor.create(ku); + this.adaptor.addChild(root_0, ku_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ku); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOption_in_p_FTMatchOptions14992); + p_FTMatchOption621=this.p_FTMatchOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOption621.getTree()); + + + break; + + default : + if ( cnt217 >= 1 ) { + break loop217; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(217, this.input); + throw eee; + } + cnt217++; + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMatchOption_return: (function() { + XQueryParser.p_FTMatchOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMatchOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1852:1: p_FTMatchOption : ( p_FTLanguageOption | p_FTWildCardOption | p_FTThesaurusOption | p_FTStemOption | p_FTCaseOption | p_FTDiacriticsOption | p_FTStopWordOption | p_FTExtensionOption ); + // $ANTLR start "p_FTMatchOption" + p_FTMatchOption: function() { + var retval = new XQueryParser.p_FTMatchOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTLanguageOption622 = null; + var p_FTWildCardOption623 = null; + var p_FTThesaurusOption624 = null; + var p_FTStemOption625 = null; + var p_FTCaseOption626 = null; + var p_FTDiacriticsOption627 = null; + var p_FTStopWordOption628 = null; + var p_FTExtensionOption629 = null; + + + try { + // xquery/XQueryParser.g:1853:9: ( p_FTLanguageOption | p_FTWildCardOption | p_FTThesaurusOption | p_FTStemOption | p_FTCaseOption | p_FTDiacriticsOption | p_FTStopWordOption | p_FTExtensionOption ) + var alt218=8; + alt218 = this.dfa218.predict(this.input); + switch (alt218) { + case 1 : + // xquery/XQueryParser.g:1853:11: p_FTLanguageOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTLanguageOption_in_p_FTMatchOption15020); + p_FTLanguageOption622=this.p_FTLanguageOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTLanguageOption622.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1854:11: p_FTWildCardOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWildCardOption_in_p_FTMatchOption15032); + p_FTWildCardOption623=this.p_FTWildCardOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWildCardOption623.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1855:11: p_FTThesaurusOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusOption_in_p_FTMatchOption15044); + p_FTThesaurusOption624=this.p_FTThesaurusOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusOption624.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1856:11: p_FTStemOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStemOption_in_p_FTMatchOption15056); + p_FTStemOption625=this.p_FTStemOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStemOption625.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1857:11: p_FTCaseOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTCaseOption_in_p_FTMatchOption15068); + p_FTCaseOption626=this.p_FTCaseOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTCaseOption626.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1858:11: p_FTDiacriticsOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTDiacriticsOption_in_p_FTMatchOption15080); + p_FTDiacriticsOption627=this.p_FTDiacriticsOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTDiacriticsOption627.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1859:11: p_FTStopWordOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordOption_in_p_FTMatchOption15092); + p_FTStopWordOption628=this.p_FTStopWordOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordOption628.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1860:11: p_FTExtensionOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTExtensionOption_in_p_FTMatchOption15104); + p_FTExtensionOption629=this.p_FTExtensionOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTExtensionOption629.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTCaseOption_return: (function() { + XQueryParser.p_FTCaseOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTCaseOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1864:1: p_FTCaseOption : ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) ; + // $ANTLR start "p_FTCaseOption" + p_FTCaseOption: function() { + var retval = new XQueryParser.p_FTCaseOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1865:9: ( ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) ) + // xquery/XQueryParser.g:1865:11: ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1865:11: ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) + var alt219=4; + switch ( this.input.LA(1) ) { + case CASE: + var LA219_1 = this.input.LA(2); + + if ( (LA219_1==INSENSITIVE) ) { + alt219=1; + } + else if ( (LA219_1==SENSITIVE) ) { + alt219=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 219, 1, this.input); + + throw nvae; + } + break; + case LOWERCASE: + alt219=3; + break; + case UPPERCASE: + alt219=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 219, 0, this.input); + + throw nvae; + } + + switch (alt219) { + case 1 : + // xquery/XQueryParser.g:1865:13: (k+= CASE k+= INSENSITIVE ) + // xquery/XQueryParser.g:1865:13: (k+= CASE k+= INSENSITIVE ) + // xquery/XQueryParser.g:1865:14: k+= CASE k+= INSENSITIVE + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_FTCaseOption15135); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,INSENSITIVE,XQueryParser.FOLLOW_INSENSITIVE_in_p_FTCaseOption15139); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1866:13: (k+= CASE k+= SENSITIVE ) + // xquery/XQueryParser.g:1866:13: (k+= CASE k+= SENSITIVE ) + // xquery/XQueryParser.g:1866:14: k+= CASE k+= SENSITIVE + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_FTCaseOption15157); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,SENSITIVE,XQueryParser.FOLLOW_SENSITIVE_in_p_FTCaseOption15161); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1867:13: k+= LOWERCASE + k=this.match(this.input,LOWERCASE,XQueryParser.FOLLOW_LOWERCASE_in_p_FTCaseOption15178); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 4 : + // xquery/XQueryParser.g:1868:13: k+= UPPERCASE + k=this.match(this.input,UPPERCASE,XQueryParser.FOLLOW_UPPERCASE_in_p_FTCaseOption15194); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTDiacriticsOption_return: (function() { + XQueryParser.p_FTDiacriticsOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTDiacriticsOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1872:1: p_FTDiacriticsOption : ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) ; + // $ANTLR start "p_FTDiacriticsOption" + p_FTDiacriticsOption: function() { + var retval = new XQueryParser.p_FTDiacriticsOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1873:9: ( ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) ) + // xquery/XQueryParser.g:1873:11: ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1873:11: ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) + var alt220=2; + var LA220_0 = this.input.LA(1); + + if ( (LA220_0==DIACRITICS) ) { + var LA220_1 = this.input.LA(2); + + if ( (LA220_1==INSENSITIVE) ) { + alt220=1; + } + else if ( (LA220_1==SENSITIVE) ) { + alt220=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 220, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 220, 0, this.input); + + throw nvae; + } + switch (alt220) { + case 1 : + // xquery/XQueryParser.g:1873:13: (k+= DIACRITICS k+= INSENSITIVE ) + // xquery/XQueryParser.g:1873:13: (k+= DIACRITICS k+= INSENSITIVE ) + // xquery/XQueryParser.g:1873:14: k+= DIACRITICS k+= INSENSITIVE + k=this.match(this.input,DIACRITICS,XQueryParser.FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15229); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,INSENSITIVE,XQueryParser.FOLLOW_INSENSITIVE_in_p_FTDiacriticsOption15233); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1874:13: (k+= DIACRITICS k+= SENSITIVE ) + // xquery/XQueryParser.g:1874:13: (k+= DIACRITICS k+= SENSITIVE ) + // xquery/XQueryParser.g:1874:14: k+= DIACRITICS k+= SENSITIVE + k=this.match(this.input,DIACRITICS,XQueryParser.FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15251); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,SENSITIVE,XQueryParser.FOLLOW_SENSITIVE_in_p_FTDiacriticsOption15255); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStemOption_return: (function() { + XQueryParser.p_FTStemOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStemOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1878:1: p_FTStemOption : (k+= STEMMING | (k+= NO k+= STEMMING ) ) ; + // $ANTLR start "p_FTStemOption" + p_FTStemOption: function() { + var retval = new XQueryParser.p_FTStemOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1879:9: ( (k+= STEMMING | (k+= NO k+= STEMMING ) ) ) + // xquery/XQueryParser.g:1879:11: (k+= STEMMING | (k+= NO k+= STEMMING ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1879:11: (k+= STEMMING | (k+= NO k+= STEMMING ) ) + var alt221=2; + var LA221_0 = this.input.LA(1); + + if ( (LA221_0==STEMMING) ) { + alt221=1; + } + else if ( (LA221_0==NO) ) { + alt221=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 221, 0, this.input); + + throw nvae; + } + switch (alt221) { + case 1 : + // xquery/XQueryParser.g:1879:13: k+= STEMMING + k=this.match(this.input,STEMMING,XQueryParser.FOLLOW_STEMMING_in_p_FTStemOption15290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1879:27: (k+= NO k+= STEMMING ) + // xquery/XQueryParser.g:1879:27: (k+= NO k+= STEMMING ) + // xquery/XQueryParser.g:1879:28: k+= NO k+= STEMMING + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTStemOption15297); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,STEMMING,XQueryParser.FOLLOW_STEMMING_in_p_FTStemOption15301); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTThesaurusOption_return: (function() { + XQueryParser.p_FTThesaurusOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTThesaurusOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1883:1: p_FTThesaurusOption : ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) ; + // $ANTLR start "p_FTThesaurusOption" + p_FTThesaurusOption: function() { + var retval = new XQueryParser.p_FTThesaurusOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN631 = null; + var COMMA633 = null; + var RPAREN635 = null; + var k = null; + var list_k=null; + var p_FTThesaurusID630 = null; + var p_FTThesaurusID632 = null; + var p_FTThesaurusID634 = null; + + var LPAREN631_tree=null; + var COMMA633_tree=null; + var RPAREN635_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1884:9: ( ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) ) + // xquery/XQueryParser.g:1884:11: ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1884:11: ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) + var alt225=3; + var LA225_0 = this.input.LA(1); + + if ( (LA225_0==THESAURUS) ) { + var LA225_1 = this.input.LA(2); + + if ( (LA225_1==LPAREN) ) { + alt225=2; + } + else if ( (LA225_1==AT||LA225_1==DEFAULT) ) { + alt225=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 225, 1, this.input); + + throw nvae; + } + } + else if ( (LA225_0==NO) ) { + alt225=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 225, 0, this.input); + + throw nvae; + } + switch (alt225) { + case 1 : + // xquery/XQueryParser.g:1884:13: (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) + // xquery/XQueryParser.g:1884:13: (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) + // xquery/XQueryParser.g:1884:14: k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15337); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1884:27: ( p_FTThesaurusID | k+= DEFAULT ) + var alt222=2; + var LA222_0 = this.input.LA(1); + + if ( (LA222_0==AT) ) { + alt222=1; + } + else if ( (LA222_0==DEFAULT) ) { + alt222=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 222, 0, this.input); + + throw nvae; + } + switch (alt222) { + case 1 : + // xquery/XQueryParser.g:1884:28: p_FTThesaurusID + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15340); + p_FTThesaurusID630=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID630.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1884:46: k+= DEFAULT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTThesaurusOption15346); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1885:13: (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) + // xquery/XQueryParser.g:1885:13: (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) + // xquery/XQueryParser.g:1885:14: k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15365); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + LPAREN631=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTThesaurusOption15367); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN631_tree = this.adaptor.create(LPAREN631); + this.adaptor.addChild(root_0, LPAREN631_tree); + } + // xquery/XQueryParser.g:1885:34: ( p_FTThesaurusID | k+= DEFAULT ) + var alt223=2; + var LA223_0 = this.input.LA(1); + + if ( (LA223_0==AT) ) { + alt223=1; + } + else if ( (LA223_0==DEFAULT) ) { + alt223=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 223, 0, this.input); + + throw nvae; + } + switch (alt223) { + case 1 : + // xquery/XQueryParser.g:1885:35: p_FTThesaurusID + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15370); + p_FTThesaurusID632=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID632.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1885:53: k+= DEFAULT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTThesaurusOption15376); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + // xquery/XQueryParser.g:1885:65: ( COMMA p_FTThesaurusID )* + loop224: + do { + var alt224=2; + var LA224_0 = this.input.LA(1); + + if ( (LA224_0==COMMA) ) { + alt224=1; + } + + + switch (alt224) { + case 1 : + // xquery/XQueryParser.g:1885:66: COMMA p_FTThesaurusID + COMMA633=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_FTThesaurusOption15380); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA633_tree = this.adaptor.create(COMMA633); + this.adaptor.addChild(root_0, COMMA633_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15382); + p_FTThesaurusID634=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID634.getTree()); + + + break; + + default : + break loop224; + } + } while (true); + + RPAREN635=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTThesaurusOption15386); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN635_tree = this.adaptor.create(RPAREN635); + this.adaptor.addChild(root_0, RPAREN635_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1886:13: (k+= NO k+= THESAURUS ) + // xquery/XQueryParser.g:1886:13: (k+= NO k+= THESAURUS ) + // xquery/XQueryParser.g:1886:14: k+= NO k+= THESAURUS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTThesaurusOption15404); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15408); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTThesaurusID_return: (function() { + XQueryParser.p_FTThesaurusID_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTThesaurusID_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1890:1: p_FTThesaurusID : k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? ; + // $ANTLR start "p_FTThesaurusID" + p_FTThesaurusID: function() { + var retval = new XQueryParser.p_FTThesaurusID_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringLiteral636 = null; + var p_StringLiteral637 = null; + var p_FTLiteralRange638 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1891:9: (k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? ) + // xquery/XQueryParser.g:1891:11: k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTThesaurusID15441); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTThesaurusID15443); + p_StringLiteral636=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral636.getTree()); + // xquery/XQueryParser.g:1891:33: (k+= RELATIONSHIP p_StringLiteral )? + var alt226=2; + var LA226_0 = this.input.LA(1); + + if ( (LA226_0==RELATIONSHIP) ) { + alt226=1; + } + switch (alt226) { + case 1 : + // xquery/XQueryParser.g:1891:34: k+= RELATIONSHIP p_StringLiteral + k=this.match(this.input,RELATIONSHIP,XQueryParser.FOLLOW_RELATIONSHIP_in_p_FTThesaurusID15448); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTThesaurusID15450); + p_StringLiteral637=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral637.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:1891:68: ( p_FTLiteralRange k+= LEVELS )? + var alt227=2; + var LA227_0 = this.input.LA(1); + + if ( ((LA227_0>=EXACTLY && LA227_0<=FROM)) ) { + alt227=1; + } + else if ( (LA227_0==AT) ) { + var LA227_2 = this.input.LA(2); + + if ( (LA227_2==LEAST||LA227_2==MOST) ) { + alt227=1; + } + } + switch (alt227) { + case 1 : + // xquery/XQueryParser.g:1891:69: p_FTLiteralRange k+= LEVELS + this.pushFollow(XQueryParser.FOLLOW_p_FTLiteralRange_in_p_FTThesaurusID15455); + p_FTLiteralRange638=this.p_FTLiteralRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTLiteralRange638.getTree()); + k=this.match(this.input,LEVELS,XQueryParser.FOLLOW_LEVELS_in_p_FTThesaurusID15459); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTLiteralRange_return: (function() { + XQueryParser.p_FTLiteralRange_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTLiteralRange_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1895:1: p_FTLiteralRange : ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) ; + // $ANTLR start "p_FTLiteralRange" + p_FTLiteralRange: function() { + var retval = new XQueryParser.p_FTLiteralRange_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_IntegerLiteral639 = null; + var L_IntegerLiteral640 = null; + var L_IntegerLiteral641 = null; + var L_IntegerLiteral642 = null; + var TO643 = null; + var L_IntegerLiteral644 = null; + var k = null; + var list_k=null; + + var L_IntegerLiteral639_tree=null; + var L_IntegerLiteral640_tree=null; + var L_IntegerLiteral641_tree=null; + var L_IntegerLiteral642_tree=null; + var TO643_tree=null; + var L_IntegerLiteral644_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1896:9: ( ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) ) + // xquery/XQueryParser.g:1896:11: ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1896:11: ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) + var alt228=4; + switch ( this.input.LA(1) ) { + case EXACTLY: + alt228=1; + break; + case AT: + var LA228_2 = this.input.LA(2); + + if ( (LA228_2==LEAST) ) { + alt228=2; + } + else if ( (LA228_2==MOST) ) { + alt228=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 228, 2, this.input); + + throw nvae; + } + break; + case FROM: + alt228=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 228, 0, this.input); + + throw nvae; + } + + switch (alt228) { + case 1 : + // xquery/XQueryParser.g:1896:13: (k+= EXACTLY L_IntegerLiteral ) + // xquery/XQueryParser.g:1896:13: (k+= EXACTLY L_IntegerLiteral ) + // xquery/XQueryParser.g:1896:14: k+= EXACTLY L_IntegerLiteral + k=this.match(this.input,EXACTLY,XQueryParser.FOLLOW_EXACTLY_in_p_FTLiteralRange15494); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral639=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15496); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral639_tree = this.adaptor.create(L_IntegerLiteral639); + this.adaptor.addChild(root_0, L_IntegerLiteral639_tree); + } + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1897:13: (k+= AT k+= LEAST L_IntegerLiteral ) + // xquery/XQueryParser.g:1897:13: (k+= AT k+= LEAST L_IntegerLiteral ) + // xquery/XQueryParser.g:1897:14: k+= AT k+= LEAST L_IntegerLiteral + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTLiteralRange15514); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_FTLiteralRange15518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral640=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15520); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral640_tree = this.adaptor.create(L_IntegerLiteral640); + this.adaptor.addChild(root_0, L_IntegerLiteral640_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1898:13: (k+= AT k+= MOST L_IntegerLiteral ) + // xquery/XQueryParser.g:1898:13: (k+= AT k+= MOST L_IntegerLiteral ) + // xquery/XQueryParser.g:1898:14: k+= AT k+= MOST L_IntegerLiteral + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTLiteralRange15538); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,MOST,XQueryParser.FOLLOW_MOST_in_p_FTLiteralRange15542); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral641=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15544); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral641_tree = this.adaptor.create(L_IntegerLiteral641); + this.adaptor.addChild(root_0, L_IntegerLiteral641_tree); + } + + + + + + break; + case 4 : + // xquery/XQueryParser.g:1899:13: (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) + // xquery/XQueryParser.g:1899:13: (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) + // xquery/XQueryParser.g:1899:14: k+= FROM L_IntegerLiteral TO L_IntegerLiteral + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_FTLiteralRange15562); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral642=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15564); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral642_tree = this.adaptor.create(L_IntegerLiteral642); + this.adaptor.addChild(root_0, L_IntegerLiteral642_tree); + } + TO643=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_FTLiteralRange15566); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + TO643_tree = this.adaptor.create(TO643); + this.adaptor.addChild(root_0, TO643_tree); + } + L_IntegerLiteral644=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15568); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral644_tree = this.adaptor.create(L_IntegerLiteral644); + this.adaptor.addChild(root_0, L_IntegerLiteral644_tree); + } + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWordOption_return: (function() { + XQueryParser.p_FTStopWordOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWordOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1903:1: p_FTStopWordOption : ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) ; + // $ANTLR start "p_FTStopWordOption" + p_FTStopWordOption: function() { + var retval = new XQueryParser.p_FTStopWordOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTStopWords645 = null; + var p_FTStopWordsInclExcl646 = null; + var p_FTStopWordsInclExcl647 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1904:9: ( ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) ) + // xquery/XQueryParser.g:1904:11: ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1904:11: ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) + var alt231=3; + var LA231_0 = this.input.LA(1); + + if ( (LA231_0==STOP) ) { + var LA231_1 = this.input.LA(2); + + if ( (LA231_1==WORDS) ) { + var LA231_3 = this.input.LA(3); + + if ( (LA231_3==DEFAULT) ) { + alt231=2; + } + else if ( (LA231_3==AT||LA231_3==LPAREN) ) { + alt231=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 3, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 1, this.input); + + throw nvae; + } + } + else if ( (LA231_0==NO) ) { + alt231=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 0, this.input); + + throw nvae; + } + switch (alt231) { + case 1 : + // xquery/XQueryParser.g:1904:13: (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1904:13: (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1904:14: k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15604); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15608); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWords_in_p_FTStopWordOption15610); + p_FTStopWords645=this.p_FTStopWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWords645.getTree()); + // xquery/XQueryParser.g:1904:45: ( p_FTStopWordsInclExcl )* + loop229: + do { + var alt229=2; + var LA229_0 = this.input.LA(1); + + if ( (LA229_0==EXCEPT||LA229_0==UNION) ) { + alt229=1; + } + + + switch (alt229) { + case 1 : + // xquery/XQueryParser.g:1904:45: p_FTStopWordsInclExcl + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15612); + p_FTStopWordsInclExcl646=this.p_FTStopWordsInclExcl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordsInclExcl646.getTree()); + + + break; + + default : + break loop229; + } + } while (true); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1905:13: (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1905:13: (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1905:14: k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15631); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15635); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTStopWordOption15639); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1905:42: ( p_FTStopWordsInclExcl )* + loop230: + do { + var alt230=2; + var LA230_0 = this.input.LA(1); + + if ( (LA230_0==EXCEPT||LA230_0==UNION) ) { + alt230=1; + } + + + switch (alt230) { + case 1 : + // xquery/XQueryParser.g:1905:42: p_FTStopWordsInclExcl + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15641); + p_FTStopWordsInclExcl647=this.p_FTStopWordsInclExcl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordsInclExcl647.getTree()); + + + break; + + default : + break loop230; + } + } while (true); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1906:13: (k+= NO k+= STOP k+= WORDS ) + // xquery/XQueryParser.g:1906:13: (k+= NO k+= STOP k+= WORDS ) + // xquery/XQueryParser.g:1906:14: k+= NO k+= STOP k+= WORDS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTStopWordOption15660); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15664); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15668); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWords_return: (function() { + XQueryParser.p_FTStopWords_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWords_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1910:1: p_FTStopWords : ( (ka= AT p_StringLiteral ) | ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) ); + // $ANTLR start "p_FTStopWords" + p_FTStopWords: function() { + var retval = new XQueryParser.p_FTStopWords_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var LPAREN649 = null; + var COMMA651 = null; + var RPAREN653 = null; + var p_StringLiteral648 = null; + var p_StringLiteral650 = null; + var p_StringLiteral652 = null; + + var ka_tree=null; + var LPAREN649_tree=null; + var COMMA651_tree=null; + var RPAREN653_tree=null; + + try { + // xquery/XQueryParser.g:1911:9: ( (ka= AT p_StringLiteral ) | ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) ) + var alt233=2; + var LA233_0 = this.input.LA(1); + + if ( (LA233_0==AT) ) { + alt233=1; + } + else if ( (LA233_0==LPAREN) ) { + alt233=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 233, 0, this.input); + + throw nvae; + } + switch (alt233) { + case 1 : + // xquery/XQueryParser.g:1911:11: (ka= AT p_StringLiteral ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1911:11: (ka= AT p_StringLiteral ) + // xquery/XQueryParser.g:1911:12: ka= AT p_StringLiteral + ka=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTStopWords15702); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15706); + p_StringLiteral648=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral648.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1912:11: ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1912:11: ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) + // xquery/XQueryParser.g:1912:12: LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN + LPAREN649=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTStopWords15720); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN649_tree = this.adaptor.create(LPAREN649); + this.adaptor.addChild(root_0, LPAREN649_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15722); + p_StringLiteral650=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral650.getTree()); + // xquery/XQueryParser.g:1912:35: ( COMMA p_StringLiteral )* + loop232: + do { + var alt232=2; + var LA232_0 = this.input.LA(1); + + if ( (LA232_0==COMMA) ) { + alt232=1; + } + + + switch (alt232) { + case 1 : + // xquery/XQueryParser.g:1912:36: COMMA p_StringLiteral + COMMA651=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_FTStopWords15725); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA651_tree = this.adaptor.create(COMMA651); + this.adaptor.addChild(root_0, COMMA651_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15727); + p_StringLiteral652=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral652.getTree()); + + + break; + + default : + break loop232; + } + } while (true); + + RPAREN653=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTStopWords15731); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN653_tree = this.adaptor.create(RPAREN653); + this.adaptor.addChild(root_0, RPAREN653_tree); + } + + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWordsInclExcl_return: (function() { + XQueryParser.p_FTStopWordsInclExcl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWordsInclExcl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1916:1: p_FTStopWordsInclExcl : ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) ; + // $ANTLR start "p_FTStopWordsInclExcl" + p_FTStopWordsInclExcl: function() { + var retval = new XQueryParser.p_FTStopWordsInclExcl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTStopWords654 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1917:9: ( ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) ) + // xquery/XQueryParser.g:1917:11: ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1917:11: ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) + // xquery/XQueryParser.g:1917:13: (k+= UNION | k+= EXCEPT ) p_FTStopWords + // xquery/XQueryParser.g:1917:13: (k+= UNION | k+= EXCEPT ) + var alt234=2; + var LA234_0 = this.input.LA(1); + + if ( (LA234_0==UNION) ) { + alt234=1; + } + else if ( (LA234_0==EXCEPT) ) { + alt234=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 234, 0, this.input); + + throw nvae; + } + switch (alt234) { + case 1 : + // xquery/XQueryParser.g:1917:14: k+= UNION + k=this.match(this.input,UNION,XQueryParser.FOLLOW_UNION_in_p_FTStopWordsInclExcl15763); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1917:25: k+= EXCEPT + k=this.match(this.input,EXCEPT,XQueryParser.FOLLOW_EXCEPT_in_p_FTStopWordsInclExcl15769); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWords_in_p_FTStopWordsInclExcl15772); + p_FTStopWords654=this.p_FTStopWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWords654.getTree()); + + + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTLanguageOption_return: (function() { + XQueryParser.p_FTLanguageOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTLanguageOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1921:1: p_FTLanguageOption : kl= LANGUAGE p_StringLiteral ; + // $ANTLR start "p_FTLanguageOption" + p_FTLanguageOption: function() { + var retval = new XQueryParser.p_FTLanguageOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kl = null; + var p_StringLiteral655 = null; + + var kl_tree=null; + + try { + // xquery/XQueryParser.g:1922:9: (kl= LANGUAGE p_StringLiteral ) + // xquery/XQueryParser.g:1922:11: kl= LANGUAGE p_StringLiteral + root_0 = this.adaptor.nil(); + + kl=this.match(this.input,LANGUAGE,XQueryParser.FOLLOW_LANGUAGE_in_p_FTLanguageOption15804); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kl_tree = this.adaptor.create(kl); + this.adaptor.addChild(root_0, kl_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kl); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTLanguageOption15808); + p_StringLiteral655=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral655.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWildCardOption_return: (function() { + XQueryParser.p_FTWildCardOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWildCardOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1926:1: p_FTWildCardOption : (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) ; + // $ANTLR start "p_FTWildCardOption" + p_FTWildCardOption: function() { + var retval = new XQueryParser.p_FTWildCardOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1927:9: ( (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) ) + // xquery/XQueryParser.g:1927:11: (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1927:11: (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) + var alt235=2; + var LA235_0 = this.input.LA(1); + + if ( (LA235_0==WILDCARDS) ) { + alt235=1; + } + else if ( (LA235_0==NO) ) { + alt235=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 235, 0, this.input); + + throw nvae; + } + switch (alt235) { + case 1 : + // xquery/XQueryParser.g:1927:13: k+= WILDCARDS + k=this.match(this.input,WILDCARDS,XQueryParser.FOLLOW_WILDCARDS_in_p_FTWildCardOption15838); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1927:28: (k+= NO k+= WILDCARDS ) + // xquery/XQueryParser.g:1927:28: (k+= NO k+= WILDCARDS ) + // xquery/XQueryParser.g:1927:29: k+= NO k+= WILDCARDS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTWildCardOption15845); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WILDCARDS,XQueryParser.FOLLOW_WILDCARDS_in_p_FTWildCardOption15849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTExtensionOption_return: (function() { + XQueryParser.p_FTExtensionOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTExtensionOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1931:1: p_FTExtensionOption : ko= OPTION p_QName p_StringLiteral ; + // $ANTLR start "p_FTExtensionOption" + p_FTExtensionOption: function() { + var retval = new XQueryParser.p_FTExtensionOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + var p_QName656 = null; + var p_StringLiteral657 = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1932:9: (ko= OPTION p_QName p_StringLiteral ) + // xquery/XQueryParser.g:1932:11: ko= OPTION p_QName p_StringLiteral + root_0 = this.adaptor.nil(); + + ko=this.match(this.input,OPTION,XQueryParser.FOLLOW_OPTION_in_p_FTExtensionOption15882); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_FTExtensionOption15886); + p_QName656=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName656.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTExtensionOption15888); + p_StringLiteral657=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral657.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTIgnoreOption_return: (function() { + XQueryParser.p_FTIgnoreOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTIgnoreOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1936:1: p_FTIgnoreOption : k+= WITHOUT k+= CONTENT p_UnionExpr ; + // $ANTLR start "p_FTIgnoreOption" + p_FTIgnoreOption: function() { + var retval = new XQueryParser.p_FTIgnoreOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_UnionExpr658 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1937:9: (k+= WITHOUT k+= CONTENT p_UnionExpr ) + // xquery/XQueryParser.g:1937:11: k+= WITHOUT k+= CONTENT p_UnionExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WITHOUT,XQueryParser.FOLLOW_WITHOUT_in_p_FTIgnoreOption15916); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,CONTENT,XQueryParser.FOLLOW_CONTENT_in_p_FTIgnoreOption15920); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_FTIgnoreOption15924); + p_UnionExpr658=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr658.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Program_return: (function() { + XQueryParser.p_Program_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Program_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1947:1: p_Program : p_StatementsAndOptionalExpr ; + // $ANTLR start "p_Program" + p_Program: function() { + var retval = new XQueryParser.p_Program_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_StatementsAndOptionalExpr659 = null; + + + try { + // xquery/XQueryParser.g:1948:9: ( p_StatementsAndOptionalExpr ) + // xquery/XQueryParser.g:1948:11: p_StatementsAndOptionalExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_p_Program15956); + p_StatementsAndOptionalExpr659=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr659.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Statements_return: (function() { + XQueryParser.p_Statements_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Statements_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1952:1: p_Statements[strict] : ( p_Hybrid[$strict,true] )* ; + // $ANTLR start "p_Statements" + p_Statements: function(strict) { + var retval = new XQueryParser.p_Statements_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Hybrid660 = null; + + + try { + // xquery/XQueryParser.g:1953:9: ( ( p_Hybrid[$strict,true] )* ) + // xquery/XQueryParser.g:1953:11: ( p_Hybrid[$strict,true] )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1953:11: ( p_Hybrid[$strict,true] )* + loop236: + do { + var alt236=2; + var LA236_0 = this.input.LA(1); + + if ( ((LA236_0>=ANCESTOR && LA236_0<=QUOT_ER)||LA236_0==LPAREN||(LA236_0>=DOLLAR && LA236_0<=LBRACKET)||LA236_0==ANN_PERCENT||(LA236_0>=STAR && LA236_0<=SMALLER)||(LA236_0>=SLASH && LA236_0<=DOT_DOT)||LA236_0==ATTR_SIGN||(LA236_0>=APOS && LA236_0<=QUOT)||LA236_0==L_NCName||(LA236_0>=L_Pragma && LA236_0<=L_DoubleLiteral)||LA236_0==EXPLICITLY) ) { + alt236=1; + } + + + switch (alt236) { + case 1 : + // xquery/XQueryParser.g:1953:11: p_Hybrid[$strict,true] + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_Statements15983); + p_Hybrid660=this.p_Hybrid(strict, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid660.getTree()); + + + break; + + default : + break loop236; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StatementsAndExpr_return: (function() { + XQueryParser.p_StatementsAndExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StatementsAndExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1957:1: p_StatementsAndExpr : p_Statements[false] ; + // $ANTLR start "p_StatementsAndExpr" + p_StatementsAndExpr: function() { + var retval = new XQueryParser.p_StatementsAndExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Statements661 = null; + + + try { + // xquery/XQueryParser.g:1958:9: ( p_Statements[false] ) + // xquery/XQueryParser.g:1958:11: p_Statements[false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_StatementsAndExpr16011); + p_Statements661=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements661.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StatementsAndOptionalExpr_return: (function() { + XQueryParser.p_StatementsAndOptionalExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StatementsAndOptionalExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1962:1: p_StatementsAndOptionalExpr : p_Statements[false] ; + // $ANTLR start "p_StatementsAndOptionalExpr" + p_StatementsAndOptionalExpr: function() { + var retval = new XQueryParser.p_StatementsAndOptionalExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Statements662 = null; + + + try { + // xquery/XQueryParser.g:1963:9: ( p_Statements[false] ) + // xquery/XQueryParser.g:1963:11: p_Statements[false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_StatementsAndOptionalExpr16038); + p_Statements662=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements662.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Hybrid_return: (function() { + XQueryParser.p_Hybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Hybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1966:1: p_Hybrid[strict, allowConcat] : ( p_HybridExprSingle[$strict,$allowConcat] | p_Statement ); + // $ANTLR start "p_Hybrid" + p_Hybrid: function(strict, allowConcat) { + var retval = new XQueryParser.p_Hybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_HybridExprSingle663 = null; + var p_Statement664 = null; + + + try { + // xquery/XQueryParser.g:1967:9: ( p_HybridExprSingle[$strict,$allowConcat] | p_Statement ) + var alt237=2; + alt237 = this.dfa237.predict(this.input); + switch (alt237) { + case 1 : + // xquery/XQueryParser.g:1967:11: p_HybridExprSingle[$strict,$allowConcat] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_HybridExprSingle_in_p_Hybrid16065); + p_HybridExprSingle663=this.p_HybridExprSingle(strict, allowConcat); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_HybridExprSingle663.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1968:11: p_Statement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statement_in_p_Hybrid16078); + p_Statement664=this.p_Statement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statement664.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + + if(re instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch3"); + var v = this.p_StepExpr(); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, v.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw re; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_Statement_return: (function() { + XQueryParser.p_Statement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Statement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1984:1: p_Statement : ( p_AssignStatement | p_BreakStatement | p_ContinueStatement | p_ExitStatement | p_VarDeclStatement | p_WhileStatement ); + // $ANTLR start "p_Statement" + p_Statement: function() { + var retval = new XQueryParser.p_Statement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_AssignStatement665 = null; + var p_BreakStatement666 = null; + var p_ContinueStatement667 = null; + var p_ExitStatement668 = null; + var p_VarDeclStatement669 = null; + var p_WhileStatement670 = null; + + + try { + // xquery/XQueryParser.g:1985:9: ( p_AssignStatement | p_BreakStatement | p_ContinueStatement | p_ExitStatement | p_VarDeclStatement | p_WhileStatement ) + var alt238=6; + switch ( this.input.LA(1) ) { + case DOLLAR: + alt238=1; + break; + case BREAK: + alt238=2; + break; + case CONTINUE: + alt238=3; + break; + case EXIT: + alt238=4; + break; + case VARIABLE: + case ANN_PERCENT: + alt238=5; + break; + case WHILE: + alt238=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 238, 0, this.input); + + throw nvae; + } + + switch (alt238) { + case 1 : + // xquery/XQueryParser.g:1985:11: p_AssignStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AssignStatement_in_p_Statement16109); + p_AssignStatement665=this.p_AssignStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AssignStatement665.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1986:11: p_BreakStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_BreakStatement_in_p_Statement16121); + p_BreakStatement666=this.p_BreakStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BreakStatement666.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1987:11: p_ContinueStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ContinueStatement_in_p_Statement16133); + p_ContinueStatement667=this.p_ContinueStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ContinueStatement667.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1988:11: p_ExitStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExitStatement_in_p_Statement16145); + p_ExitStatement668=this.p_ExitStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExitStatement668.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1989:11: p_VarDeclStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDeclStatement_in_p_Statement16157); + p_VarDeclStatement669=this.p_VarDeclStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDeclStatement669.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1990:11: p_WhileStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WhileStatement_in_p_Statement16169); + p_WhileStatement670=this.p_WhileStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WhileStatement670.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_HybridExprSingle_return: (function() { + XQueryParser.p_HybridExprSingle_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_HybridExprSingle_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1992:1: p_HybridExprSingle[strict, allowConcat] : e= p_Expr[$strict,$allowConcat] SEMICOLON ; + // $ANTLR start "p_HybridExprSingle" + p_HybridExprSingle: function(strict, allowConcat) { + var retval = new XQueryParser.p_HybridExprSingle_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON671 = null; + var e = null; + + var SEMICOLON671_tree=null; + + try { + // xquery/XQueryParser.g:1993:9: (e= p_Expr[$strict,$allowConcat] SEMICOLON ) + // xquery/XQueryParser.g:1993:11: e= p_Expr[$strict,$allowConcat] SEMICOLON + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_HybridExprSingle16196); + e=this.p_Expr(strict, allowConcat); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, e.getTree()); + if ( this.state.backtracking===0 ) { + if (strict || this.input.LT(1).getType() != SEMICOLON) throw new org.antlr.runtime.RecognitionException(this.input); + } + SEMICOLON671=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_HybridExprSingle16211); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON671_tree = this.adaptor.create(SEMICOLON671); + this.adaptor.addChild(root_0, SEMICOLON671_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + + if(re instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch4"); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, e.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw re; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_ApplyStatement_return: (function() { + XQueryParser.p_ApplyStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ApplyStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2028:1: p_ApplyStatement : p_ExprSimple SEMICOLON ; + // $ANTLR start "p_ApplyStatement" + p_ApplyStatement: function() { + var retval = new XQueryParser.p_ApplyStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON673 = null; + var p_ExprSimple672 = null; + + var SEMICOLON673_tree=null; + + try { + // xquery/XQueryParser.g:2029:9: ( p_ExprSimple SEMICOLON ) + // xquery/XQueryParser.g:2029:11: p_ExprSimple SEMICOLON + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSimple_in_p_ApplyStatement16261); + p_ExprSimple672=this.p_ExprSimple(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSimple672.getTree()); + SEMICOLON673=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ApplyStatement16263); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON673_tree = this.adaptor.create(SEMICOLON673); + this.adaptor.addChild(root_0, SEMICOLON673_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AssignStatement_return: (function() { + XQueryParser.p_AssignStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AssignStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2033:1: p_AssignStatement : d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON ; + // $ANTLR start "p_AssignStatement" + p_AssignStatement: function() { + var retval = new XQueryParser.p_AssignStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var BIND674 = null; + var SEMICOLON676 = null; + var v = null; + var p_ExprSingle675 = null; + + var d_tree=null; + var BIND674_tree=null; + var SEMICOLON676_tree=null; + + try { + // xquery/XQueryParser.g:2034:9: (d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON ) + // xquery/XQueryParser.g:2034:11: d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_AssignStatement16291); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_AssignStatement16295); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + BIND674=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_AssignStatement16299); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND674_tree = this.adaptor.create(BIND674); + this.adaptor.addChild(root_0, BIND674_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_AssignStatement16301); + p_ExprSingle675=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle675.getTree()); + SEMICOLON676=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_AssignStatement16304); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON676_tree = this.adaptor.create(SEMICOLON676); + this.adaptor.addChild(root_0, SEMICOLON676_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockStatement_return: (function() { + XQueryParser.p_BlockStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2038:1: p_BlockStatement : LBRACKET p_Statements[false] RBRACKET ; + // $ANTLR start "p_BlockStatement" + p_BlockStatement: function() { + var retval = new XQueryParser.p_BlockStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET677 = null; + var RBRACKET679 = null; + var p_Statements678 = null; + + var LBRACKET677_tree=null; + var RBRACKET679_tree=null; + + try { + // xquery/XQueryParser.g:2039:9: ( LBRACKET p_Statements[false] RBRACKET ) + // xquery/XQueryParser.g:2039:11: LBRACKET p_Statements[false] RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET677=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockStatement16330); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET677_tree = this.adaptor.create(LBRACKET677); + this.adaptor.addChild(root_0, LBRACKET677_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_BlockStatement16332); + p_Statements678=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements678.getTree()); + RBRACKET679=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockStatement16335); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET679_tree = this.adaptor.create(RBRACKET679); + this.adaptor.addChild(root_0, RBRACKET679_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockHybrid_return: (function() { + XQueryParser.p_BlockHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2042:1: p_BlockHybrid[strict] : LBRACKET p_Statements[$strict] RBRACKET ; + // $ANTLR start "p_BlockHybrid" + p_BlockHybrid: function(strict) { + var retval = new XQueryParser.p_BlockHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET680 = null; + var RBRACKET682 = null; + var p_Statements681 = null; + + var LBRACKET680_tree=null; + var RBRACKET682_tree=null; + + try { + // xquery/XQueryParser.g:2043:9: ( LBRACKET p_Statements[$strict] RBRACKET ) + // xquery/XQueryParser.g:2043:11: LBRACKET p_Statements[$strict] RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET680=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockHybrid16361); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET680_tree = this.adaptor.create(LBRACKET680); + this.adaptor.addChild(root_0, LBRACKET680_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_BlockHybrid16363); + p_Statements681=this.p_Statements(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements681.getTree()); + RBRACKET682=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockHybrid16366); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET682_tree = this.adaptor.create(RBRACKET682); + this.adaptor.addChild(root_0, RBRACKET682_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BreakStatement_return: (function() { + XQueryParser.p_BreakStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BreakStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2047:1: p_BreakStatement : k= BREAK k= LOOP SEMICOLON ; + // $ANTLR start "p_BreakStatement" + p_BreakStatement: function() { + var retval = new XQueryParser.p_BreakStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON683 = null; + + var k_tree=null; + var SEMICOLON683_tree=null; + + try { + // xquery/XQueryParser.g:2048:9: (k= BREAK k= LOOP SEMICOLON ) + // xquery/XQueryParser.g:2048:11: k= BREAK k= LOOP SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,BREAK,XQueryParser.FOLLOW_BREAK_in_p_BreakStatement16394); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,LOOP,XQueryParser.FOLLOW_LOOP_in_p_BreakStatement16400); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + SEMICOLON683=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_BreakStatement16404); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON683_tree = this.adaptor.create(SEMICOLON683); + this.adaptor.addChild(root_0, SEMICOLON683_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ContinueStatement_return: (function() { + XQueryParser.p_ContinueStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ContinueStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2052:1: p_ContinueStatement : k= CONTINUE k= LOOP SEMICOLON ; + // $ANTLR start "p_ContinueStatement" + p_ContinueStatement: function() { + var retval = new XQueryParser.p_ContinueStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON684 = null; + + var k_tree=null; + var SEMICOLON684_tree=null; + + try { + // xquery/XQueryParser.g:2053:9: (k= CONTINUE k= LOOP SEMICOLON ) + // xquery/XQueryParser.g:2053:11: k= CONTINUE k= LOOP SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CONTINUE,XQueryParser.FOLLOW_CONTINUE_in_p_ContinueStatement16432); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,LOOP,XQueryParser.FOLLOW_LOOP_in_p_ContinueStatement16438); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + SEMICOLON684=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ContinueStatement16442); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON684_tree = this.adaptor.create(SEMICOLON684); + this.adaptor.addChild(root_0, SEMICOLON684_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExitStatement_return: (function() { + XQueryParser.p_ExitStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExitStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2057:1: p_ExitStatement : k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON ; + // $ANTLR start "p_ExitStatement" + p_ExitStatement: function() { + var retval = new XQueryParser.p_ExitStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON686 = null; + var p_ExprSingle685 = null; + + var k_tree=null; + var SEMICOLON686_tree=null; + + try { + // xquery/XQueryParser.g:2058:9: (k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON ) + // xquery/XQueryParser.g:2058:11: k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,EXIT,XQueryParser.FOLLOW_EXIT_in_p_ExitStatement16470); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURNING,XQueryParser.FOLLOW_RETURNING_in_p_ExitStatement16476); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ExitStatement16480); + p_ExprSingle685=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle685.getTree()); + SEMICOLON686=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ExitStatement16483); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON686_tree = this.adaptor.create(SEMICOLON686); + this.adaptor.addChild(root_0, SEMICOLON686_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FLWORStatement_return: (function() { + XQueryParser.p_FLWORStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FLWORStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2062:1: p_FLWORStatement : p_InitialClause ( p_IntermediateClause )* p_ReturnStatement ; + // $ANTLR start "p_FLWORStatement" + p_FLWORStatement: function() { + var retval = new XQueryParser.p_FLWORStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause687 = null; + var p_IntermediateClause688 = null; + var p_ReturnStatement689 = null; + + + try { + // xquery/XQueryParser.g:2063:9: ( p_InitialClause ( p_IntermediateClause )* p_ReturnStatement ) + // xquery/XQueryParser.g:2063:11: p_InitialClause ( p_IntermediateClause )* p_ReturnStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_FLWORStatement16509); + p_InitialClause687=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause687.getTree()); + // xquery/XQueryParser.g:2063:27: ( p_IntermediateClause )* + loop239: + do { + var alt239=2; + var LA239_0 = this.input.LA(1); + + if ( (LA239_0==FOR||LA239_0==LET||LA239_0==ORDER||LA239_0==STABLE||LA239_0==WHERE||LA239_0==COUNT||LA239_0==GROUP) ) { + alt239=1; + } + + + switch (alt239) { + case 1 : + // xquery/XQueryParser.g:2063:27: p_IntermediateClause + this.pushFollow(XQueryParser.FOLLOW_p_IntermediateClause_in_p_FLWORStatement16511); + p_IntermediateClause688=this.p_IntermediateClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntermediateClause688.getTree()); + + + break; + + default : + break loop239; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ReturnStatement_in_p_FLWORStatement16514); + p_ReturnStatement689=this.p_ReturnStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReturnStatement689.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReturnStatement_return: (function() { + XQueryParser.p_ReturnStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReturnStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2067:1: p_ReturnStatement : k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_ReturnStatement" + p_ReturnStatement: function() { + var retval = new XQueryParser.p_ReturnStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_Hybrid690 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2068:9: (k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2068:11: k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_ReturnStatement16546); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_ReturnStatement16550); + p_Hybrid690=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid690.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IfStatement_return: (function() { + XQueryParser.p_IfStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IfStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2072:1: p_IfStatement : k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] ; + // $ANTLR start "p_IfStatement" + p_IfStatement: function() { + var retval = new XQueryParser.p_IfStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN691 = null; + var RPAREN693 = null; + var p_Expr692 = null; + var p_Hybrid694 = null; + var p_Hybrid695 = null; + + var k_tree=null; + var LPAREN691_tree=null; + var RPAREN693_tree=null; + + try { + // xquery/XQueryParser.g:2073:9: (k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2073:11: k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_p_IfStatement16579); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN691=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_IfStatement16583); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN691_tree = this.adaptor.create(LPAREN691); + this.adaptor.addChild(root_0, LPAREN691_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_IfStatement16585); + p_Expr692=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr692.getTree()); + RPAREN693=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_IfStatement16588); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN693_tree = this.adaptor.create(RPAREN693); + this.adaptor.addChild(root_0, RPAREN693_tree); + } + k=this.match(this.input,THEN,XQueryParser.FOLLOW_THEN_in_p_IfStatement16592); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfStatement16596); + p_Hybrid694=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid694.getTree()); + k=this.match(this.input,ELSE,XQueryParser.FOLLOW_ELSE_in_p_IfStatement16601); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfStatement16605); + p_Hybrid695=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid695.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchStatement_return: (function() { + XQueryParser.p_SwitchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2077:1: p_SwitchStatement : k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_SwitchStatement" + p_SwitchStatement: function() { + var retval = new XQueryParser.p_SwitchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN696 = null; + var RPAREN698 = null; + var p_Expr697 = null; + var p_SwitchCaseStatement699 = null; + var p_Hybrid700 = null; + + var k_tree=null; + var LPAREN696_tree=null; + var RPAREN698_tree=null; + + try { + // xquery/XQueryParser.g:2078:9: (k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2078:11: k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_p_SwitchStatement16634); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN696=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SwitchStatement16638); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN696_tree = this.adaptor.create(LPAREN696); + this.adaptor.addChild(root_0, LPAREN696_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_SwitchStatement16640); + p_Expr697=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr697.getTree()); + RPAREN698=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SwitchStatement16643); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN698_tree = this.adaptor.create(RPAREN698); + this.adaptor.addChild(root_0, RPAREN698_tree); + } + // xquery/XQueryParser.g:2078:67: ( p_SwitchCaseStatement )+ + var cnt240=0; + loop240: + do { + var alt240=2; + var LA240_0 = this.input.LA(1); + + if ( (LA240_0==CASE) ) { + alt240=1; + } + + + switch (alt240) { + case 1 : + // xquery/XQueryParser.g:2078:67: p_SwitchCaseStatement + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseStatement_in_p_SwitchStatement16645); + p_SwitchCaseStatement699=this.p_SwitchCaseStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseStatement699.getTree()); + + + break; + + default : + if ( cnt240 >= 1 ) { + break loop240; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(240, this.input); + throw eee; + } + cnt240++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SwitchStatement16650); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchStatement16656); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchStatement16660); + p_Hybrid700=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid700.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseStatement_return: (function() { + XQueryParser.p_SwitchCaseStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2082:1: p_SwitchCaseStatement : (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_SwitchCaseStatement" + p_SwitchCaseStatement: function() { + var retval = new XQueryParser.p_SwitchCaseStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_SwitchCaseOperand701 = null; + var p_Hybrid702 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2083:9: ( (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2083:11: (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2083:11: (k= CASE p_SwitchCaseOperand )+ + var cnt241=0; + loop241: + do { + var alt241=2; + var LA241_0 = this.input.LA(1); + + if ( (LA241_0==CASE) ) { + alt241=1; + } + + + switch (alt241) { + case 1 : + // xquery/XQueryParser.g:2083:12: k= CASE p_SwitchCaseOperand + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_SwitchCaseStatement16690); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseStatement16694); + p_SwitchCaseOperand701=this.p_SwitchCaseOperand(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseOperand701.getTree()); + + + break; + + default : + if ( cnt241 >= 1 ) { + break loop241; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(241, this.input); + throw eee; + } + cnt241++; + } while (true); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchCaseStatement16700); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchCaseStatement16704); + p_Hybrid702=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid702.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchStatement_return: (function() { + XQueryParser.p_TryCatchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2087:1: p_TryCatchStatement : k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ ; + // $ANTLR start "p_TryCatchStatement" + p_TryCatchStatement: function() { + var retval = new XQueryParser.p_TryCatchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_BlockStatement703 = null; + var p_CatchErrorList704 = null; + var p_BlockStatement705 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2088:9: (k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ ) + // xquery/XQueryParser.g:2088:11: k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryCatchStatement16733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_BlockStatement_in_p_TryCatchStatement16737); + p_BlockStatement703=this.p_BlockStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockStatement703.getTree()); + // xquery/XQueryParser.g:2088:49: (k= CATCH p_CatchErrorList p_BlockStatement )+ + var cnt242=0; + loop242: + do { + var alt242=2; + var LA242_0 = this.input.LA(1); + + if ( (LA242_0==CATCH) ) { + alt242=1; + } + + + switch (alt242) { + case 1 : + // xquery/XQueryParser.g:2088:50: k= CATCH p_CatchErrorList p_BlockStatement + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_TryCatchStatement16742); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_TryCatchStatement16746); + p_CatchErrorList704=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList704.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_BlockStatement_in_p_TryCatchStatement16748); + p_BlockStatement705=this.p_BlockStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockStatement705.getTree()); + + + break; + + default : + if ( cnt242 >= 1 ) { + break loop242; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(242, this.input); + throw eee; + } + cnt242++; + } while (true); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchHybrid_return: (function() { + XQueryParser.p_TryCatchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2091:1: p_TryCatchHybrid[strict] : k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ ; + // $ANTLR start "p_TryCatchHybrid" + p_TryCatchHybrid: function(strict) { + var retval = new XQueryParser.p_TryCatchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_BlockHybrid706 = null; + var p_CatchErrorList707 = null; + var p_BlockHybrid708 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2092:9: (k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ ) + // xquery/XQueryParser.g:2092:11: k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryCatchHybrid16780); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16784); + p_BlockHybrid706=this.p_BlockHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockHybrid706.getTree()); + // xquery/XQueryParser.g:2092:55: (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ + var cnt243=0; + loop243: + do { + var alt243=2; + var LA243_0 = this.input.LA(1); + + if ( (LA243_0==CATCH) ) { + alt243=1; + } + + + switch (alt243) { + case 1 : + // xquery/XQueryParser.g:2092:56: k= CATCH p_CatchErrorList p_BlockHybrid[$strict] + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_TryCatchHybrid16790); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_TryCatchHybrid16794); + p_CatchErrorList707=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList707.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16796); + p_BlockHybrid708=this.p_BlockHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockHybrid708.getTree()); + + + break; + + default : + if ( cnt243 >= 1 ) { + break loop243; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(243, this.input); + throw eee; + } + cnt243++; + } while (true); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeswitchStatement_return: (function() { + XQueryParser.p_TypeswitchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeswitchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2096:1: p_TypeswitchStatement : k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_TypeswitchStatement" + p_TypeswitchStatement: function() { + var retval = new XQueryParser.p_TypeswitchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var LPAREN709 = null; + var RPAREN711 = null; + var v = null; + var p_Expr710 = null; + var p_CaseStatement712 = null; + var p_Hybrid713 = null; + + var k_tree=null; + var d_tree=null; + var LPAREN709_tree=null; + var RPAREN711_tree=null; + + try { + // xquery/XQueryParser.g:2097:9: (k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2097:11: k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_p_TypeswitchStatement16829); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN709=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypeswitchStatement16833); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN709_tree = this.adaptor.create(LPAREN709); + this.adaptor.addChild(root_0, LPAREN709_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TypeswitchStatement16835); + p_Expr710=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr710.getTree()); + RPAREN711=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypeswitchStatement16838); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN711_tree = this.adaptor.create(RPAREN711); + this.adaptor.addChild(root_0, RPAREN711_tree); + } + // xquery/XQueryParser.g:2097:71: ( p_CaseStatement )+ + var cnt244=0; + loop244: + do { + var alt244=2; + var LA244_0 = this.input.LA(1); + + if ( (LA244_0==CASE) ) { + alt244=1; + } + + + switch (alt244) { + case 1 : + // xquery/XQueryParser.g:2097:71: p_CaseStatement + this.pushFollow(XQueryParser.FOLLOW_p_CaseStatement_in_p_TypeswitchStatement16840); + p_CaseStatement712=this.p_CaseStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CaseStatement712.getTree()); + + + break; + + default : + if ( cnt244 >= 1 ) { + break loop244; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(244, this.input); + throw eee; + } + cnt244++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_TypeswitchStatement16845); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:2097:113: (d= DOLLAR v= p_VarName )? + var alt245=2; + var LA245_0 = this.input.LA(1); + + if ( (LA245_0==DOLLAR) ) { + alt245=1; + } + switch (alt245) { + case 1 : + // xquery/XQueryParser.g:2097:114: d= DOLLAR v= p_VarName + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TypeswitchStatement16852); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TypeswitchStatement16856); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TypeswitchStatement16864); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_TypeswitchStatement16868); + p_Hybrid713=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid713.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CaseStatement_return: (function() { + XQueryParser.p_CaseStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CaseStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2101:1: p_CaseStatement : k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_CaseStatement" + p_CaseStatement: function() { + var retval = new XQueryParser.p_CaseStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var AS714 = null; + var v = null; + var p_SequenceType715 = null; + var p_Hybrid716 = null; + + var k_tree=null; + var d_tree=null; + var AS714_tree=null; + + try { + // xquery/XQueryParser.g:2102:9: (k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2102:11: k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_CaseStatement16897); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:2102:33: (d= DOLLAR v= p_VarName AS )? + var alt246=2; + var LA246_0 = this.input.LA(1); + + if ( (LA246_0==DOLLAR) ) { + alt246=1; + } + switch (alt246) { + case 1 : + // xquery/XQueryParser.g:2102:34: d= DOLLAR v= p_VarName AS + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CaseStatement16904); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CaseStatement16908); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + AS714=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CaseStatement16912); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + AS714_tree = this.adaptor.create(AS714); + this.adaptor.addChild(root_0, AS714_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_CaseStatement16916); + p_SequenceType715=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType715.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_CaseStatement16920); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_CaseStatement16924); + p_Hybrid716=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid716.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDeclStatement_return: (function() { + XQueryParser.p_VarDeclStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDeclStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2106:1: p_VarDeclStatement : ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON ; + // $ANTLR start "p_VarDeclStatement" + p_VarDeclStatement: function() { + var retval = new XQueryParser.p_VarDeclStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var e = null; + var BIND719 = null; + var COMMA721 = null; + var BIND723 = null; + var SEMICOLON725 = null; + var v = null; + var w = null; + var p_Annotation717 = null; + var p_TypeDeclaration718 = null; + var p_ExprSingle720 = null; + var p_TypeDeclaration722 = null; + var p_ExprSingle724 = null; + + var k_tree=null; + var d_tree=null; + var e_tree=null; + var BIND719_tree=null; + var COMMA721_tree=null; + var BIND723_tree=null; + var SEMICOLON725_tree=null; + + try { + // xquery/XQueryParser.g:2107:9: ( ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON ) + // xquery/XQueryParser.g:2107:11: ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2107:11: ( p_Annotation )* + loop247: + do { + var alt247=2; + var LA247_0 = this.input.LA(1); + + if ( (LA247_0==ANN_PERCENT) ) { + alt247=1; + } + + + switch (alt247) { + case 1 : + // xquery/XQueryParser.g:2107:11: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_p_VarDeclStatement16951); + p_Annotation717=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation717.getTree()); + + + break; + + default : + break loop247; + } + } while (true); + + k=this.match(this.input,VARIABLE,XQueryParser.FOLLOW_VARIABLE_in_p_VarDeclStatement16956); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDeclStatement16962); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarDeclStatement16966); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:2107:98: ( p_TypeDeclaration )? + var alt248=2; + var LA248_0 = this.input.LA(1); + + if ( (LA248_0==AS) ) { + alt248=1; + } + switch (alt248) { + case 1 : + // xquery/XQueryParser.g:2107:98: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement16970); + p_TypeDeclaration718=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration718.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2107:117: ( BIND p_ExprSingle[true] )? + var alt249=2; + var LA249_0 = this.input.LA(1); + + if ( (LA249_0==BIND) ) { + alt249=1; + } + switch (alt249) { + case 1 : + // xquery/XQueryParser.g:2107:118: BIND p_ExprSingle[true] + BIND719=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDeclStatement16974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND719_tree = this.adaptor.create(BIND719); + this.adaptor.addChild(root_0, BIND719_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDeclStatement16976); + p_ExprSingle720=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle720.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2108:11: ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* + loop252: + do { + var alt252=2; + var LA252_0 = this.input.LA(1); + + if ( (LA252_0==COMMA) ) { + alt252=1; + } + + + switch (alt252) { + case 1 : + // xquery/XQueryParser.g:2108:12: COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? + COMMA721=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_VarDeclStatement16992); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA721_tree = this.adaptor.create(COMMA721); + this.adaptor.addChild(root_0, COMMA721_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDeclStatement16996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarDeclStatement17000); + w=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + // xquery/XQueryParser.g:2108:65: ( p_TypeDeclaration )? + var alt250=2; + var LA250_0 = this.input.LA(1); + + if ( (LA250_0==AS) ) { + alt250=1; + } + switch (alt250) { + case 1 : + // xquery/XQueryParser.g:2108:65: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement17004); + p_TypeDeclaration722=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration722.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2108:84: ( BIND p_ExprSingle[true] )? + var alt251=2; + var LA251_0 = this.input.LA(1); + + if ( (LA251_0==BIND) ) { + alt251=1; + } + switch (alt251) { + case 1 : + // xquery/XQueryParser.g:2108:85: BIND p_ExprSingle[true] + BIND723=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDeclStatement17008); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND723_tree = this.adaptor.create(BIND723); + this.adaptor.addChild(root_0, BIND723_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDeclStatement17010); + p_ExprSingle724=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle724.getTree()); + + + break; + + } + + + + break; + + default : + break loop252; + } + } while (true); + + SEMICOLON725=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_VarDeclStatement17027); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON725_tree = this.adaptor.create(SEMICOLON725); + this.adaptor.addChild(root_0, SEMICOLON725_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WhileStatement_return: (function() { + XQueryParser.p_WhileStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WhileStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2113:1: p_WhileStatement : k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] ; + // $ANTLR start "p_WhileStatement" + p_WhileStatement: function() { + var retval = new XQueryParser.p_WhileStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN726 = null; + var RPAREN728 = null; + var p_Expr727 = null; + var p_Hybrid729 = null; + + var k_tree=null; + var LPAREN726_tree=null; + var RPAREN728_tree=null; + + try { + // xquery/XQueryParser.g:2114:9: (k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2114:11: k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WHILE,XQueryParser.FOLLOW_WHILE_in_p_WhileStatement17055); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN726=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_WhileStatement17059); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN726_tree = this.adaptor.create(LPAREN726); + this.adaptor.addChild(root_0, LPAREN726_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_WhileStatement17061); + p_Expr727=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr727.getTree()); + RPAREN728=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_WhileStatement17064); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN728_tree = this.adaptor.create(RPAREN728); + this.adaptor.addChild(root_0, RPAREN728_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_WhileStatement17066); + p_Hybrid729=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid729.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExprSimple_return: (function() { + XQueryParser.p_ExprSimple_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExprSimple_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2118:1: p_ExprSimple : ( p_QuantifiedExpr | p_OrExpr | {...}? => pg_UpdateExpr ); + // $ANTLR start "p_ExprSimple" + p_ExprSimple: function() { + var retval = new XQueryParser.p_ExprSimple_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QuantifiedExpr730 = null; + var p_OrExpr731 = null; + var pg_UpdateExpr732 = null; + + + try { + // xquery/XQueryParser.g:2119:9: ( p_QuantifiedExpr | p_OrExpr | {...}? => pg_UpdateExpr ) + var alt253=3; + alt253 = this.dfa253.predict(this.input); + switch (alt253) { + case 1 : + // xquery/XQueryParser.g:2119:11: p_QuantifiedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QuantifiedExpr_in_p_ExprSimple17093); + p_QuantifiedExpr730=this.p_QuantifiedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QuantifiedExpr730.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2120:11: p_OrExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrExpr_in_p_ExprSimple17105); + p_OrExpr731=this.p_OrExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrExpr731.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:2121:11: {...}? => pg_UpdateExpr + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ExprSimple", "this.lc(XQU)"); + } + this.pushFollow(XQueryParser.FOLLOW_pg_UpdateExpr_in_p_ExprSimple17120); + pg_UpdateExpr732=this.pg_UpdateExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_UpdateExpr732.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockExpr_return: (function() { + XQueryParser.p_BlockExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2125:1: p_BlockExpr : LBRACKET p_StatementsAndExpr RBRACKET ; + // $ANTLR start "p_BlockExpr" + p_BlockExpr: function() { + var retval = new XQueryParser.p_BlockExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET733 = null; + var RBRACKET735 = null; + var p_StatementsAndExpr734 = null; + + var LBRACKET733_tree=null; + var RBRACKET735_tree=null; + + try { + // xquery/XQueryParser.g:2126:9: ( LBRACKET p_StatementsAndExpr RBRACKET ) + // xquery/XQueryParser.g:2126:11: LBRACKET p_StatementsAndExpr RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET733=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockExpr17146); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET733_tree = this.adaptor.create(LBRACKET733); + this.adaptor.addChild(root_0, LBRACKET733_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndExpr_in_p_BlockExpr17148); + p_StatementsAndExpr734=this.p_StatementsAndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndExpr734.getTree()); + RBRACKET735=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockExpr17150); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET735_tree = this.adaptor.create(RBRACKET735); + this.adaptor.addChild(root_0, RBRACKET735_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CollectionDecl_return: (function() { + XQueryParser.p_CollectionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CollectionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2133:1: p_CollectionDecl : k= COLLECTION p_QName ( p_CollectionTypeDecl )? ; + // $ANTLR start "p_CollectionDecl" + p_CollectionDecl: function() { + var retval = new XQueryParser.p_CollectionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName736 = null; + var p_CollectionTypeDecl737 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2134:9: (k= COLLECTION p_QName ( p_CollectionTypeDecl )? ) + // xquery/XQueryParser.g:2134:11: k= COLLECTION p_QName ( p_CollectionTypeDecl )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_CollectionDecl17181); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_CollectionDecl17185); + p_QName736=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName736.getTree()); + // xquery/XQueryParser.g:2134:47: ( p_CollectionTypeDecl )? + var alt254=2; + var LA254_0 = this.input.LA(1); + + if ( (LA254_0==AS) ) { + alt254=1; + } + switch (alt254) { + case 1 : + // xquery/XQueryParser.g:2134:47: p_CollectionTypeDecl + this.pushFollow(XQueryParser.FOLLOW_p_CollectionTypeDecl_in_p_CollectionDecl17187); + p_CollectionTypeDecl737=this.p_CollectionTypeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CollectionTypeDecl737.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CollectionTypeDecl_return: (function() { + XQueryParser.p_CollectionTypeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CollectionTypeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2137:1: p_CollectionTypeDecl : (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) ; + // $ANTLR start "p_CollectionTypeDecl" + p_CollectionTypeDecl: function() { + var retval = new XQueryParser.p_CollectionTypeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_KindTest738 = null; + var p_OccurrenceIndicator739 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2138:9: ( (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) ) + // xquery/XQueryParser.g:2138:11: (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2138:11: (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) + // xquery/XQueryParser.g:2138:12: k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CollectionTypeDecl17216); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_CollectionTypeDecl17220); + p_KindTest738=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_KindTest738.getTree()); + // xquery/XQueryParser.g:2138:43: ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? + var alt255=2; + var LA255_0 = this.input.LA(1); + + if ( ((LA255_0>=QUESTION && LA255_0<=PLUS)) && (this.synpred18_XQueryParser())) { + alt255=1; + } + switch (alt255) { + case 1 : + // xquery/XQueryParser.g:2138:44: ( p_OccurrenceIndicator )=> p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_CollectionTypeDecl17229); + p_OccurrenceIndicator739=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OccurrenceIndicator739.getTree()); + + + break; + + } + + + + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexDecl_return: (function() { + XQueryParser.p_IndexDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2141:1: p_IndexDecl : k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* ; + // $ANTLR start "p_IndexDecl" + p_IndexDecl: function() { + var retval = new XQueryParser.p_IndexDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA743 = null; + var p_IndexName740 = null; + var p_IndexDomainExpr741 = null; + var p_IndexKeySpec742 = null; + var p_IndexKeySpec744 = null; + + var k_tree=null; + var COMMA743_tree=null; + + try { + // xquery/XQueryParser.g:2142:9: (k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* ) + // xquery/XQueryParser.g:2142:11: k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INDEX,XQueryParser.FOLLOW_INDEX_in_p_IndexDecl17259); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexName_in_p_IndexDecl17263); + p_IndexName740=this.p_IndexName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexName740.getTree()); + k=this.match(this.input,ON,XQueryParser.FOLLOW_ON_in_p_IndexDecl17267); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_IndexDecl17273); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexDomainExpr_in_p_IndexDecl17277); + p_IndexDomainExpr741=this.p_IndexDomainExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexDomainExpr741.getTree()); + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_IndexDecl17281); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeySpec_in_p_IndexDecl17285); + p_IndexKeySpec742=this.p_IndexKeySpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeySpec742.getTree()); + // xquery/XQueryParser.g:2142:142: ( COMMA p_IndexKeySpec )* + loop256: + do { + var alt256=2; + var LA256_0 = this.input.LA(1); + + if ( (LA256_0==COMMA) ) { + alt256=1; + } + + + switch (alt256) { + case 1 : + // xquery/XQueryParser.g:2142:143: COMMA p_IndexKeySpec + COMMA743=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_IndexDecl17288); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA743_tree = this.adaptor.create(COMMA743); + this.adaptor.addChild(root_0, COMMA743_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeySpec_in_p_IndexDecl17290); + p_IndexKeySpec744=this.p_IndexKeySpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeySpec744.getTree()); + + + break; + + default : + break loop256; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexName_return: (function() { + XQueryParser.p_IndexName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2145:1: p_IndexName : p_QName ; + // $ANTLR start "p_IndexName" + p_IndexName: function() { + var retval = new XQueryParser.p_IndexName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName745 = null; + + + try { + // xquery/XQueryParser.g:2146:9: ( p_QName ) + // xquery/XQueryParser.g:2146:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_IndexName17317); + p_QName745=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName745.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexDomainExpr_return: (function() { + XQueryParser.p_IndexDomainExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexDomainExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2149:1: p_IndexDomainExpr : p_PathExpr ; + // $ANTLR start "p_IndexDomainExpr" + p_IndexDomainExpr: function() { + var retval = new XQueryParser.p_IndexDomainExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PathExpr746 = null; + + + try { + // xquery/XQueryParser.g:2150:9: ( p_PathExpr ) + // xquery/XQueryParser.g:2150:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_IndexDomainExpr17342); + p_PathExpr746=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr746.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeySpec_return: (function() { + XQueryParser.p_IndexKeySpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeySpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2153:1: p_IndexKeySpec : p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? ; + // $ANTLR start "p_IndexKeySpec" + p_IndexKeySpec: function() { + var retval = new XQueryParser.p_IndexKeySpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_IndexKeyExpr747 = null; + var p_IndexKeyTypeDecl748 = null; + var p_IndexKeyCollation749 = null; + + + try { + // xquery/XQueryParser.g:2154:9: ( p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? ) + // xquery/XQueryParser.g:2154:11: p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyExpr_in_p_IndexKeySpec17367); + p_IndexKeyExpr747=this.p_IndexKeyExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyExpr747.getTree()); + // xquery/XQueryParser.g:2154:26: ( p_IndexKeyTypeDecl )? + var alt257=2; + var LA257_0 = this.input.LA(1); + + if ( (LA257_0==AS) ) { + alt257=1; + } + switch (alt257) { + case 1 : + // xquery/XQueryParser.g:2154:26: p_IndexKeyTypeDecl + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyTypeDecl_in_p_IndexKeySpec17369); + p_IndexKeyTypeDecl748=this.p_IndexKeyTypeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyTypeDecl748.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2154:46: ( p_IndexKeyCollation )? + var alt258=2; + var LA258_0 = this.input.LA(1); + + if ( (LA258_0==COLLATION) ) { + alt258=1; + } + switch (alt258) { + case 1 : + // xquery/XQueryParser.g:2154:46: p_IndexKeyCollation + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyCollation_in_p_IndexKeySpec17372); + p_IndexKeyCollation749=this.p_IndexKeyCollation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyCollation749.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyExpr_return: (function() { + XQueryParser.p_IndexKeyExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2157:1: p_IndexKeyExpr : p_PathExpr ; + // $ANTLR start "p_IndexKeyExpr" + p_IndexKeyExpr: function() { + var retval = new XQueryParser.p_IndexKeyExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PathExpr750 = null; + + + try { + // xquery/XQueryParser.g:2158:9: ( p_PathExpr ) + // xquery/XQueryParser.g:2158:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_IndexKeyExpr17398); + p_PathExpr750=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr750.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyTypeDecl_return: (function() { + XQueryParser.p_IndexKeyTypeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyTypeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2161:1: p_IndexKeyTypeDecl : k= AS p_AtomicType ( p_OccurrenceIndicator )? ; + // $ANTLR start "p_IndexKeyTypeDecl" + p_IndexKeyTypeDecl: function() { + var retval = new XQueryParser.p_IndexKeyTypeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AtomicType751 = null; + var p_OccurrenceIndicator752 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2162:9: (k= AS p_AtomicType ( p_OccurrenceIndicator )? ) + // xquery/XQueryParser.g:2162:11: k= AS p_AtomicType ( p_OccurrenceIndicator )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_IndexKeyTypeDecl17425); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AtomicType_in_p_IndexKeyTypeDecl17429); + p_AtomicType751=this.p_AtomicType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicType751.getTree()); + // xquery/XQueryParser.g:2162:44: ( p_OccurrenceIndicator )? + var alt259=2; + var LA259_0 = this.input.LA(1); + + if ( ((LA259_0>=QUESTION && LA259_0<=PLUS)) ) { + alt259=1; + } + switch (alt259) { + case 1 : + // xquery/XQueryParser.g:2162:44: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_IndexKeyTypeDecl17431); + p_OccurrenceIndicator752=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OccurrenceIndicator752.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AtomicType_return: (function() { + XQueryParser.p_AtomicType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AtomicType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2165:1: p_AtomicType : p_QName ; + // $ANTLR start "p_AtomicType" + p_AtomicType: function() { + var retval = new XQueryParser.p_AtomicType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName753 = null; + + + try { + // xquery/XQueryParser.g:2166:9: ( p_QName ) + // xquery/XQueryParser.g:2166:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AtomicType17457); + p_QName753=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName753.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyCollation_return: (function() { + XQueryParser.p_IndexKeyCollation_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyCollation_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2169:1: p_IndexKeyCollation : k= COLLATION p_StringLiteral ; + // $ANTLR start "p_IndexKeyCollation" + p_IndexKeyCollation: function() { + var retval = new XQueryParser.p_IndexKeyCollation_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_StringLiteral754 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2170:9: (k= COLLATION p_StringLiteral ) + // xquery/XQueryParser.g:2170:11: k= COLLATION p_StringLiteral + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_IndexKeyCollation17484); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_IndexKeyCollation17488); + p_StringLiteral754=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral754.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICDecl_return: (function() { + XQueryParser.p_ICDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2173:1: p_ICDecl : k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) ; + // $ANTLR start "p_ICDecl" + p_ICDecl: function() { + var retval = new XQueryParser.p_ICDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName755 = null; + var p_ICCollection756 = null; + var p_ICForeignKey757 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2174:9: (k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) ) + // xquery/XQueryParser.g:2174:11: k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INTEGRITY,XQueryParser.FOLLOW_INTEGRITY_in_p_ICDecl17515); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONSTRAINT,XQueryParser.FOLLOW_CONSTRAINT_in_p_ICDecl17521); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICDecl17525); + p_QName755=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName755.getTree()); + // xquery/XQueryParser.g:2174:74: ( p_ICCollection | p_ICForeignKey ) + var alt260=2; + var LA260_0 = this.input.LA(1); + + if ( (LA260_0==ON) ) { + alt260=1; + } + else if ( (LA260_0==FOREIGN) ) { + alt260=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 260, 0, this.input); + + throw nvae; + } + switch (alt260) { + case 1 : + // xquery/XQueryParser.g:2174:75: p_ICCollection + this.pushFollow(XQueryParser.FOLLOW_p_ICCollection_in_p_ICDecl17528); + p_ICCollection756=this.p_ICCollection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollection756.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2174:92: p_ICForeignKey + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKey_in_p_ICDecl17532); + p_ICForeignKey757=this.p_ICForeignKey(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKey757.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollection_return: (function() { + XQueryParser.p_ICCollection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2177:1: p_ICCollection : k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) ; + // $ANTLR start "p_ICCollection" + p_ICCollection: function() { + var retval = new XQueryParser.p_ICCollection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName758 = null; + var p_ICCollSequence759 = null; + var p_ICCollSequenceUnique760 = null; + var p_ICCollNode761 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2178:9: (k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) ) + // xquery/XQueryParser.g:2178:11: k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ON,XQueryParser.FOLLOW_ON_in_p_ICCollection17560); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_ICCollection17566); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollection17570); + p_QName758=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName758.getTree()); + // xquery/XQueryParser.g:2178:67: ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) + var alt261=3; + switch ( this.input.LA(1) ) { + case DOLLAR: + alt261=1; + break; + case NODE: + alt261=2; + break; + case FOREACH: + alt261=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 261, 0, this.input); + + throw nvae; + } + + switch (alt261) { + case 1 : + // xquery/XQueryParser.g:2178:68: p_ICCollSequence + this.pushFollow(XQueryParser.FOLLOW_p_ICCollSequence_in_p_ICCollection17573); + p_ICCollSequence759=this.p_ICCollSequence(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollSequence759.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2178:87: p_ICCollSequenceUnique + this.pushFollow(XQueryParser.FOLLOW_p_ICCollSequenceUnique_in_p_ICCollection17577); + p_ICCollSequenceUnique760=this.p_ICCollSequenceUnique(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollSequenceUnique760.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:2178:112: p_ICCollNode + this.pushFollow(XQueryParser.FOLLOW_p_ICCollNode_in_p_ICCollection17581); + p_ICCollNode761=this.p_ICCollNode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollNode761.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollSequence_return: (function() { + XQueryParser.p_ICCollSequence_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollSequence_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2181:1: p_ICCollSequence : d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ; + // $ANTLR start "p_ICCollSequence" + p_ICCollSequence: function() { + var retval = new XQueryParser.p_ICCollSequence_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var v = null; + var p_ExprSingle762 = null; + + var d_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:2182:9: (d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ) + // xquery/XQueryParser.g:2182:11: d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollSequence17609); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollSequence17613); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollSequence17619); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ICCollSequence17623); + p_ExprSingle762=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle762.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollSequenceUnique_return: (function() { + XQueryParser.p_ICCollSequenceUnique_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollSequenceUnique_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2185:1: p_ICCollSequenceUnique : k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr ; + // $ANTLR start "p_ICCollSequenceUnique" + p_ICCollSequenceUnique: function() { + var retval = new XQueryParser.p_ICCollSequenceUnique_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_PathExpr763 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2186:9: (k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr ) + // xquery/XQueryParser.g:2186:11: k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICCollSequenceUnique17651); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollSequenceUnique17657); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollSequenceUnique17661); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollSequenceUnique17667); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,UNIQUE,XQueryParser.FOLLOW_UNIQUE_in_p_ICCollSequenceUnique17673); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICCollSequenceUnique17679); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ICCollSequenceUnique17683); + p_PathExpr763=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr763.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollNode_return: (function() { + XQueryParser.p_ICCollNode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollNode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2189:1: p_ICCollNode : k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ; + // $ANTLR start "p_ICCollNode" + p_ICCollNode: function() { + var retval = new XQueryParser.p_ICCollNode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_ExprSingle764 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2190:9: (k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ) + // xquery/XQueryParser.g:2190:11: k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOREACH,XQueryParser.FOLLOW_FOREACH_in_p_ICCollNode17710); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICCollNode17716); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollNode17722); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollNode17726); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollNode17732); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ICCollNode17736); + p_ExprSingle764=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle764.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKey_return: (function() { + XQueryParser.p_ICForeignKey_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKey_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2193:1: p_ICForeignKey : k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget ; + // $ANTLR start "p_ICForeignKey" + p_ICForeignKey: function() { + var retval = new XQueryParser.p_ICForeignKey_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeySource765 = null; + var p_ICForeignKeyTarget766 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2194:9: (k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget ) + // xquery/XQueryParser.g:2194:11: k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOREIGN,XQueryParser.FOLLOW_FOREIGN_in_p_ICForeignKey17764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICForeignKey17770); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeySource_in_p_ICForeignKey17774); + p_ICForeignKeySource765=this.p_ICForeignKeySource(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeySource765.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyTarget_in_p_ICForeignKey17776); + p_ICForeignKeyTarget766=this.p_ICForeignKeyTarget(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyTarget766.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeySource_return: (function() { + XQueryParser.p_ICForeignKeySource_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeySource_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2197:1: p_ICForeignKeySource : k= FROM p_ICForeignKeyValues ; + // $ANTLR start "p_ICForeignKeySource" + p_ICForeignKeySource: function() { + var retval = new XQueryParser.p_ICForeignKeySource_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeyValues767 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2198:9: (k= FROM p_ICForeignKeyValues ) + // xquery/XQueryParser.g:2198:11: k= FROM p_ICForeignKeyValues + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_ICForeignKeySource17803); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeySource17807); + p_ICForeignKeyValues767=this.p_ICForeignKeyValues(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyValues767.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeyTarget_return: (function() { + XQueryParser.p_ICForeignKeyTarget_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeyTarget_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2201:1: p_ICForeignKeyTarget : k= TO p_ICForeignKeyValues ; + // $ANTLR start "p_ICForeignKeyTarget" + p_ICForeignKeyTarget: function() { + var retval = new XQueryParser.p_ICForeignKeyTarget_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeyValues768 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2202:9: (k= TO p_ICForeignKeyValues ) + // xquery/XQueryParser.g:2202:11: k= TO p_ICForeignKeyValues + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_ICForeignKeyTarget17834); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeyTarget17838); + p_ICForeignKeyValues768=this.p_ICForeignKeyValues(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyValues768.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeyValues_return: (function() { + XQueryParser.p_ICForeignKeyValues_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeyValues_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2205:1: p_ICForeignKeyValues : k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr ; + // $ANTLR start "p_ICForeignKeyValues" + p_ICForeignKeyValues: function() { + var retval = new XQueryParser.p_ICForeignKeyValues_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_QName769 = null; + var p_PathExpr770 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2206:9: (k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr ) + // xquery/XQueryParser.g:2206:11: k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_ICForeignKeyValues17865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICForeignKeyValues17869); + p_QName769=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName769.getTree()); + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICForeignKeyValues17873); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICForeignKeyValues17879); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICForeignKeyValues17883); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICForeignKeyValues17889); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ICForeignKeyValues17893); + p_PathExpr770=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr770.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // $ANTLR start "synpred1_XQueryParser" + synpred1_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:574:11: ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) ) + var alt262=2; + var LA262_0 = this.input.LA(1); + + if ( (LA262_0==FOR) ) { + var LA262_1 = this.input.LA(2); + + if ( (LA262_1==DOLLAR) ) { + alt262=1; + } + else if ( (LA262_1==SLIDING||LA262_1==TUMBLING) ) { + alt262=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 262, 1, this.input); + + throw nvae; + } + } + else if ( (LA262_0==LET) ) { + alt262=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 262, 0, this.input); + + throw nvae; + } + switch (alt262) { + case 1 : + // xquery/XQueryParser.g:574:12: ( ( FOR | LET ) DOLLAR ) + // xquery/XQueryParser.g:574:12: ( ( FOR | LET ) DOLLAR ) + // xquery/XQueryParser.g:574:13: ( FOR | LET ) DOLLAR + if ( this.input.LA(1)==FOR||this.input.LA(1)==LET ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_synpred1_XQueryParser3543); if (this.state.failed) return ; + + + + + + break; + case 2 : + // xquery/XQueryParser.g:574:35: ( FOR ( TUMBLING | SLIDING ) ) + // xquery/XQueryParser.g:574:35: ( FOR ( TUMBLING | SLIDING ) ) + // xquery/XQueryParser.g:574:36: FOR ( TUMBLING | SLIDING ) + this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_synpred1_XQueryParser3549); if (this.state.failed) return ; + if ( this.input.LA(1)==SLIDING||this.input.LA(1)==TUMBLING ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + + + break; + + }}, + // $ANTLR end "synpred1_XQueryParser", + + // $ANTLR start "synpred2_XQueryParser" + synpred2_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:575:11: ( IF LPAREN ) + // xquery/XQueryParser.g:575:12: IF LPAREN + this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_synpred2_XQueryParser3577); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred2_XQueryParser3579); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred2_XQueryParser", + + // $ANTLR start "synpred3_XQueryParser" + synpred3_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:576:11: ( SWITCH LPAREN ) + // xquery/XQueryParser.g:576:12: SWITCH LPAREN + this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_synpred3_XQueryParser3607); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred3_XQueryParser3609); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred3_XQueryParser", + + // $ANTLR start "synpred4_XQueryParser" + synpred4_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:577:11: ( TYPESWITCH LPAREN ) + // xquery/XQueryParser.g:577:12: TYPESWITCH LPAREN + this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_synpred4_XQueryParser3633); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred4_XQueryParser3635); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred4_XQueryParser", + + // $ANTLR start "synpred5_XQueryParser" + synpred5_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:578:11: ( TRY LBRACKET ) + // xquery/XQueryParser.g:578:12: TRY LBRACKET + this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_synpred5_XQueryParser3655); if (this.state.failed) return ; + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred5_XQueryParser3657); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred5_XQueryParser", + + // $ANTLR start "synpred6_XQueryParser" + synpred6_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:864:11: ( VALIDATE ( p_ValidationMode | TYPE )? ) + // xquery/XQueryParser.g:864:12: VALIDATE ( p_ValidationMode | TYPE )? + this.match(this.input,VALIDATE,XQueryParser.FOLLOW_VALIDATE_in_synpred6_XQueryParser6189); if (this.state.failed) return ; + // xquery/XQueryParser.g:864:21: ( p_ValidationMode | TYPE )? + var alt263=3; + var LA263_0 = this.input.LA(1); + + if ( (LA263_0==LAX||LA263_0==STRICT) ) { + alt263=1; + } + else if ( (LA263_0==TYPE) ) { + alt263=2; + } + switch (alt263) { + case 1 : + // xquery/XQueryParser.g:864:23: p_ValidationMode + this.pushFollow(XQueryParser.FOLLOW_p_ValidationMode_in_synpred6_XQueryParser6193); + this.p_ValidationMode(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + case 2 : + // xquery/XQueryParser.g:864:42: TYPE + this.match(this.input,TYPE,XQueryParser.FOLLOW_TYPE_in_synpred6_XQueryParser6197); if (this.state.failed) return ; + + + break; + + } + + + + }, + // $ANTLR end "synpred6_XQueryParser", + + // $ANTLR start "synpred7_XQueryParser" + synpred7_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:909:11: ( SLASH p_RelativePathExpr ) + // xquery/XQueryParser.g:909:12: SLASH p_RelativePathExpr + this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_synpred7_XQueryParser6553); if (this.state.failed) return ; + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_synpred7_XQueryParser6555); + this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred7_XQueryParser", + + // $ANTLR start "synpred8_XQueryParser" + synpred8_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:922:11: ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR ) + // xquery/XQueryParser.g: + if ( this.input.LA(1)==LPAREN||(this.input.LA(1)>=DOLLAR && this.input.LA(1)<=LBRACKET)||this.input.LA(1)==SMALLER||(this.input.LA(1)>=APOS && this.input.LA(1)<=QUOT) ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + }, + // $ANTLR end "synpred8_XQueryParser", + + // $ANTLR start "synpred9_XQueryParser" + synpred9_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:923:11: ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) ) + var alt266=3; + switch ( this.input.LA(1) ) { + case ATTRIBUTE: + case ELEMENT: + alt266=1; + break; + case NAMESPACE: + case PROCESSING_INSTRUCTION: + alt266=2; + break; + case COMMENT: + case DOCUMENT: + case TEXT: + alt266=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 266, 0, this.input); + + throw nvae; + } + + switch (alt266) { + case 1 : + // xquery/XQueryParser.g:924:13: ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) + // xquery/XQueryParser.g:924:13: ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) + // xquery/XQueryParser.g:924:14: ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET + if ( this.input.LA(1)==ATTRIBUTE||this.input.LA(1)==ELEMENT ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + // xquery/XQueryParser.g:924:36: ( p_QName )? + var alt264=2; + var LA264_0 = this.input.LA(1); + + if ( ((LA264_0>=ANCESTOR && LA264_0<=SKIP)||(LA264_0>=VALUE && LA264_0<=QUOT_ER)||LA264_0==L_NCName||LA264_0==EXPLICITLY) ) { + alt264=1; + } + switch (alt264) { + case 1 : + // xquery/XQueryParser.g:924:36: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_synpred9_XQueryParser6730); + this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6733); if (this.state.failed) return ; + + + + + + break; + case 2 : + // xquery/XQueryParser.g:925:13: ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) + // xquery/XQueryParser.g:925:13: ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) + // xquery/XQueryParser.g:925:14: ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET + if ( this.input.LA(1)==NAMESPACE||this.input.LA(1)==PROCESSING_INSTRUCTION ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + // xquery/XQueryParser.g:925:51: ( p_NCName )? + var alt265=2; + var LA265_0 = this.input.LA(1); + + if ( ((LA265_0>=ANCESTOR && LA265_0<=SKIP)||(LA265_0>=VALUE && LA265_0<=QUOT_ER)||LA265_0==L_NCName||LA265_0==EXPLICITLY) ) { + alt265=1; + } + switch (alt265) { + case 1 : + // xquery/XQueryParser.g:925:51: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred9_XQueryParser6759); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6762); if (this.state.failed) return ; + + + + + + break; + case 3 : + // xquery/XQueryParser.g:926:13: ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) + // xquery/XQueryParser.g:926:13: ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) + // xquery/XQueryParser.g:926:14: ( DOCUMENT | TEXT | COMMENT ) LBRACKET + if ( this.input.LA(1)==COMMENT||this.input.LA(1)==DOCUMENT||this.input.LA(1)==TEXT ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6792); if (this.state.failed) return ; + + + + + + break; + + }}, + // $ANTLR end "synpred9_XQueryParser", + + // $ANTLR start "synpred10_XQueryParser" + synpred10_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:928:11: ( p_KindTest ) + // xquery/XQueryParser.g:928:12: p_KindTest + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_synpred10_XQueryParser6822); + this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred10_XQueryParser", + + // $ANTLR start "synpred11_XQueryParser" + synpred11_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:929:11: ( p_QName LPAREN ) + // xquery/XQueryParser.g:929:12: p_QName LPAREN + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_synpred11_XQueryParser6841); + this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred11_XQueryParser6843); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred11_XQueryParser", + + // $ANTLR start "synpred12_XQueryParser" + synpred12_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:930:11: ( p_PrimaryExpr ) + // xquery/XQueryParser.g:930:12: p_PrimaryExpr + this.pushFollow(XQueryParser.FOLLOW_p_PrimaryExpr_in_synpred12_XQueryParser6861); + this.p_PrimaryExpr(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred12_XQueryParser", + + // $ANTLR start "synpred13_XQueryParser" + synpred13_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:988:11: ( p_Wildcard ) + // xquery/XQueryParser.g:988:12: p_Wildcard + this.pushFollow(XQueryParser.FOLLOW_p_Wildcard_in_synpred13_XQueryParser7300); + this.p_Wildcard(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred13_XQueryParser", + + // $ANTLR start "synpred14_XQueryParser" + synpred14_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:989:11: ( p_NCName COLON ) + // xquery/XQueryParser.g:989:12: p_NCName COLON + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred14_XQueryParser7319); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_synpred14_XQueryParser7321); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred14_XQueryParser", + + // $ANTLR start "synpred15_XQueryParser" + synpred15_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:990:11: ( p_NCName ) + // xquery/XQueryParser.g:990:12: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred15_XQueryParser7339); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred15_XQueryParser", + + // $ANTLR start "synpred16_XQueryParser" + synpred16_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:1027:11: ( LPAREN ) + // xquery/XQueryParser.g:1027:12: LPAREN + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred16_XQueryParser7595); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred16_XQueryParser", + + // $ANTLR start "synpred17_XQueryParser" + synpred17_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:1306:26: ( p_OccurrenceIndicator ) + // xquery/XQueryParser.g:1306:27: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_synpred17_XQueryParser9650); + this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred17_XQueryParser", + + // $ANTLR start "synpred18_XQueryParser" + synpred18_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:2138:44: ( p_OccurrenceIndicator ) + // xquery/XQueryParser.g:2138:45: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_synpred18_XQueryParser17224); + this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred18_XQueryParser" + + // Delegated rules + + + + synpred3_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred3_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred15_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred15_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred7_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred7_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred9_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred9_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred10_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred10_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred17_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred17_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred5_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred5_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred12_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred12_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred16_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred16_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred14_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred14_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred6_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred6_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred18_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred18_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred8_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred8_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred13_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred13_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred4_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred4_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred11_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred11_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred1_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred1_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred2_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred2_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XQueryParser, { + DFA1_eotS: + "\u000a\uffff", + DFA1_eofS: + "\u0001\u0005\u0001\u0009\u0008\uffff", + DFA1_minS: + "\u0001\u0010\u0001\u0012\u0008\uffff", + DFA1_maxS: + "\u0001\u0154\u0001\u00fe\u0008\uffff", + DFA1_acceptS: + "\u0002\uffff\u0004\u0002\u0001\u0001\u0003\u0002", + DFA1_specialS: + "\u0001\u0001\u0001\u0000\u0008\uffff}>", + DFA1_transitionS: [ + "\u0002\u0002\u0004\u0004\u0001\u0002\u0006\u0004\u0001\u0002"+ + "\u0001\u0004\u0001\u0002\u0002\u0004\u0001\u0002\u0001\u0004"+ + "\u0002\u0002\u0002\u0004\u0003\u0002\u0005\u0004\u0001\u0002"+ + "\u0002\u0004\u0003\u0002\u0005\u0004\u0002\u0002\u0009\u0004"+ + "\u0001\u0002\u0002\u0004\u0002\u0002\u0003\u0004\u0001\u0002"+ + "\u0004\u0004\u0001\u0002\u0001\u0004\u0003\u0002\u0001\u0004"+ + "\u0001\u0002\u0003\u0004\u0004\u0002\u0003\u0004\u0001\u0002"+ + "\u0003\u0004\u0001\u0002\u0001\u0004\u0003\u0002\u0002\u0004"+ + "\u0001\u0001\u000c\u0004\u0001\u0002\u0009\u0004\u0002\u0002"+ + "\u0007\u0004\u0002\u0002\u0001\u0004\u0001\u0002\u0004\u0004"+ + "\u0002\u0002\u0002\u0004\u0001\u0002\u002c\u0004\u0003\u0002"+ + "\u0002\u0004\u0001\u0002\u000a\u0004\u0001\u0002\u0003\u0004"+ + "\u0001\uffff\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff"+ + "\u0001\u0003\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002"+ + "\u000c\uffff\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff"+ + "\u0001\u0004\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0004", + "\u0001\u0007\u0008\uffff\u0002\u0007\u000a\uffff\u0001\u0007"+ + "\u0006\uffff\u0001\u0006\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0005\uffff\u0001\u0007\u0001\uffff\u0002\u0007\u0004\uffff"+ + "\u0003\u0007\u0002\uffff\u0001\u0007\u0002\uffff\u0002\u0007"+ + "\u0002\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0014\uffff"+ + "\u0002\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0006"+ + "\u0032\uffff\u0001\u0007\u003b\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u000b\u0007\u0002\uffff"+ + "\u0001\u0007\u0003\uffff\u0001\u0008\u0001\u0007", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA1_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_eotS), + DFA1_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_eofS), + DFA1_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA1_minS), + DFA1_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA1_maxS), + DFA1_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_acceptS), + DFA1_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_specialS), + DFA1_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA1_transitionS.length; + for (i=0; i=CAST && LA1_1<=CASTABLE)||LA1_1==DIV||LA1_1==EQ||LA1_1==EXCEPT||LA1_1==GE||(LA1_1>=GT && LA1_1<=IDIV)||(LA1_1>=INSTANCE && LA1_1<=IS)||LA1_1==LE||(LA1_1>=LT && LA1_1<=MOD)||LA1_1==NE||LA1_1==OR||(LA1_1>=TO && LA1_1<=TREAT)||LA1_1==UNION||LA1_1==CONTAINS||(LA1_1>=CONCAT && LA1_1<=LPAREN)||LA1_1==LSQUARE||LA1_1==EQUAL||LA1_1==NOTEQUAL||LA1_1==COMMA||(LA1_1>=STAR && LA1_1<=SLASH_SLASH)||LA1_1==COLON||LA1_1==VBAR) ) {s = 7;} + + else if ( (LA1_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA1_1==EOF) ) {s = 9;} + + + input.seek(index1_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA1_0 = input.LA(1); + + + var index1_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA1_0==XQUERY) ) {s = 1;} + + else if ( ((LA1_0>=ANCESTOR && LA1_0<=ANCESTOR_OR_SELF)||LA1_0==ATTRIBUTE||LA1_0==CHILD||LA1_0==COMMENT||LA1_0==DECLARE||(LA1_0>=DESCENDANT && LA1_0<=DESCENDANT_OR_SELF)||(LA1_0>=DOCUMENT && LA1_0<=ELEMENT)||LA1_0==EVERY||(LA1_0>=FOLLOWING && LA1_0<=FOR)||(LA1_0>=IF && LA1_0<=IMPORT)||LA1_0==LET||(LA1_0>=MODULE && LA1_0<=NAMESPACE)||LA1_0==NODE||LA1_0==ORDERED||(LA1_0>=PARENT && LA1_0<=PRECEDING_SIBLING)||LA1_0==PROCESSING_INSTRUCTION||(LA1_0>=SCHEMA_ATTRIBUTE && LA1_0<=SOME)||LA1_0==TEXT||LA1_0==TYPESWITCH||(LA1_0>=UNORDERED && LA1_0<=VARIABLE)||LA1_0==NAMESPACE_NODE||(LA1_0>=SWITCH && LA1_0<=TRY)||(LA1_0>=COPY && LA1_0<=DELETE)||LA1_0==INSERT||(LA1_0>=RENAME && LA1_0<=REPLACE)||LA1_0==UPDATING||(LA1_0>=BREAK && LA1_0<=EXIT)||LA1_0==WHILE||LA1_0==BINARY||LA1_0==LPAREN||(LA1_0>=DOLLAR && LA1_0<=LBRACKET)||(LA1_0>=STAR && LA1_0<=SMALLER)||(LA1_0>=SLASH && LA1_0<=DOT_DOT)||LA1_0==ATTR_SIGN||(LA1_0>=APOS && LA1_0<=QUOT)||(LA1_0>=L_Pragma && LA1_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA1_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( ((LA1_0>=AND && LA1_0<=AT)||(LA1_0>=BASE_URI && LA1_0<=CASTABLE)||LA1_0==COLLATION||(LA1_0>=CONSTRUCTION && LA1_0<=COPY_NAMESPACES)||LA1_0==DEFAULT||(LA1_0>=DESCENDING && LA1_0<=DIV)||(LA1_0>=ELSE && LA1_0<=EQ)||(LA1_0>=EXCEPT && LA1_0<=EXTERNAL)||(LA1_0>=FUNCTION && LA1_0<=IDIV)||(LA1_0>=IN && LA1_0<=LEAST)||(LA1_0>=LT && LA1_0<=MOD)||(LA1_0>=NE && LA1_0<=NO_PRESERVE)||(LA1_0>=OF && LA1_0<=ORDER)||LA1_0==ORDERING||LA1_0==PRESERVE||(LA1_0>=RETURN && LA1_0<=SCHEMA)||(LA1_0>=STABLE && LA1_0<=STRIP)||(LA1_0>=THEN && LA1_0<=TREAT)||LA1_0==UNION||(LA1_0>=VERSION && LA1_0<=WHERE)||(LA1_0>=ALLOWING && LA1_0<=MINUS_SIGN)||(LA1_0>=NAN && LA1_0<=START)||(LA1_0>=TUMBLING && LA1_0<=BEFORE)||LA1_0==FIRST||(LA1_0>=INTO && LA1_0<=NODES)||(LA1_0>=REVALIDATION && LA1_0<=SKIP)||(LA1_0>=VALUE && LA1_0<=WORDS)||(LA1_0>=LOOP && LA1_0<=RETURNING)||(LA1_0>=CHECK && LA1_0<=UNIQUE)||(LA1_0>=AMP_ER && LA1_0<=QUOT_ER)||LA1_0==L_NCName||LA1_0==EXPLICITLY) ) {s = 4;} + + else if ( (LA1_0==EOF) && ((this.lc(XQS)))) {s = 5;} + + + input.seek(index1_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 1, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA2_eotS: + "\u000a\uffff", + DFA2_eofS: + "\u0001\u0005\u0001\u0009\u0008\uffff", + DFA2_minS: + "\u0001\u0010\u0001\u0012\u0008\uffff", + DFA2_maxS: + "\u0001\u0154\u0001\u00fe\u0008\uffff", + DFA2_acceptS: + "\u0002\uffff\u0004\u0002\u0001\u0001\u0003\u0002", + DFA2_specialS: + "\u0001\u0000\u0001\u0001\u0008\uffff}>", + DFA2_transitionS: [ + "\u0002\u0002\u0004\u0004\u0001\u0002\u0006\u0004\u0001\u0002"+ + "\u0001\u0004\u0001\u0002\u0002\u0004\u0001\u0002\u0001\u0004"+ + "\u0002\u0002\u0002\u0004\u0003\u0002\u0005\u0004\u0001\u0002"+ + "\u0002\u0004\u0003\u0002\u0005\u0004\u0002\u0002\u0009\u0004"+ + "\u0001\u0002\u0002\u0004\u0001\u0001\u0001\u0002\u0003\u0004"+ + "\u0001\u0002\u0004\u0004\u0001\u0002\u0001\u0004\u0003\u0002"+ + "\u0001\u0004\u0001\u0002\u0003\u0004\u0004\u0002\u0003\u0004"+ + "\u0001\u0002\u0003\u0004\u0001\u0002\u0001\u0004\u0003\u0002"+ + "\u000f\u0004\u0001\u0002\u0009\u0004\u0002\u0002\u0007\u0004"+ + "\u0002\u0002\u0001\u0004\u0001\u0002\u0004\u0004\u0002\u0002"+ + "\u0002\u0004\u0001\u0002\u002c\u0004\u0003\u0002\u0002\u0004"+ + "\u0001\u0002\u000a\u0004\u0001\u0002\u0003\u0004\u0001\uffff"+ + "\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff\u0001\u0003"+ + "\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002\u000c\uffff"+ + "\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff\u0001\u0004"+ + "\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0004", + "\u0001\u0007\u0008\uffff\u0002\u0007\u000a\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0005\uffff"+ + "\u0001\u0007\u0001\uffff\u0002\u0007\u0004\uffff\u0003\u0007"+ + "\u0002\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0001\uffff"+ + "\u0001\u0006\u0001\u0007\u0005\uffff\u0001\u0007\u0014\uffff"+ + "\u0002\u0007\u0001\uffff\u0001\u0007\u0036\uffff\u0001\u0007"+ + "\u003b\uffff\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007"+ + "\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0008\u0001\u0007", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA2_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_eotS), + DFA2_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_eofS), + DFA2_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA2_minS), + DFA2_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA2_maxS), + DFA2_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_acceptS), + DFA2_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_specialS), + DFA2_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA2_transitionS.length; + for (i=0; i | mm= p_MainModule[$vd.tree] ->)"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA2_0 = input.LA(1); + + + var index2_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA2_0==MODULE) ) {s = 1;} + + else if ( ((LA2_0>=ANCESTOR && LA2_0<=ANCESTOR_OR_SELF)||LA2_0==ATTRIBUTE||LA2_0==CHILD||LA2_0==COMMENT||LA2_0==DECLARE||(LA2_0>=DESCENDANT && LA2_0<=DESCENDANT_OR_SELF)||(LA2_0>=DOCUMENT && LA2_0<=ELEMENT)||LA2_0==EVERY||(LA2_0>=FOLLOWING && LA2_0<=FOR)||(LA2_0>=IF && LA2_0<=IMPORT)||LA2_0==LET||LA2_0==NAMESPACE||LA2_0==NODE||LA2_0==ORDERED||(LA2_0>=PARENT && LA2_0<=PRECEDING_SIBLING)||LA2_0==PROCESSING_INSTRUCTION||(LA2_0>=SCHEMA_ATTRIBUTE && LA2_0<=SOME)||LA2_0==TEXT||LA2_0==TYPESWITCH||(LA2_0>=UNORDERED && LA2_0<=VARIABLE)||LA2_0==NAMESPACE_NODE||(LA2_0>=SWITCH && LA2_0<=TRY)||(LA2_0>=COPY && LA2_0<=DELETE)||LA2_0==INSERT||(LA2_0>=RENAME && LA2_0<=REPLACE)||LA2_0==UPDATING||(LA2_0>=BREAK && LA2_0<=EXIT)||LA2_0==WHILE||LA2_0==BINARY||LA2_0==LPAREN||(LA2_0>=DOLLAR && LA2_0<=LBRACKET)||(LA2_0>=STAR && LA2_0<=SMALLER)||(LA2_0>=SLASH && LA2_0<=DOT_DOT)||LA2_0==ATTR_SIGN||(LA2_0>=APOS && LA2_0<=QUOT)||(LA2_0>=L_Pragma && LA2_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA2_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( ((LA2_0>=AND && LA2_0<=AT)||(LA2_0>=BASE_URI && LA2_0<=CASTABLE)||LA2_0==COLLATION||(LA2_0>=CONSTRUCTION && LA2_0<=COPY_NAMESPACES)||LA2_0==DEFAULT||(LA2_0>=DESCENDING && LA2_0<=DIV)||(LA2_0>=ELSE && LA2_0<=EQ)||(LA2_0>=EXCEPT && LA2_0<=EXTERNAL)||(LA2_0>=FUNCTION && LA2_0<=IDIV)||(LA2_0>=IN && LA2_0<=LEAST)||(LA2_0>=LT && LA2_0<=MOD)||(LA2_0>=NE && LA2_0<=NO_PRESERVE)||(LA2_0>=OF && LA2_0<=ORDER)||LA2_0==ORDERING||LA2_0==PRESERVE||(LA2_0>=RETURN && LA2_0<=SCHEMA)||(LA2_0>=STABLE && LA2_0<=STRIP)||(LA2_0>=THEN && LA2_0<=TREAT)||LA2_0==UNION||(LA2_0>=VERSION && LA2_0<=MINUS_SIGN)||(LA2_0>=NAN && LA2_0<=START)||(LA2_0>=TUMBLING && LA2_0<=BEFORE)||LA2_0==FIRST||(LA2_0>=INTO && LA2_0<=NODES)||(LA2_0>=REVALIDATION && LA2_0<=SKIP)||(LA2_0>=VALUE && LA2_0<=WORDS)||(LA2_0>=LOOP && LA2_0<=RETURNING)||(LA2_0>=CHECK && LA2_0<=UNIQUE)||(LA2_0>=AMP_ER && LA2_0<=QUOT_ER)||LA2_0==L_NCName||LA2_0==EXPLICITLY) ) {s = 4;} + + else if ( (LA2_0==EOF) && ((this.lc(XQS)))) {s = 5;} + + + input.seek(index2_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA2_1 = input.LA(1); + + + var index2_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA2_1==NAMESPACE) ) {s = 6;} + + else if ( (LA2_1==AND||(LA2_1>=CAST && LA2_1<=CASTABLE)||LA2_1==DIV||LA2_1==EQ||LA2_1==EXCEPT||LA2_1==GE||(LA2_1>=GT && LA2_1<=IDIV)||(LA2_1>=INSTANCE && LA2_1<=IS)||LA2_1==LE||(LA2_1>=LT && LA2_1<=MOD)||LA2_1==NE||LA2_1==OR||(LA2_1>=TO && LA2_1<=TREAT)||LA2_1==UNION||LA2_1==CONTAINS||(LA2_1>=CONCAT && LA2_1<=LPAREN)||LA2_1==LSQUARE||LA2_1==EQUAL||LA2_1==NOTEQUAL||LA2_1==COMMA||(LA2_1>=STAR && LA2_1<=SLASH_SLASH)||LA2_1==COLON||LA2_1==VBAR) ) {s = 7;} + + else if ( (LA2_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA2_1==EOF) ) {s = 9;} + + + input.seek(index2_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 2, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA6_eotS: + "\u000a\uffff", + DFA6_eofS: + "\u0001\u0005\u0001\u0009\u0002\uffff\u0001\u0009\u0005\uffff", + DFA6_minS: + "\u0001\u0010\u0001\u0012\u0002\uffff\u0001\u0012\u0005\uffff", + DFA6_maxS: + "\u0001\u0154\u0001\u00fe\u0002\uffff\u0001\u00fe\u0005\uffff", + DFA6_acceptS: + "\u0002\uffff\u0002\u0002\u0001\uffff\u0001\u0002\u0002\u0001\u0002"+ + "\u0002", + DFA6_specialS: + "\u0001\u0002\u0001\u0000\u0002\uffff\u0001\u0001\u0005\uffff}>", + DFA6_transitionS: [ + "\u0002\u0002\u0004\u0005\u0001\u0002\u0006\u0005\u0001\u0002"+ + "\u0001\u0005\u0001\u0002\u0002\u0005\u0001\u0001\u0001\u0005"+ + "\u0002\u0002\u0002\u0005\u0003\u0002\u0005\u0005\u0001\u0002"+ + "\u0002\u0005\u0003\u0002\u0005\u0005\u0001\u0002\u0001\u0004"+ + "\u0009\u0005\u0001\u0002\u0003\u0005\u0001\u0002\u0003\u0005"+ + "\u0001\u0002\u0004\u0005\u0001\u0002\u0001\u0005\u0003\u0002"+ + "\u0001\u0005\u0001\u0002\u0003\u0005\u0004\u0002\u0003\u0005"+ + "\u0001\u0002\u0003\u0005\u0001\u0002\u0001\u0005\u0003\u0002"+ + "\u000f\u0005\u0001\u0002\u0009\u0005\u0002\u0002\u0007\u0005"+ + "\u0002\u0002\u0001\u0005\u0001\u0002\u0004\u0005\u0002\u0002"+ + "\u0002\u0005\u0001\u0002\u002c\u0005\u0003\u0002\u0002\u0005"+ + "\u0001\u0002\u000a\u0005\u0001\u0002\u0003\u0005\u0001\uffff"+ + "\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff\u0001\u0003"+ + "\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002\u000c\uffff"+ + "\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff\u0001\u0005"+ + "\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0005", + "\u0001\u0005\u0004\uffff\u0002\u0007\u0002\uffff\u0002\u0005"+ + "\u0003\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0005\u0007\uffff\u0001\u0005\u0001\uffff\u0001\u0005"+ + "\u0004\uffff\u0002\u0005\u0001\uffff\u0002\u0005\u0004\uffff"+ + "\u0003\u0005\u0002\uffff\u0001\u0005\u0002\uffff\u0002\u0005"+ + "\u0001\uffff\u0001\u0007\u0001\u0005\u0004\uffff\u0002\u0005"+ + "\u0002\uffff\u0001\u0007\u0011\uffff\u0002\u0005\u0001\uffff"+ + "\u0001\u0005\u0002\uffff\u0001\u0005\u0005\uffff\u0001\u0005"+ + "\u0001\uffff\u0001\u0007\u0024\uffff\u0001\u0006\u0001\uffff"+ + "\u0001\u0005\u0004\uffff\u0001\u0005\u0007\uffff\u0001\u0007"+ + "\u0026\uffff\u0001\u0005\u0003\uffff\u0002\u0005\u0007\uffff"+ + "\u0002\u0005\u0004\uffff\u0001\u0005\u0001\uffff\u0001\u0005"+ + "\u0001\uffff\u0002\u0005\u0002\uffff\u0001\u0005\u0001\uffff"+ + "\u000b\u0005\u0002\uffff\u0001\u0005\u0003\uffff\u0001\u0008"+ + "\u0001\u0005", + "", + "", + "\u0001\u0009\u0008\uffff\u0002\u0009\u000a\uffff\u0001\u0009"+ + "\u0007\uffff\u0001\u0009\u0001\uffff\u0001\u0009\u0005\uffff"+ + "\u0001\u0009\u0001\uffff\u0002\u0009\u0004\uffff\u0003\u0009"+ + "\u0002\uffff\u0001\u0009\u0002\uffff\u0002\u0009\u0001\u0007"+ + "\u0001\uffff\u0001\u0009\u0005\uffff\u0001\u0009\u000a\uffff"+ + "\u0001\u0007\u0009\uffff\u0002\u0009\u0001\uffff\u0001\u0009"+ + "\u0036\uffff\u0001\u0009\u003b\uffff\u0002\u0009\u0004\uffff"+ + "\u0001\u0009\u0001\uffff\u0001\u0009\u0001\uffff\u0001\u0009"+ + "\u0003\uffff\u0001\u0009\u0001\uffff\u000b\u0009\u0002\uffff"+ + "\u0001\u0009\u0003\uffff\u0001\u0008\u0001\u0009", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA6_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_eotS), + DFA6_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_eofS), + DFA6_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA6_minS), + DFA6_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA6_maxS), + DFA6_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_acceptS), + DFA6_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_specialS), + DFA6_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA6_transitionS.length; + for (i=0; i=BASE_URI && LA6_1<=BOUNDARY_SPACE)||(LA6_1>=CONSTRUCTION && LA6_1<=COPY_NAMESPACES)||LA6_1==DEFAULT||LA6_1==NAMESPACE||LA6_1==ORDERING||LA6_1==DECIMAL_FORMAT||LA6_1==FT_OPTION) ) {s = 7;} + + else if ( (LA6_1==AND||(LA6_1>=CAST && LA6_1<=CASTABLE)||LA6_1==DIV||LA6_1==EQ||LA6_1==EXCEPT||(LA6_1>=FUNCTION && LA6_1<=GE)||(LA6_1>=GT && LA6_1<=IDIV)||(LA6_1>=INSTANCE && LA6_1<=IS)||LA6_1==LE||(LA6_1>=LT && LA6_1<=MOD)||LA6_1==NE||(LA6_1>=OPTION && LA6_1<=OR)||(LA6_1>=TO && LA6_1<=TREAT)||LA6_1==UNION||LA6_1==VARIABLE||LA6_1==CONTEXT||LA6_1==UPDATING||LA6_1==CONTAINS||LA6_1==COLLECTION||(LA6_1>=INDEX && LA6_1<=INTEGRITY)||(LA6_1>=CONCAT && LA6_1<=LPAREN)||LA6_1==LSQUARE||LA6_1==EQUAL||(LA6_1>=NOTEQUAL && LA6_1<=ANN_PERCENT)||LA6_1==COMMA||(LA6_1>=STAR && LA6_1<=SLASH_SLASH)||LA6_1==COLON||LA6_1==VBAR) ) {s = 5;} + + else if ( (LA6_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA6_1==EOF) ) {s = 9;} + + + input.seek(index6_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA6_4 = input.LA(1); + + + var index6_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA6_4==EOF||LA6_4==AND||(LA6_4>=CAST && LA6_4<=CASTABLE)||LA6_4==DIV||LA6_4==EQ||LA6_4==EXCEPT||LA6_4==GE||(LA6_4>=GT && LA6_4<=IDIV)||(LA6_4>=INSTANCE && LA6_4<=IS)||LA6_4==LE||(LA6_4>=LT && LA6_4<=MOD)||LA6_4==NE||LA6_4==OR||(LA6_4>=TO && LA6_4<=TREAT)||LA6_4==UNION||LA6_4==CONTAINS||(LA6_4>=CONCAT && LA6_4<=LPAREN)||LA6_4==LSQUARE||LA6_4==EQUAL||LA6_4==NOTEQUAL||LA6_4==COMMA||(LA6_4>=STAR && LA6_4<=SLASH_SLASH)||LA6_4==COLON||LA6_4==VBAR) ) {s = 9;} + + else if ( (LA6_4==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA6_4==MODULE||LA6_4==SCHEMA) ) {s = 7;} + + + input.seek(index6_4); + if ( s>=0 ) return s; + break; + case 2 : + var LA6_0 = input.LA(1); + + + var index6_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA6_0==DECLARE) ) {s = 1;} + + else if ( ((LA6_0>=ANCESTOR && LA6_0<=ANCESTOR_OR_SELF)||LA6_0==ATTRIBUTE||LA6_0==CHILD||LA6_0==COMMENT||(LA6_0>=DESCENDANT && LA6_0<=DESCENDANT_OR_SELF)||(LA6_0>=DOCUMENT && LA6_0<=ELEMENT)||LA6_0==EVERY||(LA6_0>=FOLLOWING && LA6_0<=FOR)||LA6_0==IF||LA6_0==LET||LA6_0==NAMESPACE||LA6_0==NODE||LA6_0==ORDERED||(LA6_0>=PARENT && LA6_0<=PRECEDING_SIBLING)||LA6_0==PROCESSING_INSTRUCTION||(LA6_0>=SCHEMA_ATTRIBUTE && LA6_0<=SOME)||LA6_0==TEXT||LA6_0==TYPESWITCH||(LA6_0>=UNORDERED && LA6_0<=VARIABLE)||LA6_0==NAMESPACE_NODE||(LA6_0>=SWITCH && LA6_0<=TRY)||(LA6_0>=COPY && LA6_0<=DELETE)||LA6_0==INSERT||(LA6_0>=RENAME && LA6_0<=REPLACE)||LA6_0==UPDATING||(LA6_0>=BREAK && LA6_0<=EXIT)||LA6_0==WHILE||LA6_0==BINARY||LA6_0==LPAREN||(LA6_0>=DOLLAR && LA6_0<=LBRACKET)||(LA6_0>=STAR && LA6_0<=SMALLER)||(LA6_0>=SLASH && LA6_0<=DOT_DOT)||LA6_0==ATTR_SIGN||(LA6_0>=APOS && LA6_0<=QUOT)||(LA6_0>=L_Pragma && LA6_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA6_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( (LA6_0==IMPORT) ) {s = 4;} + + else if ( (LA6_0==EOF||(LA6_0>=AND && LA6_0<=AT)||(LA6_0>=BASE_URI && LA6_0<=CASTABLE)||LA6_0==COLLATION||(LA6_0>=CONSTRUCTION && LA6_0<=COPY_NAMESPACES)||LA6_0==DEFAULT||(LA6_0>=DESCENDING && LA6_0<=DIV)||(LA6_0>=ELSE && LA6_0<=EQ)||(LA6_0>=EXCEPT && LA6_0<=EXTERNAL)||(LA6_0>=FUNCTION && LA6_0<=IDIV)||(LA6_0>=IN && LA6_0<=LEAST)||(LA6_0>=LT && LA6_0<=MODULE)||(LA6_0>=NE && LA6_0<=NO_PRESERVE)||(LA6_0>=OF && LA6_0<=ORDER)||LA6_0==ORDERING||LA6_0==PRESERVE||(LA6_0>=RETURN && LA6_0<=SCHEMA)||(LA6_0>=STABLE && LA6_0<=STRIP)||(LA6_0>=THEN && LA6_0<=TREAT)||LA6_0==UNION||(LA6_0>=VERSION && LA6_0<=MINUS_SIGN)||(LA6_0>=NAN && LA6_0<=START)||(LA6_0>=TUMBLING && LA6_0<=BEFORE)||LA6_0==FIRST||(LA6_0>=INTO && LA6_0<=NODES)||(LA6_0>=REVALIDATION && LA6_0<=SKIP)||(LA6_0>=VALUE && LA6_0<=WORDS)||(LA6_0>=LOOP && LA6_0<=RETURNING)||(LA6_0>=CHECK && LA6_0<=UNIQUE)||(LA6_0>=AMP_ER && LA6_0<=QUOT_ER)||LA6_0==L_NCName||LA6_0==EXPLICITLY) ) {s = 5;} + + + input.seek(index6_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 6, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA9_eotS: + "\u000c\uffff", + DFA9_eofS: + "\u000c\uffff", + DFA9_minS: + "\u0001\u0022\u0001\u0017\u0002\uffff\u0001\u001e\u0007\uffff", + DFA9_maxS: + "\u0001\u0022\u0001\u0099\u0002\uffff\u0001\u0074\u0007\uffff", + DFA9_acceptS: + "\u0002\uffff\u0001\u0007\u0001\u0001\u0001\uffff\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0008\u0001\u0009\u0001\u0002\u0001\u0006", + DFA9_specialS: + "\u0001\uffff\u0001\u0000\u000a\uffff}>", + DFA9_transitionS: [ + "\u0001\u0001", + "\u0001\u0005\u0001\u0003\u0007\uffff\u0001\u0006\u0001\u0008"+ + "\u0001\uffff\u0001\u0004\u0030\uffff\u0001\u0007\u001f\uffff"+ + "\u0001\u0009\u0024\uffff\u0001\u0002", + "", + "", + "\u0001\u000a\u0033\uffff\u0001\u000b\u0021\uffff\u0001\u0009", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA9_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_eotS), + DFA9_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_eofS), + DFA9_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA9_minS), + DFA9_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA9_maxS), + DFA9_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_acceptS), + DFA9_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_specialS), + DFA9_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA9_transitionS.length; + for (i=0; i pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA9_1 = input.LA(1); + + + var index9_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA9_1==REVALIDATION) && ((this.lc(XQU)))) {s = 2;} + + else if ( (LA9_1==BOUNDARY_SPACE) ) {s = 3;} + + else if ( (LA9_1==DEFAULT) ) {s = 4;} + + else if ( (LA9_1==BASE_URI) ) {s = 5;} + + else if ( (LA9_1==CONSTRUCTION) ) {s = 6;} + + else if ( (LA9_1==ORDERING) ) {s = 7;} + + else if ( (LA9_1==COPY_NAMESPACES) ) {s = 8;} + + else if ( (LA9_1==DECIMAL_FORMAT) ) {s = 9;} + + + input.seek(index9_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 9, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA44_eotS: + "\u0048\uffff", + DFA44_eofS: + "\u0001\u0043\u0047\uffff", + DFA44_minS: + "\u0001\u0010\u0042\u0000\u0001\uffff\u0002\u0000\u0002\uffff", + DFA44_maxS: + "\u0001\u0154\u0042\u0000\u0001\uffff\u0002\u0000\u0002\uffff", + DFA44_acceptS: + "\u0043\uffff\u0001\u0001\u0003\uffff\u0001\u0002", + DFA44_specialS: + "\u0001\u0000\u0001\u0001\u0001\u0002\u0001\u0003\u0001\u0004\u0001"+ + "\u0005\u0001\u0006\u0001\u0007\u0001\u0008\u0001\u0009\u0001\u000a\u0001"+ + "\u000b\u0001\u000c\u0001\u000d\u0001\u000e\u0001\u000f\u0001\u0010\u0001"+ + "\u0011\u0001\u0012\u0001\u0013\u0001\u0014\u0001\u0015\u0001\u0016\u0001"+ + "\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001\u001c\u0001"+ + "\u001d\u0001\u001e\u0001\u001f\u0001\u0020\u0001\u0021\u0001\u0022\u0001"+ + "\u0023\u0001\u0024\u0001\u0025\u0001\u0026\u0001\u0027\u0001\u0028\u0001"+ + "\u0029\u0001\u002a\u0001\u002b\u0001\u002c\u0001\u002d\u0001\u002e\u0001"+ + "\u002f\u0001\u0030\u0001\u0031\u0001\u0032\u0001\u0033\u0001\u0034\u0001"+ + "\u0035\u0001\u0036\u0001\u0037\u0001\u0038\u0001\u0039\u0001\u003a\u0001"+ + "\u003b\u0001\u003c\u0001\u003d\u0001\u003e\u0001\u003f\u0001\u0040\u0001"+ + "\u0041\u0001\u0042\u0001\uffff\u0001\u0043\u0001\u0044\u0002\uffff}>", + DFA44_transitionS: [ + "\u0001\u0027\u0001\u002a\u0004\u0044\u0001\u001f\u0006\u0044"+ + "\u0001\u002b\u0001\u0044\u0001\u0022\u0004\u0044\u0001\u002d"+ + "\u0001\u002f\u0002\u0044\u0001\u001a\u0001\u0024\u0001\u0017"+ + "\u0002\u0044\u0001\u0045\u0002\u0044\u0001\u0008\u0002\u0044"+ + "\u0001\u0031\u0001\u0030\u0001\u0001\u0005\u0044\u0001\u0003"+ + "\u0006\u0044\u0001\u0045\u0003\u0044\u0001\u0002\u0003\u0044"+ + "\u0001\u001e\u0003\u0044\u0001\u0037\u0004\u0044\u0001\u0016"+ + "\u0001\u0044\u0001\u0025\u0001\u0029\u0001\u0028\u0001\u0044"+ + "\u0001\u0023\u0003\u0044\u0001\u0035\u0001\u0034\u0001\u002e"+ + "\u0001\u0007\u0003\u0044\u0001\u0020\u0003\u0044\u0001\u0005"+ + "\u0001\u0044\u0001\u0019\u0001\u000b\u0001\u0042\u000f\u0044"+ + "\u0001\u0036\u0009\u0044\u0001\u0004\u0001\u0006\u0007\u0044"+ + "\u0001\u003e\u0001\u003b\u0001\u0044\u0001\u0032\u0004\u0044"+ + "\u0001\u003c\u0001\u003d\u0002\u0044\u0001\u0018\u002c\u0044"+ + "\u0001\u003f\u0001\u0040\u0001\u0041\u0002\u0044\u0001\u0038"+ + "\u000a\u0044\u0001\u0021\u0003\u0044\u0001\uffff\u0001\u000e"+ + "\u0001\uffff\u0001\u0014\u0001\u0026\u0006\uffff\u0001\u0043"+ + "\u0004\uffff\u0001\u0039\u0001\u0009\u0001\u000a\u0001\u001b"+ + "\u0005\uffff\u0001\u000c\u0001\u000d\u0001\u0015\u0001\u002c"+ + "\u000c\uffff\u0001\u0033\u0002\uffff\u0001\u0013\u0001\u0012"+ + "\u0002\uffff\u0001\u0044\u0006\uffff\u0001\u003a\u0001\u001c"+ + "\u0001\u001d\u0001\u000f\u0001\u0010\u0001\u0011\u003b\uffff"+ + "\u0001\u0044", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "\u0001\uffff", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA44_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_eotS), + DFA44_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_eofS), + DFA44_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA44_minS), + DFA44_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA44_maxS), + DFA44_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_acceptS), + DFA44_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_specialS), + DFA44_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA44_transitionS.length; + for (i=0; i p_Program | p_Expr[true,true] );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA44_0 = input.LA(1); + + + var index44_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA44_0==FOR) ) {s = 1;} + + else if ( (LA44_0==LET) ) {s = 2;} + + else if ( (LA44_0==IF) ) {s = 3;} + + else if ( (LA44_0==SWITCH) ) {s = 4;} + + else if ( (LA44_0==TYPESWITCH) ) {s = 5;} + + else if ( (LA44_0==TRY) ) {s = 6;} + + else if ( (LA44_0==SOME) ) {s = 7;} + + else if ( (LA44_0==EVERY) ) {s = 8;} + + else if ( (LA44_0==PLUS) ) {s = 9;} + + else if ( (LA44_0==MINUS) ) {s = 10;} + + else if ( (LA44_0==VALIDATE) ) {s = 11;} + + else if ( (LA44_0==SLASH) ) {s = 12;} + + else if ( (LA44_0==SLASH_SLASH) ) {s = 13;} + + else if ( (LA44_0==LPAREN) ) {s = 14;} + + else if ( (LA44_0==L_IntegerLiteral) ) {s = 15;} + + else if ( (LA44_0==L_DecimalLiteral) ) {s = 16;} + + else if ( (LA44_0==L_DoubleLiteral) ) {s = 17;} + + else if ( (LA44_0==QUOT) ) {s = 18;} + + else if ( (LA44_0==APOS) ) {s = 19;} + + else if ( (LA44_0==DOLLAR) ) {s = 20;} + + else if ( (LA44_0==DOT) ) {s = 21;} + + else if ( (LA44_0==ORDERED) ) {s = 22;} + + else if ( (LA44_0==ELEMENT) ) {s = 23;} + + else if ( (LA44_0==UPDATING) ) {s = 24;} + + else if ( (LA44_0==UNORDERED) ) {s = 25;} + + else if ( (LA44_0==DOCUMENT) ) {s = 26;} + + else if ( (LA44_0==SMALLER) ) {s = 27;} + + else if ( (LA44_0==L_DirCommentConstructor) ) {s = 28;} + + else if ( (LA44_0==L_DirPIConstructor) ) {s = 29;} + + else if ( (LA44_0==NAMESPACE) ) {s = 30;} + + else if ( (LA44_0==ATTRIBUTE) ) {s = 31;} + + else if ( (LA44_0==TEXT) ) {s = 32;} + + else if ( (LA44_0==BINARY) ) {s = 33;} + + else if ( (LA44_0==COMMENT) ) {s = 34;} + + else if ( (LA44_0==PROCESSING_INSTRUCTION) ) {s = 35;} + + else if ( (LA44_0==DOCUMENT_NODE) ) {s = 36;} + + else if ( (LA44_0==PARENT) ) {s = 37;} + + else if ( (LA44_0==LBRACKET) ) {s = 38;} + + else if ( (LA44_0==ANCESTOR) ) {s = 39;} + + else if ( (LA44_0==PRECEDING_SIBLING) ) {s = 40;} + + else if ( (LA44_0==PRECEDING) ) {s = 41;} + + else if ( (LA44_0==ANCESTOR_OR_SELF) ) {s = 42;} + + else if ( (LA44_0==CHILD) ) {s = 43;} + + else if ( (LA44_0==DOT_DOT) ) {s = 44;} + + else if ( (LA44_0==DESCENDANT) ) {s = 45;} + + else if ( (LA44_0==SELF) ) {s = 46;} + + else if ( (LA44_0==DESCENDANT_OR_SELF) ) {s = 47;} + + else if ( (LA44_0==FOLLOWING_SIBLING) ) {s = 48;} + + else if ( (LA44_0==FOLLOWING) ) {s = 49;} + + else if ( (LA44_0==INSERT) ) {s = 50;} + + else if ( (LA44_0==ATTR_SIGN) ) {s = 51;} + + else if ( (LA44_0==SCHEMA_ELEMENT) ) {s = 52;} + + else if ( (LA44_0==SCHEMA_ATTRIBUTE) ) {s = 53;} + + else if ( (LA44_0==NAMESPACE_NODE) ) {s = 54;} + + else if ( (LA44_0==NODE) ) {s = 55;} + + else if ( (LA44_0==WHILE) ) {s = 56;} + + else if ( (LA44_0==STAR) ) {s = 57;} + + else if ( (LA44_0==L_Pragma) ) {s = 58;} + + else if ( (LA44_0==DELETE) ) {s = 59;} + + else if ( (LA44_0==RENAME) ) {s = 60;} + + else if ( (LA44_0==REPLACE) ) {s = 61;} + + else if ( (LA44_0==COPY) ) {s = 62;} + + else if ( (LA44_0==BREAK) ) {s = 63;} + + else if ( (LA44_0==CONTINUE) ) {s = 64;} + + else if ( (LA44_0==EXIT) ) {s = 65;} + + else if ( (LA44_0==VARIABLE) ) {s = 66;} + + else if ( (LA44_0==EOF||LA44_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 67;} + + else if ( ((LA44_0>=AND && LA44_0<=AT)||(LA44_0>=BASE_URI && LA44_0<=CASTABLE)||LA44_0==COLLATION||(LA44_0>=CONSTRUCTION && LA44_0<=DEFAULT)||(LA44_0>=DESCENDING && LA44_0<=DIV)||(LA44_0>=ELSE && LA44_0<=EMPTY)||(LA44_0>=ENCODING && LA44_0<=EQ)||(LA44_0>=EXCEPT && LA44_0<=EXTERNAL)||(LA44_0>=FUNCTION && LA44_0<=IDIV)||(LA44_0>=IMPORT && LA44_0<=IS)||(LA44_0>=LAX && LA44_0<=LEAST)||(LA44_0>=LT && LA44_0<=MODULE)||(LA44_0>=NE && LA44_0<=NO_PRESERVE)||(LA44_0>=OF && LA44_0<=ORDER)||LA44_0==ORDERING||LA44_0==PRESERVE||(LA44_0>=RETURN && LA44_0<=SCHEMA)||(LA44_0>=STABLE && LA44_0<=STRIP)||(LA44_0>=THEN && LA44_0<=TREAT)||LA44_0==UNION||(LA44_0>=VERSION && LA44_0<=MINUS_SIGN)||(LA44_0>=NAN && LA44_0<=START)||(LA44_0>=TUMBLING && LA44_0<=BEFORE)||LA44_0==FIRST||(LA44_0>=INTO && LA44_0<=NODES)||(LA44_0>=REVALIDATION && LA44_0<=SKIP)||(LA44_0>=VALUE && LA44_0<=WORDS)||(LA44_0>=LOOP && LA44_0<=RETURNING)||(LA44_0>=CHECK && LA44_0<=UNIQUE)||(LA44_0>=AMP_ER && LA44_0<=QUOT_ER)||LA44_0==L_NCName||LA44_0==EXPLICITLY) ) {s = 68;} + + else if ( (LA44_0==EMPTY_SEQUENCE||LA44_0==ITEM) ) {s = 69;} + + + input.seek(index44_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA44_1 = input.LA(1); + + + var index44_1 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA44_2 = input.LA(1); + + + var index44_2 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_2); + if ( s>=0 ) return s; + break; + case 3 : + var LA44_3 = input.LA(1); + + + var index44_3 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_3); + if ( s>=0 ) return s; + break; + case 4 : + var LA44_4 = input.LA(1); + + + var index44_4 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_4); + if ( s>=0 ) return s; + break; + case 5 : + var LA44_5 = input.LA(1); + + + var index44_5 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_5); + if ( s>=0 ) return s; + break; + case 6 : + var LA44_6 = input.LA(1); + + + var index44_6 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_6); + if ( s>=0 ) return s; + break; + case 7 : + var LA44_7 = input.LA(1); + + + var index44_7 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_7); + if ( s>=0 ) return s; + break; + case 8 : + var LA44_8 = input.LA(1); + + + var index44_8 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_8); + if ( s>=0 ) return s; + break; + case 9 : + var LA44_9 = input.LA(1); + + + var index44_9 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_9); + if ( s>=0 ) return s; + break; + case 10 : + var LA44_10 = input.LA(1); + + + var index44_10 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_10); + if ( s>=0 ) return s; + break; + case 11 : + var LA44_11 = input.LA(1); + + + var index44_11 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_11); + if ( s>=0 ) return s; + break; + case 12 : + var LA44_12 = input.LA(1); + + + var index44_12 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_12); + if ( s>=0 ) return s; + break; + case 13 : + var LA44_13 = input.LA(1); + + + var index44_13 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_13); + if ( s>=0 ) return s; + break; + case 14 : + var LA44_14 = input.LA(1); + + + var index44_14 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_14); + if ( s>=0 ) return s; + break; + case 15 : + var LA44_15 = input.LA(1); + + + var index44_15 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_15); + if ( s>=0 ) return s; + break; + case 16 : + var LA44_16 = input.LA(1); + + + var index44_16 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_16); + if ( s>=0 ) return s; + break; + case 17 : + var LA44_17 = input.LA(1); + + + var index44_17 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_17); + if ( s>=0 ) return s; + break; + case 18 : + var LA44_18 = input.LA(1); + + + var index44_18 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_18); + if ( s>=0 ) return s; + break; + case 19 : + var LA44_19 = input.LA(1); + + + var index44_19 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_19); + if ( s>=0 ) return s; + break; + case 20 : + var LA44_20 = input.LA(1); + + + var index44_20 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_20); + if ( s>=0 ) return s; + break; + case 21 : + var LA44_21 = input.LA(1); + + + var index44_21 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_21); + if ( s>=0 ) return s; + break; + case 22 : + var LA44_22 = input.LA(1); + + + var index44_22 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_22); + if ( s>=0 ) return s; + break; + case 23 : + var LA44_23 = input.LA(1); + + + var index44_23 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_23); + if ( s>=0 ) return s; + break; + case 24 : + var LA44_24 = input.LA(1); + + + var index44_24 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_24); + if ( s>=0 ) return s; + break; + case 25 : + var LA44_25 = input.LA(1); + + + var index44_25 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_25); + if ( s>=0 ) return s; + break; + case 26 : + var LA44_26 = input.LA(1); + + + var index44_26 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_26); + if ( s>=0 ) return s; + break; + case 27 : + var LA44_27 = input.LA(1); + + + var index44_27 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_27); + if ( s>=0 ) return s; + break; + case 28 : + var LA44_28 = input.LA(1); + + + var index44_28 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_28); + if ( s>=0 ) return s; + break; + case 29 : + var LA44_29 = input.LA(1); + + + var index44_29 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_29); + if ( s>=0 ) return s; + break; + case 30 : + var LA44_30 = input.LA(1); + + + var index44_30 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_30); + if ( s>=0 ) return s; + break; + case 31 : + var LA44_31 = input.LA(1); + + + var index44_31 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_31); + if ( s>=0 ) return s; + break; + case 32 : + var LA44_32 = input.LA(1); + + + var index44_32 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_32); + if ( s>=0 ) return s; + break; + case 33 : + var LA44_33 = input.LA(1); + + + var index44_33 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(MLS)))||((this.lc(XQS))&&(this.lc(MLS)))||(this.lc(XQS))||((this.lc(XQS))&&(this.lc(MLS)))||((this.lc(XQS))&&(this.lc(MLS))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_33); + if ( s>=0 ) return s; + break; + case 34 : + var LA44_34 = input.LA(1); + + + var index44_34 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_34); + if ( s>=0 ) return s; + break; + case 35 : + var LA44_35 = input.LA(1); + + + var index44_35 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_35); + if ( s>=0 ) return s; + break; + case 36 : + var LA44_36 = input.LA(1); + + + var index44_36 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_36); + if ( s>=0 ) return s; + break; + case 37 : + var LA44_37 = input.LA(1); + + + var index44_37 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_37); + if ( s>=0 ) return s; + break; + case 38 : + var LA44_38 = input.LA(1); + + + var index44_38 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_38); + if ( s>=0 ) return s; + break; + case 39 : + var LA44_39 = input.LA(1); + + + var index44_39 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_39); + if ( s>=0 ) return s; + break; + case 40 : + var LA44_40 = input.LA(1); + + + var index44_40 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_40); + if ( s>=0 ) return s; + break; + case 41 : + var LA44_41 = input.LA(1); + + + var index44_41 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_41); + if ( s>=0 ) return s; + break; + case 42 : + var LA44_42 = input.LA(1); + + + var index44_42 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_42); + if ( s>=0 ) return s; + break; + case 43 : + var LA44_43 = input.LA(1); + + + var index44_43 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_43); + if ( s>=0 ) return s; + break; + case 44 : + var LA44_44 = input.LA(1); + + + var index44_44 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_44); + if ( s>=0 ) return s; + break; + case 45 : + var LA44_45 = input.LA(1); + + + var index44_45 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_45); + if ( s>=0 ) return s; + break; + case 46 : + var LA44_46 = input.LA(1); + + + var index44_46 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_46); + if ( s>=0 ) return s; + break; + case 47 : + var LA44_47 = input.LA(1); + + + var index44_47 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_47); + if ( s>=0 ) return s; + break; + case 48 : + var LA44_48 = input.LA(1); + + + var index44_48 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_48); + if ( s>=0 ) return s; + break; + case 49 : + var LA44_49 = input.LA(1); + + + var index44_49 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_49); + if ( s>=0 ) return s; + break; + case 50 : + var LA44_50 = input.LA(1); + + + var index44_50 = input.index(); + input.rewind(); + s = -1; + if ( (((this.lc(XQS))||((this.lc(XQS))&&(this.lc(XQU))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_50); + if ( s>=0 ) return s; + break; + case 51 : + var LA44_51 = input.LA(1); + + + var index44_51 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_51); + if ( s>=0 ) return s; + break; + case 52 : + var LA44_52 = input.LA(1); + + + var index44_52 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_52); + if ( s>=0 ) return s; + break; + case 53 : + var LA44_53 = input.LA(1); + + + var index44_53 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_53); + if ( s>=0 ) return s; + break; + case 54 : + var LA44_54 = input.LA(1); + + + var index44_54 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_54); + if ( s>=0 ) return s; + break; + case 55 : + var LA44_55 = input.LA(1); + + + var index44_55 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_55); + if ( s>=0 ) return s; + break; + case 56 : + var LA44_56 = input.LA(1); + + + var index44_56 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_56); + if ( s>=0 ) return s; + break; + case 57 : + var LA44_57 = input.LA(1); + + + var index44_57 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_57); + if ( s>=0 ) return s; + break; + case 58 : + var LA44_58 = input.LA(1); + + + var index44_58 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_58); + if ( s>=0 ) return s; + break; + case 59 : + var LA44_59 = input.LA(1); + + + var index44_59 = input.index(); + input.rewind(); + s = -1; + if ( (((this.lc(XQS))||((this.lc(XQS))&&(this.lc(XQU))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_59); + if ( s>=0 ) return s; + break; + case 60 : + var LA44_60 = input.LA(1); + + + var index44_60 = input.index(); + input.rewind(); + s = -1; + if ( (((this.lc(XQS))||((this.lc(XQS))&&(this.lc(XQU))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_60); + if ( s>=0 ) return s; + break; + case 61 : + var LA44_61 = input.LA(1); + + + var index44_61 = input.index(); + input.rewind(); + s = -1; + if ( (((this.lc(XQS))||((this.lc(XQS))&&(this.lc(XQU))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_61); + if ( s>=0 ) return s; + break; + case 62 : + var LA44_62 = input.LA(1); + + + var index44_62 = input.index(); + input.rewind(); + s = -1; + if ( (((this.lc(XQS))||((this.lc(XQS))&&(this.lc(XQU))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_62); + if ( s>=0 ) return s; + break; + case 63 : + var LA44_63 = input.LA(1); + + + var index44_63 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_63); + if ( s>=0 ) return s; + break; + case 64 : + var LA44_64 = input.LA(1); + + + var index44_64 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_64); + if ( s>=0 ) return s; + break; + case 65 : + var LA44_65 = input.LA(1); + + + var index44_65 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_65); + if ( s>=0 ) return s; + break; + case 66 : + var LA44_66 = input.LA(1); + + + var index44_66 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_66); + if ( s>=0 ) return s; + break; + case 67 : + var LA44_68 = input.LA(1); + + + var index44_68 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_68); + if ( s>=0 ) return s; + break; + case 68 : + var LA44_69 = input.LA(1); + + + var index44_69 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_69); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 44, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA46_eotS: + "\u0011\uffff", + DFA46_eofS: + "\u0001\uffff\u0006\u0007\u000a\uffff", + DFA46_minS: + "\u0001\u0010\u0006\u0012\u000a\uffff", + DFA46_maxS: + "\u0001\u0154\u0006\u00fe\u000a\uffff", + DFA46_acceptS: + "\u0007\uffff\u0001\u0006\u0005\u0001\u0001\u0002\u0001\u0003\u0001"+ + "\u0004\u0001\u0005", + DFA46_specialS: + "\u0001\uffff\u0001\u0005\u0001\u0003\u0001\u0002\u0001\u0000\u0001"+ + "\u0001\u0001\u0004\u000a\uffff}>", + DFA46_transitionS: [ + "\u0025\u0007\u0001\u0001\u0005\u0007\u0001\u0003\u000a\u0007"+ + "\u0001\u0002\u0021\u0007\u0001\u0005\u001d\u0007\u0001\u0004"+ + "\u0001\u0006\u0054\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u000b\uffff\u0004\u0007\u0005\uffff\u0004\u0007"+ + "\u000c\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0002\uffff"+ + "\u0001\u0007\u0006\uffff\u0006\u0007\u003b\uffff\u0001\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0004\uffff\u0001\u000a\u0001\u0007"+ + "\u0002\uffff\u0001\u0009\u0004\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0007\uffff\u0001\u0007"+ + "\u0002\uffff\u0001\u0007\u003b\uffff\u0003\u0007\u0001\u0008"+ + "\u0001\uffff\u0004\u0007\u0001\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0007\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007"+ + "\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u0018\uffff"+ + "\u0001\u000c\u0022\uffff\u0003\u0007\u0001\u000b\u0001\uffff"+ + "\u0004\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007"+ + "\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff"+ + "\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000d\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000e\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000f\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0003\u0007\u0001\uffff\u0001\u0010\u0004\u0007\u0001\uffff"+ + "\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff\u000b\u0007"+ + "\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA46_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_eotS), + DFA46_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_eofS), + DFA46_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA46_minS), + DFA46_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA46_maxS), + DFA46_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_acceptS), + DFA46_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_specialS), + DFA46_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA46_transitionS.length; + for (i=0; i p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA46_4 = input.LA(1); + + + var index46_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_4==LPAREN) && (this.synpred3_XQueryParser())) {s = 14;} + + else if ( (LA46_4==EOF||(LA46_4>=AND && LA46_4<=ASCENDING)||(LA46_4>=CASE && LA46_4<=CASTABLE)||LA46_4==COLLATION||LA46_4==DEFAULT||(LA46_4>=DESCENDING && LA46_4<=DIV)||LA46_4==EMPTY||LA46_4==EQ||LA46_4==EXCEPT||LA46_4==FOR||LA46_4==GE||(LA46_4>=GT && LA46_4<=IDIV)||(LA46_4>=INSTANCE && LA46_4<=IS)||LA46_4==LE||(LA46_4>=LET && LA46_4<=MOD)||LA46_4==NE||(LA46_4>=OR && LA46_4<=ORDER)||(LA46_4>=RETURN && LA46_4<=SATISFIES)||LA46_4==STABLE||(LA46_4>=TO && LA46_4<=TREAT)||LA46_4==UNION||LA46_4==WHERE||LA46_4==COUNT||(LA46_4>=END && LA46_4<=GROUP)||LA46_4==ONLY||LA46_4==START||(LA46_4>=AFTER && LA46_4<=BEFORE)||LA46_4==INTO||LA46_4==MODIFY||LA46_4==WITH||LA46_4==CONTAINS||LA46_4==CONCAT||LA46_4==RPAREN||(LA46_4>=RBRACKET && LA46_4<=EQUAL)||LA46_4==NOTEQUAL||LA46_4==COMMA||(LA46_4>=STAR && LA46_4<=SLASH_SLASH)||LA46_4==COLON||(LA46_4>=SEMICOLON && LA46_4<=VBAR)) ) {s = 7;} + + + input.seek(index46_4); + if ( s>=0 ) return s; + break; + case 1 : + var LA46_5 = input.LA(1); + + + var index46_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_5==LPAREN) && (this.synpred4_XQueryParser())) {s = 15;} + + else if ( (LA46_5==EOF||(LA46_5>=AND && LA46_5<=ASCENDING)||(LA46_5>=CASE && LA46_5<=CASTABLE)||LA46_5==COLLATION||LA46_5==DEFAULT||(LA46_5>=DESCENDING && LA46_5<=DIV)||LA46_5==EMPTY||LA46_5==EQ||LA46_5==EXCEPT||LA46_5==FOR||LA46_5==GE||(LA46_5>=GT && LA46_5<=IDIV)||(LA46_5>=INSTANCE && LA46_5<=IS)||LA46_5==LE||(LA46_5>=LET && LA46_5<=MOD)||LA46_5==NE||(LA46_5>=OR && LA46_5<=ORDER)||(LA46_5>=RETURN && LA46_5<=SATISFIES)||LA46_5==STABLE||(LA46_5>=TO && LA46_5<=TREAT)||LA46_5==UNION||LA46_5==WHERE||LA46_5==COUNT||(LA46_5>=END && LA46_5<=GROUP)||LA46_5==ONLY||LA46_5==START||(LA46_5>=AFTER && LA46_5<=BEFORE)||LA46_5==INTO||LA46_5==MODIFY||LA46_5==WITH||LA46_5==CONTAINS||LA46_5==CONCAT||LA46_5==RPAREN||(LA46_5>=RBRACKET && LA46_5<=EQUAL)||LA46_5==NOTEQUAL||LA46_5==COMMA||(LA46_5>=STAR && LA46_5<=SLASH_SLASH)||LA46_5==COLON||(LA46_5>=SEMICOLON && LA46_5<=VBAR)) ) {s = 7;} + + + input.seek(index46_5); + if ( s>=0 ) return s; + break; + case 2 : + var LA46_3 = input.LA(1); + + + var index46_3 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_3==LPAREN) && (this.synpred2_XQueryParser())) {s = 13;} + + else if ( (LA46_3==EOF||(LA46_3>=AND && LA46_3<=ASCENDING)||(LA46_3>=CASE && LA46_3<=CASTABLE)||LA46_3==COLLATION||LA46_3==DEFAULT||(LA46_3>=DESCENDING && LA46_3<=DIV)||LA46_3==EMPTY||LA46_3==EQ||LA46_3==EXCEPT||LA46_3==FOR||LA46_3==GE||(LA46_3>=GT && LA46_3<=IDIV)||(LA46_3>=INSTANCE && LA46_3<=IS)||LA46_3==LE||(LA46_3>=LET && LA46_3<=MOD)||LA46_3==NE||(LA46_3>=OR && LA46_3<=ORDER)||(LA46_3>=RETURN && LA46_3<=SATISFIES)||LA46_3==STABLE||(LA46_3>=TO && LA46_3<=TREAT)||LA46_3==UNION||LA46_3==WHERE||LA46_3==COUNT||(LA46_3>=END && LA46_3<=GROUP)||LA46_3==ONLY||LA46_3==START||(LA46_3>=AFTER && LA46_3<=BEFORE)||LA46_3==INTO||LA46_3==MODIFY||LA46_3==WITH||LA46_3==CONTAINS||LA46_3==CONCAT||LA46_3==RPAREN||(LA46_3>=RBRACKET && LA46_3<=EQUAL)||LA46_3==NOTEQUAL||LA46_3==COMMA||(LA46_3>=STAR && LA46_3<=SLASH_SLASH)||LA46_3==COLON||(LA46_3>=SEMICOLON && LA46_3<=VBAR)) ) {s = 7;} + + + input.seek(index46_3); + if ( s>=0 ) return s; + break; + case 3 : + var LA46_2 = input.LA(1); + + + var index46_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_2==DOLLAR) && (this.synpred1_XQueryParser())) {s = 11;} + + else if ( (LA46_2==SCORE) && (this.synpred1_XQueryParser())) {s = 12;} + + else if ( (LA46_2==EOF||(LA46_2>=AND && LA46_2<=ASCENDING)||(LA46_2>=CASE && LA46_2<=CASTABLE)||LA46_2==COLLATION||LA46_2==DEFAULT||(LA46_2>=DESCENDING && LA46_2<=DIV)||LA46_2==EMPTY||LA46_2==EQ||LA46_2==EXCEPT||LA46_2==FOR||LA46_2==GE||(LA46_2>=GT && LA46_2<=IDIV)||(LA46_2>=INSTANCE && LA46_2<=IS)||LA46_2==LE||(LA46_2>=LET && LA46_2<=MOD)||LA46_2==NE||(LA46_2>=OR && LA46_2<=ORDER)||(LA46_2>=RETURN && LA46_2<=SATISFIES)||LA46_2==STABLE||(LA46_2>=TO && LA46_2<=TREAT)||LA46_2==UNION||LA46_2==WHERE||LA46_2==COUNT||(LA46_2>=END && LA46_2<=GROUP)||LA46_2==ONLY||LA46_2==START||(LA46_2>=AFTER && LA46_2<=BEFORE)||LA46_2==INTO||LA46_2==MODIFY||LA46_2==WITH||LA46_2==CONTAINS||(LA46_2>=CONCAT && LA46_2<=RPAREN)||(LA46_2>=RBRACKET && LA46_2<=EQUAL)||LA46_2==NOTEQUAL||LA46_2==COMMA||(LA46_2>=STAR && LA46_2<=SLASH_SLASH)||LA46_2==COLON||(LA46_2>=SEMICOLON && LA46_2<=VBAR)) ) {s = 7;} + + + input.seek(index46_2); + if ( s>=0 ) return s; + break; + case 4 : + var LA46_6 = input.LA(1); + + + var index46_6 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_6==LBRACKET) && (this.synpred5_XQueryParser())) {s = 16;} + + else if ( (LA46_6==EOF||(LA46_6>=AND && LA46_6<=ASCENDING)||(LA46_6>=CASE && LA46_6<=CASTABLE)||LA46_6==COLLATION||LA46_6==DEFAULT||(LA46_6>=DESCENDING && LA46_6<=DIV)||LA46_6==EMPTY||LA46_6==EQ||LA46_6==EXCEPT||LA46_6==FOR||LA46_6==GE||(LA46_6>=GT && LA46_6<=IDIV)||(LA46_6>=INSTANCE && LA46_6<=IS)||LA46_6==LE||(LA46_6>=LET && LA46_6<=MOD)||LA46_6==NE||(LA46_6>=OR && LA46_6<=ORDER)||(LA46_6>=RETURN && LA46_6<=SATISFIES)||LA46_6==STABLE||(LA46_6>=TO && LA46_6<=TREAT)||LA46_6==UNION||LA46_6==WHERE||LA46_6==COUNT||(LA46_6>=END && LA46_6<=GROUP)||LA46_6==ONLY||LA46_6==START||(LA46_6>=AFTER && LA46_6<=BEFORE)||LA46_6==INTO||LA46_6==MODIFY||LA46_6==WITH||LA46_6==CONTAINS||(LA46_6>=CONCAT && LA46_6<=RPAREN)||(LA46_6>=RBRACKET && LA46_6<=EQUAL)||LA46_6==NOTEQUAL||LA46_6==COMMA||(LA46_6>=STAR && LA46_6<=SLASH_SLASH)||LA46_6==COLON||(LA46_6>=SEMICOLON && LA46_6<=VBAR)) ) {s = 7;} + + + input.seek(index46_6); + if ( s>=0 ) return s; + break; + case 5 : + var LA46_1 = input.LA(1); + + + var index46_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_1==DOLLAR) && (this.synpred1_XQueryParser())) {s = 8;} + + else if ( (LA46_1==TUMBLING) && (this.synpred1_XQueryParser())) {s = 9;} + + else if ( (LA46_1==SLIDING) && (this.synpred1_XQueryParser())) {s = 10;} + + else if ( (LA46_1==EOF||(LA46_1>=AND && LA46_1<=ASCENDING)||(LA46_1>=CASE && LA46_1<=CASTABLE)||LA46_1==COLLATION||LA46_1==DEFAULT||(LA46_1>=DESCENDING && LA46_1<=DIV)||LA46_1==EMPTY||LA46_1==EQ||LA46_1==EXCEPT||LA46_1==FOR||LA46_1==GE||(LA46_1>=GT && LA46_1<=IDIV)||(LA46_1>=INSTANCE && LA46_1<=IS)||LA46_1==LE||(LA46_1>=LET && LA46_1<=MOD)||LA46_1==NE||(LA46_1>=OR && LA46_1<=ORDER)||(LA46_1>=RETURN && LA46_1<=SATISFIES)||LA46_1==STABLE||(LA46_1>=TO && LA46_1<=TREAT)||LA46_1==UNION||LA46_1==WHERE||LA46_1==COUNT||(LA46_1>=END && LA46_1<=GROUP)||LA46_1==ONLY||LA46_1==START||(LA46_1>=AFTER && LA46_1<=BEFORE)||LA46_1==INTO||LA46_1==MODIFY||LA46_1==WITH||LA46_1==CONTAINS||(LA46_1>=CONCAT && LA46_1<=RPAREN)||(LA46_1>=RBRACKET && LA46_1<=EQUAL)||LA46_1==NOTEQUAL||LA46_1==COMMA||(LA46_1>=STAR && LA46_1<=SLASH_SLASH)||LA46_1==COLON||(LA46_1>=SEMICOLON && LA46_1<=VBAR)) ) {s = 7;} + + + input.seek(index46_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 46, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA117_eotS: + "\u0031\uffff", + DFA117_eofS: + "\u0031\uffff", + DFA117_minS: + "\u0001\u0010\u0001\u0000\u002f\uffff", + DFA117_maxS: + "\u0001\u0154\u0001\u0000\u002f\uffff", + DFA117_acceptS: + "\u0002\uffff\u0001\u0003\u0001\u0004\u002b\uffff\u0001\u0001\u0001"+ + "\u0002", + DFA117_specialS: + "\u0001\uffff\u0001\u0000\u002f\uffff}>", + DFA117_transitionS: [ + "\u00cc\u0003\u0001\uffff\u0001\u0003\u0001\uffff\u0002\u0003"+ + "\u000b\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0001\u0001\u0002\u0002\u0003\u000c\uffff\u0001\u0003"+ + "\u0002\uffff\u0002\u0003\u0002\uffff\u0001\u0003\u0007\uffff"+ + "\u0005\u0003\u003b\uffff\u0001\u0003", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA117_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_eotS), + DFA117_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_eofS), + DFA117_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA117_minS), + DFA117_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA117_maxS), + DFA117_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_acceptS), + DFA117_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_specialS), + DFA117_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA117_transitionS.length; + for (i=0; i ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA117_1 = input.LA(1); + + + var index117_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred7_XQueryParser()) ) {s = 47;} + + else if ( (true) ) {s = 48;} + + + input.seek(index117_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 117, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA119_eotS: + "\u0033\uffff", + DFA119_eofS: + "\u0033\uffff", + DFA119_minS: + "\u0001\u0010\u002c\u0000\u0006\uffff", + DFA119_maxS: + "\u0001\u0154\u002c\u0000\u0006\uffff", + DFA119_acceptS: + "\u002d\uffff\u0001\u0001\u0001\u0002\u0001\u0004\u0001\u0005\u0001"+ + "\u0003\u0001\u0006", + DFA119_specialS: + "\u0001\uffff\u0001\u0000\u0001\u0001\u0001\u0002\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0006\u0001\u0007\u0001\u0008\u0001\u0009\u0001"+ + "\u000a\u0001\u000b\u0001\u000c\u0001\u000d\u0001\u000e\u0001\u000f\u0001"+ + "\u0010\u0001\u0011\u0001\u0012\u0001\u0013\u0001\u0014\u0001\u0015\u0001"+ + "\u0016\u0001\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001"+ + "\u001c\u0001\u001d\u0001\u001e\u0001\u001f\u0001\u0020\u0001\u0021\u0001"+ + "\u0022\u0001\u0023\u0001\u0024\u0001\u0025\u0001\u0026\u0001\u0027\u0001"+ + "\u0028\u0001\u0029\u0001\u002a\u0001\u002b\u0006\uffff}>", + DFA119_transitionS: [ + "\u0001\u001a\u0001\u001d\u0004\u0025\u0001\u0012\u0006\u0025"+ + "\u0001\u001e\u0001\u0025\u0001\u0015\u0004\u0025\u0001\u0020"+ + "\u0001\u0022\u0002\u0025\u0001\u000d\u0001\u0017\u0001\u000a"+ + "\u0002\u0025\u0001\u002b\u0005\u0025\u0001\u0024\u0001\u0023"+ + "\u0006\u0025\u0001\u002b\u0006\u0025\u0001\u002b\u0007\u0025"+ + "\u0001\u0011\u0003\u0025\u0001\u002a\u0004\u0025\u0001\u0009"+ + "\u0001\u0025\u0001\u0018\u0001\u001c\u0001\u001b\u0001\u0025"+ + "\u0001\u0016\u0003\u0025\u0001\u0028\u0001\u0027\u0001\u0021"+ + "\u0004\u0025\u0001\u0013\u0003\u0025\u0001\u002b\u0001\u0025"+ + "\u0001\u000c\u0011\u0025\u0001\u0029\u0009\u0025\u0001\u002b"+ + "\u0014\u0025\u0001\u000b\u0031\u0025\u0001\u002b\u000a\u0025"+ + "\u0001\u0014\u0003\u0025\u0001\uffff\u0001\u0001\u0001\uffff"+ + "\u0001\u0007\u0001\u0019\u000b\uffff\u0001\u002c\u0002\uffff"+ + "\u0001\u000e\u0007\uffff\u0001\u0008\u0001\u001f\u000c\uffff"+ + "\u0001\u0026\u0002\uffff\u0001\u0006\u0001\u0005\u0002\uffff"+ + "\u0001\u0025\u0007\uffff\u0001\u000f\u0001\u0010\u0001\u0002"+ + "\u0001\u0003\u0001\u0004\u003b\uffff\u0001\u0025", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA119_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_eotS), + DFA119_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_eofS), + DFA119_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA119_minS), + DFA119_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA119_maxS), + DFA119_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_acceptS), + DFA119_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_specialS), + DFA119_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA119_transitionS.length; + for (i=0; i p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA119_1 = input.LA(1); + + + var index119_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA119_2 = input.LA(1); + + + var index119_2 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_2); + if ( s>=0 ) return s; + break; + case 2 : + var LA119_3 = input.LA(1); + + + var index119_3 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_3); + if ( s>=0 ) return s; + break; + case 3 : + var LA119_4 = input.LA(1); + + + var index119_4 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_4); + if ( s>=0 ) return s; + break; + case 4 : + var LA119_5 = input.LA(1); + + + var index119_5 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_5); + if ( s>=0 ) return s; + break; + case 5 : + var LA119_6 = input.LA(1); + + + var index119_6 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_6); + if ( s>=0 ) return s; + break; + case 6 : + var LA119_7 = input.LA(1); + + + var index119_7 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_7); + if ( s>=0 ) return s; + break; + case 7 : + var LA119_8 = input.LA(1); + + + var index119_8 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_8); + if ( s>=0 ) return s; + break; + case 8 : + var LA119_9 = input.LA(1); + + + var index119_9 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_9); + if ( s>=0 ) return s; + break; + case 9 : + var LA119_10 = input.LA(1); + + + var index119_10 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_10); + if ( s>=0 ) return s; + break; + case 10 : + var LA119_11 = input.LA(1); + + + var index119_11 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_11); + if ( s>=0 ) return s; + break; + case 11 : + var LA119_12 = input.LA(1); + + + var index119_12 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_12); + if ( s>=0 ) return s; + break; + case 12 : + var LA119_13 = input.LA(1); + + + var index119_13 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_13); + if ( s>=0 ) return s; + break; + case 13 : + var LA119_14 = input.LA(1); + + + var index119_14 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_14); + if ( s>=0 ) return s; + break; + case 14 : + var LA119_15 = input.LA(1); + + + var index119_15 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_15); + if ( s>=0 ) return s; + break; + case 15 : + var LA119_16 = input.LA(1); + + + var index119_16 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_16); + if ( s>=0 ) return s; + break; + case 16 : + var LA119_17 = input.LA(1); + + + var index119_17 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_17); + if ( s>=0 ) return s; + break; + case 17 : + var LA119_18 = input.LA(1); + + + var index119_18 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_18); + if ( s>=0 ) return s; + break; + case 18 : + var LA119_19 = input.LA(1); + + + var index119_19 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_19); + if ( s>=0 ) return s; + break; + case 19 : + var LA119_20 = input.LA(1); + + + var index119_20 = input.index(); + input.rewind(); + s = -1; + if ( ((this.synpred8_XQueryParser()||(this.synpred8_XQueryParser()&&(this.lc(MLS))))) ) {s = 45;} + + else if ( ((this.synpred9_XQueryParser()||(this.synpred9_XQueryParser()&&(this.lc(MLS))))) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( ((this.synpred11_XQueryParser()||(this.synpred11_XQueryParser()&&(this.lc(MLS))))) ) {s = 47;} + + else if ( (((this.synpred12_XQueryParser()&&(this.lc(MLS)))||this.synpred12_XQueryParser())) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_20); + if ( s>=0 ) return s; + break; + case 20 : + var LA119_21 = input.LA(1); + + + var index119_21 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_21); + if ( s>=0 ) return s; + break; + case 21 : + var LA119_22 = input.LA(1); + + + var index119_22 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_22); + if ( s>=0 ) return s; + break; + case 22 : + var LA119_23 = input.LA(1); + + + var index119_23 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_23); + if ( s>=0 ) return s; + break; + case 23 : + var LA119_24 = input.LA(1); + + + var index119_24 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_24); + if ( s>=0 ) return s; + break; + case 24 : + var LA119_25 = input.LA(1); + + + var index119_25 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_25); + if ( s>=0 ) return s; + break; + case 25 : + var LA119_26 = input.LA(1); + + + var index119_26 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_26); + if ( s>=0 ) return s; + break; + case 26 : + var LA119_27 = input.LA(1); + + + var index119_27 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_27); + if ( s>=0 ) return s; + break; + case 27 : + var LA119_28 = input.LA(1); + + + var index119_28 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_28); + if ( s>=0 ) return s; + break; + case 28 : + var LA119_29 = input.LA(1); + + + var index119_29 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_29); + if ( s>=0 ) return s; + break; + case 29 : + var LA119_30 = input.LA(1); + + + var index119_30 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_30); + if ( s>=0 ) return s; + break; + case 30 : + var LA119_31 = input.LA(1); + + + var index119_31 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_31); + if ( s>=0 ) return s; + break; + case 31 : + var LA119_32 = input.LA(1); + + + var index119_32 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_32); + if ( s>=0 ) return s; + break; + case 32 : + var LA119_33 = input.LA(1); + + + var index119_33 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_33); + if ( s>=0 ) return s; + break; + case 33 : + var LA119_34 = input.LA(1); + + + var index119_34 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_34); + if ( s>=0 ) return s; + break; + case 34 : + var LA119_35 = input.LA(1); + + + var index119_35 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_35); + if ( s>=0 ) return s; + break; + case 35 : + var LA119_36 = input.LA(1); + + + var index119_36 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_36); + if ( s>=0 ) return s; + break; + case 36 : + var LA119_37 = input.LA(1); + + + var index119_37 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_37); + if ( s>=0 ) return s; + break; + case 37 : + var LA119_38 = input.LA(1); + + + var index119_38 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_38); + if ( s>=0 ) return s; + break; + case 38 : + var LA119_39 = input.LA(1); + + + var index119_39 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_39); + if ( s>=0 ) return s; + break; + case 39 : + var LA119_40 = input.LA(1); + + + var index119_40 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_40); + if ( s>=0 ) return s; + break; + case 40 : + var LA119_41 = input.LA(1); + + + var index119_41 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_41); + if ( s>=0 ) return s; + break; + case 41 : + var LA119_42 = input.LA(1); + + + var index119_42 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_42); + if ( s>=0 ) return s; + break; + case 42 : + var LA119_43 = input.LA(1); + + + var index119_43 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_43); + if ( s>=0 ) return s; + break; + case 43 : + var LA119_44 = input.LA(1); + + + var index119_44 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_44); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 119, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA121_eotS: + "\u000a\uffff", + DFA121_eofS: + "\u0001\uffff\u0007\u0008\u0002\uffff", + DFA121_minS: + "\u0001\u0010\u0007\u0012\u0002\uffff", + DFA121_maxS: + "\u0001\u0154\u0007\u00fe\u0002\uffff", + DFA121_acceptS: + "\u0008\uffff\u0001\u0002\u0001\u0001", + DFA121_specialS: + "\u000a\uffff}>", + DFA121_transitionS: [ + "\u0006\u0008\u0001\u0003\u0006\u0008\u0001\u0001\u0006\u0008"+ + "\u0001\u0002\u0001\u0005\u000d\u0008\u0001\u0007\u0001\u0006"+ + "\u002a\u0008\u0001\u0004\u003b\u0008\u0001\uffff\u0040\u0008"+ + "\u0010\uffff\u0001\u0008\u0018\uffff\u0001\u0008\u0002\uffff"+ + "\u0002\u0008\u0002\uffff\u0001\u0008\u0047\uffff\u0001\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0003\u0008\u0002\uffff"+ + "\u0004\u0008\u0001\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0001\uffff\u000b\u0008\u0002\uffff\u0001\u0008\u0001\u0009"+ + "\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA121_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_eotS), + DFA121_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_eofS), + DFA121_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA121_minS), + DFA121_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA121_maxS), + DFA121_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_acceptS), + DFA121_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_specialS), + DFA121_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA121_transitionS.length; + for (i=0; i", + DFA126_transitionS: [ + "\u0006\u000b\u0001\u0003\u0008\u000b\u0001\u0007\u0009\u000b"+ + "\u0001\u0001\u0001\u0002\u0023\u000b\u0001\u000a\u000a\u000b"+ + "\u0001\u0006\u0003\u000b\u0001\u0005\u0001\u0004\u0005\u000b"+ + "\u0001\u0008\u0017\u000b\u0001\u0009\u001e\u000b\u0001\uffff"+ + "\u0040\u000b\u0010\uffff\u0001\u000b\u001b\uffff\u0002\u000b"+ + "\u0002\uffff\u0001\u000b\u0047\uffff\u0001\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA126_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_eotS), + DFA126_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_eofS), + DFA126_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA126_minS), + DFA126_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA126_maxS), + DFA126_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_acceptS), + DFA126_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_specialS), + DFA126_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA126_transitionS.length; + for (i=0; i", + DFA134_transitionS: [ + "\u0006\u0007\u0001\u000c\u0008\u0007\u0001\u000f\u0008\u0007"+ + "\u0001\u0009\u0001\u0007\u0001\u0006\u001f\u0007\u0001\u000b"+ + "\u0008\u0007\u0001\u0005\u0005\u0007\u0001\u0010\u000a\u0007"+ + "\u0001\u000d\u0005\u0007\u0001\u0008\u006d\u0007\u0001\u000e"+ + "\u0003\u0007\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0003"+ + "\u0001\u0011\u000e\uffff\u0001\u000a\u0007\uffff\u0001\u0004"+ + "\u0010\uffff\u0002\u0002\u0002\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u000a\u0003\u0002\u003b\uffff\u0001\u0007", + "", + "", + "", + "", + "\u0001\u0007\u0002\uffff\u0001\u0012\u0018\uffff\u0001\u0007", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0004\uffff\u0001\u000a"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u000a\u0047\uffff"+ + "\u0001\u000a", + "", + "\u0001\u0007\u0002\uffff\u0001\u0013\u0018\uffff\u0001\u0007", + "\u0001\u0007\u0002\uffff\u0001\u000a\u0018\uffff\u0001\u0007", + "", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0001\uffff\u0001\u0007"+ + "\u0002\uffff\u0001\u000a\u0018\uffff\u0001\u0007\u0012\uffff"+ + "\u0001\u000a\u0047\uffff\u0001\u000a", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0004\uffff\u0001\u000a"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u000a\u0047\uffff"+ + "\u0001\u000a", + "\u0001\u000a\u0018\uffff\u0001\u0007", + "\u0001\u0007\u0002\uffff\u0001\u0014\u0018\uffff\u0001\u0007", + "\u0001\u0015\u0018\uffff\u0001\u0007", + "\u008b\u0015\u0001\uffff\u0040\u0015\u0004\uffff\u0001\u0015"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u0015\u0047\uffff"+ + "\u0001\u0015", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA134_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_eotS), + DFA134_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_eofS), + DFA134_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA134_minS), + DFA134_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA134_maxS), + DFA134_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_acceptS), + DFA134_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_specialS), + DFA134_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA134_transitionS.length; + for (i=0; i p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA134_14 = input.LA(1); + + + var index134_14 = input.index(); + input.rewind(); + s = -1; + if ( (LA134_14==LPAREN||LA134_14==COLON) ) {s = 7;} + + else if ( (LA134_14==LBRACKET) && ((this.lc(MLS)))) {s = 20;} + + + input.seek(index134_14); + if ( s>=0 ) return s; + break; + case 1 : + var LA134_0 = input.LA(1); + + + var index134_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA134_0==LPAREN) && (this.synpred16_XQueryParser())) {s = 1;} + + else if ( ((LA134_0>=APOS && LA134_0<=QUOT)||(LA134_0>=L_IntegerLiteral && LA134_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA134_0==DOLLAR) ) {s = 3;} + + else if ( (LA134_0==DOT) ) {s = 4;} + + else if ( (LA134_0==ORDERED) ) {s = 5;} + + else if ( (LA134_0==ELEMENT) ) {s = 6;} + + else if ( ((LA134_0>=ANCESTOR && LA134_0<=AT)||(LA134_0>=BASE_URI && LA134_0<=COLLATION)||(LA134_0>=CONSTRUCTION && LA134_0<=DIV)||LA134_0==DOCUMENT_NODE||(LA134_0>=ELSE && LA134_0<=MODULE)||(LA134_0>=NE && LA134_0<=ORDER)||(LA134_0>=ORDERING && LA134_0<=PRESERVE)||(LA134_0>=RETURN && LA134_0<=STRIP)||(LA134_0>=THEN && LA134_0<=UNION)||(LA134_0>=VALIDATE && LA134_0<=UNIQUE)||(LA134_0>=AMP_ER && LA134_0<=QUOT_ER)||LA134_0==L_NCName||LA134_0==EXPLICITLY) ) {s = 7;} + + else if ( (LA134_0==UNORDERED) ) {s = 8;} + + else if ( (LA134_0==DOCUMENT) ) {s = 9;} + + else if ( (LA134_0==SMALLER||(LA134_0>=L_DirCommentConstructor && LA134_0<=L_DirPIConstructor)) ) {s = 10;} + + else if ( (LA134_0==NAMESPACE) ) {s = 11;} + + else if ( (LA134_0==ATTRIBUTE) ) {s = 12;} + + else if ( (LA134_0==TEXT) ) {s = 13;} + + else if ( (LA134_0==BINARY) ) {s = 14;} + + else if ( (LA134_0==COMMENT) ) {s = 15;} + + else if ( (LA134_0==PROCESSING_INSTRUCTION) ) {s = 16;} + + else if ( (LA134_0==LBRACKET) ) {s = 17;} + + + input.seek(index134_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 134, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA162_eotS: + "\u004a\uffff", + DFA162_eofS: + "\u0001\u0002\u0049\uffff", + DFA162_minS: + "\u0001\u0012\u0001\u0000\u0007\uffff\u0001\u0000\u0040\uffff", + DFA162_maxS: + "\u0001\u00fe\u0001\u0000\u0007\uffff\u0001\u0000\u0040\uffff", + DFA162_acceptS: + "\u0002\uffff\u0001\u0002\u000a\uffff\u0001\u0001\u003c\uffff", + DFA162_specialS: + "\u0001\u0000\u0001\u0001\u0007\uffff\u0001\u0002\u0040\uffff}>", + DFA162_transitionS: [ + "\u0004\u0002\u0004\uffff\u0001\u0002\u0003\uffff\u0001\u0002"+ + "\u0004\uffff\u0001\u0002\u0002\uffff\u0002\u0002\u0004\uffff"+ + "\u0001\u0002\u0002\uffff\u0001\u0002\u0001\uffff\u0002\u0002"+ + "\u0002\uffff\u0001\u0002\u0001\uffff\u0001\u0002\u0001\uffff"+ + "\u0002\u0002\u0002\uffff\u0001\u0002\u0001\uffff\u0003\u0002"+ + "\u0002\uffff\u0001\u0002\u0001\uffff\u0003\u0002\u0002\uffff"+ + "\u0001\u0002\u0005\uffff\u0002\u0002\u0007\uffff\u0002\u0002"+ + "\u0005\uffff\u0001\u0002\u0004\uffff\u0001\u0002\u0002\uffff"+ + "\u0001\u0002\u0004\uffff\u0001\u0002\u0001\uffff\u0001\u0002"+ + "\u0002\uffff\u0001\u0002\u0003\uffff\u0002\u0002\u0006\uffff"+ + "\u0001\u0002\u0005\uffff\u0001\u0002\u0007\uffff\u0002\u0002"+ + "\u0004\uffff\u0001\u0002\u0001\uffff\u0001\u0002\u0007\uffff"+ + "\u0001\u0002\u0002\uffff\u0001\u0002\u0014\uffff\u0001\u0002"+ + "\u0003\uffff\u0001\u0002\u0002\uffff\u0001\u0002\u0003\uffff"+ + "\u0001\u0002\u0006\uffff\u0001\u0002\u0014\uffff\u0001\u0002"+ + "\u0001\uffff\u0001\u0002\u0001\uffff\u0002\u0002\u0001\uffff"+ + "\u0004\u0002\u0003\uffff\u0001\u0002\u0001\u000d\u0001\u0001"+ + "\u0001\u0009\u0007\u0002\u0008\uffff\u0002\u0002", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA162_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_eotS), + DFA162_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_eofS), + DFA162_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA162_minS), + DFA162_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA162_maxS), + DFA162_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_acceptS), + DFA162_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_specialS), + DFA162_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA162_transitionS.length; + for (i=0; ioi= p_OccurrenceIndicator )?"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA162_0 = input.LA(1); + + + var index162_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA162_0==STAR) ) {s = 1;} + + else if ( (LA162_0==EOF||(LA162_0>=AND && LA162_0<=AT)||LA162_0==CASE||LA162_0==COLLATION||LA162_0==DEFAULT||(LA162_0>=DESCENDING && LA162_0<=DIV)||LA162_0==EMPTY||LA162_0==EQ||(LA162_0>=EXCEPT && LA162_0<=EXTERNAL)||LA162_0==FOR||LA162_0==GE||(LA162_0>=GT && LA162_0<=IDIV)||LA162_0==IN||(LA162_0>=INSTANCE && LA162_0<=IS)||LA162_0==LE||(LA162_0>=LET && LA162_0<=MOD)||LA162_0==NE||(LA162_0>=OR && LA162_0<=ORDER)||(LA162_0>=RETURN && LA162_0<=SATISFIES)||LA162_0==STABLE||LA162_0==TO||LA162_0==UNION||LA162_0==WHERE||LA162_0==ALLOWING||LA162_0==COUNT||(LA162_0>=END && LA162_0<=GROUP)||LA162_0==ONLY||LA162_0==START||(LA162_0>=AFTER && LA162_0<=BEFORE)||LA162_0==INTO||LA162_0==MODIFY||LA162_0==WITH||LA162_0==CONTAINS||LA162_0==PARAGRAPHS||LA162_0==SCORE||LA162_0==SENTENCES||LA162_0==TIMES||LA162_0==WORDS||LA162_0==CONCAT||LA162_0==RPAREN||(LA162_0>=LBRACKET && LA162_0<=RBRACKET)||(LA162_0>=RSQUARE && LA162_0<=NOTEQUAL)||LA162_0==COMMA||(LA162_0>=MINUS && LA162_0<=GREATER_GREATER)||(LA162_0>=SEMICOLON && LA162_0<=VBAR)) ) {s = 2;} + + else if ( (LA162_0==PLUS) ) {s = 9;} + + else if ( (LA162_0==QUESTION) && (this.synpred17_XQueryParser())) {s = 13;} + + + input.seek(index162_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA162_1 = input.LA(1); + + + var index162_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred17_XQueryParser()) ) {s = 13;} + + else if ( (true) ) {s = 2;} + + + input.seek(index162_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA162_9 = input.LA(1); + + + var index162_9 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred17_XQueryParser()) ) {s = 13;} + + else if ( (true) ) {s = 2;} + + + input.seek(index162_9); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 162, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA164_eotS: + "\u0012\uffff", + DFA164_eofS: + "\u0001\uffff\u000c\u000d\u0005\uffff", + DFA164_minS: + "\u0001\u0010\u000c\u0012\u0005\uffff", + DFA164_maxS: + "\u0001\u0154\u000c\u00fe\u0005\uffff", + DFA164_acceptS: + "\u000d\uffff\u0001\u0004\u0001\u0005\u0001\u0001\u0001\u0002\u0001"+ + "\u0003", + DFA164_specialS: + "\u000b\uffff\u0001\u0000\u0006\uffff}>", + DFA164_transitionS: [ + "\u0006\u000d\u0001\u0003\u0008\u000d\u0001\u0007\u0009\u000d"+ + "\u0001\u0001\u0001\u0002\u0017\u000d\u0001\u000c\u000b\u000d"+ + "\u0001\u000a\u000a\u000d\u0001\u0006\u0003\u000d\u0001\u0005"+ + "\u0001\u0004\u0005\u000d\u0001\u0008\u0017\u000d\u0001\u0009"+ + "\u001e\u000d\u0001\uffff\u003c\u000d\u0001\u000b\u0003\u000d"+ + "\u0001\uffff\u0001\u000e\u002e\uffff\u0001\u000d\u0047\uffff"+ + "\u0001\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u0010\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u0011\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA164_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_eotS), + DFA164_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_eofS), + DFA164_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA164_minS), + DFA164_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA164_maxS), + DFA164_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_acceptS), + DFA164_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_specialS), + DFA164_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA164_transitionS.length; + for (i=0; i ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA164_11 = input.LA(1); + + + var index164_11 = input.index(); + input.rewind(); + s = -1; + if ( (LA164_11==LPAREN) && ((this.lc(MLS)))) {s = 16;} + + else if ( (LA164_11==EOF||(LA164_11>=AND && LA164_11<=AT)||LA164_11==CASE||LA164_11==COLLATION||LA164_11==DEFAULT||(LA164_11>=DESCENDING && LA164_11<=DIV)||LA164_11==EMPTY||LA164_11==EQ||(LA164_11>=EXCEPT && LA164_11<=EXTERNAL)||LA164_11==FOR||LA164_11==GE||(LA164_11>=GT && LA164_11<=IDIV)||LA164_11==IN||(LA164_11>=INSTANCE && LA164_11<=IS)||LA164_11==LE||(LA164_11>=LET && LA164_11<=MOD)||LA164_11==NE||(LA164_11>=OR && LA164_11<=ORDER)||(LA164_11>=RETURN && LA164_11<=SATISFIES)||LA164_11==STABLE||LA164_11==TO||LA164_11==UNION||LA164_11==WHERE||LA164_11==ALLOWING||LA164_11==COUNT||(LA164_11>=END && LA164_11<=GROUP)||LA164_11==ONLY||LA164_11==START||(LA164_11>=AFTER && LA164_11<=BEFORE)||LA164_11==INTO||LA164_11==MODIFY||LA164_11==WITH||LA164_11==CONTAINS||LA164_11==PARAGRAPHS||LA164_11==SCORE||LA164_11==SENTENCES||LA164_11==TIMES||LA164_11==WORDS||LA164_11==CONCAT||LA164_11==RPAREN||(LA164_11>=LBRACKET && LA164_11<=RBRACKET)||(LA164_11>=RSQUARE && LA164_11<=NOTEQUAL)||(LA164_11>=COMMA && LA164_11<=GREATER_GREATER)||LA164_11==COLON||(LA164_11>=SEMICOLON && LA164_11<=VBAR)) ) {s = 13;} + + + input.seek(index164_11); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 164, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA218_eotS: + "\u000a\uffff", + DFA218_eofS: + "\u000a\uffff", + DFA218_minS: + "\u0001\u001a\u0002\uffff\u0001\u00bd\u0006\uffff", + DFA218_maxS: + "\u0001\u00c4\u0002\uffff\u0001\u00c4\u0006\uffff", + DFA218_acceptS: + "\u0001\uffff\u0001\u0001\u0001\u0002\u0001\uffff\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0006\u0001\u0007\u0001\u0008", + DFA218_specialS: + "\u000a\uffff}>", + DFA218_transitionS: [ + "\u0001\u0006\u0035\uffff\u0001\u0009\u0051\uffff\u0001\u0007"+ + "\u000a\uffff\u0001\u0001\u0001\uffff\u0001\u0006\u0001\uffff"+ + "\u0001\u0003\u000b\uffff\u0001\u0005\u0001\u0008\u0001\u0004"+ + "\u0001\uffff\u0001\u0006\u0002\uffff\u0001\u0002", + "", + "", + "\u0001\u0005\u0001\u0008\u0001\u0004\u0004\uffff\u0001\u0002", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA218_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_eotS), + DFA218_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_eofS), + DFA218_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA218_minS), + DFA218_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA218_maxS), + DFA218_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_acceptS), + DFA218_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_specialS), + DFA218_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA218_transitionS.length; + for (i=0; i", + DFA237_transitionS: [ + "\u005c\u0001\u0001\u0007\u005b\u0001\u0001\u0004\u0001\u0005"+ + "\u0001\u0006\u0002\u0001\u0001\u0003\u000e\u0001\u0001\uffff"+ + "\u0001\u0001\u0001\uffff\u0001\u0002\u0001\u0001\u0006\uffff"+ + "\u0001\u0008\u0004\uffff\u0004\u0001\u0005\uffff\u0004\u0001"+ + "\u000c\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0006\uffff\u0006\u0001\u003b\uffff\u0001\u0001", + "", + "\u008b\u0009\u0001\uffff\u0040\u0009\u0030\uffff\u0001\u0009"+ + "\u0047\uffff\u0001\u0009", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0001\u0008\u0004\uffff\u0001\u0001\u0001\uffff"+ + "\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff\u0001\u0001"+ + "\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001\u0003\uffff"+ + "\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002a\uffff"+ + "\u0001\u0008\u0010\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002a\uffff"+ + "\u0001\u0008\u0010\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002b\uffff"+ + "\u0001\u0008\u000f\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0002\u0001\u0001\uffff\u0001\u0008\u0002\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0001\uffff\u0001\u0001"+ + "\u0001\u0008\u0001\u0001\u0003\uffff\u0001\u0001\u0001\uffff"+ + "\u000b\u0001\u0002\uffff\u0001\u000a\u0003\uffff\u0002\u0001", + "\u008b\u000b\u0001\uffff\u0040\u000b\u0030\uffff\u0001\u000b"+ + "\u0047\uffff\u0001\u000b", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0001\uffff\u0001\u0001"+ + "\u0001\u0008\u0001\u0001\u0003\uffff\u0001\u0001\u0001\uffff"+ + "\u000b\u0001\u0006\uffff\u0002\u0001" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA237_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_eotS), + DFA237_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_eofS), + DFA237_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA237_minS), + DFA237_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA237_maxS), + DFA237_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_acceptS), + DFA237_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_specialS), + DFA237_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA237_transitionS.length; + for (i=0; i", + DFA253_transitionS: [ + "\u0020\u0003\u0001\u0002\u002f\u0003\u0001\u0001\u002e\u0003"+ + "\u0001\u0008\u0001\u0005\u0001\u0003\u0001\u0004\u0004\u0003"+ + "\u0001\u0006\u0001\u0007\u0043\u0003\u0001\uffff\u0001\u0003"+ + "\u0001\uffff\u0002\u0003\u000b\uffff\u0004\u0003\u0005\uffff"+ + "\u0004\u0003\u000c\uffff\u0001\u0003\u0002\uffff\u0002\u0003"+ + "\u0002\uffff\u0001\u0003\u0006\uffff\u0006\u0003\u003b\uffff"+ + "\u0001\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u0009\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u0009\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0001\u000a\u0006\uffff\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0001\u000a\u0006\uffff\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0007\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff\u0004\u0003"+ + "\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff"+ + "\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0006\uffff\u0001\u000a\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u000a\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA253_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_eotS), + DFA253_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_eofS), + DFA253_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA253_minS), + DFA253_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA253_maxS), + DFA253_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_acceptS), + DFA253_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_specialS), + DFA253_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA253_transitionS.length; + for (i=0; i pg_UpdateExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA253_7 = input.LA(1); + + + var index253_7 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_7==EOF||(LA253_7>=AND && LA253_7<=ASCENDING)||(LA253_7>=CASE && LA253_7<=CASTABLE)||LA253_7==COLLATION||LA253_7==DEFAULT||(LA253_7>=DESCENDING && LA253_7<=DIV)||LA253_7==EMPTY||LA253_7==EQ||LA253_7==EXCEPT||LA253_7==FOR||LA253_7==GE||(LA253_7>=GT && LA253_7<=IDIV)||(LA253_7>=INSTANCE && LA253_7<=IS)||LA253_7==LE||(LA253_7>=LET && LA253_7<=MOD)||LA253_7==NE||(LA253_7>=OR && LA253_7<=ORDER)||(LA253_7>=RETURN && LA253_7<=SATISFIES)||LA253_7==STABLE||(LA253_7>=TO && LA253_7<=TREAT)||LA253_7==UNION||LA253_7==WHERE||LA253_7==COUNT||(LA253_7>=END && LA253_7<=GROUP)||LA253_7==ONLY||LA253_7==START||(LA253_7>=AFTER && LA253_7<=BEFORE)||LA253_7==INTO||LA253_7==MODIFY||LA253_7==WITH||LA253_7==CONTAINS||(LA253_7>=CONCAT && LA253_7<=RPAREN)||(LA253_7>=RBRACKET && LA253_7<=EQUAL)||LA253_7==NOTEQUAL||LA253_7==COMMA||(LA253_7>=STAR && LA253_7<=SLASH_SLASH)||LA253_7==COLON||(LA253_7>=SEMICOLON && LA253_7<=VBAR)) ) {s = 3;} + + else if ( (LA253_7==NODE||LA253_7==VALUE) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_7); + if ( s>=0 ) return s; + break; + case 1 : + var LA253_5 = input.LA(1); + + + var index253_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_5==EOF||(LA253_5>=AND && LA253_5<=ASCENDING)||(LA253_5>=CASE && LA253_5<=CASTABLE)||LA253_5==COLLATION||LA253_5==DEFAULT||(LA253_5>=DESCENDING && LA253_5<=DIV)||LA253_5==EMPTY||LA253_5==EQ||LA253_5==EXCEPT||LA253_5==FOR||LA253_5==GE||(LA253_5>=GT && LA253_5<=IDIV)||(LA253_5>=INSTANCE && LA253_5<=IS)||LA253_5==LE||(LA253_5>=LET && LA253_5<=MOD)||LA253_5==NE||(LA253_5>=OR && LA253_5<=ORDER)||(LA253_5>=RETURN && LA253_5<=SATISFIES)||LA253_5==STABLE||(LA253_5>=TO && LA253_5<=TREAT)||LA253_5==UNION||LA253_5==WHERE||LA253_5==COUNT||(LA253_5>=END && LA253_5<=GROUP)||LA253_5==ONLY||LA253_5==START||(LA253_5>=AFTER && LA253_5<=BEFORE)||LA253_5==INTO||LA253_5==MODIFY||LA253_5==WITH||LA253_5==CONTAINS||(LA253_5>=CONCAT && LA253_5<=RPAREN)||(LA253_5>=RBRACKET && LA253_5<=EQUAL)||LA253_5==NOTEQUAL||LA253_5==COMMA||(LA253_5>=STAR && LA253_5<=SLASH_SLASH)||LA253_5==COLON||(LA253_5>=SEMICOLON && LA253_5<=VBAR)) ) {s = 3;} + + else if ( (LA253_5==NODE||LA253_5==NODES) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_5); + if ( s>=0 ) return s; + break; + case 2 : + var LA253_4 = input.LA(1); + + + var index253_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_4==EOF||(LA253_4>=AND && LA253_4<=ASCENDING)||(LA253_4>=CASE && LA253_4<=CASTABLE)||LA253_4==COLLATION||LA253_4==DEFAULT||(LA253_4>=DESCENDING && LA253_4<=DIV)||LA253_4==EMPTY||LA253_4==EQ||LA253_4==EXCEPT||LA253_4==FOR||LA253_4==GE||(LA253_4>=GT && LA253_4<=IDIV)||(LA253_4>=INSTANCE && LA253_4<=IS)||LA253_4==LE||(LA253_4>=LET && LA253_4<=MOD)||LA253_4==NE||(LA253_4>=OR && LA253_4<=ORDER)||(LA253_4>=RETURN && LA253_4<=SATISFIES)||LA253_4==STABLE||(LA253_4>=TO && LA253_4<=TREAT)||LA253_4==UNION||LA253_4==WHERE||LA253_4==COUNT||(LA253_4>=END && LA253_4<=GROUP)||LA253_4==ONLY||LA253_4==START||(LA253_4>=AFTER && LA253_4<=BEFORE)||LA253_4==INTO||LA253_4==MODIFY||LA253_4==WITH||LA253_4==CONTAINS||(LA253_4>=CONCAT && LA253_4<=RPAREN)||(LA253_4>=RBRACKET && LA253_4<=EQUAL)||LA253_4==NOTEQUAL||LA253_4==COMMA||(LA253_4>=STAR && LA253_4<=SLASH_SLASH)||LA253_4==COLON||(LA253_4>=SEMICOLON && LA253_4<=VBAR)) ) {s = 3;} + + else if ( (LA253_4==NODE||LA253_4==NODES) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_4); + if ( s>=0 ) return s; + break; + case 3 : + var LA253_8 = input.LA(1); + + + var index253_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_8==DOLLAR) && ((this.lc(XQU)))) {s = 10;} + + else if ( (LA253_8==EOF||(LA253_8>=AND && LA253_8<=ASCENDING)||(LA253_8>=CASE && LA253_8<=CASTABLE)||LA253_8==COLLATION||LA253_8==DEFAULT||(LA253_8>=DESCENDING && LA253_8<=DIV)||LA253_8==EMPTY||LA253_8==EQ||LA253_8==EXCEPT||LA253_8==FOR||LA253_8==GE||(LA253_8>=GT && LA253_8<=IDIV)||(LA253_8>=INSTANCE && LA253_8<=IS)||LA253_8==LE||(LA253_8>=LET && LA253_8<=MOD)||LA253_8==NE||(LA253_8>=OR && LA253_8<=ORDER)||(LA253_8>=RETURN && LA253_8<=SATISFIES)||LA253_8==STABLE||(LA253_8>=TO && LA253_8<=TREAT)||LA253_8==UNION||LA253_8==WHERE||LA253_8==COUNT||(LA253_8>=END && LA253_8<=GROUP)||LA253_8==ONLY||LA253_8==START||(LA253_8>=AFTER && LA253_8<=BEFORE)||LA253_8==INTO||LA253_8==MODIFY||LA253_8==WITH||LA253_8==CONTAINS||(LA253_8>=CONCAT && LA253_8<=RPAREN)||(LA253_8>=RBRACKET && LA253_8<=EQUAL)||LA253_8==NOTEQUAL||LA253_8==COMMA||(LA253_8>=STAR && LA253_8<=SLASH_SLASH)||LA253_8==COLON||(LA253_8>=SEMICOLON && LA253_8<=VBAR)) ) {s = 3;} + + + input.seek(index253_8); + if ( s>=0 ) return s; + break; + case 4 : + var LA253_6 = input.LA(1); + + + var index253_6 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_6==NODE) && ((this.lc(XQU)))) {s = 10;} + + else if ( (LA253_6==EOF||(LA253_6>=AND && LA253_6<=ASCENDING)||(LA253_6>=CASE && LA253_6<=CASTABLE)||LA253_6==COLLATION||LA253_6==DEFAULT||(LA253_6>=DESCENDING && LA253_6<=DIV)||LA253_6==EMPTY||LA253_6==EQ||LA253_6==EXCEPT||LA253_6==FOR||LA253_6==GE||(LA253_6>=GT && LA253_6<=IDIV)||(LA253_6>=INSTANCE && LA253_6<=IS)||LA253_6==LE||(LA253_6>=LET && LA253_6<=MOD)||LA253_6==NE||(LA253_6>=OR && LA253_6<=ORDER)||(LA253_6>=RETURN && LA253_6<=SATISFIES)||LA253_6==STABLE||(LA253_6>=TO && LA253_6<=TREAT)||LA253_6==UNION||LA253_6==WHERE||LA253_6==COUNT||(LA253_6>=END && LA253_6<=GROUP)||LA253_6==ONLY||LA253_6==START||(LA253_6>=AFTER && LA253_6<=BEFORE)||LA253_6==INTO||LA253_6==MODIFY||LA253_6==WITH||LA253_6==CONTAINS||(LA253_6>=CONCAT && LA253_6<=RPAREN)||(LA253_6>=RBRACKET && LA253_6<=EQUAL)||LA253_6==NOTEQUAL||LA253_6==COMMA||(LA253_6>=STAR && LA253_6<=SLASH_SLASH)||LA253_6==COLON||(LA253_6>=SEMICOLON && LA253_6<=VBAR)) ) {s = 3;} + + + input.seek(index253_6); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 253, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + + +// public class variables +org.antlr.lang.augmentObject(XQueryParser, { + tokenNames: ["", "", "", "", "L_QuotAttrContentChar", "L_AposAttrContentChar", "L_ElementContentChar", "L_CDataSection", "L_PredefinedEntityRef", "L_CharRef", "ESCAPE_LBRACKET", "ESCAPE_RBRACKET", "ESCAPE_APOS", "ESCAPE_QUOT", "CDATA_START", "CDATA_END", "ANCESTOR", "ANCESTOR_OR_SELF", "AND", "AS", "ASCENDING", "AT", "ATTRIBUTE", "BASE_URI", "BOUNDARY_SPACE", "BY", "CASE", "CAST", "CASTABLE", "CHILD", "COLLATION", "COMMENT", "CONSTRUCTION", "COPY_NAMESPACES", "DECLARE", "DEFAULT", "DESCENDANT", "DESCENDANT_OR_SELF", "DESCENDING", "DIV", "DOCUMENT", "DOCUMENT_NODE", "ELEMENT", "ELSE", "EMPTY", "EMPTY_SEQUENCE", "ENCODING", "EQ", "EVERY", "EXCEPT", "EXTERNAL", "FOLLOWING", "FOLLOWING_SIBLING", "FOR", "FUNCTION", "GE", "GREATEST", "GT", "IDIV", "IF", "IMPORT", "IN", "INHERIT", "INSTANCE", "INTERSECT", "IS", "ITEM", "LAX", "LE", "LEAST", "LET", "LT", "MOD", "MODULE", "NAMESPACE", "NE", "NO_INHERIT", "NO_PRESERVE", "NODE", "OF", "OPTION", "OR", "ORDER", "ORDERED", "ORDERING", "PARENT", "PRECEDING", "PRECEDING_SIBLING", "PRESERVE", "PROCESSING_INSTRUCTION", "RETURN", "SATISFIES", "SCHEMA", "SCHEMA_ATTRIBUTE", "SCHEMA_ELEMENT", "SELF", "SOME", "STABLE", "STRICT", "STRIP", "TEXT", "THEN", "TO", "TREAT", "TYPESWITCH", "UNION", "UNORDERED", "VALIDATE", "VARIABLE", "VERSION", "WHERE", "XQUERY", "ALLOWING", "CATCH", "CONTEXT", "COUNT", "DECIMAL_FORMAT", "DECIMAL_SEPARATOR", "DIGIT", "END", "GROUP", "GROUPING_SEPARATOR", "INFINITY", "MINUS_SIGN", "NAMESPACE_NODE", "NAN", "NEXT", "ONLY", "PATTERN_SEPARATOR", "PERCENT", "PER_MILLE", "PREVIOUS", "SLIDING", "START", "SWITCH", "TRY", "TUMBLING", "TYPE", "WHEN", "WINDOW", "ZERO_DIGIT", "AFTER", "BEFORE", "COPY", "DELETE", "FIRST", "INSERT", "INTO", "LAST", "MODIFY", "NODES", "RENAME", "REPLACE", "REVALIDATION", "SKIP", "UPDATING", "VALUE", "WITH", "ALL", "ANY", "CONTAINS", "CONTENT", "DIACRITICS", "DIFFERENT", "DISTANCE", "ENTIRE", "EXACTLY", "FROM", "FT_OPTION", "FTAND", "FTNOT", "FTOR", "INSENSITIVE", "LANGUAGE", "LEVELS", "LOWERCASE", "MOST", "NO", "NOT", "OCCURS", "PARAGRAPH", "PARAGRAPHS", "PHRASE", "RELATIONSHIP", "SAME", "SCORE", "SENSITIVE", "SENTENCE", "SENTENCES", "STEMMING", "STOP", "THESAURUS", "TIMES", "UPPERCASE", "USING", "WEIGHT", "WILDCARDS", "WITHOUT", "WORD", "WORDS", "BREAK", "CONTINUE", "EXIT", "LOOP", "RETURNING", "WHILE", "CHECK", "COLLECTION", "CONSTRAINT", "FOREACH", "FOREIGN", "INDEX", "INTEGRITY", "KEY", "ON", "UNIQUE", "BINARY", "AMP_ER", "APOS_ER", "QUOT_ER", "CONCAT", "LPAREN", "RPAREN", "DOLLAR", "LBRACKET", "RBRACKET", "LSQUARE", "RSQUARE", "EQUAL", "BIND", "NOTEQUAL", "ANN_PERCENT", "HASH", "AMP", "COMMA", "QUESTION", "STAR", "PLUS", "MINUS", "SMALLER", "GREATER", "SMALLEREQ", "GREATEREQ", "SMALLER_SMALLER", "GREATER_GREATER", "SLASH", "SLASH_SLASH", "DOT", "DOT_DOT", "COLON", "COLON_COLON", "EMPTY_CLOSE_TAG", "CLOSE_TAG", "SEMICOLON", "VBAR", "PRAGMA_START", "PRAGMA_END", "XML_COMMENT_START", "XML_COMMENT_END", "PI_START", "PI_END", "ATTR_SIGN", "CHARREF_DEC", "CHARREF_HEX", "APOS", "QUOT", "NCNameStartChar", "NCNameChar", "L_NCName", "Letter", "HexLetter", "Digit", "Digits", "S", "SU", "L_Pragma", "L_DirCommentConstructor", "L_DirPIConstructor", "L_IntegerLiteral", "L_DecimalLiteral", "L_DoubleLiteral", "L_Comment", "L_AnyChar", "L_QuotStringLiteralChar", "L_AposStringLiteralChar", "LibraryModule", "MainModule", "VersionDecl", "VersionDeclEncoding", "VersionDeclVersion", "ModuleDecl", "Prolog", "DefaultNamespaceDecls", "DefaultNamespaceDecl", "Setters", "Setter", "NamespaceDecls", "NamespaceDecl", "Imports", "FTOptionDecls", "SchemaImport", "SchemaPrefix", "NamespaceName", "DefaultElementNamespace", "AtHints", "ModuleImport", "BaseURIDecl", "OrderedDecls", "VarDecl", "VarType", "VarValue", "VarDefaultValue", "VarVariableDecl", "FunctionDecl", "ParamList", "ReturnType", "OptionDecl", "TypeDeclaration", "Param", "EnclosedExpr", "QueryBody", "UnaryExpr", "DirElemConstructor", "DirAttributeList", "DirAttributeValue", "DirElemContent", "CommonContent", "SequenceType", "EmptySequenceTest", "KindTest", "ItemTest", "FunctionTest", "AtomicType", "AtomicOrUnionType", "StringLiteral", "ElementContentChar", "AttributeValueChar", "QName", "BlockExpr", "BinaryTest", "EXPLICITLY"], + FOLLOW_p_VersionDecl_in_p_Module507: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_LibraryModule_in_p_Module540: new org.antlr.runtime.BitSet([0x00000000, 0x00000000]), + FOLLOW_p_MainModule_in_p_Module563: new org.antlr.runtime.BitSet([0x00000000, 0x00000000]), + FOLLOW_EOF_in_p_Module587: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_XQUERY_in_p_VersionDecl615: new org.antlr.runtime.BitSet([0x00000000, 0x00004000,0x00000000, 0x00002000]), + FOLLOW_ENCODING_in_p_VersionDecl623: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl629: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_VERSION_in_p_VersionDecl650: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl656: new org.antlr.runtime.BitSet([0x00000000, 0x00004000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_ENCODING_in_p_VersionDecl661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl667: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_VersionDecl673: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_Prolog_in_p_MainModule739: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pm_QueryBody_in_p_MainModule741: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ModuleDecl_in_p_LibraryModule797: new org.antlr.runtime.BitSet([0x00000000, 0x10000004]), + FOLLOW_pm_Prolog_in_p_LibraryModule799: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_MODULE_in_p_ModuleDecl855: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_p_ModuleDecl859: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_ModuleDecl863: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_ModuleDecl865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_ModuleDecl867: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ModuleDecl869: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DefaultNamespaceDecl_in_pm_Prolog928: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_p_Setter_in_pm_Prolog934: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pm_NamespaceDecl_in_pm_Prolog940: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_p_Import_in_pm_Prolog946: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pm_FTOptionDecl_in_pm_Prolog952: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pg_OrderedDecl_in_pm_Prolog959: new org.antlr.runtime.BitSet([0x00000002, 0x00000004]), + FOLLOW_pm_ContextItemDecl_in_pg_OrderedDecl1274: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_AnnotatedDecl_in_pg_OrderedDecl1286: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_OptionDecl_in_pg_OrderedDecl1298: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_BoundarySpaceDecl_in_p_Setter1328: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DefaultCollationDecl_in_p_Setter1340: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_BaseURIDecl_in_p_Setter1352: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_ConstructionDecl_in_p_Setter1364: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_OrderingModeDecl_in_p_Setter1376: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_EmptyOrderDecl_in_p_Setter1388: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_RevalidationDecl_in_p_Setter1403: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CopyNamespacesDecl_in_p_Setter1415: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DecimalFormatDecl_in_p_Setter1427: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_BoundarySpaceDecl1459: new org.antlr.runtime.BitSet([0x01000000, 0x00000000]), + FOLLOW_BOUNDARY_SPACE_in_pm_BoundarySpaceDecl1465: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01000000, 0x00000008]), + FOLLOW_PRESERVE_in_pm_BoundarySpaceDecl1474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_STRIP_in_pm_BoundarySpaceDecl1484: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_BoundarySpaceDecl1491: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DefaultCollationDecl1519: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_DefaultCollationDecl1525: new org.antlr.runtime.BitSet([0x40000000, 0x00000000]), + FOLLOW_COLLATION_in_pm_DefaultCollationDecl1531: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DefaultCollationDecl1535: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DefaultCollationDecl1537: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_BaseURIDecl1573: new org.antlr.runtime.BitSet([0x00800000, 0x00000000]), + FOLLOW_BASE_URI_in_pm_BaseURIDecl1579: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_BaseURIDecl1585: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_BaseURIDecl1587: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_ConstructionDecl1640: new org.antlr.runtime.BitSet([0x00000000, 0x00000001]), + FOLLOW_CONSTRUCTION_in_pm_ConstructionDecl1646: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01000000, 0x00000008]), + FOLLOW_STRIP_in_pm_ConstructionDecl1655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_PRESERVE_in_pm_ConstructionDecl1661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_ConstructionDecl1668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_OrderingModeDecl1696: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_ORDERING_in_pm_OrderingModeDecl1702: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00080000, 0x00000400]), + FOLLOW_ORDERED_in_pm_OrderingModeDecl1711: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_UNORDERED_in_pm_OrderingModeDecl1717: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_OrderingModeDecl1724: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_EmptyOrderDecl1752: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_EmptyOrderDecl1758: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00040000, 0x00000000]), + FOLLOW_ORDER_in_pm_EmptyOrderDecl1764: new org.antlr.runtime.BitSet([0x00000000, 0x00001000]), + FOLLOW_EMPTY_in_pm_EmptyOrderDecl1770: new org.antlr.runtime.BitSet([0x00000000, 0x01000000,0x00000020, 0x00000000]), + FOLLOW_GREATEST_in_pm_EmptyOrderDecl1779: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_LEAST_in_pm_EmptyOrderDecl1785: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_EmptyOrderDecl1792: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_CopyNamespacesDecl1820: new org.antlr.runtime.BitSet([0x00000000, 0x00000002]), + FOLLOW_COPY_NAMESPACES_in_pm_CopyNamespacesDecl1826: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01002000, 0x00000000]), + FOLLOW_p_PreserveMode_in_pm_CopyNamespacesDecl1830: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_pm_CopyNamespacesDecl1832: new org.antlr.runtime.BitSet([0x00000000, 0x40000000,0x00001000, 0x00000000]), + FOLLOW_p_InheritMode_in_pm_CopyNamespacesDecl1834: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_CopyNamespacesDecl1836: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRESERVE_in_p_PreserveMode1865: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_PRESERVE_in_p_PreserveMode1871: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INHERIT_in_p_InheritMode1903: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_INHERIT_in_p_InheritMode1909: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DecimalFormatDecl1948: new org.antlr.runtime.BitSet([0x00000000, 0x00000008,0x00000000, 0x00100000]), + FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1956: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_DecimalFormatDecl1960: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_DEFAULT_in_pm_DecimalFormatDecl1968: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00100000]), + FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1974: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_p_DFPropertyName_in_pm_DecimalFormatDecl1981: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_DecimalFormatDecl1983: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DecimalFormatDecl1985: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DecimalFormatDecl1989: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECIMAL_SEPARATOR_in_p_DFPropertyName2018: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GROUPING_SEPARATOR_in_p_DFPropertyName2024: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INFINITY_in_p_DFPropertyName2030: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_MINUS_SIGN_in_p_DFPropertyName2036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAN_in_p_DFPropertyName2042: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PERCENT_in_p_DFPropertyName2048: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PER_MILLE_in_p_DFPropertyName2054: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ZERO_DIGIT_in_p_DFPropertyName2060: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIGIT_in_p_DFPropertyName2066: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PATTERN_SEPARATOR_in_p_DFPropertyName2072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_SchemaImport_in_p_Import2101: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_ModuleImport_in_p_Import2105: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IMPORT_in_pm_SchemaImport2141: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_SCHEMA_in_pm_SchemaImport2147: new org.antlr.runtime.BitSet([0x00000000, 0x00000008,0x00000400, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_SchemaPrefix_in_pm_SchemaImport2153: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2158: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_AT_in_pm_SchemaImport2163: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2169: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_pm_SchemaImport2172: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2176: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_pm_SchemaImport2182: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_in_p_SchemaPrefix2252: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_SchemaPrefix2258: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_SchemaPrefix2260: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DEFAULT_in_p_SchemaPrefix2299: new org.antlr.runtime.BitSet([0x00000000, 0x00000400]), + FOLLOW_ELEMENT_in_p_SchemaPrefix2305: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_p_SchemaPrefix2311: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IMPORT_in_pm_ModuleImport2361: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000200, 0x00000000]), + FOLLOW_MODULE_in_pm_ModuleImport2367: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_ModuleImport2374: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_ModuleImport2380: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_ModuleImport2382: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2388: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_AT_in_pm_ModuleImport2393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_pm_ModuleImport2402: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2406: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_pm_ModuleImport2412: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_NamespaceDecl2481: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_NamespaceDecl2487: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_NamespaceDecl2493: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_NamespaceDecl2495: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_NamespaceDecl2499: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_NamespaceDecl2501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DefaultNamespaceDecl2558: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_DefaultNamespaceDecl2564: new org.antlr.runtime.BitSet([0x00000000, 0x00400400]), + FOLLOW_ELEMENT_in_pm_DefaultNamespaceDecl2571: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_FUNCTION_in_pm_DefaultNamespaceDecl2577: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_DefaultNamespaceDecl2584: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DefaultNamespaceDecl2588: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DefaultNamespaceDecl2590: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_AnnotatedDecl2618: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00001000,0x08000000, 0x00000000,0x00188000, 0x00000080]), + FOLLOW_p_Annotation_in_pm_AnnotatedDecl2622: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00001000,0x08000000, 0x00000000,0x00188000, 0x00000080]), + FOLLOW_pg_AnnotatedDecl_in_pm_AnnotatedDecl2625: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_AnnotatedDecl2627: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarDecl_in_pg_AnnotatedDecl2651: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_FunctionDecl_in_pg_AnnotatedDecl2663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CollectionDecl_in_pg_AnnotatedDecl2678: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IndexDecl_in_pg_AnnotatedDecl2693: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICDecl_in_pg_AnnotatedDecl2708: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANN_PERCENT_in_p_Annotation2734: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_Annotation2736: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_Annotation2739: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_Literal_in_p_Annotation2741: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_Annotation2744: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_Literal_in_p_Annotation2746: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_Annotation2750: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VARIABLE_in_p_VarDecl2780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDecl2786: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_VarDecl2790: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_TypeDeclaration_in_p_VarDecl2796: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_VarDecl2801: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarValue_in_p_VarDecl2805: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXTERNAL_in_p_VarDecl2813: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_VarDecl2818: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarDefaultValue_in_p_VarDecl2822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarValue2901: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDefaultValue2928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_ContextItemDecl2957: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_CONTEXT_in_pm_ContextItemDecl2963: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_ITEM_in_pm_ContextItemDecl2969: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_AS_in_pm_ContextItemDecl2976: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ItemType_in_pm_ContextItemDecl2980: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_pm_ContextItemDecl2986: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarValue_in_pm_ContextItemDecl2988: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_EXTERNAL_in_pm_ContextItemDecl2996: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000020]), + FOLLOW_BIND_in_pm_ContextItemDecl3001: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarDefaultValue_in_pm_ContextItemDecl3003: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_ContextItemDecl3009: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UPDATING_in_pm_FunctionDecl3042: new org.antlr.runtime.BitSet([0x00000000, 0x00400000]), + FOLLOW_FUNCTION_in_pm_FunctionDecl3050: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pg_FQName_in_pm_FunctionDecl3056: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_pm_FunctionDecl3058: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0xC0000000, 0x00000000]), + FOLLOW_p_ParamList_in_pm_FunctionDecl3062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_pm_FunctionDecl3065: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_AS_in_pm_FunctionDecl3070: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_pm_FunctionDecl3076: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_FunctionDecl3081: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_FunctionDecl3085: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_FunctionDecl3087: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXTERNAL_in_pm_FunctionDecl3093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Param_in_p_ParamList3170: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_ParamList3173: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_Param_in_p_ParamList3177: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_Param3237: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_Param3241: new org.antlr.runtime.BitSet([0x00080002, 0x00000000]), + FOLLOW_p_TypeDeclaration_in_p_Param3247: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_EnclosedExpr_in_pm_FunctionBody3303: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_EnclosedExpr3330: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_EnclosedExpr3332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_EnclosedExpr3335: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_OptionDecl3387: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00010000, 0x00000000]), + FOLLOW_OPTION_in_pm_OptionDecl3393: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_OptionDecl3397: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_OptionDecl3399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_OptionDecl3401: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Program_in_pm_QueryBody3430: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_pm_QueryBody3442: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Expr3478: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_Expr3494: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Expr3496: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_FLWORHybrid_in_p_ExprSingle3563: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IfHybrid_in_p_ExprSingle3593: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SwitchHybrid_in_p_ExprSingle3619: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TypeswitchHybrid_in_p_ExprSingle3641: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TryCatchHybrid_in_p_ExprSingle3668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSimple_in_p_ExprSingle3681: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_FLWORHybrid3708: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_IntermediateClause_in_p_FLWORHybrid3710: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_ReturnHybrid_in_p_FLWORHybrid3713: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ForClause_in_p_InitialClause3740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_LetClause_in_p_InitialClause3744: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WindowClause_in_p_InitialClause3748: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_IntermediateClause3774: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WhereClause_in_p_IntermediateClause3778: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_GroupByClause_in_p_IntermediateClause3782: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderByClause_in_p_IntermediateClause3786: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CountClause_in_p_IntermediateClause3790: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RangeExpr_in_p_StringConcatExpr3811: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_CONCAT_in_p_StringConcatExpr3817: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RangeExpr_in_p_StringConcatExpr3821: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_FOR_in_p_ForClause3848: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_ForBinding_in_p_ForClause3852: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_ForClause3855: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_ForBinding_in_p_ForClause3857: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_ForBinding3887: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_ForBinding3891: new org.antlr.runtime.BitSet([0x00280000, 0x20000000,0x00000000, 0x00010000,0x00000000, 0x02000000]), + FOLLOW_p_TypeDeclaration_in_p_ForBinding3895: new org.antlr.runtime.BitSet([0x00200000, 0x20000000,0x00000000, 0x00010000,0x00000000, 0x02000000]), + FOLLOW_p_AllowingEmpty_in_p_ForBinding3898: new org.antlr.runtime.BitSet([0x00200000, 0x20000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_p_PositionalVar_in_p_ForBinding3901: new org.antlr.runtime.BitSet([0x00000000, 0x20000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_p_FTScoreVar_in_p_ForBinding3904: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_ForBinding3909: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ForBinding3913: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ALLOWING_in_p_AllowingEmpty3942: new org.antlr.runtime.BitSet([0x00000000, 0x00001000]), + FOLLOW_EMPTY_in_p_AllowingEmpty3948: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_PositionalVar3978: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_PositionalVar3984: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_PositionalVar3988: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LET_in_p_LetClause4018: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000,0x80000000, 0x00000000]), + FOLLOW_p_LetBinding_in_p_LetClause4022: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_LetClause4025: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000,0x80000000, 0x00000000]), + FOLLOW_p_LetBinding_in_p_LetClause4027: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_LetBinding4061: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_LetBinding4065: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_TypeDeclaration_in_p_LetBinding4069: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_FTScoreVar_in_p_LetBinding4075: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_LetBinding4079: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_LetBinding4081: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOR_in_p_WindowClause4110: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000110, 0x00000000]), + FOLLOW_p_TumblingWindowClause_in_p_WindowClause4115: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SlidingWindowClause_in_p_WindowClause4119: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TUMBLING_in_p_TumblingWindowClause4156: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_WINDOW_in_p_TumblingWindowClause4162: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TumblingWindowClause4168: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TumblingWindowClause4172: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_TumblingWindowClause4176: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_TumblingWindowClause4181: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TumblingWindowClause4185: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_WindowStartCondition_in_p_TumblingWindowClause4188: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x80800000]), + FOLLOW_p_WindowEndCondition_in_p_TumblingWindowClause4190: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLIDING_in_p_SlidingWindowClause4219: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_WINDOW_in_p_SlidingWindowClause4225: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_SlidingWindowClause4231: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_SlidingWindowClause4235: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_SlidingWindowClause4239: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_SlidingWindowClause4244: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SlidingWindowClause4248: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_WindowStartCondition_in_p_SlidingWindowClause4251: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x80800000]), + FOLLOW_p_WindowEndCondition_in_p_SlidingWindowClause4253: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_START_in_p_WindowStartCondition4282: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x40000000,0x00000408, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_WindowVars_in_p_WindowStartCondition4286: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_WHEN_in_p_WindowStartCondition4290: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WindowStartCondition4294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ONLY_in_p_WindowEndCondition4324: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00800000]), + FOLLOW_END_in_p_WindowEndCondition4332: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x40000000,0x00000408, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_WindowVars_in_p_WindowEndCondition4336: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_WHEN_in_p_WindowEndCondition4340: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WindowEndCondition4344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4374: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CurrentItem_in_p_WindowVars4378: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x40000000,0x00000008, 0x00000000]), + FOLLOW_p_PositionalVar_in_p_WindowVars4384: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x40000000,0x00000008, 0x00000000]), + FOLLOW_PREVIOUS_in_p_WindowVars4390: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4394: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PreviousItem_in_p_WindowVars4396: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_NEXT_in_p_WindowVars4403: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4407: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NextItem_in_p_WindowVars4409: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_CurrentItem4437: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_PreviousItem4463: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NextItem4489: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COUNT_in_p_CountClause4517: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CountClause4523: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CountClause4527: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WHERE_in_p_WhereClause4565: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WhereClause4569: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GROUP_in_p_GroupByClause4598: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_GroupByClause4604: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_GroupingSpecList_in_p_GroupByClause4608: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4634: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_GroupingSpecList4637: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4639: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_GroupingSpec4669: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_GroupingSpec4673: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_COLLATION_in_p_GroupingSpec4680: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_GroupingSpec4684: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDER_in_p_OrderByClause4716: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_OrderByClause4720: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_STABLE_in_p_OrderByClause4728: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00040000, 0x00000000]), + FOLLOW_ORDER_in_p_OrderByClause4732: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_OrderByClause4736: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_OrderSpecList_in_p_OrderByClause4742: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderSpec_in_p_OrderSpecList4768: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_OrderSpecList4771: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_OrderSpec_in_p_OrderSpecList4773: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_ExprSingle_in_p_OrderSpec4801: new org.antlr.runtime.BitSet([0x40100000, 0x00001040]), + FOLLOW_p_OrderModifier_in_p_OrderSpec4804: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ASCENDING_in_p_OrderModifier4833: new org.antlr.runtime.BitSet([0x40000002, 0x00001000]), + FOLLOW_DESCENDING_in_p_OrderModifier4839: new org.antlr.runtime.BitSet([0x40000002, 0x00001000]), + FOLLOW_EMPTY_in_p_OrderModifier4846: new org.antlr.runtime.BitSet([0x00000000, 0x01000000,0x00000020, 0x00000000]), + FOLLOW_GREATEST_in_p_OrderModifier4851: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_LEAST_in_p_OrderModifier4857: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_COLLATION_in_p_OrderModifier4865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_OrderModifier4867: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RETURN_in_p_ReturnHybrid4900: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_ReturnHybrid4904: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SOME_in_p_QuantifiedExpr4934: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_EVERY_in_p_QuantifiedExpr4940: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_QuantifiedExpr4947: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_QuantifiedExpr4951: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4955: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_QuantifiedExpr4960: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4964: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x08000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_QuantifiedExpr4968: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_QuantifiedExpr4972: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_QuantifiedExpr4976: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4980: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_QuantifiedExpr4985: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4989: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x08000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_SATISFIES_in_p_QuantifiedExpr4996: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr5000: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_p_SwitchHybrid5030: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SwitchHybrid5034: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_SwitchHybrid5036: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SwitchHybrid5039: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_SwitchCaseHybrid_in_p_SwitchHybrid5041: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_SwitchHybrid5047: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchHybrid5053: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchHybrid5057: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_SwitchCaseHybrid5088: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseHybrid5092: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchCaseHybrid5098: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchCaseHybrid5102: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SwitchCaseOperand5129: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPESWITCH_in_p_TypeswitchHybrid5159: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypeswitchHybrid5163: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_TypeswitchHybrid5165: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TypeswitchHybrid5168: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_CaseHybrid_in_p_TypeswitchHybrid5170: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_TypeswitchHybrid5176: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TypeswitchHybrid5183: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TypeswitchHybrid5187: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TypeswitchHybrid5195: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_TypeswitchHybrid5199: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_CaseHybrid5229: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CaseHybrid5236: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CaseHybrid5240: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CaseHybrid5246: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceTypeUnion_in_p_CaseHybrid5252: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_CaseHybrid5256: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_CaseHybrid5260: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5287: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_VBAR_in_p_SequenceTypeUnion5290: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5292: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_IF_in_p_IfHybrid5323: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_IfHybrid5327: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_IfHybrid5329: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_IfHybrid5332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_THEN_in_p_IfHybrid5336: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfHybrid5340: new org.antlr.runtime.BitSet([0x00000000, 0x00000800]), + FOLLOW_ELSE_in_p_IfHybrid5345: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfHybrid5349: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TryClause_in_p_TryCatchExpr5376: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_p_CatchClause_in_p_TryCatchExpr5378: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TRY_in_p_TryClause5407: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_TryClause5411: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TryTargetExpr_in_p_TryClause5413: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_TryClause5415: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_TryTargetExpr5441: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CATCH_in_p_CatchClause5470: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_CatchClause5474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CatchClause5476: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CatchClause5478: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CatchClause5481: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NameTest_in_p_CatchErrorList5507: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_VBAR_in_p_CatchErrorList5510: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NameTest_in_p_CatchErrorList5512: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_p_AndExpr_in_p_OrExpr5557: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_OR_in_p_OrExpr5563: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AndExpr_in_p_OrExpr5567: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_p_ComparisonExpr_in_p_AndExpr5596: new org.antlr.runtime.BitSet([0x00040002, 0x00000000]), + FOLLOW_AND_in_p_AndExpr5602: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ComparisonExpr_in_p_AndExpr5606: new org.antlr.runtime.BitSet([0x00040002, 0x00000000]), + FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5636: new org.antlr.runtime.BitSet([0x00000002, 0x02808000,0x00000892, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x001F8050]), + FOLLOW_p_ValueComp_in_p_ComparisonExpr5641: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_GeneralComp_in_p_ComparisonExpr5645: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeComp_in_p_ComparisonExpr5649: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5652: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_RangeExpr5681: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_RangeExpr5687: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_RangeExpr5691: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5720: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00006000]), + FOLLOW_PLUS_in_p_AdditiveExpr5727: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MINUS_in_p_AdditiveExpr5735: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00006000]), + FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5769: new org.antlr.runtime.BitSet([0x00000002, 0x04000080,0x00000100, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_MultiplicativeExpr5776: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DIV_in_p_MultiplicativeExpr5785: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_IDIV_in_p_MultiplicativeExpr5791: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MOD_in_p_MultiplicativeExpr5797: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5803: new org.antlr.runtime.BitSet([0x00000002, 0x04000080,0x00000100, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5832: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000200,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_UNION_in_p_UnionExpr5839: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_VBAR_in_p_UnionExpr5845: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5848: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000200,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5877: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000001, 0x00000000]), + FOLLOW_INTERSECT_in_p_IntersectExceptExpr5884: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_EXCEPT_in_p_IntersectExceptExpr5890: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5895: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000001, 0x00000000]), + FOLLOW_p_TreatExpr_in_p_InstanceofExpr5924: new org.antlr.runtime.BitSet([0x00000002, 0x80000000]), + FOLLOW_INSTANCE_in_p_InstanceofExpr5930: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_OF_in_p_InstanceofExpr5936: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_InstanceofExpr5940: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CastableExpr_in_p_TreatExpr5968: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_TREAT_in_p_TreatExpr5974: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_TreatExpr5980: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TreatExpr5984: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CastExpr_in_p_CastableExpr6021: new org.antlr.runtime.BitSet([0x10000002, 0x00000000]), + FOLLOW_CASTABLE_in_p_CastableExpr6027: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CastableExpr6033: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SingleType_in_p_CastableExpr6037: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_UnaryExpr_in_p_CastExpr6074: new org.antlr.runtime.BitSet([0x08000002, 0x00000000]), + FOLLOW_CAST_in_p_CastExpr6080: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CastExpr6086: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SingleType_in_p_CastExpr6090: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PLUS_in_p_UnaryExpr6122: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MINUS_in_p_UnaryExpr6130: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ValueExpr_in_p_UnaryExpr6135: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ValidateExpr_in_p_ValueExpr6205: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ValueExpr6217: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExtensionExpr_in_p_ValueExpr6229: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EQUAL_in_p_GeneralComp6258: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NOTEQUAL_in_p_GeneralComp6264: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_in_p_GeneralComp6270: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLEREQ_in_p_GeneralComp6276: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_in_p_GeneralComp6282: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATEREQ_in_p_GeneralComp6288: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EQ_in_p_ValueComp6320: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NE_in_p_ValueComp6326: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LT_in_p_ValueComp6332: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LE_in_p_ValueComp6338: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GT_in_p_ValueComp6344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GE_in_p_ValueComp6350: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IS_in_p_NodeComp6381: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_SMALLER_in_p_NodeComp6387: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_GREATER_in_p_NodeComp6391: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VALIDATE_in_p_ValidateExpr6419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000008, 0x00000004,0x00000200, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_ValidationMode_in_p_ValidateExpr6425: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_TYPE_in_p_ValidateExpr6431: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_ValidateExpr6435: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_ValidateExpr6440: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ValidateExpr6442: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_ValidateExpr6445: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LAX_in_p_ValidationMode6474: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STRICT_in_p_ValidationMode6480: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_Pragma_in_p_ExtensionExpr6509: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00080000, 0x00000000]), + FOLLOW_LBRACKET_in_p_ExtensionExpr6512: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F003,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ExtensionExpr6514: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_ExtensionExpr6518: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_p_PathExpr6561: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6563: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_p_PathExpr6576: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_SLASH_in_p_PathExpr6588: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6590: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6602: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StepExpr_in_p_RelativePathExpr6630: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00600000]), + FOLLOW_set_in_p_RelativePathExpr6633: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StepExpr_in_p_RelativePathExpr6641: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00600000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6695: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6809: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AxisStep_in_p_StepExpr6827: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6848: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6866: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AxisStep_in_p_StepExpr6878: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReverseStep_in_p_AxisStep6905: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_ForwardStep_in_p_AxisStep6909: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_PredicateList_in_p_AxisStep6912: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ForwardAxis_in_p_ForwardStep6938: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_ForwardStep6940: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AbbrevForwardStep_in_p_ForwardStep6952: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CHILD_in_p_ForwardAxis6978: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis6980: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DESCENDANT_in_p_ForwardAxis6992: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis6994: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_p_ForwardAxis7006: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7008: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SELF_in_p_ForwardAxis7020: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7022: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DESCENDANT_OR_SELF_in_p_ForwardAxis7034: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOLLOWING_SIBLING_in_p_ForwardAxis7048: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7050: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOLLOWING_in_p_ForwardAxis7062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7064: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTR_SIGN_in_p_AbbrevForwardStep7090: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_AbbrevForwardStep7093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReverseAxis_in_p_ReverseStep7119: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_ReverseStep7121: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AbbrevReverseStep_in_p_ReverseStep7133: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARENT_in_p_ReverseAxis7159: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7161: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANCESTOR_in_p_ReverseAxis7173: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7175: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRECEDING_SIBLING_in_p_ReverseAxis7187: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7189: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRECEDING_in_p_ReverseAxis7201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7203: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANCESTOR_OR_SELF_in_p_ReverseAxis7215: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7217: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOT_DOT_in_p_AbbrevReverseStep7243: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_p_NodeTest7269: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NameTest_in_p_NodeTest7273: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Wildcard_in_p_NameTest7305: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NameTest7326: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NameTest7344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_Wildcard7374: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7377: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_Wildcard7379: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_Wildcard7393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7395: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_Wildcard7397: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_Wildcard7409: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7411: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_Wildcard7413: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PrimaryExpr_in_p_PostfixExpr7451: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_Predicate_in_p_PostfixExpr7454: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_LPAREN_in_p_ArgumentList7495: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xEFFFFFFF, 0x01E0F801,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Argument_in_p_ArgumentList7498: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_ArgumentList7501: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F801,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Argument_in_p_ArgumentList7503: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_ArgumentList7509: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Predicate_in_p_PredicateList7535: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_LSQUARE_in_p_Predicate7562: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_Predicate7564: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000008]), + FOLLOW_RSQUARE_in_p_Predicate7567: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ParenthesizedExpr_in_p_PrimaryExpr7600: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Literal_in_p_PrimaryExpr7612: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarRef_in_p_PrimaryExpr7624: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ContextItemExpr_in_p_PrimaryExpr7636: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FunctionCall_in_p_PrimaryExpr7648: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderedExpr_in_p_PrimaryExpr7660: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_UnorderedExpr_in_p_PrimaryExpr7672: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Constructor_in_p_PrimaryExpr7684: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_BlockExpr_in_p_PrimaryExpr7698: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NumericLiteral_in_p_Literal7724: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_Literal7728: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_NumericLiteral7756: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DecimalLiteral_in_p_NumericLiteral7764: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DoubleLiteral_in_p_NumericLiteral7772: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarRef7810: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarRef7814: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_VarName7842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_ParenthesizedExpr7868: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xEFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ParenthesizedExpr7870: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ParenthesizedExpr7874: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOT_in_p_ContextItemExpr7900: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDERED_in_p_OrderedExpr7928: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_OrderedExpr7932: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_OrderedExpr7934: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_OrderedExpr7937: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UNORDERED_in_p_UnorderedExpr7965: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_UnorderedExpr7969: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_UnorderedExpr7971: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_UnorderedExpr7974: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_FQName_in_p_FunctionCall8003: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_ArgumentList_in_p_FunctionCall8008: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Argument8034: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ArgumentPlaceholder_in_p_Argument8039: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_QUESTION_in_p_ArgumentPlaceholder8065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirectConstructor_in_p_Constructor8091: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ComputedConstructor_in_p_Constructor8103: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirElemConstructor_in_p_DirectConstructor8129: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirCommentConstructor_in_p_DirectConstructor8141: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirPIConstructor_in_p_DirectConstructor8153: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_in_p_DirElemConstructor8180: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirElemConstructor8196: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08010000,0x00020000, 0x00000000]), + FOLLOW_p_DirAttributeList_in_p_DirElemConstructor8201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08010000]), + FOLLOW_EMPTY_CLOSE_TAG_in_p_DirElemConstructor8215: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_in_p_DirElemConstructor8220: new org.antlr.runtime.BitSet([0x00000FC0, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10008001,0x00300000, 0x00000000]), + FOLLOW_pm_DirElemContent_in_p_DirElemConstructor8222: new org.antlr.runtime.BitSet([0x00000FC0, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10008001,0x00300000, 0x00000000]), + FOLLOW_CLOSE_TAG_in_p_DirElemConstructor8225: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirElemConstructor8229: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000,0x00020000, 0x00000000]), + FOLLOW_S_in_p_DirElemConstructor8233: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_GREATER_in_p_DirElemConstructor8236: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8313: new org.antlr.runtime.BitSet([0xFFFF0002, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00021000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirAttributeList8318: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010,0x00020000, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_DirAttributeList8325: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020300, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8327: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020300, 0x00000000]), + FOLLOW_p_DirAttributeValue_in_p_DirAttributeList8332: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8366: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_ESCAPE_QUOT_in_p_DirAttributeValue8373: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8379: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_p_QuotAttrValueContent_in_p_DirAttributeValue8383: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8389: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8434: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_ESCAPE_APOS_in_p_DirAttributeValue8441: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8447: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_p_AposAttrValueContent_in_p_DirAttributeValue8451: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8457: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QuotAttrContentChar_in_p_QuotAttrValueContent8515: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_p_QuotAttrValueContent8521: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AposAttrContentChar_in_p_AposAttrValueContent8549: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_p_AposAttrValueContent8555: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirectConstructor_in_pm_DirElemContent8581: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CDataSection_in_pm_DirElemContent8593: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_pm_DirElemContent8605: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementContentChar_in_pm_DirElemContent8617: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_PredefinedEntityRef_in_pm_CommonContent8645: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_CharRef_in_pm_CommonContent8657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ESCAPE_LBRACKET_in_pm_CommonContent8671: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ESCAPE_RBRACKET_in_pm_CommonContent8687: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_EnclosedExprXml_in_pm_CommonContent8701: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_pg_EnclosedExprXml8733: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pg_EnclosedExprXml8749: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pg_EnclosedExprXml8763: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DirCommentConstructor_in_p_DirCommentConstructor8794: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DirPIConstructor_in_p_DirPIConstructor8830: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_CDataSection_in_p_CDataSection8865: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompDocConstructor_in_p_ComputedConstructor8897: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompElemConstructor_in_p_ComputedConstructor8909: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompAttrConstructor_in_p_ComputedConstructor8921: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompNamespaceConstructor_in_p_ComputedConstructor8933: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompTextConstructor_in_p_ComputedConstructor8945: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompCommentConstructor_in_p_ComputedConstructor8957: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompPIConstructor_in_p_ComputedConstructor8969: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompBinaryConstructor_in_p_ComputedConstructor8984: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOCUMENT_in_pm_CompDocConstructor9013: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompDocConstructor9017: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompDocConstructor9019: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompDocConstructor9021: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ELEMENT_in_pm_CompElemConstructor9057: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_CompElemConstructor9062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompElemConstructor9067: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompElemConstructor9069: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompElemConstructor9072: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompElemConstructor9076: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pm_ContentExpr_in_pm_CompElemConstructor9078: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompElemConstructor9080: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_ContentExpr9107: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_pm_CompAttrConstructor9136: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_CompAttrConstructor9141: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompAttrConstructor9146: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompAttrConstructor9148: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompAttrConstructor9151: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompAttrConstructor9155: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompAttrConstructor9157: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompAttrConstructor9159: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_in_p_CompNamespaceConstructor9187: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Prefix_in_p_CompNamespaceConstructor9192: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9197: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PrefixExpr_in_p_CompNamespaceConstructor9199: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9205: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F003,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_URIExpr_in_p_CompNamespaceConstructor9207: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9210: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_Prefix9236: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_PrefixExpr9262: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_URIExpr9289: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TEXT_in_p_CompTextConstructor9318: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompTextConstructor9322: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CompTextConstructor9324: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompTextConstructor9327: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BINARY_in_p_CompBinaryConstructor9355: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompBinaryConstructor9359: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CompBinaryConstructor9361: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompBinaryConstructor9364: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COMMENT_in_pm_CompCommentConstructor9393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompCommentConstructor9397: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompCommentConstructor9399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompCommentConstructor9401: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PROCESSING_INSTRUCTION_in_pm_CompPIConstructor9430: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_CompPIConstructor9435: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompPIConstructor9440: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompPIConstructor9442: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompPIConstructor9445: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompPIConstructor9449: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompPIConstructor9451: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompPIConstructor9453: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AtomicOrUnionType_in_p_SingleType9497: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_QUESTION_in_p_SingleType9499: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_TypeDeclaration9528: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypeDeclaration9534: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EMPTY_SEQUENCE_in_p_SequenceType9587: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SequenceType9593: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SequenceType9597: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ItemType_in_p_SequenceType9646: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_SequenceType9657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_OccurrenceIndicator0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_p_ItemType9759: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BINARY_in_p_ItemType9799: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ItemType9801: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ItemType9803: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ITEM_in_p_ItemType9845: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ItemType9847: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ItemType9849: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AtomicOrUnionType_in_p_ItemType9893: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ParenthesizedItemType_in_p_ItemType9905: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AtomicOrUnionType9931: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DocumentTest_in_p_KindTest9981: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementTest_in_p_KindTest9993: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeTest_in_p_KindTest10005: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SchemaElementTest_in_p_KindTest10017: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SchemaAttributeTest_in_p_KindTest10029: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PITest_in_p_KindTest10041: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CommentTest_in_p_KindTest10053: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TextTest_in_p_KindTest10065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NamespaceNodeTest_in_p_KindTest10077: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AnyKindTest_in_p_KindTest10089: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NODE_in_p_AnyKindTest10115: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AnyKindTest10117: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AnyKindTest10119: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOCUMENT_NODE_in_p_DocumentTest10145: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_DocumentTest10147: new org.antlr.runtime.BitSet([0x00000000, 0x00000400,0x40000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_ElementTest_in_p_DocumentTest10150: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_SchemaElementTest_in_p_DocumentTest10154: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_DocumentTest10158: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TEXT_in_p_TextTest10184: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TextTest10186: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TextTest10188: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COMMENT_in_p_CommentTest10214: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_CommentTest10216: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_CommentTest10218: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_NODE_in_p_NamespaceNodeTest10244: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_NamespaceNodeTest10246: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_NamespaceNodeTest10248: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PROCESSING_INSTRUCTION_in_p_PITest10274: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_PITest10276: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00000000,0x01C01300, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_PITest10279: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_PITest10283: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_PITest10287: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_p_AttributeTest10313: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AttributeTest10315: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00001000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AttribNameOrWildcard_in_p_AttributeTest10318: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_AttributeTest10321: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_AttributeTest10323: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AttributeTest10329: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeName_in_p_AttribNameOrWildcard10357: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_AttribNameOrWildcard10361: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCHEMA_ATTRIBUTE_in_p_SchemaAttributeTest10387: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SchemaAttributeTest10389: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AttributeDeclaration_in_p_SchemaAttributeTest10391: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SchemaAttributeTest10393: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeName_in_p_AttributeDeclaration10419: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ELEMENT_in_p_ElementTest10445: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ElementTest10447: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00001000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ElementNameOrWildcard_in_p_ElementTest10450: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_ElementTest10453: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_ElementTest10455: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000800]), + FOLLOW_QUESTION_in_p_ElementTest10457: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ElementTest10464: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_ElementNameOrWildcard10490: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_ElementNameOrWildcard10494: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCHEMA_ELEMENT_in_p_SchemaElementTest10512: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SchemaElementTest10514: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ElementDeclaration_in_p_SchemaElementTest10516: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SchemaElementTest10518: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementName_in_p_ElementDeclaration10544: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AttributeName10570: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_ElementName10596: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_TypeName10622: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Annotation_in_p_FunctionTest10648: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_p_AnyFunctionTest_in_p_FunctionTest10652: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TypedFunctionTest_in_p_FunctionTest10656: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FUNCTION_in_p_AnyFunctionTest10683: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AnyFunctionTest10685: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_AnyFunctionTest10687: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AnyFunctionTest10689: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FUNCTION_in_p_TypedFunctionTest10715: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypedFunctionTest10717: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x6FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10720: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_TypedFunctionTest10723: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10725: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_TypedFunctionTest10731: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_TypedFunctionTest10733: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10735: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_ParenthesizedItemType10761: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ItemType_in_p_ParenthesizedItemType10763: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ParenthesizedItemType10765: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_QUOT_in_p_StringLiteral10816: new org.antlr.runtime.BitSet([0xFFFFFFF0, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFFFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_pg_QuotStringLiteralContent_in_p_StringLiteral10820: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000200, 0x00000000]), + FOLLOW_QUOT_in_p_StringLiteral10822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_APOS_in_p_StringLiteral10861: new org.antlr.runtime.BitSet([0xFFFFFFF0, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFFFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_pg_AposStringLiteralContent_in_p_StringLiteral10865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000100, 0x00000000]), + FOLLOW_APOS_in_p_StringLiteral10867: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_pg_QuotStringLiteralContent10933: new org.antlr.runtime.BitSet([0xFFFFFFF2, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFDFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_set_in_pg_AposStringLiteralContent10984: new org.antlr.runtime.BitSet([0xFFFFFFF2, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFEFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_L_ElementContentChar_in_p_ElementContentChar11042: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_QuotAttrContentChar_in_p_QuotAttrContentChar11068: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_AposAttrContentChar_in_p_AposAttrContentChar11118: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_QName_in_p_QName11204: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_QName11216: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_QName_in_pg_FQName11277: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FNCName_in_pg_FQName11289: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_pg_QName11333: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_pg_QName11335: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pg_QName11339: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_NCName0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_FNCName0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InsertExpr_in_pg_UpdateExpr13330: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DeleteExpr_in_pg_UpdateExpr13342: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RenameExpr_in_pg_UpdateExpr13354: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReplaceExpr_in_pg_UpdateExpr13366: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TransformExpr_in_pg_UpdateExpr13378: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_RevalidationDecl13406: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x02000000, 0x00000000]), + FOLLOW_REVALIDATION_in_pm_RevalidationDecl13410: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000008, 0x00000004,0x04000000, 0x00000000]), + FOLLOW_STRICT_in_pm_RevalidationDecl13415: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_LAX_in_pm_RevalidationDecl13421: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SKIP_in_pm_RevalidationDecl13427: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_RevalidationDecl13432: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_InsertExprTargetChoice13462: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00120000, 0x00000000]), + FOLLOW_FIRST_in_p_InsertExprTargetChoice13467: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00080000, 0x00000000]), + FOLLOW_LAST_in_p_InsertExprTargetChoice13473: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00080000, 0x00000000]), + FOLLOW_INTO_in_p_InsertExprTargetChoice13480: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AFTER_in_p_InsertExprTargetChoice13497: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BEFORE_in_p_InsertExprTargetChoice13513: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INSERT_in_p_InsertExpr13543: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODE_in_p_InsertExpr13548: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_NODES_in_p_InsertExpr13554: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SourceExpr_in_p_InsertExpr13557: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00086000, 0x00000000]), + FOLLOW_p_InsertExprTargetChoice_in_p_InsertExpr13559: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_InsertExpr13561: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DELETE_in_p_DeleteExpr13591: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODE_in_p_DeleteExpr13596: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_NODES_in_p_DeleteExpr13602: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_DeleteExpr13605: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_REPLACE_in_p_ReplaceExpr13635: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_VALUE_in_p_ReplaceExpr13640: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_OF_in_p_ReplaceExpr13644: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ReplaceExpr13650: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ReplaceExpr13652: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_WITH_in_p_ReplaceExpr13657: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ReplaceExpr13659: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RENAME_in_p_RenameExpr13690: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_RenameExpr13694: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_RenameExpr13696: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_RenameExpr13700: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NewNameExpr_in_p_RenameExpr13702: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SourceExpr13730: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TargetExpr13757: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_NewNameExpr13784: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COPY_in_p_TransformExpr13813: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TransformExpr13817: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TransformExpr13821: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_TransformExpr13825: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13827: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_TransformExpr13831: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TransformExpr13835: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TransformExpr13839: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_TransformExpr13843: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13845: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_MODIFY_in_p_TransformExpr13852: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13854: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TransformExpr13859: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13861: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_FTOptionDecl13899: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000100]), + FOLLOW_FT_OPTION_in_pm_FTOptionDecl13903: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_p_FTMatchOptions_in_pm_FTOptionDecl13905: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_FTOptionDecl13907: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCORE_in_p_FTScoreVar13937: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_FTScoreVar13943: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_FTScoreVar13947: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringConcatExpr_in_p_FTContainsExpr13975: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_CONTAINS_in_p_FTContainsExpr13981: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_TEXT_in_p_FTContainsExpr13985: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTContainsExpr13989: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_FTIgnoreOption_in_p_FTContainsExpr13991: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTOr_in_p_FTSelection14021: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00080000, 0x00000000,0x00000800, 0x01000038]), + FOLLOW_p_FTPosFilter_in_p_FTSelection14023: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00080000, 0x00000000,0x00000800, 0x01000038]), + FOLLOW_WEIGHT_in_p_FTWeight14052: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_FTWeight14056: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_FTWeight14058: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTWeight14061: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTAnd_in_p_FTOr14087: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_FTOR_in_p_FTOr14093: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTAnd_in_p_FTOr14097: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_p_FTMildNot_in_p_FTAnd14126: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000200]), + FOLLOW_FTAND_in_p_FTAnd14132: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTMildNot_in_p_FTAnd14136: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000200]), + FOLLOW_p_FTUnaryNot_in_p_FTMildNot14165: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_NOT_in_p_FTMildNot14171: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_FTMildNot14175: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTUnaryNot_in_p_FTMildNot14179: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_FTNOT_in_p_FTUnaryNot14212: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTPrimaryWithOptions_in_p_FTUnaryNot14219: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTPrimary_in_p_FTPrimaryWithOptions14245: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x0000000C, 0x00000000]), + FOLLOW_p_FTMatchOptions_in_p_FTPrimaryWithOptions14247: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000008, 0x00000000]), + FOLLOW_p_FTWeight_in_p_FTPrimaryWithOptions14250: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWords_in_p_FTPrimary14281: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00080000]), + FOLLOW_p_FTTimes_in_p_FTPrimary14283: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_FTPrimary14298: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTPrimary14300: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_FTPrimary14302: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTExtensionSelection_in_p_FTPrimary14315: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWordsValue_in_p_FTWords14341: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0xC0000000, 0x00400000]), + FOLLOW_p_FTAnyallOption_in_p_FTWords14343: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTWordsValue14370: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_FTWordsValue14383: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_FTWordsValue14385: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTWordsValue14388: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_Pragma_in_p_FTExtensionSelection14415: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00080000, 0x00000000]), + FOLLOW_LBRACKET_in_p_FTExtensionSelection14418: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000003,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTExtensionSelection14420: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTExtensionSelection14423: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANY_in_p_FTAnyallOption14454: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000040, 0x00000000]), + FOLLOW_WORD_in_p_FTAnyallOption14458: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ALL_in_p_FTAnyallOption14467: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTAnyallOption14469: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PHRASE_in_p_FTAnyallOption14477: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_OCCURS_in_p_FTTimes14509: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTRange_in_p_FTTimes14511: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000001, 0x00000000]), + FOLLOW_TIMES_in_p_FTTimes14515: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXACTLY_in_p_FTRange14548: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14550: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTRange14568: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_LEAST_in_p_FTRange14572: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14574: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTRange14592: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_MOST_in_p_FTRange14596: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14598: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_FTRange14616: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14618: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_FTRange14622: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14624: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTOrder_in_p_FTPosFilter14655: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWindow_in_p_FTPosFilter14659: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTDistance_in_p_FTPosFilter14663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTScope_in_p_FTPosFilter14667: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTContent_in_p_FTPosFilter14671: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDERED_in_p_FTOrder14699: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WINDOW_in_p_FTWindow14729: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTWindow14733: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10200000,0x00000080, 0x00000000]), + FOLLOW_p_FTUnit_in_p_FTWindow14735: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DISTANCE_in_p_FTDistance14763: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTRange_in_p_FTDistance14767: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10200000,0x00000080, 0x00000000]), + FOLLOW_p_FTUnit_in_p_FTDistance14769: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WORDS_in_p_FTUnit14799: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SENTENCES_in_p_FTUnit14805: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARAGRAPHS_in_p_FTUnit14811: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SAME_in_p_FTScope14844: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08100000]), + FOLLOW_DIFFERENT_in_p_FTScope14850: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08100000]), + FOLLOW_p_FTBigUnit_in_p_FTScope14855: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SENTENCE_in_p_FTBigUnit14885: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARAGRAPH_in_p_FTBigUnit14891: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTContent14926: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_START_in_p_FTContent14930: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTContent14938: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00800000]), + FOLLOW_END_in_p_FTContent14942: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ENTIRE_in_p_FTContent14950: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_CONTENT_in_p_FTContent14954: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_USING_in_p_FTMatchOptions14988: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x00010000, 0x00000000,0x00000000, 0xE002A004,0x00000012, 0x00000000]), + FOLLOW_p_FTMatchOption_in_p_FTMatchOptions14992: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_p_FTLanguageOption_in_p_FTMatchOption15020: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWildCardOption_in_p_FTMatchOption15032: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTThesaurusOption_in_p_FTMatchOption15044: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTStemOption_in_p_FTMatchOption15056: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTCaseOption_in_p_FTMatchOption15068: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTDiacriticsOption_in_p_FTMatchOption15080: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTStopWordOption_in_p_FTMatchOption15092: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTExtensionOption_in_p_FTMatchOption15104: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_FTCaseOption15135: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_INSENSITIVE_in_p_FTCaseOption15139: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_FTCaseOption15157: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_SENSITIVE_in_p_FTCaseOption15161: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LOWERCASE_in_p_FTCaseOption15178: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UPPERCASE_in_p_FTCaseOption15194: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15229: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_INSENSITIVE_in_p_FTDiacriticsOption15233: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15251: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_SENSITIVE_in_p_FTDiacriticsOption15255: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STEMMING_in_p_FTStemOption15290: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTStemOption15297: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_STEMMING_in_p_FTStemOption15301: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15337: new org.antlr.runtime.BitSet([0x00200000, 0x00000008]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15340: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DEFAULT_in_p_FTThesaurusOption15346: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15365: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_FTThesaurusOption15367: new org.antlr.runtime.BitSet([0x00200000, 0x00000008]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15370: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_DEFAULT_in_p_FTThesaurusOption15376: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_FTThesaurusOption15380: new org.antlr.runtime.BitSet([0x00200000, 0x00000000]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15382: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_FTThesaurusOption15386: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTThesaurusOption15404: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x80000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15408: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTThesaurusID15441: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTThesaurusID15443: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x008000C0]), + FOLLOW_RELATIONSHIP_in_p_FTThesaurusID15448: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTThesaurusID15450: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTLiteralRange_in_p_FTThesaurusID15455: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00004000]), + FOLLOW_LEVELS_in_p_FTThesaurusID15459: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXACTLY_in_p_FTLiteralRange15494: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15496: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTLiteralRange15514: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_LEAST_in_p_FTLiteralRange15518: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15520: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTLiteralRange15538: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_MOST_in_p_FTLiteralRange15542: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15544: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_FTLiteralRange15562: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15564: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_FTLiteralRange15566: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15568: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STOP_in_p_FTStopWordOption15604: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15608: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_FTStopWords_in_p_FTStopWordOption15610: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15612: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_STOP_in_p_FTStopWordOption15631: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15635: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_FTStopWordOption15639: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15641: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_NO_in_p_FTStopWordOption15660: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_STOP_in_p_FTStopWordOption15664: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTStopWords15702: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15706: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_FTStopWords15720: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15722: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_FTStopWords15725: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15727: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_FTStopWords15731: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UNION_in_p_FTStopWordsInclExcl15763: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_EXCEPT_in_p_FTStopWordsInclExcl15769: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_FTStopWords_in_p_FTStopWordsInclExcl15772: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LANGUAGE_in_p_FTLanguageOption15804: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTLanguageOption15808: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WILDCARDS_in_p_FTWildCardOption15838: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTWildCardOption15845: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000010, 0x00000000]), + FOLLOW_WILDCARDS_in_p_FTWildCardOption15849: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_OPTION_in_p_FTExtensionOption15882: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_FTExtensionOption15886: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTExtensionOption15888: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WITHOUT_in_p_FTIgnoreOption15916: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_CONTENT_in_p_FTIgnoreOption15920: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_UnionExpr_in_p_FTIgnoreOption15924: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_p_Program15956: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Hybrid_in_p_Statements15983: new org.antlr.runtime.BitSet([0xFFFF0002, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_StatementsAndExpr16011: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Statements_in_p_StatementsAndOptionalExpr16038: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_HybridExprSingle_in_p_Hybrid16065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Statement_in_p_Hybrid16078: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AssignStatement_in_p_Statement16109: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_BreakStatement_in_p_Statement16121: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ContinueStatement_in_p_Statement16133: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExitStatement_in_p_Statement16145: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarDeclStatement_in_p_Statement16157: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WhileStatement_in_p_Statement16169: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_HybridExprSingle16196: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_HybridExprSingle16211: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSimple_in_p_ApplyStatement16261: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ApplyStatement16263: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_AssignStatement16291: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_AssignStatement16295: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_AssignStatement16299: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_AssignStatement16301: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_AssignStatement16304: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockStatement16330: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F083,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_BlockStatement16332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockStatement16335: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockHybrid16361: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F083,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_BlockHybrid16363: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockHybrid16366: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BREAK_in_p_BreakStatement16394: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_LOOP_in_p_BreakStatement16400: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_BreakStatement16404: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CONTINUE_in_p_ContinueStatement16432: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_LOOP_in_p_ContinueStatement16438: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ContinueStatement16442: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXIT_in_p_ExitStatement16470: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00001000, 0x00000000]), + FOLLOW_RETURNING_in_p_ExitStatement16476: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ExitStatement16480: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ExitStatement16483: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_FLWORStatement16509: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_IntermediateClause_in_p_FLWORStatement16511: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_ReturnStatement_in_p_FLWORStatement16514: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RETURN_in_p_ReturnStatement16546: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_ReturnStatement16550: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IF_in_p_IfStatement16579: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_IfStatement16583: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_IfStatement16585: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_IfStatement16588: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_THEN_in_p_IfStatement16592: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfStatement16596: new org.antlr.runtime.BitSet([0x00000000, 0x00000800]), + FOLLOW_ELSE_in_p_IfStatement16601: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfStatement16605: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_p_SwitchStatement16634: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SwitchStatement16638: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_SwitchStatement16640: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SwitchStatement16643: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_SwitchCaseStatement_in_p_SwitchStatement16645: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_SwitchStatement16650: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchStatement16656: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchStatement16660: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_SwitchCaseStatement16690: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseStatement16694: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchCaseStatement16700: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchCaseStatement16704: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TRY_in_p_TryCatchStatement16733: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockStatement_in_p_TryCatchStatement16737: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_CATCH_in_p_TryCatchStatement16742: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_TryCatchStatement16746: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockStatement_in_p_TryCatchStatement16748: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TRY_in_p_TryCatchHybrid16780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16784: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_CATCH_in_p_TryCatchHybrid16790: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_TryCatchHybrid16794: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16796: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TYPESWITCH_in_p_TypeswitchStatement16829: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypeswitchStatement16833: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_TypeswitchStatement16835: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TypeswitchStatement16838: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_CaseStatement_in_p_TypeswitchStatement16840: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_TypeswitchStatement16845: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TypeswitchStatement16852: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TypeswitchStatement16856: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TypeswitchStatement16864: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_TypeswitchStatement16868: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_CaseStatement16897: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CaseStatement16904: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CaseStatement16908: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CaseStatement16912: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_CaseStatement16916: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_CaseStatement16920: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_CaseStatement16924: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Annotation_in_p_VarDeclStatement16951: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00001000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_VARIABLE_in_p_VarDeclStatement16956: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDeclStatement16962: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarDeclStatement16966: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement16970: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_BIND_in_p_VarDeclStatement16974: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDeclStatement16976: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_p_VarDeclStatement16992: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDeclStatement16996: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarDeclStatement17000: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement17004: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_BIND_in_p_VarDeclStatement17008: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDeclStatement17010: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_p_VarDeclStatement17027: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WHILE_in_p_WhileStatement17055: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_WhileStatement17059: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_WhileStatement17061: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_WhileStatement17064: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_WhileStatement17066: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QuantifiedExpr_in_p_ExprSimple17093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrExpr_in_p_ExprSimple17105: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_UpdateExpr_in_p_ExprSimple17120: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockExpr17146: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndExpr_in_p_BlockExpr17148: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockExpr17150: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLECTION_in_p_CollectionDecl17181: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_CollectionDecl17185: new org.antlr.runtime.BitSet([0x00080002, 0x00000000]), + FOLLOW_p_CollectionTypeDecl_in_p_CollectionDecl17187: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_CollectionTypeDecl17216: new org.antlr.runtime.BitSet([0x80400000, 0x00000600,0x62004000, 0x10000010]), + FOLLOW_p_KindTest_in_p_CollectionTypeDecl17220: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_CollectionTypeDecl17229: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INDEX_in_p_IndexDecl17259: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexName_in_p_IndexDecl17263: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_ON_in_p_IndexDecl17267: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODES_in_p_IndexDecl17273: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexDomainExpr_in_p_IndexDecl17277: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_IndexDecl17281: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexKeySpec_in_p_IndexDecl17285: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_IndexDecl17288: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexKeySpec_in_p_IndexDecl17290: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_QName_in_p_IndexName17317: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_IndexDomainExpr17342: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IndexKeyExpr_in_p_IndexKeySpec17367: new org.antlr.runtime.BitSet([0x40080002, 0x00000000]), + FOLLOW_p_IndexKeyTypeDecl_in_p_IndexKeySpec17369: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_p_IndexKeyCollation_in_p_IndexKeySpec17372: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_IndexKeyExpr17398: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_IndexKeyTypeDecl17425: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AtomicType_in_p_IndexKeyTypeDecl17429: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_IndexKeyTypeDecl17431: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AtomicType17457: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLATION_in_p_IndexKeyCollation17484: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_IndexKeyCollation17488: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INTEGRITY_in_p_ICDecl17515: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00010000, 0x00000000]), + FOLLOW_CONSTRAINT_in_p_ICDecl17521: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICDecl17525: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00440000, 0x00000000]), + FOLLOW_p_ICCollection_in_p_ICDecl17528: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICForeignKey_in_p_ICDecl17532: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ON_in_p_ICCollection17560: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_COLLECTION_in_p_ICCollection17566: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollection17570: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00000000, 0x00000000,0x80020000, 0x00000000]), + FOLLOW_p_ICCollSequence_in_p_ICCollection17573: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICCollSequenceUnique_in_p_ICCollection17577: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICCollNode_in_p_ICCollection17581: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollSequence17609: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollSequence17613: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollSequence17619: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ICCollSequence17623: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NODE_in_p_ICCollSequenceUnique17651: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollSequenceUnique17657: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollSequenceUnique17661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollSequenceUnique17667: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00800000, 0x00000000]), + FOLLOW_UNIQUE_in_p_ICCollSequenceUnique17673: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICCollSequenceUnique17679: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ICCollSequenceUnique17683: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOREACH_in_p_ICCollNode17710: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ICCollNode17716: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollNode17722: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollNode17726: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollNode17732: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ICCollNode17736: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOREIGN_in_p_ICForeignKey17764: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICForeignKey17770: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_p_ICForeignKeySource_in_p_ICForeignKey17774: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_p_ICForeignKeyTarget_in_p_ICForeignKey17776: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_ICForeignKeySource17803: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeySource17807: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TO_in_p_ICForeignKeyTarget17834: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeyTarget17838: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLECTION_in_p_ICForeignKeyValues17865: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICForeignKeyValues17869: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ICForeignKeyValues17873: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICForeignKeyValues17879: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICForeignKeyValues17883: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICForeignKeyValues17889: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ICForeignKeyValues17893: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred1_XQueryParser3535: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_synpred1_XQueryParser3543: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOR_in_synpred1_XQueryParser3549: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000110, 0x00000000]), + FOLLOW_set_in_synpred1_XQueryParser3551: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IF_in_synpred2_XQueryParser3577: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred2_XQueryParser3579: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_synpred3_XQueryParser3607: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred3_XQueryParser3609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPESWITCH_in_synpred4_XQueryParser3633: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred4_XQueryParser3635: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TRY_in_synpred5_XQueryParser3655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred5_XQueryParser3657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VALIDATE_in_synpred6_XQueryParser6189: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000008, 0x00000004,0x00000200, 0x00000000]), + FOLLOW_p_ValidationMode_in_synpred6_XQueryParser6193: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPE_in_synpred6_XQueryParser6197: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_synpred7_XQueryParser6553: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_synpred7_XQueryParser6555: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred8_XQueryParser6669: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6722: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_synpred9_XQueryParser6730: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6733: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6751: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_synpred9_XQueryParser6759: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6762: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6792: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_synpred10_XQueryParser6822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_synpred11_XQueryParser6841: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred11_XQueryParser6843: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PrimaryExpr_in_synpred12_XQueryParser6861: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Wildcard_in_synpred13_XQueryParser7300: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_synpred14_XQueryParser7319: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_synpred14_XQueryParser7321: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_synpred15_XQueryParser7339: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_synpred16_XQueryParser7595: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OccurrenceIndicator_in_synpred17_XQueryParser9650: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OccurrenceIndicator_in_synpred18_XQueryParser17224: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]) +}); + +})(); +exports.XQueryParser = XQueryParser; +});define('ace/mode/xquery/StringLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQDTLexer'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/StringLexer.g 2012-04-23 09:26:59 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ + var org = require("./antlr3-all").org; + var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var StringLexer = function(input, state) { +// alternate constructor @todo +// public StringLexer(CharStream input) +// public StringLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inQuotStr = false; + this.inAposStr = false; + + //boolean inQuotStr = false; + //boolean inAposStr = false; + + //public StringLexer(CharStream input, boolean isAposStr) { + // this(input, new RecognizerSharedState()); + // this.inAposStr = isAposStr; + // this.inQuotStr = !isAposStr; + // setIsWsExplicit(true); + //} + + }).call(this); + + this.dfa8 = new StringLexer.DFA8(this); + StringLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(StringLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + L_QuotStringLiteralChar: 283, + L_AposStringLiteralChar: 284 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(StringLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + L_QuotStringLiteralChar : 283, + L_AposStringLiteralChar : 284, + getGrammarFileName: function() { return "xquery/StringLexer.g"; } +}); +org.antlr.lang.augmentObject(StringLexer.prototype, { + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:66:6: ({...}? => '\"' ) + // xquery/StringLexer.g:66:8: {...}? => '\"' + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "QUOT", " this.inQuotStr "); + } + this.match('\"'); + this.inQuotStr = !this.inQuotStr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:67:6: ({...}? => '\\'' ) + // xquery/StringLexer.g:67:8: {...}? => '\\'' + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "APOS", " this.inAposStr "); + } + this.match('\''); + this.inAposStr = !this.inAposStr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start ESCAPE_QUOT + mESCAPE_QUOT: function() { + try { + var _type = this.ESCAPE_QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:68:13: ({...}? => '\"\"' ) + // xquery/StringLexer.g:68:15: {...}? => '\"\"' + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_QUOT", " this.inQuotStr "); + } + this.match("\"\""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_QUOT", + + // $ANTLR start ESCAPE_APOS + mESCAPE_APOS: function() { + try { + var _type = this.ESCAPE_APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:69:13: ({...}? => '\\'\\'' ) + // xquery/StringLexer.g:69:15: {...}? => '\\'\\'' + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_APOS", " this.inAposStr "); + } + this.match("''"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_APOS", + + // $ANTLR start L_PredefinedEntityRef + mL_PredefinedEntityRef: function() { + try { + var _type = this.L_PredefinedEntityRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:73:2: ({...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' ) + // xquery/StringLexer.g:73:4: {...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' + if ( !(( this.inQuotStr | this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_PredefinedEntityRef", " this.inQuotStr | this.inAposStr "); + } + this.match('&'); + // xquery/StringLexer.g:73:48: ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) + var alt1=5; + switch ( this.input.LA(1) ) { + case 'l': + alt1=1; + break; + case 'g': + alt1=2; + break; + case 'a': + var LA1_3 = this.input.LA(2); + + if ( (LA1_3=='p') ) { + alt1=3; + } + else if ( (LA1_3=='m') ) { + alt1=5; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 1, 3, this.input); + + throw nvae; + } + break; + case 'q': + alt1=4; + break; + default: + var nvae = + new org.antlr.runtime.NoViableAltException("", 1, 0, this.input); + + throw nvae; + } + + switch (alt1) { + case 1 : + // xquery/StringLexer.g:73:49: 'lt' + this.match("lt"); + + + + break; + case 2 : + // xquery/StringLexer.g:73:56: 'gt' + this.match("gt"); + + + + break; + case 3 : + // xquery/StringLexer.g:73:63: 'apos' + this.match("apos"); + + + + break; + case 4 : + // xquery/StringLexer.g:73:72: 'quot' + this.match("quot"); + + + + break; + case 5 : + // xquery/StringLexer.g:73:81: 'amp' + this.match("amp"); + + + + break; + + } + + this.match(';'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_PredefinedEntityRef", + + // $ANTLR start L_CharRef + mL_CharRef: function() { + try { + var _type = this.L_CharRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:78:2: ({...}? => '&#' ( '0' .. '9' )+ ';' | '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' ) + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( (LA4_0=='&') ) { + var LA4_1 = this.input.LA(2); + + if ( (LA4_1=='#') ) { + var LA4_2 = this.input.LA(3); + + if ( (LA4_2=='x') ) { + alt4=2; + } + else if ( ((LA4_2>='0' && LA4_2<='9')) && (( this.inQuotStr | this.inAposStr ))) { + alt4=1; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 2, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 1, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 0, this.input); + + throw nvae; + } + switch (alt4) { + case 1 : + // xquery/StringLexer.g:78:4: {...}? => '&#' ( '0' .. '9' )+ ';' + if ( !(( this.inQuotStr | this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CharRef", " this.inQuotStr | this.inAposStr "); + } + this.match("&#"); + + // xquery/StringLexer.g:78:49: ( '0' .. '9' )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/StringLexer.g:78:49: '0' .. '9' + this.matchRange('0','9'); + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + this.match(';'); + + + break; + case 2 : + // xquery/StringLexer.g:78:65: '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' + this.match("&#x"); + + // xquery/StringLexer.g:78:71: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='F')||(LA3_0>='a' && LA3_0<='f')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + this.match(';'); + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CharRef", + + // $ANTLR start L_QuotStringLiteralChar + mL_QuotStringLiteralChar: function() { + try { + var _type = this.L_QuotStringLiteralChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:82:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:82:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_QuotStringLiteralChar", " this.inQuotStr "); + } + // xquery/StringLexer.g:83:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt5=0; + loop5: + do { + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='\t' && LA5_0<='\n')||LA5_0=='\r'||(LA5_0>=' ' && LA5_0<='!')||(LA5_0>='#' && LA5_0<='%')||(LA5_0>='\'' && LA5_0<='\uD7FF')||(LA5_0>='\uE000' && LA5_0<='\uFFFD')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt5 >= 1 ) { + break loop5; + } + var eee = new org.antlr.runtime.EarlyExitException(5, this.input); + throw eee; + } + cnt5++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_QuotStringLiteralChar", + + // $ANTLR start L_AposStringLiteralChar + mL_AposStringLiteralChar: function() { + try { + var _type = this.L_AposStringLiteralChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:88:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:88:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AposStringLiteralChar", " this.inAposStr "); + } + // xquery/StringLexer.g:89:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt6=0; + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( ((LA6_0>='\t' && LA6_0<='\n')||LA6_0=='\r'||(LA6_0>=' ' && LA6_0<='%')||(LA6_0>='(' && LA6_0<='\uD7FF')||(LA6_0>='\uE000' && LA6_0<='\uFFFD')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt6 >= 1 ) { + break loop6; + } + var eee = new org.antlr.runtime.EarlyExitException(6, this.input); + throw eee; + } + cnt6++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AposStringLiteralChar", + + // $ANTLR start L_AnyChar + mL_AnyChar: function() { + try { + var _type = this.L_AnyChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:98:5: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:98:9: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( !this.inQuotStr && !this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AnyChar", " !this.inQuotStr && !this.inAposStr "); + } + // xquery/StringLexer.g:99:9: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt7=0; + loop7: + do { + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||(LA7_0>=' ' && LA7_0<='%')||(LA7_0>='\'' && LA7_0<=';')||(LA7_0>='=' && LA7_0<='z')||LA7_0=='|'||(LA7_0>='~' && LA7_0<='\uD7FF')||(LA7_0>='\uE000' && LA7_0<='\uFFFD')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt7 >= 1 ) { + break loop7; + } + var eee = new org.antlr.runtime.EarlyExitException(7, this.input); + throw eee; + } + cnt7++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AnyChar", + + mTokens: function() { + // xquery/StringLexer.g:1:8: ( QUOT | APOS | ESCAPE_QUOT | ESCAPE_APOS | L_PredefinedEntityRef | L_CharRef | L_QuotStringLiteralChar | L_AposStringLiteralChar | L_AnyChar ) + var alt8=9; + alt8 = this.dfa8.predict(this.input); + switch (alt8) { + case 1 : + // xquery/StringLexer.g:1:10: QUOT + this.mQUOT(); + + + break; + case 2 : + // xquery/StringLexer.g:1:15: APOS + this.mAPOS(); + + + break; + case 3 : + // xquery/StringLexer.g:1:20: ESCAPE_QUOT + this.mESCAPE_QUOT(); + + + break; + case 4 : + // xquery/StringLexer.g:1:32: ESCAPE_APOS + this.mESCAPE_APOS(); + + + break; + case 5 : + // xquery/StringLexer.g:1:44: L_PredefinedEntityRef + this.mL_PredefinedEntityRef(); + + + break; + case 6 : + // xquery/StringLexer.g:1:66: L_CharRef + this.mL_CharRef(); + + + break; + case 7 : + // xquery/StringLexer.g:1:76: L_QuotStringLiteralChar + this.mL_QuotStringLiteralChar(); + + + break; + case 8 : + // xquery/StringLexer.g:1:100: L_AposStringLiteralChar + this.mL_AposStringLiteralChar(); + + + break; + case 9 : + // xquery/StringLexer.g:1:124: L_AnyChar + this.mL_AnyChar(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(StringLexer, { + DFA8_eotS: + "\u0001\uffff\u0001\u0007\u0001\u000c\u0001\uffff\u0001\u0011\u0001"+ + "\u0012\u0001\u0013\u0001\uffff\u0001\u0015\u0002\uffff\u0001\u0016\u0001"+ + "\uffff\u0001\u0018\u000d\uffff", + DFA8_eofS: + "\u001b\uffff", + DFA8_minS: + "\u0003\u0009\u0001\u0023\u0003\u0009\u0001\u0000\u0001\u0009\u0002"+ + "\uffff\u0001\u0009\u0001\u0000\u0001\u0009\u0003\uffff\u0003\u0000\u0001"+ + "\uffff\u0002\u0000\u0001\uffff\u0001\u0000\u0002\uffff", + DFA8_maxS: + "\u0003\ufffd\u0001\u0071\u0003\ufffd\u0001\u0000\u0001\ufffd\u0002"+ + "\uffff\u0001\ufffd\u0001\u0000\u0001\ufffd\u0003\uffff\u0003\u0000\u0001"+ + "\uffff\u0002\u0000\u0001\uffff\u0001\u0000\u0002\uffff", + DFA8_acceptS: + "\u0009\uffff\u0001\u0008\u0001\u0009\u0003\uffff\u0001\u0007\u0001"+ + "\u0006\u0001\u0005\u0003\uffff\u0001\u0001\u0002\uffff\u0001\u0002\u0001"+ + "\uffff\u0001\u0003\u0001\u0004", + DFA8_specialS: + "\u0001\u0007\u0001\u000e\u0001\u0000\u0001\u0004\u0001\u0011\u0001"+ + "\u000a\u0001\u0005\u0001\u0009\u0001\u0010\u0002\uffff\u0001\u000f\u0001"+ + "\u0008\u0001\u0006\u0003\uffff\u0001\u000d\u0001\u0003\u0001\u000b\u0001"+ + "\uffff\u0001\u0001\u0001\u000c\u0001\uffff\u0001\u0002\u0002\uffff}>", + DFA8_transitionS: [ + "\u0002\u0004\u0002\uffff\u0001\u0004\u0012\uffff\u0002\u0004"+ + "\u0001\u0001\u0003\u0004\u0001\u0003\u0001\u0002\u0014\u0004"+ + "\u0001\u0005\u003e\u0004\u0001\u0005\u0001\u0004\u0001\u0005"+ + "\ud782\u0004\u0800\uffff\u1ffe\u0004", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0002\u0008"+ + "\u0001\u0006\u0003\u0008\u0001\uffff\u0001\u000a\u0014\u0008"+ + "\u0001\u0009\u003e\u0008\u0001\u0009\u0001\u0008\u0001\u0009"+ + "\ud782\u0008\u0800\uffff\u1ffe\u0008", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0001\u000b\u0014\u000d"+ + "\u0001\u000e\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e"+ + "\ud782\u000d\u0800\uffff\u1ffe\u000d", + "\u0001\u000f\u003d\uffff\u0001\u0010\u0005\uffff\u0001\u0010"+ + "\u0004\uffff\u0001\u0010\u0004\uffff\u0001\u0010", + "\u0002\u0004\u0002\uffff\u0001\u0004\u0012\uffff\u0002\u0004"+ + "\u0001\u0008\u0003\u0004\u0001\uffff\u0001\u000d\u0014\u0004"+ + "\u0001\u0005\u003e\u0004\u0001\u0005\u0001\u0004\u0001\u0005"+ + "\ud782\u0004\u0800\uffff\u1ffe\u0004", + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0002\u0005"+ + "\u0001\u0009\u0003\u0005\u0001\uffff\u0001\u000e\ud7d8\u0005"+ + "\u0800\uffff\u1ffe\u0005", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0006\u0008"+ + "\u0001\uffff\u0001\u000a\u0014\u0008\u0001\u0009\u003e\u0008"+ + "\u0001\u0009\u0001\u0008\u0001\u0009\ud782\u0008\u0800\uffff"+ + "\u1ffe\u0008", + "\u0001\uffff", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0006\u0008"+ + "\u0001\uffff\u0001\u000a\u0014\u0008\u0001\u0009\u003e\u0008"+ + "\u0001\u0009\u0001\u0008\u0001\u0009\ud782\u0008\u0800\uffff"+ + "\u1ffe\u0008", + "", + "", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0015\u000d\u0001\u000e"+ + "\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e\ud782\u000d"+ + "\u0800\uffff\u1ffe\u000d", + "\u0001\uffff", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0015\u000d\u0001\u000e"+ + "\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e\ud782\u000d"+ + "\u0800\uffff\u1ffe\u000d", + "", + "", + "", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(StringLexer, { + DFA8_eot: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_eotS), + DFA8_eof: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_eofS), + DFA8_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(StringLexer.DFA8_minS), + DFA8_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(StringLexer.DFA8_maxS), + DFA8_accept: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_acceptS), + DFA8_special: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_specialS), + DFA8_transition: (function() { + var a = [], + i, + numStates = StringLexer.DFA8_transitionS.length; + for (i=0; i='\t' && LA8_2<='\n')||LA8_2=='\r'||(LA8_2>=' ' && LA8_2<='!')||(LA8_2>='#' && LA8_2<='%')||(LA8_2>='(' && LA8_2<=';')||(LA8_2>='=' && LA8_2<='z')||LA8_2=='|'||(LA8_2>='~' && LA8_2<='\uD7FF')||(LA8_2>='\uE000' && LA8_2<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_2=='<'||LA8_2=='{'||LA8_2=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_2=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 12; + + + input.seek(index8_2); + if ( s>=0 ) return s; + break; + case 1 : + var LA8_21 = input.LA(1); + + + var index8_21 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_21); + if ( s>=0 ) return s; + break; + case 2 : + var LA8_24 = input.LA(1); + + + var index8_24 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_24); + if ( s>=0 ) return s; + break; + case 3 : + var LA8_18 = input.LA(1); + + + var index8_18 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + + input.seek(index8_18); + if ( s>=0 ) return s; + break; + case 4 : + var LA8_3 = input.LA(1); + + + var index8_3 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_3=='#') ) {s = 15;} + + else if ( (LA8_3=='a'||LA8_3=='g'||LA8_3=='l'||LA8_3=='q') && (( this.inQuotStr | this.inAposStr ))) {s = 16;} + + + input.seek(index8_3); + if ( s>=0 ) return s; + break; + case 5 : + var LA8_6 = input.LA(1); + + + var index8_6 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_6>='\t' && LA8_6<='\n')||LA8_6=='\r'||(LA8_6>=' ' && LA8_6<='%')||(LA8_6>='(' && LA8_6<=';')||(LA8_6>='=' && LA8_6<='z')||LA8_6=='|'||(LA8_6>='~' && LA8_6<='\uD7FF')||(LA8_6>='\uE000' && LA8_6<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_6=='<'||LA8_6=='{'||LA8_6=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_6=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 19; + + + input.seek(index8_6); + if ( s>=0 ) return s; + break; + case 6 : + var LA8_13 = input.LA(1); + + + var index8_13 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_13>='\t' && LA8_13<='\n')||LA8_13=='\r'||(LA8_13>=' ' && LA8_13<='!')||(LA8_13>='#' && LA8_13<='%')||(LA8_13>='\'' && LA8_13<=';')||(LA8_13>='=' && LA8_13<='z')||LA8_13=='|'||(LA8_13>='~' && LA8_13<='\uD7FF')||(LA8_13>='\uE000' && LA8_13<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_13=='<'||LA8_13=='{'||LA8_13=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_13=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 24; + + + input.seek(index8_13); + if ( s>=0 ) return s; + break; + case 7 : + var LA8_0 = input.LA(1); + + + var index8_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_0=='\"') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 1;} + + else if ( (LA8_0=='\'') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 2;} + + else if ( (LA8_0=='&') ) {s = 3;} + + else if ( ((LA8_0>='\t' && LA8_0<='\n')||LA8_0=='\r'||(LA8_0>=' ' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='%')||(LA8_0>='(' && LA8_0<=';')||(LA8_0>='=' && LA8_0<='z')||LA8_0=='|'||(LA8_0>='~' && LA8_0<='\uD7FF')||(LA8_0>='\uE000' && LA8_0<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 4;} + + else if ( (LA8_0=='<'||LA8_0=='{'||LA8_0=='}') && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + + input.seek(index8_0); + if ( s>=0 ) return s; + break; + case 8 : + var LA8_12 = input.LA(1); + + + var index8_12 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 23;} + + else if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_12); + if ( s>=0 ) return s; + break; + case 9 : + var LA8_7 = input.LA(1); + + + var index8_7 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 20;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_7); + if ( s>=0 ) return s; + break; + case 10 : + var LA8_5 = input.LA(1); + + + var index8_5 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_5>='\t' && LA8_5<='\n')||LA8_5=='\r'||(LA8_5>=' ' && LA8_5<='!')||(LA8_5>='#' && LA8_5<='%')||(LA8_5>='(' && LA8_5<='\uD7FF')||(LA8_5>='\uE000' && LA8_5<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + else if ( (LA8_5=='\'') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_5=='\"') && (( this.inAposStr ))) {s = 9;} + + else s = 18; + + + input.seek(index8_5); + if ( s>=0 ) return s; + break; + case 11 : + var LA8_19 = input.LA(1); + + + var index8_19 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 25;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_19); + if ( s>=0 ) return s; + break; + case 12 : + var LA8_22 = input.LA(1); + + + var index8_22 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 26;} + + else if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_22); + if ( s>=0 ) return s; + break; + case 13 : + var LA8_17 = input.LA(1); + + + var index8_17 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_17); + if ( s>=0 ) return s; + break; + case 14 : + var LA8_1 = input.LA(1); + + + var index8_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_1=='\"') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 6;} + + else if ( ((LA8_1>='\t' && LA8_1<='\n')||LA8_1=='\r'||(LA8_1>=' ' && LA8_1<='!')||(LA8_1>='#' && LA8_1<='%')||(LA8_1>='(' && LA8_1<=';')||(LA8_1>='=' && LA8_1<='z')||LA8_1=='|'||(LA8_1>='~' && LA8_1<='\uD7FF')||(LA8_1>='\uE000' && LA8_1<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_1=='<'||LA8_1=='{'||LA8_1=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_1=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 7; + + + input.seek(index8_1); + if ( s>=0 ) return s; + break; + case 15 : + var LA8_11 = input.LA(1); + + + var index8_11 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_11>='\t' && LA8_11<='\n')||LA8_11=='\r'||(LA8_11>=' ' && LA8_11<='!')||(LA8_11>='#' && LA8_11<='%')||(LA8_11>='\'' && LA8_11<=';')||(LA8_11>='=' && LA8_11<='z')||LA8_11=='|'||(LA8_11>='~' && LA8_11<='\uD7FF')||(LA8_11>='\uE000' && LA8_11<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_11=='<'||LA8_11=='{'||LA8_11=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_11=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 22; + + + input.seek(index8_11); + if ( s>=0 ) return s; + break; + case 16 : + var LA8_8 = input.LA(1); + + + var index8_8 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_8>='\t' && LA8_8<='\n')||LA8_8=='\r'||(LA8_8>=' ' && LA8_8<='%')||(LA8_8>='(' && LA8_8<=';')||(LA8_8>='=' && LA8_8<='z')||LA8_8=='|'||(LA8_8>='~' && LA8_8<='\uD7FF')||(LA8_8>='\uE000' && LA8_8<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_8=='<'||LA8_8=='{'||LA8_8=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_8=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 21; + + + input.seek(index8_8); + if ( s>=0 ) return s; + break; + case 17 : + var LA8_4 = input.LA(1); + + + var index8_4 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_4>='\t' && LA8_4<='\n')||LA8_4=='\r'||(LA8_4>=' ' && LA8_4<='!')||(LA8_4>='#' && LA8_4<='%')||(LA8_4>='(' && LA8_4<=';')||(LA8_4>='=' && LA8_4<='z')||LA8_4=='|'||(LA8_4>='~' && LA8_4<='\uD7FF')||(LA8_4>='\uE000' && LA8_4<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 4;} + + else if ( (LA8_4=='\'') && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_4=='\"') && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_4=='<'||LA8_4=='{'||LA8_4=='}') && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + else s = 17; + + + input.seek(index8_4); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 8, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.StringLexer = StringLexer; +});define('ace/mode/xquery/XMLLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQDTLexer'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XMLLexer.g 2012-04-23 09:27:01 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var XMLLexer = function(input, state) { +// alternate constructor @todo +// public XMLLexer(CharStream input) +// public XMLLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inElem = true; + this.inAposAttr = false; + this.inQuotAttr = false; + + this.isInElement = function() + { + return this.inElem; + } + + this.isInAposAttribute = function() + { + return this.inAposAttr; + } + + this.isInQuotAttr = function() + { + return this.inQuotAttr; + } + + this.addToStack = function(stack) { + if (!this.inAposAttr && !this.inQuotAttr) + this.inElem = false; + stack.push(this); + } + + + // dummy list for warning elimination + //List> dummy = new ArrayList>(); + + // when we start, the '<' has already been eaten by the other lexer + //boolean inElem = true; + //boolean inAposAttr = false; + //boolean inQuotAttr = false; + // + //public boolean isInElement() + //{ + // return inElem; + //} + // + //public boolean isInAposAttribute() + //{ + // return inAposAttr; + //} + // + //public boolean isInQuotAttr() + //{ + // return inQuotAttr; + //} + // + //@Override + //public void addToStack(List stack) { + // if (!inAposAttr && !inQuotAttr) + // inElem = false; + // stack.add(this); + //} + // + //private boolean log() { + // System.out.println("inApos:\t" + inAposAttr); + // System.out.println("inQuot:\t" + inQuotAttr); + // System.out.println("inElem:\t" + inElem); + // System.out.println("---------------------"); + // return false; + //} + + + }).call(this); + + this.dfa16 = new XMLLexer.DFA16(this); + XMLLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(XMLLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + NCNameUnprotected: 283, + XMLDigit: 284 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(XMLLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + NCNameUnprotected : 283, + XMLDigit : 284, + getGrammarFileName: function() { return "xquery/XMLLexer.g"; } +}); +org.antlr.lang.augmentObject(XMLLexer.prototype, { + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:132:6: ({...}? => '\"' ) + // xquery/XMLLexer.g:132:8: {...}? => '\"' + if ( !(( this.inElem || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "QUOT", " this.inElem || this.inQuotAttr "); + } + this.match('\"'); + if (!this.inAposAttr) this.inQuotAttr = (!this.inQuotAttr); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:133:6: ({...}? => '\\'' ) + // xquery/XMLLexer.g:133:8: {...}? => '\\'' + if ( !(( this.inElem || this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "APOS", " this.inElem || this.inAposAttr "); + } + this.match('\''); + if (!this.inQuotAttr) this.inAposAttr = !this.inAposAttr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start L_QuotAttrContentChar + mL_QuotAttrContentChar: function() { + try { + var _type = this.L_QuotAttrContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:136:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:136:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_QuotAttrContentChar", " this.inQuotAttr "); + } + // xquery/XMLLexer.g:137:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt1=0; + loop1: + do { + var alt1=2; + var LA1_0 = this.input.LA(1); + + if ( ((LA1_0>='\t' && LA1_0<='\n')||LA1_0=='\r'||(LA1_0>=' ' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='%')||(LA1_0>='(' && LA1_0<=';')||(LA1_0>='=' && LA1_0<='z')||LA1_0=='|'||(LA1_0>='~' && LA1_0<='\uD7FF')||(LA1_0>='\uE000' && LA1_0<='\uFFFD')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt1 >= 1 ) { + break loop1; + } + var eee = new org.antlr.runtime.EarlyExitException(1, this.input); + throw eee; + } + cnt1++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_QuotAttrContentChar", + + // $ANTLR start L_AposAttrContentChar + mL_AposAttrContentChar: function() { + try { + var _type = this.L_AposAttrContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:143:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:143:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AposAttrContentChar", " this.inAposAttr "); + } + // xquery/XMLLexer.g:144:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='\t' && LA2_0<='\n')||LA2_0=='\r'||(LA2_0>=' ' && LA2_0<='!')||(LA2_0>='#' && LA2_0<='%')||(LA2_0>='(' && LA2_0<=';')||(LA2_0>='=' && LA2_0<='z')||LA2_0=='|'||(LA2_0>='~' && LA2_0<='\uD7FF')||(LA2_0>='\uE000' && LA2_0<='\uFFFD')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AposAttrContentChar", + + // $ANTLR start L_ElementContentChar + mL_ElementContentChar: function() { + try { + var _type = this.L_ElementContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:151:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:151:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_ElementContentChar", " !this.inElem "); + } + // xquery/XMLLexer.g:152:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||(LA3_0>=' ' && LA3_0<='%')||(LA3_0>='\'' && LA3_0<=';')||(LA3_0>='=' && LA3_0<='z')||LA3_0=='|'||(LA3_0>='~' && LA3_0<='\uD7FF')||(LA3_0>='\uE000' && LA3_0<='\uFFFD')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_ElementContentChar", + + // $ANTLR start GREATER + mGREATER: function() { + try { + var _type = this.GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:158:2: ({...}? => '>' ) + // xquery/XMLLexer.g:158:4: {...}? => '>' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "GREATER", " this.inElem "); + } + this.match('>'); + this.inElem = false; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER", + + // $ANTLR start EMPTY_CLOSE_TAG + mEMPTY_CLOSE_TAG: function() { + try { + var _type = this.EMPTY_CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:162:2: ({...}? => '/>' ) + // xquery/XMLLexer.g:162:4: {...}? => '/>' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "EMPTY_CLOSE_TAG", " this.inElem "); + } + this.match("/>"); + + this.inElem = false; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_CLOSE_TAG", + + // $ANTLR start S + mS: function() { + try { + var _type = this.S; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:166:2: ({...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // xquery/XMLLexer.g:166:4: {...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "S", " this.inElem "); + } + // xquery/XMLLexer.g:166:24: ( ' ' | '\\t' | '\\r' | '\\n' )+ + var cnt4=0; + loop4: + do { + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( ((LA4_0>='\t' && LA4_0<='\n')||LA4_0=='\r'||LA4_0==' ') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt4 >= 1 ) { + break loop4; + } + var eee = new org.antlr.runtime.EarlyExitException(4, this.input); + throw eee; + } + cnt4++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "S", + + // $ANTLR start L_NCName + mL_NCName: function() { + try { + var _type = this.L_NCName; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:172:2: ({...}? => NCNameUnprotected ) + // xquery/XMLLexer.g:172:4: {...}? => NCNameUnprotected + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_NCName", " this.inElem "); + } + this.mNCNameUnprotected(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_NCName", + + // $ANTLR start NCNameUnprotected + mNCNameUnprotected: function() { + try { + // xquery/XMLLexer.g:176:2: ( NCNameStartChar ( NCNameChar )* ) + // xquery/XMLLexer.g:176:4: NCNameStartChar ( NCNameChar )* + this.mNCNameStartChar(); + // xquery/XMLLexer.g:176:20: ( NCNameChar )* + loop5: + do { + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='-' && LA5_0<='.')||(LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='Z')||LA5_0=='_'||(LA5_0>='a' && LA5_0<='z')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // xquery/XMLLexer.g:176:20: NCNameChar + this.mNCNameChar(); + + + break; + + default : + break loop5; + } + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "NCNameUnprotected", + + // $ANTLR start NCNameStartChar + mNCNameStartChar: function() { + try { + // xquery/XMLLexer.g:180:2: ( Letter | '_' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameStartChar", + + // $ANTLR start NCNameChar + mNCNameChar: function() { + try { + // xquery/XMLLexer.g:184:2: ( Letter | XMLDigit | '.' | '-' | '_' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='-' && this.input.LA(1)<='.')||(this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameChar", + + // $ANTLR start Letter + mLetter: function() { + try { + // xquery/XMLLexer.g:188:2: ( 'a' .. 'z' | 'A' .. 'Z' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "Letter", + + // $ANTLR start XMLDigit + mXMLDigit: function() { + try { + // xquery/XMLLexer.g:192:2: ( '0' .. '9' ) + // xquery/XMLLexer.g:192:4: '0' .. '9' + this.matchRange('0','9'); + + + + } + finally { + } + }, + // $ANTLR end "XMLDigit", + + // $ANTLR start EQUAL + mEQUAL: function() { + try { + var _type = this.EQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:207:7: ({...}? => '=' ) + // xquery/XMLLexer.g:207:9: {...}? => '=' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "EQUAL", " this.inElem "); + } + this.match('='); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQUAL", + + // $ANTLR start ESCAPE_APOS + mESCAPE_APOS: function() { + try { + var _type = this.ESCAPE_APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:208:13: ({...}? => '\\'\\'' ) + // xquery/XMLLexer.g:208:15: {...}? => '\\'\\'' + if ( !(( this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_APOS", " this.inAposAttr "); + } + this.match("''"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_APOS", + + // $ANTLR start ESCAPE_QUOT + mESCAPE_QUOT: function() { + try { + var _type = this.ESCAPE_QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:209:13: ({...}? => '\"\"' ) + // xquery/XMLLexer.g:209:15: {...}? => '\"\"' + if ( !(( this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_QUOT", " this.inQuotAttr "); + } + this.match("\"\""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_QUOT", + + // $ANTLR start ESCAPE_LBRACKET + mESCAPE_LBRACKET: function() { + try { + var _type = this.ESCAPE_LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:212:2: ({...}? => '{{' ) + // xquery/XMLLexer.g:212:4: {...}? => '{{' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_LBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("{{"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_LBRACKET", + + // $ANTLR start ESCAPE_RBRACKET + mESCAPE_RBRACKET: function() { + try { + var _type = this.ESCAPE_RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:216:2: ({...}? => '}}' ) + // xquery/XMLLexer.g:216:4: {...}? => '}}' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_RBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("}}"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_RBRACKET", + + // $ANTLR start LBRACKET + mLBRACKET: function() { + try { + var _type = this.LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:219:10: ({...}? => '{' ) + // xquery/XMLLexer.g:219:12: {...}? => '{' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "LBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('{'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LBRACKET", + + // $ANTLR start RBRACKET + mRBRACKET: function() { + try { + var _type = this.RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:220:10: ({...}? => '}' ) + // xquery/XMLLexer.g:220:12: {...}? => '}' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "RBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('}'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RBRACKET", + + // $ANTLR start SMALLER + mSMALLER: function() { + try { + var _type = this.SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:221:9: ( '<' ) + // xquery/XMLLexer.g:221:11: '<' + this.match('<'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER", + + // $ANTLR start CLOSE_TAG + mCLOSE_TAG: function() { + try { + var _type = this.CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:222:11: ({...}? => ' '' ) + // xquery/XMLLexer.g:225:14: ']]>' + this.match("]]>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CDATA_END", + + // $ANTLR start L_CDataSection + mL_CDataSection: function() { + try { + var _type = this.L_CDataSection; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:229:3: ({...}? => CDATA_START ( options {greedy=false; } : ( . )* ) CDATA_END ) + // xquery/XMLLexer.g:229:5: {...}? => CDATA_START ( options {greedy=false; } : ( . )* ) CDATA_END + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CDataSection", " !this.inElem "); + } + this.mCDATA_START(); + // xquery/XMLLexer.g:229:38: ( options {greedy=false; } : ( . )* ) + // xquery/XMLLexer.g:229:65: ( . )* + // xquery/XMLLexer.g:229:65: ( . )* + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( (LA6_0==']') ) { + var LA6_1 = this.input.LA(2); + + if ( (LA6_1==']') ) { + var LA6_3 = this.input.LA(3); + + if ( (LA6_3=='>') ) { + alt6=2; + } + else if ( ((LA6_3>='\u0000' && LA6_3<='=')||(LA6_3>='?' && LA6_3<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_1>='\u0000' && LA6_1<='\\')||(LA6_1>='^' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<='\\')||(LA6_0>='^' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/XMLLexer.g:229:65: . + this.matchAny(); + + + break; + + default : + break loop6; + } + } while (true); + + + + + this.mCDATA_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CDataSection", + + // $ANTLR start L_PredefinedEntityRef + mL_PredefinedEntityRef: function() { + try { + var _type = this.L_PredefinedEntityRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:237:2: ({...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' ) + // xquery/XMLLexer.g:237:4: {...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_PredefinedEntityRef", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('&'); + // xquery/XMLLexer.g:237:67: ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) + var alt7=5; + switch ( this.input.LA(1) ) { + case 'l': + alt7=1; + break; + case 'g': + alt7=2; + break; + case 'a': + var LA7_3 = this.input.LA(2); + + if ( (LA7_3=='p') ) { + alt7=3; + } + else if ( (LA7_3=='m') ) { + alt7=5; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 7, 3, this.input); + + throw nvae; + } + break; + case 'q': + alt7=4; + break; + default: + var nvae = + new org.antlr.runtime.NoViableAltException("", 7, 0, this.input); + + throw nvae; + } + + switch (alt7) { + case 1 : + // xquery/XMLLexer.g:237:68: 'lt' + this.match("lt"); + + + + break; + case 2 : + // xquery/XMLLexer.g:237:75: 'gt' + this.match("gt"); + + + + break; + case 3 : + // xquery/XMLLexer.g:237:82: 'apos' + this.match("apos"); + + + + break; + case 4 : + // xquery/XMLLexer.g:237:91: 'quot' + this.match("quot"); + + + + break; + case 5 : + // xquery/XMLLexer.g:237:100: 'amp' + this.match("amp"); + + + + break; + + } + + this.match(';'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_PredefinedEntityRef", + + // $ANTLR start L_CharRef + mL_CharRef: function() { + try { + var _type = this.L_CharRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:242:2: ({...}? => '&#' ( '0' .. '9' )+ ';' | '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' ) + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0=='&') ) { + var LA10_1 = this.input.LA(2); + + if ( (LA10_1=='#') ) { + var LA10_2 = this.input.LA(3); + + if ( (LA10_2=='x') ) { + alt10=2; + } + else if ( ((LA10_2>='0' && LA10_2<='9')) && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) { + alt10=1; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 2, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 1, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 0, this.input); + + throw nvae; + } + switch (alt10) { + case 1 : + // xquery/XMLLexer.g:242:4: {...}? => '&#' ( '0' .. '9' )+ ';' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CharRef", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("&#"); + + // xquery/XMLLexer.g:242:68: ( '0' .. '9' )+ + var cnt8=0; + loop8: + do { + var alt8=2; + var LA8_0 = this.input.LA(1); + + if ( ((LA8_0>='0' && LA8_0<='9')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // xquery/XMLLexer.g:242:69: '0' .. '9' + this.matchRange('0','9'); + + + break; + + default : + if ( cnt8 >= 1 ) { + break loop8; + } + var eee = new org.antlr.runtime.EarlyExitException(8, this.input); + throw eee; + } + cnt8++; + } while (true); + + this.match(';'); + + + break; + case 2 : + // xquery/XMLLexer.g:242:86: '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' + this.match("&#x"); + + // xquery/XMLLexer.g:242:92: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ + var cnt9=0; + loop9: + do { + var alt9=2; + var LA9_0 = this.input.LA(1); + + if ( ((LA9_0>='0' && LA9_0<='9')||(LA9_0>='A' && LA9_0<='F')||(LA9_0>='a' && LA9_0<='f')) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt9 >= 1 ) { + break loop9; + } + var eee = new org.antlr.runtime.EarlyExitException(9, this.input); + throw eee; + } + cnt9++; + } while (true); + + this.match(';'); + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CharRef", + + // $ANTLR start L_DirCommentConstructor + mL_DirCommentConstructor: function() { + try { + var _type = this.L_DirCommentConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:246:2: ({...}? => '' ) + // xquery/XMLLexer.g:246:4: {...}? => '' + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_DirCommentConstructor", " !this.inElem "); + } + this.match(""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirCommentConstructor", + + // $ANTLR start L_DirPIConstructor + mL_DirPIConstructor: function() { + try { + var _type = this.L_DirPIConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:249:2: ({...}? => '' ) + // xquery/XMLLexer.g:249:4: {...}? => '' + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_DirPIConstructor", " !this.inElem "); + } + this.match("='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) { + alt12=1; + } + switch (alt12) { + case 1 : + // xquery/XMLLexer.g:250:8: SU + this.mSU(); + + + break; + + } + + this.mNCNameUnprotected(); + // xquery/XMLLexer.g:250:30: ( SU ( options {greedy=false; } : ( . )* ) )? + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) { + alt14=1; + } + switch (alt14) { + case 1 : + // xquery/XMLLexer.g:250:31: SU ( options {greedy=false; } : ( . )* ) + this.mSU(); + // xquery/XMLLexer.g:250:34: ( options {greedy=false; } : ( . )* ) + // xquery/XMLLexer.g:250:61: ( . )* + // xquery/XMLLexer.g:250:61: ( . )* + loop13: + do { + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0=='?') ) { + var LA13_1 = this.input.LA(2); + + if ( (LA13_1=='>') ) { + alt13=2; + } + else if ( ((LA13_1>='\u0000' && LA13_1<='=')||(LA13_1>='?' && LA13_1<='\uFFFF')) ) { + alt13=1; + } + + + } + else if ( ((LA13_0>='\u0000' && LA13_0<='>')||(LA13_0>='@' && LA13_0<='\uFFFF')) ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // xquery/XMLLexer.g:250:61: . + this.matchAny(); + + + break; + + default : + break loop13; + } + } while (true); + + + + + + + break; + + } + + this.match("?>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirPIConstructor", + + // $ANTLR start SU + mSU: function() { + try { + // xquery/XMLLexer.g:254:2: ( ( ' ' | '\\t' | '\\n' | '\\r' )+ ) + // xquery/XMLLexer.g:254:4: ( ' ' | '\\t' | '\\n' | '\\r' )+ + // xquery/XMLLexer.g:254:4: ( ' ' | '\\t' | '\\n' | '\\r' )+ + var cnt15=0; + loop15: + do { + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( ((LA15_0>='\t' && LA15_0<='\n')||LA15_0=='\r'||LA15_0==' ') ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt15 >= 1 ) { + break loop15; + } + var eee = new org.antlr.runtime.EarlyExitException(15, this.input); + throw eee; + } + cnt15++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "SU", + + // $ANTLR start COLON + mCOLON: function() { + try { + var _type = this.COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:257:7: ( ':' ) + // xquery/XMLLexer.g:257:9: ':' + this.match(':'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON", + + mTokens: function() { + // xquery/XMLLexer.g:1:8: ( QUOT | APOS | L_QuotAttrContentChar | L_AposAttrContentChar | L_ElementContentChar | GREATER | EMPTY_CLOSE_TAG | S | L_NCName | EQUAL | ESCAPE_APOS | ESCAPE_QUOT | ESCAPE_LBRACKET | ESCAPE_RBRACKET | LBRACKET | RBRACKET | SMALLER | CLOSE_TAG | CDATA_START | CDATA_END | L_CDataSection | L_PredefinedEntityRef | L_CharRef | L_DirCommentConstructor | L_DirPIConstructor | COLON ) + var alt16=26; + alt16 = this.dfa16.predict(this.input); + switch (alt16) { + case 1 : + // xquery/XMLLexer.g:1:10: QUOT + this.mQUOT(); + + + break; + case 2 : + // xquery/XMLLexer.g:1:15: APOS + this.mAPOS(); + + + break; + case 3 : + // xquery/XMLLexer.g:1:20: L_QuotAttrContentChar + this.mL_QuotAttrContentChar(); + + + break; + case 4 : + // xquery/XMLLexer.g:1:42: L_AposAttrContentChar + this.mL_AposAttrContentChar(); + + + break; + case 5 : + // xquery/XMLLexer.g:1:64: L_ElementContentChar + this.mL_ElementContentChar(); + + + break; + case 6 : + // xquery/XMLLexer.g:1:85: GREATER + this.mGREATER(); + + + break; + case 7 : + // xquery/XMLLexer.g:1:93: EMPTY_CLOSE_TAG + this.mEMPTY_CLOSE_TAG(); + + + break; + case 8 : + // xquery/XMLLexer.g:1:109: S + this.mS(); + + + break; + case 9 : + // xquery/XMLLexer.g:1:111: L_NCName + this.mL_NCName(); + + + break; + case 10 : + // xquery/XMLLexer.g:1:120: EQUAL + this.mEQUAL(); + + + break; + case 11 : + // xquery/XMLLexer.g:1:126: ESCAPE_APOS + this.mESCAPE_APOS(); + + + break; + case 12 : + // xquery/XMLLexer.g:1:138: ESCAPE_QUOT + this.mESCAPE_QUOT(); + + + break; + case 13 : + // xquery/XMLLexer.g:1:150: ESCAPE_LBRACKET + this.mESCAPE_LBRACKET(); + + + break; + case 14 : + // xquery/XMLLexer.g:1:166: ESCAPE_RBRACKET + this.mESCAPE_RBRACKET(); + + + break; + case 15 : + // xquery/XMLLexer.g:1:182: LBRACKET + this.mLBRACKET(); + + + break; + case 16 : + // xquery/XMLLexer.g:1:191: RBRACKET + this.mRBRACKET(); + + + break; + case 17 : + // xquery/XMLLexer.g:1:200: SMALLER + this.mSMALLER(); + + + break; + case 18 : + // xquery/XMLLexer.g:1:208: CLOSE_TAG + this.mCLOSE_TAG(); + + + break; + case 19 : + // xquery/XMLLexer.g:1:218: CDATA_START + this.mCDATA_START(); + + + break; + case 20 : + // xquery/XMLLexer.g:1:230: CDATA_END + this.mCDATA_END(); + + + break; + case 21 : + // xquery/XMLLexer.g:1:240: L_CDataSection + this.mL_CDataSection(); + + + break; + case 22 : + // xquery/XMLLexer.g:1:255: L_PredefinedEntityRef + this.mL_PredefinedEntityRef(); + + + break; + case 23 : + // xquery/XMLLexer.g:1:277: L_CharRef + this.mL_CharRef(); + + + break; + case 24 : + // xquery/XMLLexer.g:1:287: L_DirCommentConstructor + this.mL_DirCommentConstructor(); + + + break; + case 25 : + // xquery/XMLLexer.g:1:311: L_DirPIConstructor + this.mL_DirPIConstructor(); + + + break; + case 26 : + // xquery/XMLLexer.g:1:330: COLON + this.mCOLON(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XMLLexer, { + DFA16_eotS: + "\u0001\uffff\u0001\u0010\u0001\u0013\u0001\u0014\u0001\u0016\u0001"+ + "\u0017\u0001\u0018\u0001\u001a\u0001\u0016\u0001\u001d\u0001\u001f\u0001"+ + "\u0023\u0001\u0024\u0001\uffff\u0001\u0016\u0001\u0027\u0002\uffff\u0001"+ + "\u0029\u0002\uffff\u0001\u002e\u0003\uffff\u0001\u0018\u0001\uffff\u0001"+ + "\u0016\u0016\uffff\u0001\u0039\u000d\uffff\u0001\u0041\u0002\uffff", + DFA16_eofS: + "\u0043\uffff", + DFA16_minS: + "\u0009\u0009\u0001\u007b\u0001\u007d\u0001\u0021\u0001\u0009\u0001"+ + "\u0023\u0002\u0009\u0001\u0000\u0001\uffff\u0001\u0009\u0002\u0000\u0001"+ + "\u0009\u0003\u0000\u0001\u0009\u0001\u0000\u0001\u0009\u0005\uffff\u0001"+ + "\u002d\u0002\uffff\u0001\u0000\u0002\uffff\u0001\u0000\u0001\uffff\u0001"+ + "\u0000\u0004\uffff\u0001\u0000\u0003\uffff\u0001\u0009\u0001\u0043\u0005"+ + "\uffff\u0001\u0000\u0001\u0044\u0001\uffff\u0001\u0041\u0001\u0054\u0001"+ + "\u0041\u0001\u005b\u0001\u0000\u0002\uffff", + DFA16_maxS: + "\u0009\ufffd\u0001\u007b\u0001\u007d\u0001\u003f\u0001\ufffd\u0001"+ + "\u0071\u0002\ufffd\u0001\u0000\u0001\uffff\u0001\ufffd\u0002\u0000\u0001"+ + "\ufffd\u0003\u0000\u0001\ufffd\u0001\u0000\u0001\ufffd\u0005\uffff\u0001"+ + "\u005b\u0002\uffff\u0001\u0000\u0002\uffff\u0001\u0000\u0001\uffff\u0001"+ + "\u0000\u0004\uffff\u0001\u0000\u0003\uffff\u0001\ufffd\u0001\u0043\u0005"+ + "\uffff\u0001\u0000\u0001\u0044\u0001\uffff\u0001\u0041\u0001\u0054\u0001"+ + "\u0041\u0001\u005b\u0001\uffff\u0002\uffff", + DFA16_acceptS: + "\u0011\uffff\u0001\u0005\u000a\uffff\u0001\u000d\u0001\u000f\u0001"+ + "\u000e\u0001\u0010\u0001\u0012\u0001\uffff\u0001\u0019\u0001\u0011\u0001"+ + "\uffff\u0001\u0017\u0001\u0016\u0001\uffff\u0001\u0001\u0001\uffff\u0001"+ + "\u0002\u0001\u0003\u0001\u0004\u0001\u0006\u0001\uffff\u0001\u0008\u0001"+ + "\u0009\u0001\u000a\u0002\uffff\u0001\u0018\u0001\u001a\u0001\u000c\u0001"+ + "\u000b\u0001\u0007\u0002\uffff\u0001\u0014\u0005\uffff\u0001\u0013\u0001"+ + "\u0015", + DFA16_specialS: + "\u0001\u0000\u0001\u001f\u0001\u0022\u0001\u0004\u0001\u000d\u0001"+ + "\u001e\u0001\u0015\u0001\u0002\u0001\u000b\u0001\u0021\u0001\u0005\u0001"+ + "\u0011\u0001\u001b\u0001\u0020\u0001\u000c\u0001\u001a\u0001\u0009\u0001"+ + "\uffff\u0001\u0010\u0001\u000a\u0001\u001d\u0001\u0016\u0001\u000f\u0001"+ + "\u0018\u0001\u0019\u0001\u0003\u0001\u0017\u0001\u0008\u0005\uffff\u0001"+ + "\u0012\u0002\uffff\u0001\u000e\u0002\uffff\u0001\u0006\u0001\uffff\u0001"+ + "\u0007\u0004\uffff\u0001\u001c\u0003\uffff\u0001\u0013\u0006\uffff\u0001"+ + "\u0014\u0006\uffff\u0001\u0001\u0002\uffff}>", + DFA16_transitionS: [ + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0001\u0005"+ + "\u0001\u000e\u0001\u0001\u0003\u000e\u0001\u000d\u0001\u0002"+ + "\u0007\u000e\u0001\u0004\u000a\u000e\u0001\u000c\u0001\u000e"+ + "\u0001\u000b\u0001\u0007\u0001\u0003\u0002\u000e\u001a\u0006"+ + "\u0002\u000e\u0001\u0008\u0001\u000e\u0001\u0006\u0001\u000e"+ + "\u001a\u0006\u0001\u0009\u0001\u000e\u0001\u000a\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0002\u0011"+ + "\u0001\u000f\u0003\u0011\u0001\uffff\u0015\u0011\u0001\uffff"+ + "\u003e\u0011\u0001\uffff\u0001\u0011\u0001\uffff\ud782\u0011"+ + "\u0800\uffff\u1ffe\u0011", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0001\u0012\u0014\u0011\u0001\uffff\u003e\u0011"+ + "\u0001\uffff\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff"+ + "\u1ffe\u0011", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0001\u000e\u0001\u0015\u003c\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0001\u0005"+ + "\u0001\u000e\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011"+ + "\u0014\u000e\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e"+ + "\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0005\u000e"+ + "\u0002\u0019\u0001\u000e\u000a\u0019\u0002\u000e\u0001\uffff"+ + "\u0004\u000e\u001a\u0019\u0004\u000e\u0001\u0019\u0001\u000e"+ + "\u001a\u0019\u0001\uffff\u0001\u000e\u0001\uffff\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0020\u000e\u0001\u001b\u001d\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u001c", + "\u0001\u001e", + "\u0001\u0021\u000d\uffff\u0001\u0020\u000f\uffff\u0001\u0022", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u0025\u003d\uffff\u0001\u0026\u0005\uffff\u0001\u0026"+ + "\u0004\uffff\u0001\u0026\u0004\uffff\u0001\u0026", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0015\u0011\u0001\uffff\u003e\u0011\u0001\uffff"+ + "\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff\u1ffe\u0011", + "\u0001\uffff", + "", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0015\u0011\u0001\uffff\u003e\u0011\u0001\uffff"+ + "\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff\u1ffe\u0011", + "\u0001\uffff", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0005\u000e"+ + "\u0002\u0019\u0001\u000e\u000a\u0019\u0002\u000e\u0001\uffff"+ + "\u0004\u000e\u001a\u0019\u0004\u000e\u0001\u0019\u0001\u000e"+ + "\u001a\u0019\u0001\uffff\u0001\u000e\u0001\uffff\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0001\u000e\u0001\u0032\u003c\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "", + "", + "", + "", + "", + "\u0001\u0034\u002d\uffff\u0001\u0033", + "", + "", + "\u0001\uffff", + "", + "", + "\u0001\uffff", + "", + "\u0001\uffff", + "", + "", + "", + "", + "\u0001\uffff", + "", + "", + "", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u003a", + "", + "", + "", + "", + "", + "\u0001\uffff", + "\u0001\u003c", + "", + "\u0001\u003d", + "\u0001\u003e", + "\u0001\u003f", + "\u0001\u0040", + "\u0000\u0042", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XMLLexer, { + DFA16_eot: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_eotS), + DFA16_eof: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_eofS), + DFA16_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XMLLexer.DFA16_minS), + DFA16_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XMLLexer.DFA16_maxS), + DFA16_accept: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_acceptS), + DFA16_special: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_specialS), + DFA16_transition: (function() { + var a = [], + i, + numStates = XMLLexer.DFA16_transitionS.length; + for (i=0; i') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 3;} + + else if ( (LA16_0=='/') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 4;} + + else if ( ((LA16_0>='\t' && LA16_0<='\n')||LA16_0=='\r'||LA16_0==' ') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 5;} + + else if ( ((LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 6;} + + else if ( (LA16_0=='=') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 7;} + + else if ( (LA16_0==']') ) {s = 8;} + + else if ( (LA16_0=='{') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 9;} + + else if ( (LA16_0=='}') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 10;} + + else if ( (LA16_0=='<') ) {s = 11;} + + else if ( (LA16_0==':') ) {s = 12;} + + else if ( (LA16_0=='&') ) {s = 13;} + + else if ( (LA16_0=='!'||(LA16_0>='#' && LA16_0<='%')||(LA16_0>='(' && LA16_0<='.')||(LA16_0>='0' && LA16_0<='9')||LA16_0==';'||(LA16_0>='?' && LA16_0<='@')||(LA16_0>='[' && LA16_0<='\\')||LA16_0=='^'||LA16_0=='`'||LA16_0=='|'||(LA16_0>='~' && LA16_0<='\uD7FF')||(LA16_0>='\uE000' && LA16_0<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + + input.seek(index16_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA16_64 = input.LA(1); + + + var index16_64 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_64>='\u0000' && LA16_64<='\uFFFF')) && (( !this.inElem ))) {s = 66;} + + else s = 65; + + + input.seek(index16_64); + if ( s>=0 ) return s; + break; + case 2 : + var LA16_7 = input.LA(1); + + + var index16_7 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_7>='\t' && LA16_7<='\n')||LA16_7=='\r'||(LA16_7>=' ' && LA16_7<='!')||(LA16_7>='#' && LA16_7<='%')||(LA16_7>='(' && LA16_7<=';')||(LA16_7>='=' && LA16_7<='z')||LA16_7=='|'||(LA16_7>='~' && LA16_7<='\uD7FF')||(LA16_7>='\uE000' && LA16_7<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_7=='\"'||LA16_7=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 26; + + + input.seek(index16_7); + if ( s>=0 ) return s; + break; + case 3 : + var LA16_25 = input.LA(1); + + + var index16_25 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_25>='-' && LA16_25<='.')||(LA16_25>='0' && LA16_25<='9')||(LA16_25>='A' && LA16_25<='Z')||LA16_25=='_'||(LA16_25>='a' && LA16_25<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 25;} + + else if ( (LA16_25=='\"'||LA16_25=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( ((LA16_25>='\t' && LA16_25<='\n')||LA16_25=='\r'||(LA16_25>=' ' && LA16_25<='!')||(LA16_25>='#' && LA16_25<='%')||(LA16_25>='(' && LA16_25<=',')||LA16_25=='/'||(LA16_25>=':' && LA16_25<=';')||(LA16_25>='=' && LA16_25<='@')||(LA16_25>='[' && LA16_25<='^')||LA16_25=='`'||LA16_25=='|'||(LA16_25>='~' && LA16_25<='\uD7FF')||(LA16_25>='\uE000' && LA16_25<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 24; + + + input.seek(index16_25); + if ( s>=0 ) return s; + break; + case 4 : + var LA16_3 = input.LA(1); + + + var index16_3 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_3>='\t' && LA16_3<='\n')||LA16_3=='\r'||(LA16_3>=' ' && LA16_3<='!')||(LA16_3>='#' && LA16_3<='%')||(LA16_3>='(' && LA16_3<=';')||(LA16_3>='=' && LA16_3<='z')||LA16_3=='|'||(LA16_3>='~' && LA16_3<='\uD7FF')||(LA16_3>='\uE000' && LA16_3<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_3=='\"'||LA16_3=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 20; + + + input.seek(index16_3); + if ( s>=0 ) return s; + break; + case 5 : + var LA16_10 = input.LA(1); + + + var index16_10 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_10=='}') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 30;} + + else s = 31; + + + input.seek(index16_10); + if ( s>=0 ) return s; + break; + case 6 : + var LA16_39 = input.LA(1); + + + var index16_39 = input.index(); + input.rewind(); + s = -1; + if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inQuotAttr )) ) {s = 54;} + + + input.seek(index16_39); + if ( s>=0 ) return s; + break; + case 7 : + var LA16_41 = input.LA(1); + + + var index16_41 = input.index(); + input.rewind(); + s = -1; + if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inAposAttr )) ) {s = 55;} + + + input.seek(index16_41); + if ( s>=0 ) return s; + break; + case 8 : + var LA16_27 = input.LA(1); + + + var index16_27 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_27=='>') ) {s = 50;} + + else if ( ((LA16_27>='\t' && LA16_27<='\n')||LA16_27=='\r'||(LA16_27>=' ' && LA16_27<='!')||(LA16_27>='#' && LA16_27<='%')||(LA16_27>='(' && LA16_27<=';')||LA16_27=='='||(LA16_27>='?' && LA16_27<='z')||LA16_27=='|'||(LA16_27>='~' && LA16_27<='\uD7FF')||(LA16_27>='\uE000' && LA16_27<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_27=='\"'||LA16_27=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_27); + if ( s>=0 ) return s; + break; + case 9 : + var LA16_16 = input.LA(1); + + + var index16_16 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inElem || this.inQuotAttr )) ) {s = 40;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_16); + if ( s>=0 ) return s; + break; + case 10 : + var LA16_19 = input.LA(1); + + + var index16_19 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inElem || this.inAposAttr )) ) {s = 42;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_19); + if ( s>=0 ) return s; + break; + case 11 : + var LA16_8 = input.LA(1); + + + var index16_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_8==']') ) {s = 27;} + + else if ( ((LA16_8>='\t' && LA16_8<='\n')||LA16_8=='\r'||(LA16_8>=' ' && LA16_8<='!')||(LA16_8>='#' && LA16_8<='%')||(LA16_8>='(' && LA16_8<=';')||(LA16_8>='=' && LA16_8<='\\')||(LA16_8>='^' && LA16_8<='z')||LA16_8=='|'||(LA16_8>='~' && LA16_8<='\uD7FF')||(LA16_8>='\uE000' && LA16_8<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_8=='\"'||LA16_8=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_8); + if ( s>=0 ) return s; + break; + case 12 : + var LA16_14 = input.LA(1); + + + var index16_14 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_14>='\t' && LA16_14<='\n')||LA16_14=='\r'||(LA16_14>=' ' && LA16_14<='!')||(LA16_14>='#' && LA16_14<='%')||(LA16_14>='(' && LA16_14<=';')||(LA16_14>='=' && LA16_14<='z')||LA16_14=='|'||(LA16_14>='~' && LA16_14<='\uD7FF')||(LA16_14>='\uE000' && LA16_14<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_14=='\"'||LA16_14=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_14); + if ( s>=0 ) return s; + break; + case 13 : + var LA16_4 = input.LA(1); + + + var index16_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_4=='>') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 21;} + + else if ( ((LA16_4>='\t' && LA16_4<='\n')||LA16_4=='\r'||(LA16_4>=' ' && LA16_4<='!')||(LA16_4>='#' && LA16_4<='%')||(LA16_4>='(' && LA16_4<=';')||LA16_4=='='||(LA16_4>='?' && LA16_4<='z')||LA16_4=='|'||(LA16_4>='~' && LA16_4<='\uD7FF')||(LA16_4>='\uE000' && LA16_4<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_4=='\"'||LA16_4=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_4); + if ( s>=0 ) return s; + break; + case 14 : + var LA16_36 = input.LA(1); + + + var index16_36 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (true) ) {s = 53;} + + + input.seek(index16_36); + if ( s>=0 ) return s; + break; + case 15 : + var LA16_22 = input.LA(1); + + + var index16_22 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_22); + if ( s>=0 ) return s; + break; + case 16 : + var LA16_18 = input.LA(1); + + + var index16_18 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_18>='\t' && LA16_18<='\n')||LA16_18=='\r'||(LA16_18>=' ' && LA16_18<='%')||(LA16_18>='\'' && LA16_18<=';')||(LA16_18>='=' && LA16_18<='z')||LA16_18=='|'||(LA16_18>='~' && LA16_18<='\uD7FF')||(LA16_18>='\uE000' && LA16_18<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 41; + + + input.seek(index16_18); + if ( s>=0 ) return s; + break; + case 17 : + var LA16_11 = input.LA(1); + + + var index16_11 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_11=='/') && (( !this.inElem ))) {s = 32;} + + else if ( (LA16_11=='!') ) {s = 33;} + + else if ( (LA16_11=='?') && (( !this.inElem ))) {s = 34;} + + else s = 35; + + + input.seek(index16_11); + if ( s>=0 ) return s; + break; + case 18 : + var LA16_33 = input.LA(1); + + + var index16_33 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_33=='[') ) {s = 51;} + + else if ( (LA16_33=='-') && (( !this.inElem ))) {s = 52;} + + + input.seek(index16_33); + if ( s>=0 ) return s; + break; + case 19 : + var LA16_50 = input.LA(1); + + + var index16_50 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_50>='\t' && LA16_50<='\n')||LA16_50=='\r'||(LA16_50>=' ' && LA16_50<='!')||(LA16_50>='#' && LA16_50<='%')||(LA16_50>='(' && LA16_50<=';')||(LA16_50>='=' && LA16_50<='z')||LA16_50=='|'||(LA16_50>='~' && LA16_50<='\uD7FF')||(LA16_50>='\uE000' && LA16_50<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_50=='\"'||LA16_50=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 57; + + + input.seek(index16_50); + if ( s>=0 ) return s; + break; + case 20 : + var LA16_57 = input.LA(1); + + + var index16_57 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (true) ) {s = 59;} + + + input.seek(index16_57); + if ( s>=0 ) return s; + break; + case 21 : + var LA16_6 = input.LA(1); + + + var index16_6 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_6>='-' && LA16_6<='.')||(LA16_6>='0' && LA16_6<='9')||(LA16_6>='A' && LA16_6<='Z')||LA16_6=='_'||(LA16_6>='a' && LA16_6<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 25;} + + else if ( (LA16_6=='\"'||LA16_6=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( ((LA16_6>='\t' && LA16_6<='\n')||LA16_6=='\r'||(LA16_6>=' ' && LA16_6<='!')||(LA16_6>='#' && LA16_6<='%')||(LA16_6>='(' && LA16_6<=',')||LA16_6=='/'||(LA16_6>=':' && LA16_6<=';')||(LA16_6>='=' && LA16_6<='@')||(LA16_6>='[' && LA16_6<='^')||LA16_6=='`'||LA16_6=='|'||(LA16_6>='~' && LA16_6<='\uD7FF')||(LA16_6>='\uE000' && LA16_6<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 24; + + + input.seek(index16_6); + if ( s>=0 ) return s; + break; + case 22 : + var LA16_21 = input.LA(1); + + + var index16_21 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_21>='\t' && LA16_21<='\n')||LA16_21=='\r'||(LA16_21>=' ' && LA16_21<='!')||(LA16_21>='#' && LA16_21<='%')||(LA16_21>='(' && LA16_21<=';')||(LA16_21>='=' && LA16_21<='z')||LA16_21=='|'||(LA16_21>='~' && LA16_21<='\uD7FF')||(LA16_21>='\uE000' && LA16_21<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_21=='\"'||LA16_21=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 46; + + + input.seek(index16_21); + if ( s>=0 ) return s; + break; + case 23 : + var LA16_26 = input.LA(1); + + + var index16_26 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 49;} + + + input.seek(index16_26); + if ( s>=0 ) return s; + break; + case 24 : + var LA16_23 = input.LA(1); + + + var index16_23 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 47;} + + + input.seek(index16_23); + if ( s>=0 ) return s; + break; + case 25 : + var LA16_24 = input.LA(1); + + + var index16_24 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 48;} + + + input.seek(index16_24); + if ( s>=0 ) return s; + break; + case 26 : + var LA16_15 = input.LA(1); + + + var index16_15 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_15>='\t' && LA16_15<='\n')||LA16_15=='\r'||(LA16_15>=' ' && LA16_15<='%')||(LA16_15>='\'' && LA16_15<=';')||(LA16_15>='=' && LA16_15<='z')||LA16_15=='|'||(LA16_15>='~' && LA16_15<='\uD7FF')||(LA16_15>='\uE000' && LA16_15<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 39; + + + input.seek(index16_15); + if ( s>=0 ) return s; + break; + case 27 : + var LA16_12 = input.LA(1); + + + var index16_12 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_12>='\t' && LA16_12<='\n')||LA16_12=='\r'||(LA16_12>=' ' && LA16_12<='!')||(LA16_12>='#' && LA16_12<='%')||(LA16_12>='(' && LA16_12<=';')||(LA16_12>='=' && LA16_12<='z')||LA16_12=='|'||(LA16_12>='~' && LA16_12<='\uD7FF')||(LA16_12>='\uE000' && LA16_12<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_12=='\"'||LA16_12=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 36; + + + input.seek(index16_12); + if ( s>=0 ) return s; + break; + case 28 : + var LA16_46 = input.LA(1); + + + var index16_46 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 56;} + + + input.seek(index16_46); + if ( s>=0 ) return s; + break; + case 29 : + var LA16_20 = input.LA(1); + + + var index16_20 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 45;} + + + input.seek(index16_20); + if ( s>=0 ) return s; + break; + case 30 : + var LA16_5 = input.LA(1); + + + var index16_5 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_5>='\t' && LA16_5<='\n')||LA16_5=='\r'||LA16_5==' ') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 5;} + + else if ( (LA16_5=='\"'||LA16_5=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( (LA16_5=='!'||(LA16_5>='#' && LA16_5<='%')||(LA16_5>='(' && LA16_5<=';')||(LA16_5>='=' && LA16_5<='z')||LA16_5=='|'||(LA16_5>='~' && LA16_5<='\uD7FF')||(LA16_5>='\uE000' && LA16_5<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 23; + + + input.seek(index16_5); + if ( s>=0 ) return s; + break; + case 31 : + var LA16_1 = input.LA(1); + + + var index16_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_1=='\"') && ((( this.inQuotAttr )||( !this.inElem )))) {s = 15;} + + else if ( ((LA16_1>='\t' && LA16_1<='\n')||LA16_1=='\r'||(LA16_1>=' ' && LA16_1<='!')||(LA16_1>='#' && LA16_1<='%')||(LA16_1>='\'' && LA16_1<=';')||(LA16_1>='=' && LA16_1<='z')||LA16_1=='|'||(LA16_1>='~' && LA16_1<='\uD7FF')||(LA16_1>='\uE000' && LA16_1<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 16; + + + input.seek(index16_1); + if ( s>=0 ) return s; + break; + case 32 : + var LA16_13 = input.LA(1); + + + var index16_13 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_13=='#') ) {s = 37;} + + else if ( (LA16_13=='a'||LA16_13=='g'||LA16_13=='l'||LA16_13=='q') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 38;} + + + input.seek(index16_13); + if ( s>=0 ) return s; + break; + case 33 : + var LA16_9 = input.LA(1); + + + var index16_9 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_9=='{') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 28;} + + else s = 29; + + + input.seek(index16_9); + if ( s>=0 ) return s; + break; + case 34 : + var LA16_2 = input.LA(1); + + + var index16_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_2=='\'') && ((( this.inAposAttr )||( !this.inElem )))) {s = 18;} + + else if ( ((LA16_2>='\t' && LA16_2<='\n')||LA16_2=='\r'||(LA16_2>=' ' && LA16_2<='%')||(LA16_2>='(' && LA16_2<=';')||(LA16_2>='=' && LA16_2<='z')||LA16_2=='|'||(LA16_2>='~' && LA16_2<='\uD7FF')||(LA16_2>='\uE000' && LA16_2<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 19; + + + input.seek(index16_2); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 16, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.XMLLexer = XMLLexer; +});/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/XQDTParser', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQuerySemanticHighlighter'], function(require, exports, module) { + +var org = require("./antlr3-all").org; +var XQuerySemanticHighlighter = require("./XQuerySemanticHighlighter").XQuerySemanticHighlighter; + +var XQDTParser = exports.XQDTParser = function(input, state) +{ + this.highlighter = new XQuerySemanticHighlighter(); + var self = this; + input.getTokenSource().addComment = function(start, stop) { self.highlighter.addToken(start, stop, "comment") }; + XQDTParser.superclass.constructor.call(this, input, state); +}; + +org.antlr.lang.extend(XQDTParser, org.antlr.runtime.Parser, { + +}); + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/XQuerySemanticHighlighter', ['require', 'exports', 'module' , 'ace/mode/xquery/Position'], function(require, exports, module) { + + var Position = require("./Position").Position; + var XQuerySemanticHighlighter = exports.XQuerySemanticHighlighter = function() { + this.plain = null; + this.source = []; + this.lines = []; + + this.getTokens = function() { + var result = []; + var previousState = "start"; + for(i in this.source){ + var lineTokens = []; + var tokens = []; + if(this.lines[i]) { + tokens = this.lines[i].sort(function(a, b){ return a.position.getOffset() - b.position.getOffset(); }); + } + var sourceLine = this.source[i]; + var tokenizedLine = ""; + var cursor = 0; + for(j in tokens) + { + var token = tokens[j]; + var position = token.position; + if(position.getOffset() > cursor) { + var value = sourceLine.substring(cursor, position.getOffset()); + tokenizedLine += value; + lineTokens.push({ + type: "text", + value: value + }); + } + cursor = position.getOffset() + position.getLength(); + value = sourceLine.substring(position.getOffset(), cursor); + tokenizedLine += value; + lineTokens.push({ + type: token.type, + value: value + }); + } + + var nextState = "start"; + if(lineTokens.length > 0) { + lineTokens[lineTokens.length - 1].type; + } + nextState = nextState != "comment" ? "start" : nextState; + + if(cursor < (sourceLine.length )) { + value = sourceLine.substring(cursor); + lineTokens.push({ + type: "text", + value: value + }); + tokenizedLine += value; + } + //Check if the tokenized line is equal to the original one: + if(sourceLine == tokenizedLine) { + result[i] = { tokens: lineTokens, state: nextState }; + } else { + result[i] = undefined; + } + } + return result; + }; + + this.addToken = function(start, stop, type) { + var before = this.plain.substring(0, start); + var startLine = this.plain.substring(0, start).split("\n").length; + startLine = startLine == 0 ? 0 : startLine - 1; + + var offset = before.lastIndexOf("\n"); + offset = offset == -1 ? start : start - before.lastIndexOf("\n") - 1; + + var cursor = start; + + var text = this.plain.substring(start, stop); + + var currentLine = startLine; + for(var i in text) + { + var c = text[i]; + if(c == "\n") { + var s = i; + s = s < stop ? s : stop; + this.addPosition(new Position(currentLine, offset, s), type); + currentLine++; + offset = 0; + cursor = i; + } + }; + this.addPosition(new Position(currentLine, offset, stop - cursor + 1), type); + }; + + this.addPosition = function(position, type) + { + var line = position.getLine(); + if(!this.lines[line]) { + this.lines[line] = []; + } + this.lines[line].push({ + type: type, + position: position + }); + }; + + this.setSource = function(source) + { + this.plain = source.data; + this.source = this.plain.split("\n"); + }; + //console.log("Line: " + token.getLine()); + //console.log(token.getText()); + //console.log(type); + }; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/Position', ['require', 'exports', 'module' ], function(require, exports, module) { + var Position = exports.Position = function(line, offset, length) + { + this.line = line; + this.offset = offset; + this.length = length; + + this.getLine = function() + { + return this.line; + }; + + this.getOffset = function() + { + return this.offset; + }; + + this.getLength = function() + { + return this.length; + }; + }; + +}); diff --git a/build/kitchen-sink.html b/build/kitchen-sink.html index c8ae2869..18363d0a 100644 --- a/build/kitchen-sink.html +++ b/build/kitchen-sink.html @@ -10,9 +10,8 @@ diff --git a/build/src/ace-compat.js b/build/src/ace-compat.js index 18d2ed78..e2076c02 100644 --- a/build/src/ace-compat.js +++ b/build/src/ace-compat.js @@ -1 +1,110 @@ -define("pilot/index",["require","exports","module","pilot/browser_focus","pilot/dom","pilot/event","pilot/event_emitter","pilot/fixoldbrowsers","pilot/keys","pilot/lang","pilot/oop","pilot/useragent","pilot/canon"],function(a,b,c){a("pilot/browser_focus"),a("pilot/dom"),a("pilot/event"),a("pilot/event_emitter"),a("pilot/fixoldbrowsers"),a("pilot/keys"),a("pilot/lang"),a("pilot/oop"),a("pilot/useragent"),a("pilot/canon")}),define("pilot/browser_focus",["require","exports","module","ace/lib/browser_focus"],function(a,b,c){console.warn("DEPRECATED: 'pilot/browser_focus' is deprecated. Use 'ace/lib/browser_focus' instead"),c.exports=a("ace/lib/browser_focus")}),define("pilot/dom",["require","exports","module","ace/lib/dom"],function(a,b,c){console.warn("DEPRECATED: 'pilot/dom' is deprecated. Use 'ace/lib/dom' instead"),c.exports=a("ace/lib/dom")}),define("pilot/event",["require","exports","module","ace/lib/event"],function(a,b,c){console.warn("DEPRECATED: 'pilot/event' is deprecated. Use 'ace/lib/event' instead"),c.exports=a("ace/lib/event")}),define("pilot/event_emitter",["require","exports","module","ace/lib/event_emitter"],function(a,b,c){console.warn("DEPRECATED: 'pilot/event_emitter' is deprecated. Use 'ace/lib/event_emitter' instead"),c.exports=a("ace/lib/event_emitter")}),define("pilot/fixoldbrowsers",["require","exports","module","ace/lib/fixoldbrowsers"],function(a,b,c){console.warn("DEPRECATED: 'pilot/fixoldbrowsers' is deprecated. Use 'ace/lib/fixoldbrowsers' instead"),c.exports=a("ace/lib/fixoldbrowsers")}),define("pilot/keys",["require","exports","module","ace/lib/keys"],function(a,b,c){console.warn("DEPRECATED: 'pilot/keys' is deprecated. Use 'ace/lib/keys' instead"),c.exports=a("ace/lib/keys")}),define("pilot/lang",["require","exports","module","ace/lib/lang"],function(a,b,c){console.warn("DEPRECATED: 'pilot/lang' is deprecated. Use 'ace/lib/lang' instead"),c.exports=a("ace/lib/lang")}),define("pilot/oop",["require","exports","module","ace/lib/oop"],function(a,b,c){console.warn("DEPRECATED: 'pilot/oop' is deprecated. Use 'ace/lib/oop' instead"),c.exports=a("ace/lib/oop")}),define("pilot/useragent",["require","exports","module","ace/lib/useragent"],function(a,b,c){console.warn("DEPRECATED: 'pilot/useragent' is deprecated. Use 'ace/lib/useragent' instead"),c.exports=a("ace/lib/useragent")}),define("pilot/canon",["require","exports","module"],function(a,b,c){console.warn("DEPRECATED: 'pilot/canon' is deprecated."),b.addCommand=function(){console.warn("DEPRECATED: 'canon.addCommand()' is deprecated. Use 'editor.commands.addCommand(command)' instead."),console.trace()},b.removeCommand=function(){console.warn("DEPRECATED: 'canon.removeCommand()' is deprecated. Use 'editor.commands.removeCommand(command)' instead."),console.trace()}}) \ No newline at end of file +/* vim:ts=4:sts=4:sw=4: + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('pilot/index', ['require', 'exports', 'module' , 'pilot/browser_focus', 'pilot/dom', 'pilot/event', 'pilot/event_emitter', 'pilot/fixoldbrowsers', 'pilot/keys', 'pilot/lang', 'pilot/oop', 'pilot/useragent', 'pilot/canon'], function(require, exports, module) { + require("pilot/browser_focus"); + require("pilot/dom"); + require("pilot/event"); + require("pilot/event_emitter"); + require("pilot/fixoldbrowsers"); + require("pilot/keys"); + require("pilot/lang"); + require("pilot/oop"); + require("pilot/useragent"); + require("pilot/canon"); +}); + +define('pilot/browser_focus', ['require', 'exports', 'module' , 'ace/lib/browser_focus'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/browser_focus' is deprecated. Use 'ace/lib/browser_focus' instead"); + module.exports = require("ace/lib/browser_focus"); +}); + +define('pilot/dom', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/dom' is deprecated. Use 'ace/lib/dom' instead"); + module.exports = require("ace/lib/dom"); +}); + +define('pilot/event', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/event' is deprecated. Use 'ace/lib/event' instead"); + module.exports = require("ace/lib/event"); +}); + +define('pilot/event_emitter', ['require', 'exports', 'module' , 'ace/lib/event_emitter'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/event_emitter' is deprecated. Use 'ace/lib/event_emitter' instead"); + module.exports = require("ace/lib/event_emitter"); +}); + +define('pilot/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/fixoldbrowsers' is deprecated. Use 'ace/lib/fixoldbrowsers' instead"); + module.exports = require("ace/lib/fixoldbrowsers"); +}); + +define('pilot/keys', ['require', 'exports', 'module' , 'ace/lib/keys'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/keys' is deprecated. Use 'ace/lib/keys' instead"); + module.exports = require("ace/lib/keys"); +}); + +define('pilot/lang', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/lang' is deprecated. Use 'ace/lib/lang' instead"); + module.exports = require("ace/lib/lang"); +}); + +define('pilot/oop', ['require', 'exports', 'module' , 'ace/lib/oop'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/oop' is deprecated. Use 'ace/lib/oop' instead"); + module.exports = require("ace/lib/oop"); +}); + +define('pilot/useragent', ['require', 'exports', 'module' , 'ace/lib/useragent'], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/useragent' is deprecated. Use 'ace/lib/useragent' instead"); + module.exports = require("ace/lib/useragent"); +}); + +define('pilot/canon', ['require', 'exports', 'module' ], function(require, exports, module) { + console.warn("DEPRECATED: 'pilot/canon' is deprecated."); + //return require("ace/lib/dom"); + + exports.addCommand = function() { + console.warn("DEPRECATED: 'canon.addCommand()' is deprecated. Use 'editor.commands.addCommand(command)' instead."); + console.trace(); + } + + exports.removeCommand = function() { + console.warn("DEPRECATED: 'canon.removeCommand()' is deprecated. Use 'editor.commands.removeCommand(command)' instead."); + console.trace(); + } +}); diff --git a/build/src/ace-noconflict.js b/build/src/ace-noconflict.js index 057a34f5..895eba1a 100644 --- a/build/src/ace-noconflict.js +++ b/build/src/ace-noconflict.js @@ -1,4 +1,4 @@ -(function(){function g(a){if(typeof requirejs!="undefined"){var e=b.define;b.define=function(a,b,c){return typeof c!="function"?e.apply(this,arguments):ace.define(a,b,function(a,d,e){return b[2]=="module"&&(e.packaged=!0),c.apply(this,arguments)})},b.define.packaged=!0;return}var f=function(a,b){return d("",a,b)};f.packaged=!0;var g=b;a&&(b[a]||(b[a]={}),g=b[a]),g.define&&(c.original=g.define),g.define=c,g.require&&(d.original=g.require),g.require=f}var a="ace",b=function(){return this}(),c=function(a,b,d){if(typeof a!="string"){c.original?c.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(d=b),c.modules||(c.modules={}),c.modules[a]=d},d=function(a,b,c){if(Object.prototype.toString.call(b)==="[object Array]"){var e=[];for(var g=0,h=b.length;g1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);return b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--,!!b})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(a,b,c){function p(a){try{return Object.defineProperty(a,"sentinel",{}),"sentinel"in a}catch(b){}}Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=g.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,h=c.apply(f,d.concat(g.call(arguments)));return h!==null&&Object(h)===h?h:f}return c.apply(b,d.concat(g.call(arguments)))};return e});var d=Function.prototype.call,e=Array.prototype,f=Object.prototype,g=e.slice,h=d.bind(f.toString),i=d.bind(f.hasOwnProperty),j,k,l,m,n;if(n=i(f,"__defineGetter__"))j=d.bind(f.__defineGetter__),k=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),m=d.bind(f.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return h(b)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(b){var c=G(this),d=arguments[1],e=0,f=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;while(e>>0,e=Array(d),f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=[],f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e=0,f;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);for(;e>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e,f=d-1;if(arguments.length>=2)e=arguments[1];else do{if(f in c){e=c[f--];break}if(--f<0)throw new TypeError}while(!0);do f in this&&(e=b.call(void 0,e,c[f],f,c));while(f--);return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=0;arguments.length>1&&(e=E(arguments[1])),e=e>=0?e:Math.max(0,d+e);for(;e>>0;if(!d)return-1;var e=d-1;arguments.length>1&&(e=Math.min(e,E(arguments[1]))),e=e>=0?e:d-Math.abs(e);for(;e>=0;e--)if(e in c&&b===c[e])return e;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||(b.constructor?b.constructor.prototype:f)});if(!Object.getOwnPropertyDescriptor){var o="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(b,c){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(o+b);if(!i(b,c))return;var d,e,g;d={enumerable:!0,configurable:!0};if(n){var h=b.__proto__;b.__proto__=f;var e=l(b,c),g=m(b,c);b.__proto__=h;if(e||g)return e&&(d.get=e),g&&(d.set=g),d}return d.value=b[c],d}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),Object.create||(Object.create=function(b,c){var d;if(b===null)d={__proto__:null};else{if(typeof b!="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");var e=function(){};e.prototype=b,d=new e,d.__proto__=b}return c!==void 0&&Object.defineProperties(d,c),d});if(Object.defineProperty){var q=p({}),r=typeof document=="undefined"||p(document.createElement("div"));if(!q||!r)var s=Object.defineProperty}if(!Object.defineProperty||s){var t="Property description must be an object: ",u="Object.defineProperty called on non-object: ",v="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(b,c,d){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(u+b);if(typeof d!="object"&&typeof d!="function"||d===null)throw new TypeError(t+d);if(s)try{return s.call(Object,b,c,d)}catch(e){}if(i(d,"value"))if(n&&(l(b,c)||m(b,c))){var g=b.__proto__;b.__proto__=f,delete b[c],b[c]=d.value,b.__proto__=g}else b[c]=d.value;else{if(!n)throw new TypeError(v);i(d,"get")&&j(b,c,d.get),i(d,"set")&&k(b,c,d.set)}return b}}Object.defineProperties||(Object.defineProperties=function(b,c){for(var d in c)i(c,d)&&Object.defineProperty(b,d,c[d]);return b}),Object.seal||(Object.seal=function(b){return b}),Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(w){Object.freeze=function(b){return function(c){return typeof c=="function"?c:b(c)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b}),Object.isSealed||(Object.isSealed=function(b){return!1}),Object.isFrozen||(Object.isFrozen=function(b){return!1}),Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)===b)throw new TypeError;var c="";while(i(b,c))c+="?";b[c]=!0;var d=i(b,c);return delete b[c],d});if(!Object.keys){var x=!0,y=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],z=y.length;for(var A in{toString:null})x=!1;Object.keys=function H(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var H=[];for(var b in a)i(a,b)&&H.push(b);if(x)for(var c=0,d=z;c9999?"+":"")+("00000"+Math.abs(e)).slice(0<=e&&e<=9999?-4:-6),c=b.length;while(c--)d=b[c],d<10&&(b[c]="0"+d);return e+"-"+b.slice(0,2).join("-")+"T"+b.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(b){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(a){var b=function e(b,c,d,f,g,h,i){var j=arguments.length;if(this instanceof a){var k=j==1&&String(b)===b?new a(e.parse(b)):j>=7?new a(b,c,d,f,g,h,i):j>=6?new a(b,c,d,f,g,h):j>=5?new a(b,c,d,f,g):j>=4?new a(b,c,d,f):j>=3?new a(b,c,d):j>=2?new a(b,c):j>=1?new a(b):new a;return k.constructor=e,k}return a.apply(this,arguments)},c=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var d in a)b[d]=a[d];return b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function(d){var e=c.exec(d);if(e){e.shift();for(var f=1;f<7;f++)e[f]=+(e[f]||(f<3?1:0)),f==1&&e[f]--;var g=+e.pop(),h=+e.pop(),i=e.pop(),j=0;if(i){if(h>23||g>59)return NaN;j=(h*60+g)*6e4*(i=="+"?-1:1)}var k=+e[0];return 0<=k&&k<=99?(e[0]=k+400,a.UTC.apply(this,e)+j-126227808e5):a.UTC.apply(this,e)+j}return a.parse.apply(this,arguments)},b}(Date));var B=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||B.trim()){B="["+B+"]";var C=new RegExp("^"+B+B+"*"),D=new RegExp(B+B+"*$");String.prototype.trim=function(){return String(this).replace(C,"").replace(D,"")}}var E=function(a){return a=+a,a!==a?a=0:a!==0&&a!==1/0&&a!==-Infinity&&(a=(a>0||-1)*Math.floor(Math.abs(a))),a},F="a"[0]!="a",G=function(a){if(a==null)throw new TypeError;return F&&typeof a=="string"&&a?a.split(""):Object(a)}}),ace.define("ace/lib/dom",["require","exports","module"],function(a,b,c){"use strict";var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}return d&&c.push(b),a.className=c.join(" "),d},b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.hasCssString=function(a,b){var c=0,d;b=b||document;if(b.createStyleSheet&&(d=b.styleSheets)){while(c5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isOldIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko||e.isOpera){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){return h=a.keyIdentifier||a.keyCode,g(c,a,a.keyCode)})}};if(window.postMessage){var h=1;b.nextTick=function(a,c){c=c||window;var d="zero-timeout-message-"+h;b.addListener(c,"message",function e(f){f.data==d&&(b.stopPropagation(f),b.removeListener(c,"message",e),a())}),c.postMessage(d,"*")}}else b.nextTick=function(a,b){b=b||window,window.setTimeout(a,0)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(a,b,c){"use strict";var d=a("./oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(var b in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[b].toUpperCase();a[c]=parseInt(b,10)}return d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS),a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),ace.define("ace/lib/oop",["require","exports","module"],function(a,b,c){"use strict",b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(a,b,c){"use strict";var d=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),e=navigator.userAgent;b.isWin=d=="win",b.isMac=d=="mac",b.isLinux=d=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=window.controllers&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(e.split("WebKit/")[1])||undefined,b.isChrome=parseFloat(e.split(" Chrome/")[1])||undefined,b.isAIR=e.indexOf("AdobeAIR")>=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(a,b,c){"use strict",a("./lib/fixoldbrowsers");var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/useragent"),g=a("./keyboard/textinput").TextInput,h=a("./mouse/mouse_handler").MouseHandler,i=a("./mouse/fold_handler").FoldHandler,j=a("./keyboard/keybinding").KeyBinding,k=a("./edit_session").EditSession,l=a("./search").Search,m=a("./range").Range,n=a("./lib/event_emitter").EventEmitter,o=a("./commands/command_manager").CommandManager,p=a("./commands/default_commands").commands,q=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.commands=new o(f.isMac?"mac":"win",p),this.textInput=new g(a.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new j(this),f.isIPad||(this.$mouseHandler=new h(this),new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session==a)return;if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:a,oldSession:b})},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(a){var b=a.data,c=b.range,d;c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"?d=c.end.row:d=Infinity,this.renderer.updateLines(c.start.row,d),this._emit("change",a),this.$cursorChange()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.$highlightActiveLine){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row);if(this.getSelectionStyle()!="line"||!this.selection.isMultiLine()){var d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";return this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a),a},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(a){this._emit("paste",a),this.insert(a)},this.insert=function(a){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace(" ",this.session.getTabString());if(!this.selection.isEmpty())d=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)==" "?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}i&&c.autoOutdent(h,b,d.row)},this.onTextInput=function(a){this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(a){this.$mouseHandler.setDragDelay(a)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(a){if(this.$selectionStyle==a)return;this.$selectionStyle=a,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:a})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine==a)return;this.$highlightActiveLine=a,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightGutterLine=!0,this.setHighlightGutterLine=function(a){if(this.$highlightGutterLine==a)return;this.renderer.setHighlightGutterLine(a)},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord==a)return;this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){if(this.getShowInvisibles()==a)return;this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.setShowFoldWidgets=function(a){var b=this.renderer.$gutterLayer;if(b.getShowFoldWidgets()==a)return;this.renderer.$gutterLayer.setShowFoldWidgets(a),this.$showFoldWidgets=a,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.setFadeFoldWidgets=function(a){this.renderer.setFadeFoldWidgets(a)},this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets()},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var c=this.session,d=c.getState(b.start.row),e=c.getMode().transformAction(d,"deletion",this,c,b);e&&(b=e)}this.session.remove(b),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b===0)return;var c=this.session.getLine(a.row),d,e;b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(a,b){var c=this.renderer,d=this.renderer.layerConfig,e=a*Math.floor(d.height/d.lineHeight);this.$blockScrolling++,b==1?this.selection.$moveSelection(function(){this.moveCursorBy(e,0)}):b==0&&(this.selection.moveCursorBy(e,0),this.selection.clearSelection()),this.$blockScrolling--;var f=c.scrollTop;c.scrollBy(0,e*d.lineHeight),b!=null&&c.scrollCursorIntoView(null,.5),c.animateScrolling(f)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b,c,d){this.renderer.scrollToLine(a,b,c,d)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(){var a=this.getCursorPosition(),b=this.session.findMatchingBracket(a);b||(a.column+=1,b=this.session.findMatchingBracket(a)),b||(a.column-=2,b=this.session.findMatchingBracket(a)),b&&(this.clearSelection(),this.moveCursorTo(b.row,b.column))},this.gotoLine=function(a,b,c){this.selection.clearSelection(),this.session.unfold({row:a-1,column:b||0}),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowFullyVisible(a-1)||this.scrollToLine(a-1,!0,c)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateFileStart=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session),d=0;return c?(this.$tryReplace(c,a)&&(d=1),c!==null&&(this.selection.setSelectionRange(c),this.renderer.scrollSelectionIntoView(c.start,c.end)),d):d},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session),d=0;if(!c.length)return d;this.$blockScrolling+=1;var e=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var f=c.length-1;f>=0;--f)this.$tryReplace(c[f],a)&&d++;return this.selection.setSelectionRange(e),this.$blockScrolling-=1,d},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a);return b=this.$search.replace(c,b),b!==null?(a.end=this.session.replace(a,b),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b,c){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find(!1,c)},this.findNext=function(a,b){a=a||{},this.$search.set(a),this.$find(!1,b)},this.findPrevious=function(a,b){a=a||{},this.$search.set(a),this.$find(!0,b)},this.$find=function(a,b){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var c=this.$search.find(this.session);if(c){this.$blockScrolling+=1,this.session.unfold(c),this.selection.setSelectionRange(c),this.$blockScrolling-=1;var d=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(c.start,c.end,.5),this.renderer.animateScrolling(d)}},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy()}}).call(q.prototype),b.Editor=q}),ace.define("ace/lib/lang",["require","exports","module"],function(a,b,c){"use strict",b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return(new Array(b+1)).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(var c=0,d=a.length;c1&&(d.charAt(0)==g?d=d.substr(1):d.charAt(d.length-1)==g&&(d=d.slice(0,-1))),d&&d!=g&&(j?b.onPaste(d):b.onTextInput(d));if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function v(){return document.activeElement===c}var c=f.createElement("textarea");e.isTouchPad&&c.setAttribute("x-palm-disable-auto-cap",!0),c.setAttribute("wrap","off"),c.style.left="-10000px",c.style.position="fixed",a.insertBefore(c,a.firstChild);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){if(e.isOldIE&&c.value.charCodeAt(0)>128)return;setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){if(!h)return;b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isOldIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);if((c.value.charCodeAt(0)|0)<129)return;h?q():p()})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),"onbeforecopy"in c&&typeof clipboardData!="undefined"?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event"],function(a,b,c){"use strict";var d=a("../lib/event"),e=a("./default_handlers").DefaultHandlers,f=a("./default_gutter_handler").GutterHandler,g=a("./mouse_event").MouseEvent,h=function(a){this.editor=a,new e(this),new f(this),d.addListener(a.container,"mousedown",function(b){return a.focus(),d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseEvent.bind(this,"mousedown")),d.addListener(b,"click",this.onMouseEvent.bind(this,"click")),d.addListener(b,"mousemove",this.onMouseMove.bind(this,"mousemove")),d.addMultiMouseDownListener(b,0,2,500,this.onMouseEvent.bind(this,"dblclick")),d.addMultiMouseDownListener(b,0,3,600,this.onMouseEvent.bind(this,"tripleclick")),d.addMultiMouseDownListener(b,0,4,600,this.onMouseEvent.bind(this,"quadclick")),d.addMouseWheelListener(a.container,this.onMouseWheel.bind(this,"mousewheel"));var c=a.renderer.$gutter;d.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),d.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),d.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),d.addListener(c,"mousemove",this.onMouseMove.bind(this,"gutter"))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.onMouseEvent=function(a,b){this.editor._emit(a,new g(b,this.editor))},this.$dragDelay=250,this.setDragDelay=function(a){this.$dragDelay=a},this.getDragDelay=function(){return this.$dragDelay},this.onMouseMove=function(a,b){var c=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!c||!c.length)return;this.editor._emit(a,new g(b,this.editor))},this.onMouseWheel=function(a,b){var c=new g(b,this.editor);c.speed=this.$scrollSpeed*2,c.wheelX=b.wheelX,c.wheelY=b.wheelY,this.editor._emit(a,c)},this.setState=function(a){this.state=a},this.captureMouse=function(a,b){b&&this.setState(b),this.x=a.x,this.y=a.y;var c=this.editor.renderer.$keepTextAreaAtCursor;this.editor.renderer.$keepTextAreaAtCursor=!1;var e=this,f=function(a){e.x=a.clientX,e.y=a.clientY},g=function(a){clearInterval(i),e[e.state+"End"]&&e[e.state+"End"](a),e.$clickSelection=null,e.editor.renderer.$keepTextAreaAtCursor=c,e.editor.renderer.$moveTextAreaToCursor()},h=function(){e[e.state]&&e[e.state]()};d.capture(this.editor.container,f,g);var i=setInterval(h,20);a.preventDefault()}}).call(h.prototype),b.MouseHandler=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/browser_focus"],function(a,b,c){function g(a){a.$clickSelection=null,a.browserFocus=new e;var b=a.editor;b.setDefaultHandler("mousedown",this.onMouseDown.bind(a)),b.setDefaultHandler("dblclick",this.onDoubleClick.bind(a)),b.setDefaultHandler("tripleclick",this.onTripleClick.bind(a)),b.setDefaultHandler("quadclick",this.onQuadClick.bind(a)),b.setDefaultHandler("mousewheel",this.onScroll.bind(a));var c=["select","startSelect","drag","dragEnd","dragWait","dragWaitEnd","startDrag"];c.forEach(function(b){a[b]=this[b]},this),a.selectByLines=this.extendSelectionBy.bind(a,"getLineRange"),a.selectByWords=this.extendSelectionBy.bind(a,"getWordRange")}function h(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))}"use strict";var d=a("../lib/dom"),e=a("../lib/browser_focus").BrowserFocus,f=5;(function(){this.onMouseDown=function(a){this.mousedownEvent=a;var b=a.inSelection(),c=a.getDocumentPosition(),d=this.editor,e=this;this.ev=a;var f=d.getSelectionRange(),g=f.isEmpty(),h=a.getButton();if(h!==0){g&&(d.moveCursorToPosition(c),d.selection.clearSelection()),this.moveTextarea=function(){d.textInput.onContextMenu({x:e.x,y:e.y})},this.moveTextareaEnd=d.textInput.onContextMenuClose,d.textInput.onContextMenu({x:this.x,y:this.y},g),this.captureMouse(a,"moveTextarea");return}if(b&&!d.isFocused()){d.focus();return}if(!b||this.$clickSelection||a.getShiftKey())this.startSelect(c);else if(b){var i=a.domEvent;i.ctrlKey||i.altKey?this.startDrag():(this.mousedownEvent.time=(new Date).getTime(),this.setState("dragWait"))}this.captureMouse(a)},this.startSelect=function(a){a=a||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(a):this.$clickSelection||(this.editor.moveCursorToPosition(a),this.editor.selection.clearSelection()),this.setState("select")},this.select=function(){var a,b=this.editor,c=b.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var d=this.$clickSelection.comparePoint(c);d==-1?a=this.$clickSelection.end:d==1?a=this.$clickSelection.start:(c=this.$clickSelection.end,a=this.$clickSelection.start),b.selection.setSelectionAnchor(a.row,a.column)}b.selection.selectToPosition(c),b.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(a){var b,c=this.editor,d=c.renderer.screenToTextCoordinates(this.x,this.y),e=c.selection[a](d.row,d.column);if(this.$clickSelection){var f=this.$clickSelection.comparePoint(e.start),g=this.$clickSelection.comparePoint(e.end);f==-1&&g<=0?(b=this.$clickSelection.end,d=e.start):g==1&&f>=0?(b=this.$clickSelection.start,d=e.end):f==-1&&g==1?(d=e.end,b=e.start):(d=this.$clickSelection.end,b=this.$clickSelection.start),c.selection.setSelectionAnchor(b.row,b.column)}c.selection.selectToPosition(d),c.renderer.scrollCursorIntoView()},this.startDrag=function(){var a=this.editor;this.setState("drag"),this.dragRange=a.getSelectionRange();var b=a.getSelectionStyle();this.dragSelectionMarker=a.session.addMarker(this.dragRange,"ace_selection",b),a.clearSelection(),d.addCssClass(a.container,"ace_dragging"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(a,b,c,d){if(c=="esc")return{command:this.command}},command:{exec:function(a){var b=a.$mouseHandler;b.dragCursor=null,b.dragEnd(),b.startSelect()}}}),a.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.dragWait=function(){var a=h(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),b=(new Date).getTime(),c=this.editor;a>f?this.startSelect():b-this.mousedownEvent.time>c.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(a){this.mousedownEvent.domEvent=a,this.startSelect()},this.drag=function(){var a=this.editor;this.dragCursor=a.renderer.screenToTextCoordinates(this.x,this.y),a.moveCursorToPosition(this.dragCursor),a.renderer.scrollCursorIntoView()},this.dragEnd=function(a){var b=this.editor,c=this.dragCursor,e=this.dragRange;d.removeCssClass(b.container,"ace_dragging"),b.session.removeMarker(this.dragSelectionMarker),b.keyBinding.removeKeyboardHandler(this.$dragKeybinding);if(!c)return;b.clearSelection();if(a&&(a.ctrlKey||a.altKey)){var f=b.session,g=e;g.end=f.insert(c,f.getTextRange(e)),g.start=c}else{if(e.contains(c.row,c.column))return;var g=b.moveText(e,c)}if(!g)return;b.selection.setSelectionRange(g)},this.onDoubleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByWords"),c.moveCursorToPosition(b),c.selection.selectWord(),this.$clickSelection=c.getSelectionRange()},this.onTripleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByLines"),c.moveCursorToPosition(b),c.selection.selectLine(),this.$clickSelection=c.getSelectionRange()},this.onQuadClick=function(a){var b=this.editor;b.selectAll(),this.$clickSelection=b.getSelectionRange(),this.setState("select")},this.onScroll=function(a){var b=this.editor,c=b.renderer.isScrollableBy(a.wheelX*a.speed,a.wheelY*a.speed);if(c)this.$passScrollEvent=!1;else{if(this.$passScrollEvent)return;if(!this.$scrollStopTimeout){var d=this;this.$scrollStopTimeout=setTimeout(function(){d.$passScrollEvent=!0,d.$scrollStopTimeout=null},200)}}return b.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed),a.preventDefault()}}).call(g.prototype),b.DefaultHandlers=g}),ace.define("ace/lib/browser_focus",["require","exports","module","ace/lib/oop","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./oop"),e=a("./event"),f=a("./event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){if(this._isFocused==a)return;a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus")}}).call(g.prototype),b.BrowserFocus=g}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(a,b,c){"use strict";var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var c=this._eventRegistry[a]||[],d=this._defaultHandlers[a];if(!c.length&&!d)return;b=b||{},b.type=a,b.stopPropagation||(b.stopPropagation=function(){this.propagationStopped=!0}),b.preventDefault||(b.preventDefault=function(){this.defaultPrevented=!0});for(var e=0;e=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}e.implement(this,h),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this)),this.bgTokenizer&&(this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];return}var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._emit("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.getTokenAt=function(a,b){var c=this.bgTokenizer.getTokens(a,a)[0].tokens,d,e=0;if(b==null)f=c.length-1,e=this.getLine(a).length;else for(var f=0;f=b)break}return d=c[f],d?(d.index=f,d.start=e-d.value.length,d):null},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=f.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?f.stringRepeat(" ",this.getTabSize()):" "},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){if(this.$useSoftTabs===a)return;this.$useSoftTabs=a},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){if(isNaN(a)||this.$tabSize===a)return;this.$modified=!0,this.$tabSize=a,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){if(this.$overwrite==a)return;this.$overwrite=a,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a+1,c),1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipColumnToRow=function(a,b){return b<0?0:Math.min(this.doc.getLine(a).length,b)},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$clipRangeToDocument=function(a){a.start.row<0?(a.start.row=0,a.start.column=0):a.start.column=this.$clipColumnToRow(a.start.row,a.start.column);var b=this.doc.getLength()-1;return a.end.row>b?(a.end.row=b,a.end.column=this.doc.getLine(b).length):a.end.column=this.$clipColumnToRow(a.end.row,a.end.column),a},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(var c=0;c0?(this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;return c&&(a=Math.min(c,a)),Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines?a.data.lines.length:f-e):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f),i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),e=this.$wrapData,g=this.$wrapLimit,h,j,k=a;b=Math.min(b,c.length-1);while(k<=b){j=this.getFoldLine(k,j);if(!j)h=this.$getDisplayTokens(f.stringTrimRight(c[k])),e[k]=this.$computeWrapSplits(h,g,d),k++;else{h=[],j.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,h.length),f[0]=i;for(var g=1;g=o)h.pop();e[j.start.row]=this.$computeWrapSplits(h,g,d),k=j.end.row+1}}};var b=1,c=2,i=3,l=4,n=9,o=10,p=11,q=12;this.$computeWrapSplits=function(a,b){function g(b){var d=a.slice(e,b),g=d.length;d.join("").replace(/12/g,function(){g-=1}).replace(/2/g,function(){g-=1}),f+=g,c.push(f),e=b}if(a.length==0)return[];var c=[],d=a.length,e=0,f=0;while(d-e>b){var h=e+b;if(a[h]>=o){while(a[h]>=o)h++;g(h);continue}if(a[h]==i||a[h]==l){for(h;h!=e-1;h--)if(a[h]==i)break;if(h>e){g(h);continue}h=e+b;for(h;hj&&a[h]j&&a[h]==n)h--;if(h>j){g(++h);continue}h=e+b,g(h)}return c},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;g39&&h<48||h>57&&h<64?e.push(n):h>=4352&&r(h)?e.push(b,c):e.push(b)}return e},this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=c+a.length*Math.max(this.getTabSize(),2)),c=c||0;var d,e;for(e=0;e=4352&&r(d)?c+=2:c+=1;if(c>b)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){var b=this.screenToDocumentPosition(a,Number.MAX_VALUE);return this.documentToScreenColumn(b.row,b.column)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g=0,h=0,i=this.$rowCache;for(var j=0;j=a||d>=l)break;g+=h,d++,d>n&&(d=m.end.row+1,m=this.getNextFoldLine(d,m),n=m?m.start.row:Infinity),k&&i.push({docRow:d,screenRow:g})}if(m&&m.start.row<=d)c=this.getFoldDisplayLine(m),d=m.start.row;else{if(g+h<=a||d>l)return{row:l,column:this.getLine(l).length};c=this.getLine(d),m=null}if(this.$useWrapMode){var o=this.$wrapData[d];o&&(f=o[a-g],a>g&&o.length&&(e=o[a-g-1]||o[o.length-1],c=c.substring(e)))}return e+=this.$getStringScreenWidth(c,b)[1],this.$useWrapMode&&e>=f&&(e=f-1),m?m.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d;if(this.$useWrapMode){d=this.$wrapData;if(a>d.length-1)return{row:this.getScreenLength(),column:d.length==0?0:d[d.length-1].length-1}}var e=0,f=null,g=null;g=this.getFoldAt(a,b,1),g&&(a=g.start.row,b=g.start.column);var h,i=0,j=this.$rowCache;for(var k=0;k=n){h=m.end.row+1;if(h>a)break;m=this.getNextFoldLine(h,m),n=m?m.start.row:Infinity}else h=i+1;e+=this.getRowLength(i),i=h,l&&j.push({docRow:i,screenRow:e})}var o="";m&&i>=n?(o=this.getFoldDisplayLine(m,a,b),f=m.start.row):(o=this.getLine(a).substring(0,b),f=a);if(this.$useWrapMode){var p=d[f],q=0;while(o.length>=p[q])e++,q++;o=o.substring(p[q-1]||0,o.length)}return{row:e,column:this.$getStringScreenWidth(o)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null;if(!this.$useWrapMode){a=this.getLength();var c=this.$foldData;for(var d=0;dg&&(f=b.end.row+1,b=this.$foldData[d++],g=b?b.start.row:Infinity)}return a}}).call(n.prototype),a("./edit_session/folding").Folding.call(n.prototype),a("./edit_session/bracket_match").BracketMatch.call(n.prototype),b.EditSession=n}),ace.define("ace/config",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}"no use strict";var d=a("./lib/lang"),e=function(){return this}(),f={packaged:!1,workerPath:"",modePath:"",themePath:"",suffix:".js"};b.get=function(a){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);return f[a]},b.set=function(a,b){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);f[a]=b},b.all=function(){return d.copyObject(f)},b.init=function(){f.packaged=a.packaged||c.packaged||e.define&&define.packaged;if(!e.document)return"";var d={},h="",i,j=document.getElementsByTagName("script");for(var k=0;kb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.anchor,b=this.lead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$desiredColumn=null},this.$moveSelection=function(a){var b=this.lead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(a,b){if(typeof b=="undefined"){var c=a||this.lead;a=c.row,b=c.column}return this.session.getWordRange(a,b)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var a=this.getCursor(),b=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(b)},this.getLineRange=function(a,b){var c=typeof a=="number"?a:this.lead.row,d,e=this.session.getFoldLine(c);return e?(c=e.start.row,d=e.end.row):d=c,b?new g(c,0,d,this.session.getLine(d).length):new g(c,0,d+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row=c.length){this.moveCursorTo(a,c.length),this.moveCursorRight(),a0&&this.moveCursorWordLeft();return}if(g=this.session.tokenRe.exec(f))b-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.$shortWordEndIndex=function(a){var b,c=0,d,e=/\s/,f=this.session.tokenRe;f.lastIndex=0;if(b=this.session.tokenRe.exec(a))c=this.session.tokenRe.lastIndex;else{while((d=a[c])&&e.test(d))c++;if(c<=1){f.lastIndex=0;while((d=a[c])&&!f.test(d)){f.lastIndex=0,c++;if(e.test(d)){if(c>2){c--;break}while((d=a[c])&&e.test(d))c++;if(c>2)break}}}}return f.lastIndex=0,c},this.moveCursorShortWordRight=function(){var a=this.lead.row,b=this.lead.column,c=this.doc.getLine(a),d=c.substring(b),e=this.session.getFoldAt(a,b,1);if(e)return this.moveCursorTo(e.end.row,e.end.column);if(b==c.length)return this.moveCursorRight();var f=this.$shortWordEndIndex(d);this.moveCursorTo(a,b+f)},this.moveCursorShortWordLeft=function(){var a=this.lead.row,b=this.lead.column,c;if(c=this.session.getFoldAt(a,b,-1))return this.moveCursorTo(c.start.row,c.start.column);if(b==0)return this.moveCursorLeft();var d=this.session.getLine(a).substring(0,b),f=e.stringReverse(d),g=this.$shortWordEndIndex(f);return this.moveCursorTo(a,b-g)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.lead.row,this.lead.column);b===0&&(this.$desiredColumn?c.column=this.$desiredColumn:this.$desiredColumn=c.column);var d=this.session.screenToDocumentPosition(c.row+a,c.column);this.moveCursorTo(d.row,d.column+b,b===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,b,c){var d=this.session.getFoldAt(a,b,1);d&&(a=d.start.row,b=d.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(a,b),this.$keepDesiredColumnOnChange=!1,c||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,b,c){var d=this.session.screenToDocumentPosition(a,b);this.moveCursorTo(d.row,d.column,c)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var b=this.getRange();return a?(a.start.column=b.start.column,a.start.row=b.start.row,a.end.column=b.end.column,a.end.row=b.end.row):a=b,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a}}).call(h.prototype),b.Selection=h}),ace.define("ace/range",["require","exports","module"],function(a,b,c){"use strict";var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.isEqual=function(a){return this.start.row==a.start.row&&this.end.row==a.end.row&&this.start.column==a.start.column&&this.end.column==a.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;return b=this.compare(c.row,c.column),b==1?(b=this.compare(d.row,d.column),b==1?2:b==0?1:0):b==-1?-2:(b=this.compare(d.row,d.column),b==-1?-1:b==1?42:0)},this.comparePoint=function(a){return this.compare(a.row,a.column)},this.containsRange=function(a){return this.comparePoint(a.start)==0&&this.comparePoint(a.end)==0},this.intersects=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)||this.isStart(a,b)?!1:!0:!1},this.insideStart=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)?!1:!0:!1},this.insideEnd=function(a,b){return this.compare(a,b)==0?this.isStart(a,b)?!1:!0:!1},this.compare=function(a,b){return!this.isMultiLine()&&a===this.start.row?bthis.end.column?1:0:athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)},this.clearSelectionHighlight=function(a){if(!a.session.$selectionOccurrences)return;a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[]},this.createModeDelegates=function(a){if(!this.$embeds)return;this.$modes={};for(var b=0;b1&&e[i].token.length!==j-1)throw new Error("Matching groups and length of the token array don't match in rule #"+i+" of state "+c);h[g]={rule:i,len:j},g+=j,f.push(k)}this.regExps[c]=new RegExp("(?:("+f.join(")|(")+")|(.))",b)}};(function(){this.getLineTokens=function(a,b){var c=b,d=this.rules[c],e=this.matchMappings[c],f=this.regExps[c];f.lastIndex=0;var g,h=[],i=0,j={type:null,value:""};while(g=f.exec(a)){var k="text",l=null,m=[g[0]];for(var n=0;n1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token,l.next&&(c=l.next,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length),a},this.insert=function(a,b){if(!b||b.length===0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];return a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||"")),a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};return this._emit("change",{data:e}),d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};return this._emit("change",{data:d}),c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};return this._emit("change",{data:e}),d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b==c)return;var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};return this._emit("change",{data:i}),d.start},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};return this._emit("change",{data:e}),d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._emit("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&c.start.row!=this.row)return;if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0),c}}).call(f.prototype)}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!c.running)return;var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._emit("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc||isNaN(a)||isNaN(b))return[{state:"start",tokens:[]}];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(a,b,c){function h(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d=a)return e}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){return this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),a},this.addFold=function(a,b){var c=this.$foldData,d=!1,g;a instanceof f?g=a:g=new f(b,a),this.$clipRangeToDocument(g.range);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1),m=this.getFoldAt(j,k,-1);if(l&&m==l)return l.addSubFold(g);if(l&&!l.range.isStart(h,i)||m&&!m.range.isEnd(j,k))throw"A fold can't intersect already existing fold"+g.range+l.range;var n=this.getFoldsInRange(g.range);n.length>0&&(this.removeFolds(n),g.subFolds=n);for(var o=0;othis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=this.$rowTokens.length){this.$row+=1;if(this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row,this.$row)[0].tokens,this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var a=this.$rowTokens,b=this.$tokenIndex,c=a[b].start;if(c!==undefined)return c;c=0;while(b>0)b-=1,c+=a[b].value.length;return c}}).call(d.prototype),b.TokenIterator=d}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator"],function(a,b,c){function e(){this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;var c=b.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("rparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn()-2,j=g.value;for(;;){while(i>=0){var k=j.charAt(i);if(k==c){e-=1;if(e==0)return{row:f.getCurrentTokenRow(),column:i+f.getCurrentTokenColumn()}}else k==a&&(e+=1);i-=1}do g=f.stepBackward();while(g&&!h.test(g.type));if(g==null)break;j=g.value,i=j.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("lparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn();for(;;){var j=g.value,k=j.length;while(i=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);return b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column)),f}var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"start":"end"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h){if(!i)return;b=e,g=f,j=!0}b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"end":"start"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/useragent"),h=a("./config"),i=a("./lib/net"),j=a("./layer/gutter").Gutter,k=a("./layer/marker").Marker,l=a("./layer/text").Text,m=a("./layer/cursor").Cursor,n=a("./scrollbar").ScrollBar,o=a("./renderloop").RenderLoop,p=a("./lib/event_emitter").EventEmitter,q=a("text!./css/editor.css");e.importCssString(q,"ace_editor");var r=function(a,b){var c=this;this.container=a,this.$keepTextAreaAtCursor=!g.isIE,e.addCssClass(a,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.setHighlightGutterLine(!0),this.$gutterLayer=new j(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,!0)),this.setFadeFoldWidgets(!0),this.$markerBack=new k(this.content);var d=this.$textLayer=new l(this.content);this.canvas=d.element,this.$markerFront=new k(this.content),this.characterWidth=d.getCharacterWidth(),this.lineHeight=d.getLineHeight(),this.$cursorLayer=new m(this.content),this.$cursorPadding=8,this.$horizScroll=!1,this.$horizScrollAlwaysVisible=!1,this.$animatedScroll=!1,this.scrollBar=new n(a),this.scrollBar.addEventListener("scroll",function(a){c.$inScrollAnimation||c.session.setScrollTop(a.data)}),this.scrollTop=0,this.scrollLeft=0,f.addListener(this.scroller,"scroll",function(){var a=c.scroller.scrollLeft;c.scrollLeft=a,c.session.setScrollLeft(a),c.scroller.className=a==0?"ace_scroller":"ace_scroller horscroll"}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){c.characterWidth=d.getCharacterWidth(),c.lineHeight=d.getLineHeight(),c.$updatePrintMargin(),c.onResize(!0),c.$loop.schedule(c.CHANGE_FULL)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,d.implement(this,p),this.setSession=function(a){this.session=a,this.scroller.className="ace_scroller",this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowthis.layerConfig.height)return;b+=(this.showGutter?this.$gutterLayer.gutterWidth:0)-this.scrollLeft;var c=this.container.getBoundingClientRect();this.textarea.style.left=c.left+b+"px",this.textarea.style.top=c.top+a+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var a=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+a},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(a){this.$padding=a,this.$textLayer.setPadding(a),this.$cursorLayer.setPadding(a),this.$markerFront.setPadding(a),this.$markerBack.setPadding(a),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible},this.setHScrollBarAlwaysVisible=function(a){this.$horizScrollAlwaysVisible!=a&&(this.$horizScrollAlwaysVisible=a,(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL))},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(a){if(!a||!this.session||!this.container.offsetWidth)return;(a&this.CHANGE_FULL||a&this.CHANGE_SIZE||a&this.CHANGE_TEXT||a&this.CHANGE_LINES||a&this.CHANGE_SCROLL)&&this.$computeLayerConfig();if(a&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var b=this.scroller.scrollLeft;this.scrollLeft=b,this.session.setScrollLeft(b)}if(a&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}if(a&this.CHANGE_SCROLL){this.$updateScrollBar(),a&this.CHANGE_TEXT||a&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}a&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_LINES?this.$updateLines()&&(this.$updateScrollBar(),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_GUTTER&&this.showGutter&&this.$gutterLayer.update(this.layerConfig),a&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),a&this.CHANGE_SIZE&&this.$updateScrollBar()},this.$computeLayerConfig=function(){var a=this.session,b=this.scrollTop%this.lineHeight,c=this.$size.scrollerHeight+this.lineHeight,d=this.$getLongestLine(),e=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-d<0,f=this.$horizScroll!==e;this.$horizScroll=e,f&&(this.scroller.style.overflowX=e?"scroll":"hidden",e||this.session.setScrollLeft(0));var g=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,g-this.$size.scrollerHeight)));var h=Math.ceil(c/this.lineHeight)-1,i=Math.max(0,Math.round((this.scrollTop-b)/this.lineHeight)),j=i+h,k,l,m={lineHeight:this.lineHeight};i=a.screenToDocumentRow(i,0);var n=a.getFoldLine(i);n&&(i=n.start.row),k=a.documentToScreenRow(i,0),l=a.getRowHeight(m,i),j=Math.min(a.screenToDocumentRow(j,0),a.getLength()-1),c=this.$size.scrollerHeight+a.getRowHeight(m,j)+l,b=this.scrollTop-k*this.lineHeight,this.layerConfig={width:d,padding:this.$padding,firstRow:i,firstRowScreen:k,lastRow:j,lineHeight:this.lineHeight,characterWidth:this.characterWidth,minHeight:c,maxHeight:g,offset:b,height:this.$size.scrollerHeight},this.$gutter.style.marginTop=-b+"px",this.content.style.marginTop=-b+"px",this.content.style.width=d+2*this.$padding+"px",this.content.style.height=c+"px",f&&this.onResize(!0)},this.$updateLines=function(){var a=this.$changedLines.firstRow,b=this.$changedLines.lastRow;this.$changedLines=null;var c=this.layerConfig;if(c.width!=this.$getLongestLine())return this.$textLayer.update(c);if(a>c.lastRow+1)return;if(be?(b&&(e-=b*this.$size.scrollerHeight),this.session.setScrollTop(e)):this.scrollTop+this.$size.scrollerHeightd?(d0)return!0;if(b>0&&this.session.getScrollTop()+this.$size.scrollerHeight0?1:-1}},this.screenToTextCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=Math.round((a+this.scrollLeft-c.left-this.$padding)/this.characterWidth),e=Math.floor((b+this.scrollTop-c.top)/this.lineHeight);return this.session.screenToDocumentPosition(e,Math.max(d,0))},this.textToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=this.session.documentToScreenPosition(a,b),e=this.$padding+Math.round(d.column*this.characterWidth),f=d.row*this.lineHeight;return{pageX:c.left+e-this.scrollLeft,pageY:c.top+f-this.scrollTop}},this.visualizeFocus=function(){e.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){e.removeCssClass(this.container,"ace_focus")},this.showComposition=function(a){this.$composition||(this.$composition=e.createElement("div"),this.$composition.className="ace_composition",this.content.appendChild(this.$composition)),this.$composition.innerHTML=" ";var b=this.$cursorLayer.getPixelPosition(),c=this.$composition.style;c.top=b.top+"px",c.left=b.left+this.$padding+"px",c.height=this.lineHeight+"px",this.hideCursor()},this.setCompositionText=function(a){e.setInnerText(this.$composition,a)},this.hideComposition=function(){this.showCursor();if(!this.$composition)return;var a=this.$composition.style;a.top="-10000px",a.left="-10000px"},this._loadTheme=function(a,b){if(!h.get("packaged"))return b();var c=a.split("/").pop(),d=h.get("themePath")+"/theme-"+c+h.get("suffix");i.loadScript(d,b)},this.setTheme=function(b){function h(a){e.importCssString(a.cssText,a.cssClass,c.container.ownerDocument),c.$theme&&e.removeCssClass(c.container,c.$theme),c.$theme=a?a.cssClass:null,c.$theme&&e.addCssClass(c.container,c.$theme),a&&a.isDark?e.addCssClass(c.container,"ace_dark"):e.removeCssClass(c.container,"ace_dark"),c.$size&&(c.$size.width=0,c.onResize())}var c=this;this.$themeValue=b;if(!b||typeof b=="string"){var d=b||"ace/theme/textmate",f;try{f=a(d)}catch(g){}if(f)return h(f);c._loadTheme(d,function(){a([d],function(a){if(c.$themeValue!==b)return;h(a)})})}else h(b)},this.getTheme=function(){return this.$themeValue},this.setStyle=function(b){e.addCssClass(this.container,b)},this.unsetStyle=function(b){e.removeCssClass(this.container,b)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(r.prototype),b.VirtualRenderer=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=a("../lib/oop"),f=a("../lib/event_emitter").EventEmitter,g=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_gutter-layer",a.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$breakpoints=[],this.$annotations=[],this.$decorations=[]};(function(){e.implement(this,f),this.setSession=function(a){this.session=a},this.addGutterDecoration=function(a,b){this.$decorations[a]||(this.$decorations[a]=""),this.$decorations[a]+=" "+b},this.removeGutterDecoration=function(a,b){this.$decorations[a]=this.$decorations[a].replace(" "+b,"")},this.setBreakpoints=function(a){this.$breakpoints=a.concat()},this.setAnnotations=function(a){this.$annotations=[];for(var b in a)if(a.hasOwnProperty(b)){var c=a[b];if(!c)continue;var d=this.$annotations[b]={text:[]};for(var e=0;eh&&(e=g.end.row+1,g=this.session.getNextFoldLine(e,g),h=g?g.start.row:Infinity);if(e>f)break;var j=this.$annotations[e]||b;c.push("
",e+1);if(i){var k=i[e];k==null&&(k=i[e]=this.session.getFoldWidget(e)),k&&c.push("")}var l=this.session.getRowLength(e)-1;while(l--)c.push("
¦");c.push("
"),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";var m=this.element.offsetWidth;m!==this.gutterWidth&&(this.gutterWidth=m,this._emit("changeGutterWidth",m))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(a){a?d.addCssClass(this.element,"ace_folding-enabled"):d.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=a},this.getShowFoldWidgets=function(){return this.$showFoldWidgets}}).call(g.prototype),b.Gutter=g}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../range").Range,e=a("../lib/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!a)return;this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz+" start",a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c+" start",e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),j=this.$getTop(b.end.row,d),i=Math.round(b.end.column*d.characterWidth),a.push("
"),h=(b.end.row-b.start.row-1)*d.lineHeight;if(h<0)return;j=this.$getTop(b.start.row+1,d),a.push("
")},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
")}}).call(f.prototype),b.Marker=f}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/dom"),f=a("../lib/lang"),g=a("../lib/useragent"),h=a("../lib/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._emit("changeCharacterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=g.isIE||g.isOldGecko?function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="fixed",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}if(!this.element.offsetWidth)return null;var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0||i.height==0?null:i}:function(){if(!this.$measureNode){var a=this.$measureNode=e.createElement("div"),b=a.style;b.width=b.height="auto",b.left=b.top="-100px",b.visibility="hidden",b.position="fixed",b.overflow="visible",b.whiteSpace="nowrap",a.innerHTML="X";var c=this.element.parentNode;while(c&&!e.hasCssClass(c,"ace_editor"))c=c.parentNode;if(!c)return this.$measureNode=null;c.appendChild(a)}var d=this.$measureNode.getBoundingClientRect(),f={height:d.height,width:d.width};return f.width==0||f.height==0?null:f},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,!0)},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+(new Array(c)).join(" ")+""):b.push((new Array(c+1)).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=this.element.ownerDocument.createDocumentFragment(),f=b,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
"),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\u0000-\u0019\u00a0\u2000-\u200b\u2028\u2029\u3000])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,g=function(a,c,d,f,g){if(c)return(new Array(a.length+1)).join(" ");if(a=="&")return"&";if(a=="<")return"<";if(a==" "){var h=e.session.getScreenTabSize(b+f);return b+=h-1,e.$tabStrings[h]}if(a==" "){var i=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",j=e.showInvisibles?e.SPACE_CHAR:"";return b+=1,""+j+""}return d?""+e.SPACE_CHAR+"":(b+=1,""+a+"")},h=d.replace(f,g);if(!this.$textToken[c.type]){var i="ace_"+c.type.replace(/\./g," ace_"),j="";c.type=="fold"&&(j=" style='width:"+c.value.length*this.config.characterWidth+"px;' "),a.push("",h,"")}else a.push(h);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=0,j=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
");for(var k=0;k=h)i=j.$renderToken(a,i,l,m.substring(0,h-f)),m=m.substring(h-f),f=h,e||a.push("
","
"),g++,i=0,h=d[g]||Number.MAX_VALUE;m.length!=0&&(f+=m.length,i=j.$renderToken(a,i,l,m))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.cursors=[],this.cursor=this.addCursor()};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.addCursor=function(){var a=d.createElement("div"),b="ace_cursor";return this.isVisible||(b+=" ace_hidden"),this.overwrite&&(b+=" ace_overwrite"),a.className=b,this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1;for(var a=this.cursors.length;a--;)d.addCssClass(this.cursors[a],"ace_hidden");clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0;for(var a=this.cursors.length;a--;)d.removeCssClass(this.cursors[a],"ace_hidden");this.element.style.visibility="",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible)return;var a=this.cursors.length==1?this.cursor:this.element;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility=""},400)},1e3)},this.getPixelPosition=function(a,b){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(a),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a;if(this.session.selectionMarkerCount>0){var b=this.session.$selectionMarkers,c=0,d,e=0;for(var c=b.length;c--;){d=b[c];var f=this.getPixelPosition(d.cursor,!0),g=(this.cursors[e++]||this.addCursor()).style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px"}if(e>1)while(this.cursors.length>e)this.removeCursor()}else{var f=this.getPixelPosition(null,!0),g=this.cursor.style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px";while(this.cursors.length>1)this.removeCursor()}var h=this.session.getOverwrite();h!=this.overwrite&&this.$setOverite(h),this.$pixelPos=f,this.restartTimer()},this.$setOverite=function(a){this.overwrite=a;for(var b=this.cursors.length;b--;)a?d.addCssClass(this.cursors[b],"ace_overwrite"):d.removeCssClass(this.cursors[b],"ace_overwrite")},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(a.ownerDocument),this.element.style.width=(this.width||15)+5+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(a,b,c){"use strict";var d=a("./lib/event"),e=function(a,b){this.onRender=a,this.pending=!1,this.changes=0,this.window=b||window};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;d.nextTick(function(){b.pending=!1;var a;while(a=b.changes)b.changes=0,b.onRender(a)},this.window)}}}).call(e.prototype),b.RenderLoop=e}),ace.define("text!ace/css/editor.css",[],"\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n cursor: text;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n height: 100%;\n width: auto;\n cursor: default;\n z-index: 1000;\n}\n\n.ace_gutter_active_line {\n position: absolute;\n right: 0;\n width: 100%;\n}\n\n.ace_gutter.horscroll {\n box-shadow: 0px 0px 20px rgba(0,0,0,0.4);\n}\n\n.ace_gutter-cell {\n padding-left: 19px;\n padding-right: 6px;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n position: relative;\n min-width: 40px;\n text-align: right;\n pointer-events: auto;\n}\n\n.ace_text-layer {\n color: black;\n font: inherit !important;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_editor.multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n \n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n border-radius: 2px;\n \n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n cursor: move;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n\n margin: 0 -12px 1px 1px;\n display: inline-block;\n height: 14px;\n width: 11px;\n vertical-align: text-bottom;\n \n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat;\n background-position: center 5px;\n\n border-radius: 3px;\n}\n\n.ace_fold-widget.end {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n background-position: center 4px;\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n\n.ace_fold-widget.invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n -moz-transition: 0.5s opacity;\n -webkit-transition: 0.5s opacity;\n -o-transition: 0.5s opacity;\n -ms-transition: 0.5s opacity;\n transition: 0.5s opacity;\n opacity: 0;\n}\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n -moz-transition-duration: 0.05s;\n -webkit-transition-duration: 0.05s;\n -o-transition-duration: 0.05s;\n -ms-transition-duration: 0.05s;\n transition-duration: 0.05s;\n -moz-transition-delay: 0.2s;\n -webkit-transition-delay: 0.2s;\n -o-transition-delay: 0.2s;\n -ms-transition-delay: 0.2s;\n transition-delay: 0.2s; \n opacity:1;\n}\n"),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(a,b,c){function k(a,b,c){return j.$options.wrap=!0,j.$options.needle=b,j.$options.backwards=c==-1,j.find(a)}function n(a,b){return a.row==b.row&&a.column==b.column}function o(a){a.$onAddRange=a.$onAddRange.bind(a),a.$onRemoveRange=a.$onRemoveRange.bind(a),a.$onMultiSelect=a.$onMultiSelect.bind(a),a.$onSingleSelect=a.$onSingleSelect.bind(a),b.onSessionChange.call(a,a),a.on("changeSession",b.onSessionChange.bind(a)),a.on("mousedown",g),a.commands.addCommands(b.commands.defaultCommands),p(a)}function p(a){function e(){c&&(d.style.cursor="",c=!1)}var b=a.textInput.getElement(),c=!1,d=a.renderer.content;h.addListener(b,"keydown",function(a){a.keyCode==18&&!(a.ctrlKey||a.shiftKey||a.metaKey)?c||(d.style.cursor="crosshair",c=!0):c&&(d.style.cursor="")}),h.addListener(b,"keyup",e),h.addListener(b,"blur",e)}var d=a("./range_list").RangeList,e=a("./range").Range,f=a("./selection").Selection,g=a("./mouse/multi_select_handler").onMouseDown,h=a("./lib/event");b.commands=a("./commands/multi_select_commands");var i=a("./search").Search,j=new i,l=a("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(l.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(a,b){if(!a)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var c=this.toOrientedRange();if(a.intersects(c))return b||this.fromOrientedRange(a);this.rangeList.add(c),this.$onAddRange(c)}a.cursor||(a.cursor=a.end);var d=this.rangeList.add(a);return this.$onAddRange(a),d.length&&this.$onRemoveRange(d),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(a)},this.toSingleRange=function(a){a=a||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),a&&this.fromOrientedRange(a)},this.substractPoint=function(a){var b=this.rangeList.substractPoint(a);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var a=this.rangeList.merge();a.length?this.$onRemoveRange(a):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(a){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(a),this._emit("addRange",{range:a})},this.$onRemoveRange=function(a){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();a.push(b),this.rangeCount=0}for(var c=a.length;c--;){var d=this.ranges.indexOf(a[c]);this.ranges.splice(d,1)}this._emit("removeRange",{ranges:a}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new d,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var c=this.getRange(),d=c.start.row,f=c.end.row;if(d==f)return;var g=[],h=this.getLineRange(d,!0);h.start.column=c.start.column,g.push(h);for(var i=d+1;i1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),f=this.session.documentToScreenPosition(this.selectionAnchor),g=this.rectangularRangeBlock(d,f);g.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(a,b,c){var d=[],f=a.column0)p--;if(p>0){var q=0;while(d[q].isEmpty())q++}for(var r=p;r>=q;r--)d[r].isEmpty()&&d.splice(r,1)}return d}}.call(f.prototype);var m=a("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(a){a.cursor||(a.cursor=a.end);var b=this.getSelectionStyle();return a.marker=this.session.addMarker(a,"ace_selection",b),this.session.$selectionMarkers.push(a),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,a},this.removeSelectionMarker=function(a){if(!a.marker)return;this.session.removeMarker(a.marker);var b=this.session.$selectionMarkers.indexOf(a);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(a){var b=this.session.$selectionMarkers;for(var c=a.length;c--;){var d=a[c];if(!d.marker)continue;this.session.removeMarker(d.marker);var e=b.indexOf(d);e!=-1&&b.splice(e,1)}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(a){this.addSelectionMarker(a.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(a){this.removeSelectionMarkers(a.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(a){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("multiselect"),this.keyBinding.addKeyboardHandler(b.commands.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(a){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("multiselect"),this.keyBinding.removeKeyboardHandler(b.commands.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(a){var b=a.command,c=a.editor;b.multiSelectAction?b.multiSelectAction=="forEach"?c.forEachSelection(b,a.args):b.multiSelectAction=="single"?(c.exitMultiSelectMode(),b.exec(c,a.args||{})):b.multiSelectAction(c,a.args||{}):(b.exec(c,a.args||{}),c.multiSelect.addRange(c.multiSelect.toOrientedRange()),c.multiSelect.mergeOverlappingRanges()),a.preventDefault()},this.forEachSelection=function(a,b){if(this.inVirtualSelectionMode)return;var c=this.session,d=this.selection,e=d.rangeList,g=d._eventRegistry;d._eventRegistry={};var h=new f(c);this.inVirtualSelectionMode=!0;for(var i=e.ranges.length;i--;)h.fromOrientedRange(e.ranges[i]),this.selection=c.selection=h,a.exec(this,b||{}),h.toOrientedRange(e.ranges[i]);h.detach(),this.selection=c.selection=d,this.inVirtualSelectionMode=!1,d._eventRegistry=g,d.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var a="";if(this.inMultiSelectMode){var b=this.multiSelect.rangeList.ranges;a=[];for(var c=0;cc.length){this.commands.exec("insertstring",this,a);return}for(var d=c.length;d--;){var e=c[d];e.isEmpty()||this.session.remove(e),this.session.insert(e.start,b[d])}},this.findAll=function(a,b,c){b=b||{},b.needle=a||b.needle,this.$search.set(b);var d=this.$search.findAll(this.session);if(!d.length)return 0;this.$blockScrolling+=1;var e=this.multiSelect;c||e.toSingleRange(d[0]);for(var f=d.length;f--;)e.addRange(d[f],!0);return this.$blockScrolling-=1,d.length},this.selectMoreLines=function(a,b){var c=this.selection.toOrientedRange(),d=c.cursor==c.end,f=this.session.documentToScreenPosition(c.cursor);this.selection.$desiredColumn&&(f.column=this.selection.$desiredColumn);var g=this.session.screenToDocumentPosition(f.row+a,f.column);if(!c.isEmpty())var h=this.session.documentToScreenPosition(d?c.end:c.start),i=this.session.screenToDocumentPosition(h.row+a,h.column);else var i=g;if(d){var j=e.fromPoints(g,i);j.cursor=j.start}else{var j=e.fromPoints(i,g);j.cursor=j.end}j.desiredColumn=f.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(c);else if(b)var k=c.cursor;this.selection.addRange(j),k&&this.selection.substractPoint(k)},this.transposeSelections=function(a){var b=this.session,c=b.multiSelect,d=c.ranges;for(var e=d.length;e--;){var f=d[e];if(f.isEmpty()){var g=b.getWordRange(f.start.row,f.start.column);f.start.row=g.start.row,f.start.column=g.start.column,f.end.row=g.end.row,f.end.column=g.end.column}}c.mergeOverlappingRanges();var h=[];for(var e=d.length;e--;){var f=d[e];h.unshift(b.getTextRange(f))}a<0?h.unshift(h.pop()):h.push(h.shift());for(var e=d.length;e--;){var f=d[e],g=f.clone();b.replace(f,h[e]),f.start.row=g.start.row,f.start.column=g.start.column}},this.selectMore=function(a,b){var c=this.session,d=c.multiSelect,e=d.toOrientedRange();if(e.isEmpty()){var e=c.getWordRange(e.start.row,e.start.column);e.cursor=e.end,this.multiSelect.addRange(e)}var f=c.getTextRange(e),g=k(c,f,a);g&&(g.cursor=a==-1?g.start:g.end,this.multiSelect.addRange(g)),b&&this.multiSelect.substractPoint(e.cursor)}}).call(m.prototype),b.onSessionChange=function(a){var b=a.session;b.multiSelect||(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b.multiSelect;var c=a.oldSession;c&&(c.multiSelect&&c.multiSelect.editor==this&&(c.multiSelect.editor=null),b.multiSelect.removeEventListener("addRange",this.$onAddRange),b.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),b.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),b.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},b.MultiSelect=o}),ace.define("ace/range_list",["require","exports","module"],function(a,b,c){"use strict";var d=function(){this.ranges=[]};(function(){this.comparePoints=function(a,b){return a.row-b.row||a.column-b.column},this.pointIndex=function(a,b){var c=this.ranges;for(var d=b||0;d0)continue;return f==0?d:(f=this.comparePoints(a,e.start),f>=0?d:-d-1)}return-d-1},this.add=function(a){var b=this.pointIndex(a.start);b<0&&(b=-b-1);var c=this.pointIndex(a.end,b);return c<0?c=-c-1:c++,this.ranges.splice(b,c-b,a)},this.addList=function(a){var b=[];for(var c=a.length;c--;)b.push.call(b,this.add(a[c]));return b},this.substractPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges.splice(b,1)},this.merge=function(){var a=[],b=this.ranges,c=b[0],d;for(var e=1;e=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges[b]},this.clipRows=function(a,b){var c=this.ranges;if(c[0].start.row>b||c[c.length-1].start.rowe)break;l.start.row==e&&l.start.column>=c.column&&(l.start.column+=h,l.start.row+=g),l.end.row==e&&l.end.column>=c.column&&(l.end.column+=h,l.end.row+=g)}if(g!=0&&j=this.pos.column&&c.start.column<=this.pos.column+this.length+1){var f=c.start.column-this.pos.column;this.length+=e;if(!this.session.$fromUndo){if(b.action==="insertText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=this.pos.column&&b.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var a=0;a1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);return b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--,!!b})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(a,b,c){function p(a){try{return Object.defineProperty(a,"sentinel",{}),"sentinel"in a}catch(b){}}Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=g.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,h=c.apply(f,d.concat(g.call(arguments)));return h!==null&&Object(h)===h?h:f}return c.apply(b,d.concat(g.call(arguments)))};return e});var d=Function.prototype.call,e=Array.prototype,f=Object.prototype,g=e.slice,h=d.bind(f.toString),i=d.bind(f.hasOwnProperty),j,k,l,m,n;if(n=i(f,"__defineGetter__"))j=d.bind(f.__defineGetter__),k=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),m=d.bind(f.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return h(b)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(b){var c=G(this),d=arguments[1],e=0,f=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;while(e>>0,e=Array(d),f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=[],f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e=0,f;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);for(;e>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e,f=d-1;if(arguments.length>=2)e=arguments[1];else do{if(f in c){e=c[f--];break}if(--f<0)throw new TypeError}while(!0);do f in this&&(e=b.call(void 0,e,c[f],f,c));while(f--);return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=0;arguments.length>1&&(e=E(arguments[1])),e=e>=0?e:Math.max(0,d+e);for(;e>>0;if(!d)return-1;var e=d-1;arguments.length>1&&(e=Math.min(e,E(arguments[1]))),e=e>=0?e:d-Math.abs(e);for(;e>=0;e--)if(e in c&&b===c[e])return e;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||(b.constructor?b.constructor.prototype:f)});if(!Object.getOwnPropertyDescriptor){var o="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(b,c){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(o+b);if(!i(b,c))return;var d,e,g;d={enumerable:!0,configurable:!0};if(n){var h=b.__proto__;b.__proto__=f;var e=l(b,c),g=m(b,c);b.__proto__=h;if(e||g)return e&&(d.get=e),g&&(d.set=g),d}return d.value=b[c],d}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),Object.create||(Object.create=function(b,c){var d;if(b===null)d={__proto__:null};else{if(typeof b!="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");var e=function(){};e.prototype=b,d=new e,d.__proto__=b}return c!==void 0&&Object.defineProperties(d,c),d});if(Object.defineProperty){var q=p({}),r=typeof document=="undefined"||p(document.createElement("div"));if(!q||!r)var s=Object.defineProperty}if(!Object.defineProperty||s){var t="Property description must be an object: ",u="Object.defineProperty called on non-object: ",v="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(b,c,d){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(u+b);if(typeof d!="object"&&typeof d!="function"||d===null)throw new TypeError(t+d);if(s)try{return s.call(Object,b,c,d)}catch(e){}if(i(d,"value"))if(n&&(l(b,c)||m(b,c))){var g=b.__proto__;b.__proto__=f,delete b[c],b[c]=d.value,b.__proto__=g}else b[c]=d.value;else{if(!n)throw new TypeError(v);i(d,"get")&&j(b,c,d.get),i(d,"set")&&k(b,c,d.set)}return b}}Object.defineProperties||(Object.defineProperties=function(b,c){for(var d in c)i(c,d)&&Object.defineProperty(b,d,c[d]);return b}),Object.seal||(Object.seal=function(b){return b}),Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(w){Object.freeze=function(b){return function(c){return typeof c=="function"?c:b(c)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b}),Object.isSealed||(Object.isSealed=function(b){return!1}),Object.isFrozen||(Object.isFrozen=function(b){return!1}),Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)===b)throw new TypeError;var c="";while(i(b,c))c+="?";b[c]=!0;var d=i(b,c);return delete b[c],d});if(!Object.keys){var x=!0,y=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],z=y.length;for(var A in{toString:null})x=!1;Object.keys=function H(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var H=[];for(var b in a)i(a,b)&&H.push(b);if(x)for(var c=0,d=z;c9999?"+":"")+("00000"+Math.abs(e)).slice(0<=e&&e<=9999?-4:-6),c=b.length;while(c--)d=b[c],d<10&&(b[c]="0"+d);return e+"-"+b.slice(0,2).join("-")+"T"+b.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(b){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(a){var b=function e(b,c,d,f,g,h,i){var j=arguments.length;if(this instanceof a){var k=j==1&&String(b)===b?new a(e.parse(b)):j>=7?new a(b,c,d,f,g,h,i):j>=6?new a(b,c,d,f,g,h):j>=5?new a(b,c,d,f,g):j>=4?new a(b,c,d,f):j>=3?new a(b,c,d):j>=2?new a(b,c):j>=1?new a(b):new a;return k.constructor=e,k}return a.apply(this,arguments)},c=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var d in a)b[d]=a[d];return b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function(d){var e=c.exec(d);if(e){e.shift();for(var f=1;f<7;f++)e[f]=+(e[f]||(f<3?1:0)),f==1&&e[f]--;var g=+e.pop(),h=+e.pop(),i=e.pop(),j=0;if(i){if(h>23||g>59)return NaN;j=(h*60+g)*6e4*(i=="+"?-1:1)}var k=+e[0];return 0<=k&&k<=99?(e[0]=k+400,a.UTC.apply(this,e)+j-126227808e5):a.UTC.apply(this,e)+j}return a.parse.apply(this,arguments)},b}(Date));var B=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||B.trim()){B="["+B+"]";var C=new RegExp("^"+B+B+"*"),D=new RegExp(B+B+"*$");String.prototype.trim=function(){return String(this).replace(C,"").replace(D,"")}}var E=function(a){return a=+a,a!==a?a=0:a!==0&&a!==1/0&&a!==-Infinity&&(a=(a>0||-1)*Math.floor(Math.abs(a))),a},F="a"[0]!="a",G=function(a){if(a==null)throw new TypeError;return F&&typeof a=="string"&&a?a.split(""):Object(a)}}),ace.define("ace/lib/dom",["require","exports","module"],function(a,b,c){"use strict";var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}return d&&c.push(b),a.className=c.join(" "),d},b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.hasCssString=function(a,b){var c=0,d;b=b||document;if(b.createStyleSheet&&(d=b.styleSheets)){while(c5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isOldIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko||e.isOpera){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){return h=a.keyIdentifier||a.keyCode,g(c,a,a.keyCode)})}};if(window.postMessage){var h=1;b.nextTick=function(a,c){c=c||window;var d="zero-timeout-message-"+h;b.addListener(c,"message",function e(f){f.data==d&&(b.stopPropagation(f),b.removeListener(c,"message",e),a())}),c.postMessage(d,"*")}}else b.nextTick=function(a,b){b=b||window,window.setTimeout(a,0)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(a,b,c){"use strict";var d=a("./oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(var b in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[b].toUpperCase();a[c]=parseInt(b,10)}return d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS),a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),ace.define("ace/lib/oop",["require","exports","module"],function(a,b,c){"use strict",b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(a,b,c){"use strict";var d=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),e=navigator.userAgent;b.isWin=d=="win",b.isMac=d=="mac",b.isLinux=d=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=window.controllers&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(e.split("WebKit/")[1])||undefined,b.isChrome=parseFloat(e.split(" Chrome/")[1])||undefined,b.isAIR=e.indexOf("AdobeAIR")>=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(a,b,c){"use strict",a("./lib/fixoldbrowsers");var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/useragent"),g=a("./keyboard/textinput").TextInput,h=a("./mouse/mouse_handler").MouseHandler,i=a("./mouse/fold_handler").FoldHandler,j=a("./keyboard/keybinding").KeyBinding,k=a("./edit_session").EditSession,l=a("./search").Search,m=a("./range").Range,n=a("./lib/event_emitter").EventEmitter,o=a("./commands/command_manager").CommandManager,p=a("./commands/default_commands").commands,q=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.commands=new o(f.isMac?"mac":"win",p),this.textInput=new g(a.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new j(this),f.isIPad||(this.$mouseHandler=new h(this),new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session==a)return;if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:a,oldSession:b})},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(a){var b=a.data,c=b.range,d;c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"?d=c.end.row:d=Infinity,this.renderer.updateLines(c.start.row,d),this._emit("change",a),this.$cursorChange()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.$highlightActiveLine){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row);if(this.getSelectionStyle()!="line"||!this.selection.isMultiLine()){var d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";return this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a),a},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(a){this._emit("paste",a),this.insert(a)},this.insert=function(a){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace(" ",this.session.getTabString());if(!this.selection.isEmpty())d=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)==" "?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}i&&c.autoOutdent(h,b,d.row)},this.onTextInput=function(a){this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(a){this.$mouseHandler.setDragDelay(a)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(a){if(this.$selectionStyle==a)return;this.$selectionStyle=a,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:a})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine==a)return;this.$highlightActiveLine=a,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightGutterLine=!0,this.setHighlightGutterLine=function(a){if(this.$highlightGutterLine==a)return;this.renderer.setHighlightGutterLine(a)},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord==a)return;this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){if(this.getShowInvisibles()==a)return;this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.setShowFoldWidgets=function(a){var b=this.renderer.$gutterLayer;if(b.getShowFoldWidgets()==a)return;this.renderer.$gutterLayer.setShowFoldWidgets(a),this.$showFoldWidgets=a,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.setFadeFoldWidgets=function(a){this.renderer.setFadeFoldWidgets(a)},this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets()},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var c=this.session,d=c.getState(b.start.row),e=c.getMode().transformAction(d,"deletion",this,c,b);e&&(b=e)}this.session.remove(b),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b===0)return;var c=this.session.getLine(a.row),d,e;b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(a,b){var c=this.renderer,d=this.renderer.layerConfig,e=a*Math.floor(d.height/d.lineHeight);this.$blockScrolling++,b==1?this.selection.$moveSelection(function(){this.moveCursorBy(e,0)}):b==0&&(this.selection.moveCursorBy(e,0),this.selection.clearSelection()),this.$blockScrolling--;var f=c.scrollTop;c.scrollBy(0,e*d.lineHeight),b!=null&&c.scrollCursorIntoView(null,.5),c.animateScrolling(f)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b,c,d){this.renderer.scrollToLine(a,b,c,d)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(){var a=this.getCursorPosition(),b=this.session.findMatchingBracket(a);b||(a.column+=1,b=this.session.findMatchingBracket(a)),b||(a.column-=2,b=this.session.findMatchingBracket(a)),b&&(this.clearSelection(),this.moveCursorTo(b.row,b.column))},this.gotoLine=function(a,b,c){this.selection.clearSelection(),this.session.unfold({row:a-1,column:b||0}),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowFullyVisible(a-1)||this.scrollToLine(a-1,!0,c)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateFileStart=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session),d=0;return c?(this.$tryReplace(c,a)&&(d=1),c!==null&&(this.selection.setSelectionRange(c),this.renderer.scrollSelectionIntoView(c.start,c.end)),d):d},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session),d=0;if(!c.length)return d;this.$blockScrolling+=1;var e=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var f=c.length-1;f>=0;--f)this.$tryReplace(c[f],a)&&d++;return this.selection.setSelectionRange(e),this.$blockScrolling-=1,d},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a);return b=this.$search.replace(c,b),b!==null?(a.end=this.session.replace(a,b),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b,c){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find(!1,c)},this.findNext=function(a,b){a=a||{},this.$search.set(a),this.$find(!1,b)},this.findPrevious=function(a,b){a=a||{},this.$search.set(a),this.$find(!0,b)},this.$find=function(a,b){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var c=this.$search.find(this.session);if(c){this.$blockScrolling+=1,this.session.unfold(c),this.selection.setSelectionRange(c),this.$blockScrolling-=1;var d=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(c.start,c.end,.5),this.renderer.animateScrolling(d)}},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy()}}).call(q.prototype),b.Editor=q}),ace.define("ace/lib/lang",["require","exports","module"],function(a,b,c){"use strict",b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return(new Array(b+1)).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(var c=0,d=a.length;c1&&(d.charAt(0)==g?d=d.substr(1):d.charAt(d.length-1)==g&&(d=d.slice(0,-1))),d&&d!=g&&(j?b.onPaste(d):b.onTextInput(d));if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function v(){return document.activeElement===c}var c=f.createElement("textarea");e.isTouchPad&&c.setAttribute("x-palm-disable-auto-cap",!0),c.setAttribute("wrap","off"),c.style.left="-10000px",c.style.position="fixed",a.insertBefore(c,a.firstChild);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){if(e.isOldIE&&c.value.charCodeAt(0)>128)return;setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){if(!h)return;b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isOldIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);if((c.value.charCodeAt(0)|0)<129)return;h?q():p()})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),"onbeforecopy"in c&&typeof clipboardData!="undefined"?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event"],function(a,b,c){"use strict";var d=a("../lib/event"),e=a("./default_handlers").DefaultHandlers,f=a("./default_gutter_handler").GutterHandler,g=a("./mouse_event").MouseEvent,h=function(a){this.editor=a,new e(this),new f(this),d.addListener(a.container,"mousedown",function(b){return a.focus(),d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseEvent.bind(this,"mousedown")),d.addListener(b,"click",this.onMouseEvent.bind(this,"click")),d.addListener(b,"mousemove",this.onMouseMove.bind(this,"mousemove")),d.addMultiMouseDownListener(b,0,2,500,this.onMouseEvent.bind(this,"dblclick")),d.addMultiMouseDownListener(b,0,3,600,this.onMouseEvent.bind(this,"tripleclick")),d.addMultiMouseDownListener(b,0,4,600,this.onMouseEvent.bind(this,"quadclick")),d.addMouseWheelListener(a.container,this.onMouseWheel.bind(this,"mousewheel"));var c=a.renderer.$gutter;d.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),d.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),d.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),d.addListener(c,"mousemove",this.onMouseMove.bind(this,"gutter"))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.onMouseEvent=function(a,b){this.editor._emit(a,new g(b,this.editor))},this.$dragDelay=250,this.setDragDelay=function(a){this.$dragDelay=a},this.getDragDelay=function(){return this.$dragDelay},this.onMouseMove=function(a,b){var c=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!c||!c.length)return;this.editor._emit(a,new g(b,this.editor))},this.onMouseWheel=function(a,b){var c=new g(b,this.editor);c.speed=this.$scrollSpeed*2,c.wheelX=b.wheelX,c.wheelY=b.wheelY,this.editor._emit(a,c)},this.setState=function(a){this.state=a},this.captureMouse=function(a,b){b&&this.setState(b),this.x=a.x,this.y=a.y;var c=this.editor.renderer.$keepTextAreaAtCursor;this.editor.renderer.$keepTextAreaAtCursor=!1;var e=this,f=function(a){e.x=a.clientX,e.y=a.clientY},g=function(a){clearInterval(i),e[e.state+"End"]&&e[e.state+"End"](a),e.$clickSelection=null,e.editor.renderer.$keepTextAreaAtCursor=c,e.editor.renderer.$moveTextAreaToCursor()},h=function(){e[e.state]&&e[e.state]()};d.capture(this.editor.container,f,g);var i=setInterval(h,20);a.preventDefault()}}).call(h.prototype),b.MouseHandler=h}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/browser_focus"],function(a,b,c){function g(a){a.$clickSelection=null,a.browserFocus=new e;var b=a.editor;b.setDefaultHandler("mousedown",this.onMouseDown.bind(a)),b.setDefaultHandler("dblclick",this.onDoubleClick.bind(a)),b.setDefaultHandler("tripleclick",this.onTripleClick.bind(a)),b.setDefaultHandler("quadclick",this.onQuadClick.bind(a)),b.setDefaultHandler("mousewheel",this.onScroll.bind(a));var c=["select","startSelect","drag","dragEnd","dragWait","dragWaitEnd","startDrag"];c.forEach(function(b){a[b]=this[b]},this),a.selectByLines=this.extendSelectionBy.bind(a,"getLineRange"),a.selectByWords=this.extendSelectionBy.bind(a,"getWordRange")}function h(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))}"use strict";var d=a("../lib/dom"),e=a("../lib/browser_focus").BrowserFocus,f=5;(function(){this.onMouseDown=function(a){this.mousedownEvent=a;var b=a.inSelection(),c=a.getDocumentPosition(),d=this.editor,e=this;this.ev=a;var f=d.getSelectionRange(),g=f.isEmpty(),h=a.getButton();if(h!==0){g&&(d.moveCursorToPosition(c),d.selection.clearSelection()),this.moveTextarea=function(){d.textInput.onContextMenu({x:e.x,y:e.y})},this.moveTextareaEnd=d.textInput.onContextMenuClose,d.textInput.onContextMenu({x:this.x,y:this.y},g),this.captureMouse(a,"moveTextarea");return}if(b&&!d.isFocused()){d.focus();return}if(!b||this.$clickSelection||a.getShiftKey())this.startSelect(c);else if(b){var i=a.domEvent;i.ctrlKey||i.altKey?this.startDrag():(this.mousedownEvent.time=(new Date).getTime(),this.setState("dragWait"))}this.captureMouse(a)},this.startSelect=function(a){a=a||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(a):this.$clickSelection||(this.editor.moveCursorToPosition(a),this.editor.selection.clearSelection()),this.setState("select")},this.select=function(){var a,b=this.editor,c=b.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var d=this.$clickSelection.comparePoint(c);d==-1?a=this.$clickSelection.end:d==1?a=this.$clickSelection.start:(c=this.$clickSelection.end,a=this.$clickSelection.start),b.selection.setSelectionAnchor(a.row,a.column)}b.selection.selectToPosition(c),b.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(a){var b,c=this.editor,d=c.renderer.screenToTextCoordinates(this.x,this.y),e=c.selection[a](d.row,d.column);if(this.$clickSelection){var f=this.$clickSelection.comparePoint(e.start),g=this.$clickSelection.comparePoint(e.end);f==-1&&g<=0?(b=this.$clickSelection.end,d=e.start):g==1&&f>=0?(b=this.$clickSelection.start,d=e.end):f==-1&&g==1?(d=e.end,b=e.start):(d=this.$clickSelection.end,b=this.$clickSelection.start),c.selection.setSelectionAnchor(b.row,b.column)}c.selection.selectToPosition(d),c.renderer.scrollCursorIntoView()},this.startDrag=function(){var a=this.editor;this.setState("drag"),this.dragRange=a.getSelectionRange();var b=a.getSelectionStyle();this.dragSelectionMarker=a.session.addMarker(this.dragRange,"ace_selection",b),a.clearSelection(),d.addCssClass(a.container,"ace_dragging"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(a,b,c,d){if(c=="esc")return{command:this.command}},command:{exec:function(a){var b=a.$mouseHandler;b.dragCursor=null,b.dragEnd(),b.startSelect()}}}),a.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.dragWait=function(){var a=h(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),b=(new Date).getTime(),c=this.editor;a>f?this.startSelect():b-this.mousedownEvent.time>c.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(a){this.mousedownEvent.domEvent=a,this.startSelect()},this.drag=function(){var a=this.editor;this.dragCursor=a.renderer.screenToTextCoordinates(this.x,this.y),a.moveCursorToPosition(this.dragCursor),a.renderer.scrollCursorIntoView()},this.dragEnd=function(a){var b=this.editor,c=this.dragCursor,e=this.dragRange;d.removeCssClass(b.container,"ace_dragging"),b.session.removeMarker(this.dragSelectionMarker),b.keyBinding.removeKeyboardHandler(this.$dragKeybinding);if(!c)return;b.clearSelection();if(a&&(a.ctrlKey||a.altKey)){var f=b.session,g=e;g.end=f.insert(c,f.getTextRange(e)),g.start=c}else{if(e.contains(c.row,c.column))return;var g=b.moveText(e,c)}if(!g)return;b.selection.setSelectionRange(g)},this.onDoubleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByWords"),c.moveCursorToPosition(b),c.selection.selectWord(),this.$clickSelection=c.getSelectionRange()},this.onTripleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByLines"),c.moveCursorToPosition(b),c.selection.selectLine(),this.$clickSelection=c.getSelectionRange()},this.onQuadClick=function(a){var b=this.editor;b.selectAll(),this.$clickSelection=b.getSelectionRange(),this.setState("select")},this.onScroll=function(a){var b=this.editor,c=b.renderer.isScrollableBy(a.wheelX*a.speed,a.wheelY*a.speed);if(c)this.$passScrollEvent=!1;else{if(this.$passScrollEvent)return;if(!this.$scrollStopTimeout){var d=this;this.$scrollStopTimeout=setTimeout(function(){d.$passScrollEvent=!0,d.$scrollStopTimeout=null},200)}}return b.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed),a.preventDefault()}}).call(g.prototype),b.DefaultHandlers=g}),ace.define("ace/lib/browser_focus",["require","exports","module","ace/lib/oop","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./oop"),e=a("./event"),f=a("./event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){if(this._isFocused==a)return;a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus")}}).call(g.prototype),b.BrowserFocus=g}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(a,b,c){"use strict";var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var c=this._eventRegistry[a]||[],d=this._defaultHandlers[a];if(!c.length&&!d)return;b=b||{},b.type=a,b.stopPropagation||(b.stopPropagation=function(){this.propagationStopped=!0}),b.preventDefault||(b.preventDefault=function(){this.defaultPrevented=!0});for(var e=0;e=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}e.implement(this,h),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this)),this.bgTokenizer&&(this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];return}var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._emit("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.getTokenAt=function(a,b){var c=this.bgTokenizer.getTokens(a,a)[0].tokens,d,e=0;if(b==null)f=c.length-1,e=this.getLine(a).length;else for(var f=0;f=b)break}return d=c[f],d?(d.index=f,d.start=e-d.value.length,d):null},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=f.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?f.stringRepeat(" ",this.getTabSize()):" "},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){if(this.$useSoftTabs===a)return;this.$useSoftTabs=a},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){if(isNaN(a)||this.$tabSize===a)return;this.$modified=!0,this.$tabSize=a,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){if(this.$overwrite==a)return;this.$overwrite=a,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a+1,c),1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipColumnToRow=function(a,b){return b<0?0:Math.min(this.doc.getLine(a).length,b)},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$clipRangeToDocument=function(a){a.start.row<0?(a.start.row=0,a.start.column=0):a.start.column=this.$clipColumnToRow(a.start.row,a.start.column);var b=this.doc.getLength()-1;return a.end.row>b?(a.end.row=b,a.end.column=this.doc.getLine(b).length):a.end.column=this.$clipColumnToRow(a.end.row,a.end.column),a},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(var c=0;c0?(this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;return c&&(a=Math.min(c,a)),Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines?a.data.lines.length:f-e):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f),i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),e=this.$wrapData,g=this.$wrapLimit,h,j,k=a;b=Math.min(b,c.length-1);while(k<=b){j=this.getFoldLine(k,j);if(!j)h=this.$getDisplayTokens(f.stringTrimRight(c[k])),e[k]=this.$computeWrapSplits(h,g,d),k++;else{h=[],j.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,h.length),f[0]=i;for(var g=1;g=o)h.pop();e[j.start.row]=this.$computeWrapSplits(h,g,d),k=j.end.row+1}}};var b=1,c=2,i=3,l=4,n=9,o=10,p=11,q=12;this.$computeWrapSplits=function(a,b){function g(b){var d=a.slice(e,b),g=d.length;d.join("").replace(/12/g,function(){g-=1}).replace(/2/g,function(){g-=1}),f+=g,c.push(f),e=b}if(a.length==0)return[];var c=[],d=a.length,e=0,f=0;while(d-e>b){var h=e+b;if(a[h]>=o){while(a[h]>=o)h++;g(h);continue}if(a[h]==i||a[h]==l){for(h;h!=e-1;h--)if(a[h]==i)break;if(h>e){g(h);continue}h=e+b;for(h;hj&&a[h]j&&a[h]==n)h--;if(h>j){g(++h);continue}h=e+b,g(h)}return c},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;g39&&h<48||h>57&&h<64?e.push(n):h>=4352&&r(h)?e.push(b,c):e.push(b)}return e},this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=c+a.length*Math.max(this.getTabSize(),2)),c=c||0;var d,e;for(e=0;e=4352&&r(d)?c+=2:c+=1;if(c>b)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){var b=this.screenToDocumentPosition(a,Number.MAX_VALUE);return this.documentToScreenColumn(b.row,b.column)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g=0,h=0,i=this.$rowCache;for(var j=0;j=a||d>=l)break;g+=h,d++,d>n&&(d=m.end.row+1,m=this.getNextFoldLine(d,m),n=m?m.start.row:Infinity),k&&i.push({docRow:d,screenRow:g})}if(m&&m.start.row<=d)c=this.getFoldDisplayLine(m),d=m.start.row;else{if(g+h<=a||d>l)return{row:l,column:this.getLine(l).length};c=this.getLine(d),m=null}if(this.$useWrapMode){var o=this.$wrapData[d];o&&(f=o[a-g],a>g&&o.length&&(e=o[a-g-1]||o[o.length-1],c=c.substring(e)))}return e+=this.$getStringScreenWidth(c,b)[1],this.$useWrapMode&&e>=f&&(e=f-1),m?m.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d;if(this.$useWrapMode){d=this.$wrapData;if(a>d.length-1)return{row:this.getScreenLength(),column:d.length==0?0:d[d.length-1].length-1}}var e=0,f=null,g=null;g=this.getFoldAt(a,b,1),g&&(a=g.start.row,b=g.start.column);var h,i=0,j=this.$rowCache;for(var k=0;k=n){h=m.end.row+1;if(h>a)break;m=this.getNextFoldLine(h,m),n=m?m.start.row:Infinity}else h=i+1;e+=this.getRowLength(i),i=h,l&&j.push({docRow:i,screenRow:e})}var o="";m&&i>=n?(o=this.getFoldDisplayLine(m,a,b),f=m.start.row):(o=this.getLine(a).substring(0,b),f=a);if(this.$useWrapMode){var p=d[f],q=0;while(o.length>=p[q])e++,q++;o=o.substring(p[q-1]||0,o.length)}return{row:e,column:this.$getStringScreenWidth(o)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null;if(!this.$useWrapMode){a=this.getLength();var c=this.$foldData;for(var d=0;dg&&(f=b.end.row+1,b=this.$foldData[d++],g=b?b.start.row:Infinity)}return a}}).call(n.prototype),a("./edit_session/folding").Folding.call(n.prototype),a("./edit_session/bracket_match").BracketMatch.call(n.prototype),b.EditSession=n}),ace.define("ace/config",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}"no use strict";var d=a("./lib/lang"),e=function(){return this}(),f={packaged:!1,workerPath:"",modePath:"",themePath:"",suffix:".js"};b.get=function(a){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);return f[a]},b.set=function(a,b){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);f[a]=b},b.all=function(){return d.copyObject(f)},b.init=function(){f.packaged=a.packaged||c.packaged||e.define&&define.packaged;if(!e.document)return"";var d={},h="",i,j=document.getElementsByTagName("script");for(var k=0;kb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.anchor,b=this.lead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$desiredColumn=null},this.$moveSelection=function(a){var b=this.lead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(a,b){if(typeof b=="undefined"){var c=a||this.lead;a=c.row,b=c.column}return this.session.getWordRange(a,b)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var a=this.getCursor(),b=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(b)},this.getLineRange=function(a,b){var c=typeof a=="number"?a:this.lead.row,d,e=this.session.getFoldLine(c);return e?(c=e.start.row,d=e.end.row):d=c,b?new g(c,0,d,this.session.getLine(d).length):new g(c,0,d+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row=c.length){this.moveCursorTo(a,c.length),this.moveCursorRight(),a0&&this.moveCursorWordLeft();return}if(g=this.session.tokenRe.exec(f))b-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.$shortWordEndIndex=function(a){var b,c=0,d,e=/\s/,f=this.session.tokenRe;f.lastIndex=0;if(b=this.session.tokenRe.exec(a))c=this.session.tokenRe.lastIndex;else{while((d=a[c])&&e.test(d))c++;if(c<=1){f.lastIndex=0;while((d=a[c])&&!f.test(d)){f.lastIndex=0,c++;if(e.test(d)){if(c>2){c--;break}while((d=a[c])&&e.test(d))c++;if(c>2)break}}}}return f.lastIndex=0,c},this.moveCursorShortWordRight=function(){var a=this.lead.row,b=this.lead.column,c=this.doc.getLine(a),d=c.substring(b),e=this.session.getFoldAt(a,b,1);if(e)return this.moveCursorTo(e.end.row,e.end.column);if(b==c.length)return this.moveCursorRight();var f=this.$shortWordEndIndex(d);this.moveCursorTo(a,b+f)},this.moveCursorShortWordLeft=function(){var a=this.lead.row,b=this.lead.column,c;if(c=this.session.getFoldAt(a,b,-1))return this.moveCursorTo(c.start.row,c.start.column);if(b==0)return this.moveCursorLeft();var d=this.session.getLine(a).substring(0,b),f=e.stringReverse(d),g=this.$shortWordEndIndex(f);return this.moveCursorTo(a,b-g)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.lead.row,this.lead.column);b===0&&(this.$desiredColumn?c.column=this.$desiredColumn:this.$desiredColumn=c.column);var d=this.session.screenToDocumentPosition(c.row+a,c.column);this.moveCursorTo(d.row,d.column+b,b===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,b,c){var d=this.session.getFoldAt(a,b,1);d&&(a=d.start.row,b=d.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(a,b),this.$keepDesiredColumnOnChange=!1,c||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,b,c){var d=this.session.screenToDocumentPosition(a,b);this.moveCursorTo(d.row,d.column,c)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var b=this.getRange();return a?(a.start.column=b.start.column,a.start.row=b.start.row,a.end.column=b.end.column,a.end.row=b.end.row):a=b,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a}}).call(h.prototype),b.Selection=h}),ace.define("ace/range",["require","exports","module"],function(a,b,c){"use strict";var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.isEqual=function(a){return this.start.row==a.start.row&&this.end.row==a.end.row&&this.start.column==a.start.column&&this.end.column==a.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;return b=this.compare(c.row,c.column),b==1?(b=this.compare(d.row,d.column),b==1?2:b==0?1:0):b==-1?-2:(b=this.compare(d.row,d.column),b==-1?-1:b==1?42:0)},this.comparePoint=function(a){return this.compare(a.row,a.column)},this.containsRange=function(a){return this.comparePoint(a.start)==0&&this.comparePoint(a.end)==0},this.intersects=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)||this.isStart(a,b)?!1:!0:!1},this.insideStart=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)?!1:!0:!1},this.insideEnd=function(a,b){return this.compare(a,b)==0?this.isStart(a,b)?!1:!0:!1},this.compare=function(a,b){return!this.isMultiLine()&&a===this.start.row?bthis.end.column?1:0:athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)},this.clearSelectionHighlight=function(a){if(!a.session.$selectionOccurrences)return;a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[]},this.createModeDelegates=function(a){if(!this.$embeds)return;this.$modes={};for(var b=0;b1&&e[i].token.length!==j-1)throw new Error("Matching groups and length of the token array don't match in rule #"+i+" of state "+c);h[g]={rule:i,len:j},g+=j,f.push(k)}this.regExps[c]=new RegExp("(?:("+f.join(")|(")+")|(.))",b)}};(function(){this.getLineTokens=function(a,b){var c=b,d=this.rules[c],e=this.matchMappings[c],f=this.regExps[c];f.lastIndex=0;var g,h=[],i=0,j={type:null,value:""};while(g=f.exec(a)){var k="text",l=null,m=[g[0]];for(var n=0;n1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token,l.next&&(c=l.next,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length),a},this.insert=function(a,b){if(!b||b.length===0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];return a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||"")),a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};return this._emit("change",{data:e}),d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};return this._emit("change",{data:d}),c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};return this._emit("change",{data:e}),d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b==c)return;var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};return this._emit("change",{data:i}),d.start},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};return this._emit("change",{data:e}),d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._emit("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&c.start.row!=this.row)return;if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0),c}}).call(f.prototype)}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!c.running)return;var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._emit("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc||isNaN(a)||isNaN(b))return[{state:"start",tokens:[]}];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(a,b,c){function h(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d=a)return e}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){return this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),a},this.addFold=function(a,b){var c=this.$foldData,d=!1,g;a instanceof f?g=a:g=new f(b,a),this.$clipRangeToDocument(g.range);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1),m=this.getFoldAt(j,k,-1);if(l&&m==l)return l.addSubFold(g);if(l&&!l.range.isStart(h,i)||m&&!m.range.isEnd(j,k))throw"A fold can't intersect already existing fold"+g.range+l.range;var n=this.getFoldsInRange(g.range);n.length>0&&(this.removeFolds(n),g.subFolds=n);for(var o=0;othis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=this.$rowTokens.length){this.$row+=1;if(this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row,this.$row)[0].tokens,this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var a=this.$rowTokens,b=this.$tokenIndex,c=a[b].start;if(c!==undefined)return c;c=0;while(b>0)b-=1,c+=a[b].value.length;return c}}).call(d.prototype),b.TokenIterator=d}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator"],function(a,b,c){function e(){this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;var c=b.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("rparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn()-2,j=g.value;for(;;){while(i>=0){var k=j.charAt(i);if(k==c){e-=1;if(e==0)return{row:f.getCurrentTokenRow(),column:i+f.getCurrentTokenColumn()}}else k==a&&(e+=1);i-=1}do g=f.stepBackward();while(g&&!h.test(g.type));if(g==null)break;j=g.value,i=j.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("lparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn();for(;;){var j=g.value,k=j.length;while(i=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);return b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column)),f}var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"start":"end"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h){if(!i)return;b=e,g=f,j=!0}b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"end":"start"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/useragent"),h=a("./config"),i=a("./lib/net"),j=a("./layer/gutter").Gutter,k=a("./layer/marker").Marker,l=a("./layer/text").Text,m=a("./layer/cursor").Cursor,n=a("./scrollbar").ScrollBar,o=a("./renderloop").RenderLoop,p=a("./lib/event_emitter").EventEmitter,q=a("text!./css/editor.css");e.importCssString(q,"ace_editor");var r=function(a,b){var c=this;this.container=a,this.$keepTextAreaAtCursor=!g.isIE,e.addCssClass(a,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.setHighlightGutterLine(!0),this.$gutterLayer=new j(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,!0)),this.setFadeFoldWidgets(!0),this.$markerBack=new k(this.content);var d=this.$textLayer=new l(this.content);this.canvas=d.element,this.$markerFront=new k(this.content),this.characterWidth=d.getCharacterWidth(),this.lineHeight=d.getLineHeight(),this.$cursorLayer=new m(this.content),this.$cursorPadding=8,this.$horizScroll=!1,this.$horizScrollAlwaysVisible=!1,this.$animatedScroll=!1,this.scrollBar=new n(a),this.scrollBar.addEventListener("scroll",function(a){c.$inScrollAnimation||c.session.setScrollTop(a.data)}),this.scrollTop=0,this.scrollLeft=0,f.addListener(this.scroller,"scroll",function(){var a=c.scroller.scrollLeft;c.scrollLeft=a,c.session.setScrollLeft(a),c.scroller.className=a==0?"ace_scroller":"ace_scroller horscroll"}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){c.characterWidth=d.getCharacterWidth(),c.lineHeight=d.getLineHeight(),c.$updatePrintMargin(),c.onResize(!0),c.$loop.schedule(c.CHANGE_FULL)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,d.implement(this,p),this.setSession=function(a){this.session=a,this.scroller.className="ace_scroller",this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowthis.layerConfig.height)return;b+=(this.showGutter?this.$gutterLayer.gutterWidth:0)-this.scrollLeft;var c=this.container.getBoundingClientRect();this.textarea.style.left=c.left+b+"px",this.textarea.style.top=c.top+a+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var a=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+a},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(a){this.$padding=a,this.$textLayer.setPadding(a),this.$cursorLayer.setPadding(a),this.$markerFront.setPadding(a),this.$markerBack.setPadding(a),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible},this.setHScrollBarAlwaysVisible=function(a){this.$horizScrollAlwaysVisible!=a&&(this.$horizScrollAlwaysVisible=a,(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL))},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(a){if(!a||!this.session||!this.container.offsetWidth)return;(a&this.CHANGE_FULL||a&this.CHANGE_SIZE||a&this.CHANGE_TEXT||a&this.CHANGE_LINES||a&this.CHANGE_SCROLL)&&this.$computeLayerConfig();if(a&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var b=this.scroller.scrollLeft;this.scrollLeft=b,this.session.setScrollLeft(b)}if(a&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}if(a&this.CHANGE_SCROLL){this.$updateScrollBar(),a&this.CHANGE_TEXT||a&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}a&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_LINES?this.$updateLines()&&(this.$updateScrollBar(),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_GUTTER&&this.showGutter&&this.$gutterLayer.update(this.layerConfig),a&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),a&this.CHANGE_SIZE&&this.$updateScrollBar()},this.$computeLayerConfig=function(){var a=this.session,b=this.scrollTop%this.lineHeight,c=this.$size.scrollerHeight+this.lineHeight,d=this.$getLongestLine(),e=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-d<0,f=this.$horizScroll!==e;this.$horizScroll=e,f&&(this.scroller.style.overflowX=e?"scroll":"hidden",e||this.session.setScrollLeft(0));var g=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,g-this.$size.scrollerHeight)));var h=Math.ceil(c/this.lineHeight)-1,i=Math.max(0,Math.round((this.scrollTop-b)/this.lineHeight)),j=i+h,k,l,m={lineHeight:this.lineHeight};i=a.screenToDocumentRow(i,0);var n=a.getFoldLine(i);n&&(i=n.start.row),k=a.documentToScreenRow(i,0),l=a.getRowHeight(m,i),j=Math.min(a.screenToDocumentRow(j,0),a.getLength()-1),c=this.$size.scrollerHeight+a.getRowHeight(m,j)+l,b=this.scrollTop-k*this.lineHeight,this.layerConfig={width:d,padding:this.$padding,firstRow:i,firstRowScreen:k,lastRow:j,lineHeight:this.lineHeight,characterWidth:this.characterWidth,minHeight:c,maxHeight:g,offset:b,height:this.$size.scrollerHeight},this.$gutter.style.marginTop=-b+"px",this.content.style.marginTop=-b+"px",this.content.style.width=d+2*this.$padding+"px",this.content.style.height=c+"px",f&&this.onResize(!0)},this.$updateLines=function(){var a=this.$changedLines.firstRow,b=this.$changedLines.lastRow;this.$changedLines=null;var c=this.layerConfig;if(c.width!=this.$getLongestLine())return this.$textLayer.update(c);if(a>c.lastRow+1)return;if(be?(b&&(e-=b*this.$size.scrollerHeight),this.session.setScrollTop(e)):this.scrollTop+this.$size.scrollerHeightd?(d0)return!0;if(b>0&&this.session.getScrollTop()+this.$size.scrollerHeight0?1:-1}},this.screenToTextCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=Math.round((a+this.scrollLeft-c.left-this.$padding)/this.characterWidth),e=Math.floor((b+this.scrollTop-c.top)/this.lineHeight);return this.session.screenToDocumentPosition(e,Math.max(d,0))},this.textToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=this.session.documentToScreenPosition(a,b),e=this.$padding+Math.round(d.column*this.characterWidth),f=d.row*this.lineHeight;return{pageX:c.left+e-this.scrollLeft,pageY:c.top+f-this.scrollTop}},this.visualizeFocus=function(){e.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){e.removeCssClass(this.container,"ace_focus")},this.showComposition=function(a){this.$composition||(this.$composition=e.createElement("div"),this.$composition.className="ace_composition",this.content.appendChild(this.$composition)),this.$composition.innerHTML=" ";var b=this.$cursorLayer.getPixelPosition(),c=this.$composition.style;c.top=b.top+"px",c.left=b.left+this.$padding+"px",c.height=this.lineHeight+"px",this.hideCursor()},this.setCompositionText=function(a){e.setInnerText(this.$composition,a)},this.hideComposition=function(){this.showCursor();if(!this.$composition)return;var a=this.$composition.style;a.top="-10000px",a.left="-10000px"},this._loadTheme=function(a,b){if(!h.get("packaged"))return b();var c=a.split("/").pop(),d=h.get("themePath")+"/theme-"+c+h.get("suffix");i.loadScript(d,b)},this.setTheme=function(b){function h(a){e.importCssString(a.cssText,a.cssClass,c.container.ownerDocument),c.$theme&&e.removeCssClass(c.container,c.$theme),c.$theme=a?a.cssClass:null,c.$theme&&e.addCssClass(c.container,c.$theme),a&&a.isDark?e.addCssClass(c.container,"ace_dark"):e.removeCssClass(c.container,"ace_dark"),c.$size&&(c.$size.width=0,c.onResize())}var c=this;this.$themeValue=b;if(!b||typeof b=="string"){var d=b||"ace/theme/textmate",f;try{f=a(d)}catch(g){}if(f)return h(f);c._loadTheme(d,function(){a([d],function(a){if(c.$themeValue!==b)return;h(a)})})}else h(b)},this.getTheme=function(){return this.$themeValue},this.setStyle=function(b){e.addCssClass(this.container,b)},this.unsetStyle=function(b){e.removeCssClass(this.container,b)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(r.prototype),b.VirtualRenderer=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=a("../lib/oop"),f=a("../lib/event_emitter").EventEmitter,g=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_gutter-layer",a.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$breakpoints=[],this.$annotations=[],this.$decorations=[]};(function(){e.implement(this,f),this.setSession=function(a){this.session=a},this.addGutterDecoration=function(a,b){this.$decorations[a]||(this.$decorations[a]=""),this.$decorations[a]+=" "+b},this.removeGutterDecoration=function(a,b){this.$decorations[a]=this.$decorations[a].replace(" "+b,"")},this.setBreakpoints=function(a){this.$breakpoints=a.concat()},this.setAnnotations=function(a){this.$annotations=[];for(var b in a)if(a.hasOwnProperty(b)){var c=a[b];if(!c)continue;var d=this.$annotations[b]={text:[]};for(var e=0;eh&&(e=g.end.row+1,g=this.session.getNextFoldLine(e,g),h=g?g.start.row:Infinity);if(e>f)break;var j=this.$annotations[e]||b;c.push("
",e+1);if(i){var k=i[e];k==null&&(k=i[e]=this.session.getFoldWidget(e)),k&&c.push("")}var l=this.session.getRowLength(e)-1;while(l--)c.push("
¦");c.push("
"),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";var m=this.element.offsetWidth;m!==this.gutterWidth&&(this.gutterWidth=m,this._emit("changeGutterWidth",m))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(a){a?d.addCssClass(this.element,"ace_folding-enabled"):d.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=a},this.getShowFoldWidgets=function(){return this.$showFoldWidgets}}).call(g.prototype),b.Gutter=g}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../range").Range,e=a("../lib/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!a)return;this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz+" start",a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c+" start",e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),j=this.$getTop(b.end.row,d),i=Math.round(b.end.column*d.characterWidth),a.push("
"),h=(b.end.row-b.start.row-1)*d.lineHeight;if(h<0)return;j=this.$getTop(b.start.row+1,d),a.push("
")},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
")}}).call(f.prototype),b.Marker=f}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/dom"),f=a("../lib/lang"),g=a("../lib/useragent"),h=a("../lib/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._emit("changeCharacterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=g.isIE||g.isOldGecko?function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="fixed",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}if(!this.element.offsetWidth)return null;var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0||i.height==0?null:i}:function(){if(!this.$measureNode){var a=this.$measureNode=e.createElement("div"),b=a.style;b.width=b.height="auto",b.left=b.top="-100px",b.visibility="hidden",b.position="fixed",b.overflow="visible",b.whiteSpace="nowrap",a.innerHTML="X";var c=this.element.parentNode;while(c&&!e.hasCssClass(c,"ace_editor"))c=c.parentNode;if(!c)return this.$measureNode=null;c.appendChild(a)}var d=this.$measureNode.getBoundingClientRect(),f={height:d.height,width:d.width};return f.width==0||f.height==0?null:f},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,!0)},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+(new Array(c)).join(" ")+""):b.push((new Array(c+1)).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=this.element.ownerDocument.createDocumentFragment(),f=b,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
"),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\u0000-\u0019\u00a0\u2000-\u200b\u2028\u2029\u3000])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,g=function(a,c,d,f,g){if(c)return(new Array(a.length+1)).join(" ");if(a=="&")return"&";if(a=="<")return"<";if(a==" "){var h=e.session.getScreenTabSize(b+f);return b+=h-1,e.$tabStrings[h]}if(a==" "){var i=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",j=e.showInvisibles?e.SPACE_CHAR:"";return b+=1,""+j+""}return d?""+e.SPACE_CHAR+"":(b+=1,""+a+"")},h=d.replace(f,g);if(!this.$textToken[c.type]){var i="ace_"+c.type.replace(/\./g," ace_"),j="";c.type=="fold"&&(j=" style='width:"+c.value.length*this.config.characterWidth+"px;' "),a.push("",h,"")}else a.push(h);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=0,j=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
");for(var k=0;k=h)i=j.$renderToken(a,i,l,m.substring(0,h-f)),m=m.substring(h-f),f=h,e||a.push("
","
"),g++,i=0,h=d[g]||Number.MAX_VALUE;m.length!=0&&(f+=m.length,i=j.$renderToken(a,i,l,m))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.cursors=[],this.cursor=this.addCursor()};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.addCursor=function(){var a=d.createElement("div"),b="ace_cursor";return this.isVisible||(b+=" ace_hidden"),this.overwrite&&(b+=" ace_overwrite"),a.className=b,this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1;for(var a=this.cursors.length;a--;)d.addCssClass(this.cursors[a],"ace_hidden");clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0;for(var a=this.cursors.length;a--;)d.removeCssClass(this.cursors[a],"ace_hidden");this.element.style.visibility="",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible)return;var a=this.cursors.length==1?this.cursor:this.element;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility=""},400)},1e3)},this.getPixelPosition=function(a,b){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(a),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a;if(this.session.selectionMarkerCount>0){var b=this.session.$selectionMarkers,c=0,d,e=0;for(var c=b.length;c--;){d=b[c];var f=this.getPixelPosition(d.cursor,!0),g=(this.cursors[e++]||this.addCursor()).style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px"}if(e>1)while(this.cursors.length>e)this.removeCursor()}else{var f=this.getPixelPosition(null,!0),g=this.cursor.style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px";while(this.cursors.length>1)this.removeCursor()}var h=this.session.getOverwrite();h!=this.overwrite&&this.$setOverite(h),this.$pixelPos=f,this.restartTimer()},this.$setOverite=function(a){this.overwrite=a;for(var b=this.cursors.length;b--;)a?d.addCssClass(this.cursors[b],"ace_overwrite"):d.removeCssClass(this.cursors[b],"ace_overwrite")},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(a.ownerDocument),this.element.style.width=(this.width||15)+5+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(a,b,c){"use strict";var d=a("./lib/event"),e=function(a,b){this.onRender=a,this.pending=!1,this.changes=0,this.window=b||window};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;d.nextTick(function(){b.pending=!1;var a;while(a=b.changes)b.changes=0,b.onRender(a)},this.window)}}}).call(e.prototype),b.RenderLoop=e}),ace.define("text!ace/css/editor.css",[],"\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n cursor: text;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n height: 100%;\n width: auto;\n cursor: default;\n z-index: 1000;\n}\n\n.ace_gutter_active_line {\n position: absolute;\n right: 0;\n width: 100%;\n}\n\n.ace_gutter.horscroll {\n box-shadow: 0px 0px 20px rgba(0,0,0,0.4);\n}\n\n.ace_gutter-cell {\n padding-left: 19px;\n padding-right: 6px;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n position: relative;\n min-width: 40px;\n text-align: right;\n pointer-events: auto;\n}\n\n.ace_text-layer {\n color: black;\n font: inherit !important;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_editor.multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n \n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n border-radius: 2px;\n \n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n cursor: move;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n\n margin: 0 -12px 1px 1px;\n display: inline-block;\n height: 14px;\n width: 11px;\n vertical-align: text-bottom;\n \n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat;\n background-position: center 5px;\n\n border-radius: 3px;\n}\n\n.ace_fold-widget.end {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n background-position: center 4px;\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n\n.ace_fold-widget.invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n -moz-transition: 0.5s opacity;\n -webkit-transition: 0.5s opacity;\n -o-transition: 0.5s opacity;\n -ms-transition: 0.5s opacity;\n transition: 0.5s opacity;\n opacity: 0;\n}\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n -moz-transition-duration: 0.05s;\n -webkit-transition-duration: 0.05s;\n -o-transition-duration: 0.05s;\n -ms-transition-duration: 0.05s;\n transition-duration: 0.05s;\n -moz-transition-delay: 0.2s;\n -webkit-transition-delay: 0.2s;\n -o-transition-delay: 0.2s;\n -ms-transition-delay: 0.2s;\n transition-delay: 0.2s; \n opacity:1;\n}\n"),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(a,b,c){function k(a,b,c){return j.$options.wrap=!0,j.$options.needle=b,j.$options.backwards=c==-1,j.find(a)}function n(a,b){return a.row==b.row&&a.column==b.column}function o(a){a.$onAddRange=a.$onAddRange.bind(a),a.$onRemoveRange=a.$onRemoveRange.bind(a),a.$onMultiSelect=a.$onMultiSelect.bind(a),a.$onSingleSelect=a.$onSingleSelect.bind(a),b.onSessionChange.call(a,a),a.on("changeSession",b.onSessionChange.bind(a)),a.on("mousedown",g),a.commands.addCommands(b.commands.defaultCommands),p(a)}function p(a){function e(){c&&(d.style.cursor="",c=!1)}var b=a.textInput.getElement(),c=!1,d=a.renderer.content;h.addListener(b,"keydown",function(a){a.keyCode==18&&!(a.ctrlKey||a.shiftKey||a.metaKey)?c||(d.style.cursor="crosshair",c=!0):c&&(d.style.cursor="")}),h.addListener(b,"keyup",e),h.addListener(b,"blur",e)}var d=a("./range_list").RangeList,e=a("./range").Range,f=a("./selection").Selection,g=a("./mouse/multi_select_handler").onMouseDown,h=a("./lib/event");b.commands=a("./commands/multi_select_commands");var i=a("./search").Search,j=new i,l=a("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(l.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(a,b){if(!a)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var c=this.toOrientedRange();if(a.intersects(c))return b||this.fromOrientedRange(a);this.rangeList.add(c),this.$onAddRange(c)}a.cursor||(a.cursor=a.end);var d=this.rangeList.add(a);return this.$onAddRange(a),d.length&&this.$onRemoveRange(d),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(a)},this.toSingleRange=function(a){a=a||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),a&&this.fromOrientedRange(a)},this.substractPoint=function(a){var b=this.rangeList.substractPoint(a);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var a=this.rangeList.merge();a.length?this.$onRemoveRange(a):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(a){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(a),this._emit("addRange",{range:a})},this.$onRemoveRange=function(a){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();a.push(b),this.rangeCount=0}for(var c=a.length;c--;){var d=this.ranges.indexOf(a[c]);this.ranges.splice(d,1)}this._emit("removeRange",{ranges:a}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new d,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var c=this.getRange(),d=c.start.row,f=c.end.row;if(d==f)return;var g=[],h=this.getLineRange(d,!0);h.start.column=c.start.column,g.push(h);for(var i=d+1;i1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),f=this.session.documentToScreenPosition(this.selectionAnchor),g=this.rectangularRangeBlock(d,f);g.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(a,b,c){var d=[],f=a.column0)p--;if(p>0){var q=0;while(d[q].isEmpty())q++}for(var r=p;r>=q;r--)d[r].isEmpty()&&d.splice(r,1)}return d}}.call(f.prototype);var m=a("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(a){a.cursor||(a.cursor=a.end);var b=this.getSelectionStyle();return a.marker=this.session.addMarker(a,"ace_selection",b),this.session.$selectionMarkers.push(a),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,a},this.removeSelectionMarker=function(a){if(!a.marker)return;this.session.removeMarker(a.marker);var b=this.session.$selectionMarkers.indexOf(a);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(a){var b=this.session.$selectionMarkers;for(var c=a.length;c--;){var d=a[c];if(!d.marker)continue;this.session.removeMarker(d.marker);var e=b.indexOf(d);e!=-1&&b.splice(e,1)}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(a){this.addSelectionMarker(a.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(a){this.removeSelectionMarkers(a.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(a){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("multiselect"),this.keyBinding.addKeyboardHandler(b.commands.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(a){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("multiselect"),this.keyBinding.removeKeyboardHandler(b.commands.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(a){var b=a.command,c=a.editor;b.multiSelectAction?b.multiSelectAction=="forEach"?c.forEachSelection(b,a.args):b.multiSelectAction=="single"?(c.exitMultiSelectMode(),b.exec(c,a.args||{})):b.multiSelectAction(c,a.args||{}):(b.exec(c,a.args||{}),c.multiSelect.addRange(c.multiSelect.toOrientedRange()),c.multiSelect.mergeOverlappingRanges()),a.preventDefault()},this.forEachSelection=function(a,b){if(this.inVirtualSelectionMode)return;var c=this.session,d=this.selection,e=d.rangeList,g=d._eventRegistry;d._eventRegistry={};var h=new f(c);this.inVirtualSelectionMode=!0;for(var i=e.ranges.length;i--;)h.fromOrientedRange(e.ranges[i]),this.selection=c.selection=h,a.exec(this,b||{}),h.toOrientedRange(e.ranges[i]);h.detach(),this.selection=c.selection=d,this.inVirtualSelectionMode=!1,d._eventRegistry=g,d.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var a="";if(this.inMultiSelectMode){var b=this.multiSelect.rangeList.ranges;a=[];for(var c=0;cc.length){this.commands.exec("insertstring",this,a);return}for(var d=c.length;d--;){var e=c[d];e.isEmpty()||this.session.remove(e),this.session.insert(e.start,b[d])}},this.findAll=function(a,b,c){b=b||{},b.needle=a||b.needle,this.$search.set(b);var d=this.$search.findAll(this.session);if(!d.length)return 0;this.$blockScrolling+=1;var e=this.multiSelect;c||e.toSingleRange(d[0]);for(var f=d.length;f--;)e.addRange(d[f],!0);return this.$blockScrolling-=1,d.length},this.selectMoreLines=function(a,b){var c=this.selection.toOrientedRange(),d=c.cursor==c.end,f=this.session.documentToScreenPosition(c.cursor);this.selection.$desiredColumn&&(f.column=this.selection.$desiredColumn);var g=this.session.screenToDocumentPosition(f.row+a,f.column);if(!c.isEmpty())var h=this.session.documentToScreenPosition(d?c.end:c.start),i=this.session.screenToDocumentPosition(h.row+a,h.column);else var i=g;if(d){var j=e.fromPoints(g,i);j.cursor=j.start}else{var j=e.fromPoints(i,g);j.cursor=j.end}j.desiredColumn=f.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(c);else if(b)var k=c.cursor;this.selection.addRange(j),k&&this.selection.substractPoint(k)},this.transposeSelections=function(a){var b=this.session,c=b.multiSelect,d=c.ranges;for(var e=d.length;e--;){var f=d[e];if(f.isEmpty()){var g=b.getWordRange(f.start.row,f.start.column);f.start.row=g.start.row,f.start.column=g.start.column,f.end.row=g.end.row,f.end.column=g.end.column}}c.mergeOverlappingRanges();var h=[];for(var e=d.length;e--;){var f=d[e];h.unshift(b.getTextRange(f))}a<0?h.unshift(h.pop()):h.push(h.shift());for(var e=d.length;e--;){var f=d[e],g=f.clone();b.replace(f,h[e]),f.start.row=g.start.row,f.start.column=g.start.column}},this.selectMore=function(a,b){var c=this.session,d=c.multiSelect,e=d.toOrientedRange();if(e.isEmpty()){var e=c.getWordRange(e.start.row,e.start.column);e.cursor=e.end,this.multiSelect.addRange(e)}var f=c.getTextRange(e),g=k(c,f,a);g&&(g.cursor=a==-1?g.start:g.end,this.multiSelect.addRange(g)),b&&this.multiSelect.substractPoint(e.cursor)}}).call(m.prototype),b.onSessionChange=function(a){var b=a.session;b.multiSelect||(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b.multiSelect;var c=a.oldSession;c&&(c.multiSelect&&c.multiSelect.editor==this&&(c.multiSelect.editor=null),b.multiSelect.removeEventListener("addRange",this.$onAddRange),b.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),b.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),b.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},b.MultiSelect=o}),ace.define("ace/range_list",["require","exports","module"],function(a,b,c){"use strict";var d=function(){this.ranges=[]};(function(){this.comparePoints=function(a,b){return a.row-b.row||a.column-b.column},this.pointIndex=function(a,b){var c=this.ranges;for(var d=b||0;d0)continue;return f==0?d:(f=this.comparePoints(a,e.start),f>=0?d:-d-1)}return-d-1},this.add=function(a){var b=this.pointIndex(a.start);b<0&&(b=-b-1);var c=this.pointIndex(a.end,b);return c<0?c=-c-1:c++,this.ranges.splice(b,c-b,a)},this.addList=function(a){var b=[];for(var c=a.length;c--;)b.push.call(b,this.add(a[c]));return b},this.substractPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges.splice(b,1)},this.merge=function(){var a=[],b=this.ranges,c=b[0],d;for(var e=1;e=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges[b]},this.clipRows=function(a,b){var c=this.ranges;if(c[0].start.row>b||c[c.length-1].start.rowe)break;l.start.row==e&&l.start.column>=c.column&&(l.start.column+=h,l.start.row+=g),l.end.row==e&&l.end.column>=c.column&&(l.end.column+=h,l.end.row+=g)}if(g!=0&&j=0?g=a.nameToUrl("ace/worker/worker_sourcemint"):g=this.$normalizePath(a.nameToUrl("ace/worker/worker",null,"_")),this.$worker=new Worker(g);var h={};for(var i=0;i=this.pos.column&&c.start.column<=this.pos.column+this.length+1){var f=c.start.column-this.pos.column;this.length+=e;if(!this.session.$fromUndo){if(b.action==="insertText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=this.pos.column&&b.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var a=0;a= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/src/ace-uncompressed.js b/build/src/ace-uncompressed.js index 23e61918..0487834d 100644 --- a/build/src/ace-uncompressed.js +++ b/build/src/ace-uncompressed.js @@ -19106,7 +19106,14 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); } else { - var workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } this.$worker = new Worker(workerUrl); var tlns = {}; diff --git a/build/src/ace.js b/build/src/ace.js index b2aec369..af70bb9d 100644 --- a/build/src/ace.js +++ b/build/src/ace.js @@ -1,6 +1,15025 @@ -(function(){function g(a){if(typeof requirejs!="undefined"){var e=b.define;b.define=function(a,b,c){return typeof c!="function"?e.apply(this,arguments):e(a,b,function(a,d,e){return b[2]=="module"&&(e.packaged=!0),c.apply(this,arguments)})},b.define.packaged=!0;return}var f=function(a,b){return d("",a,b)};f.packaged=!0;var g=b;a&&(b[a]||(b[a]={}),g=b[a]),g.define&&(c.original=g.define),g.define=c,g.require&&(d.original=g.require),g.require=f}var a="",b=function(){return this}(),c=function(a,b,d){if(typeof a!="string"){c.original?c.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(d=b),c.modules||(c.modules={}),c.modules[a]=d},d=function(a,b,c){if(Object.prototype.toString.call(b)==="[object Array]"){var e=[];for(var g=0,h=b.length;g1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;ab.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);return b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--,!!b})}),define("ace/lib/es5-shim",["require","exports","module"],function(a,b,c){function p(a){try{return Object.defineProperty(a,"sentinel",{}),"sentinel"in a}catch(b){}}Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=g.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,h=c.apply(f,d.concat(g.call(arguments)));return h!==null&&Object(h)===h?h:f}return c.apply(b,d.concat(g.call(arguments)))};return e});var d=Function.prototype.call,e=Array.prototype,f=Object.prototype,g=e.slice,h=d.bind(f.toString),i=d.bind(f.hasOwnProperty),j,k,l,m,n;if(n=i(f,"__defineGetter__"))j=d.bind(f.__defineGetter__),k=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),m=d.bind(f.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return h(b)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(b){var c=G(this),d=arguments[1],e=0,f=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;while(e>>0,e=Array(d),f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=[],f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e=0,f;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);for(;e>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e,f=d-1;if(arguments.length>=2)e=arguments[1];else do{if(f in c){e=c[f--];break}if(--f<0)throw new TypeError}while(!0);do f in this&&(e=b.call(void 0,e,c[f],f,c));while(f--);return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=0;arguments.length>1&&(e=E(arguments[1])),e=e>=0?e:Math.max(0,d+e);for(;e>>0;if(!d)return-1;var e=d-1;arguments.length>1&&(e=Math.min(e,E(arguments[1]))),e=e>=0?e:d-Math.abs(e);for(;e>=0;e--)if(e in c&&b===c[e])return e;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||(b.constructor?b.constructor.prototype:f)});if(!Object.getOwnPropertyDescriptor){var o="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(b,c){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(o+b);if(!i(b,c))return;var d,e,g;d={enumerable:!0,configurable:!0};if(n){var h=b.__proto__;b.__proto__=f;var e=l(b,c),g=m(b,c);b.__proto__=h;if(e||g)return e&&(d.get=e),g&&(d.set=g),d}return d.value=b[c],d}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),Object.create||(Object.create=function(b,c){var d;if(b===null)d={__proto__:null};else{if(typeof b!="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");var e=function(){};e.prototype=b,d=new e,d.__proto__=b}return c!==void 0&&Object.defineProperties(d,c),d});if(Object.defineProperty){var q=p({}),r=typeof document=="undefined"||p(document.createElement("div"));if(!q||!r)var s=Object.defineProperty}if(!Object.defineProperty||s){var t="Property description must be an object: ",u="Object.defineProperty called on non-object: ",v="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(b,c,d){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(u+b);if(typeof d!="object"&&typeof d!="function"||d===null)throw new TypeError(t+d);if(s)try{return s.call(Object,b,c,d)}catch(e){}if(i(d,"value"))if(n&&(l(b,c)||m(b,c))){var g=b.__proto__;b.__proto__=f,delete b[c],b[c]=d.value,b.__proto__=g}else b[c]=d.value;else{if(!n)throw new TypeError(v);i(d,"get")&&j(b,c,d.get),i(d,"set")&&k(b,c,d.set)}return b}}Object.defineProperties||(Object.defineProperties=function(b,c){for(var d in c)i(c,d)&&Object.defineProperty(b,d,c[d]);return b}),Object.seal||(Object.seal=function(b){return b}),Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(w){Object.freeze=function(b){return function(c){return typeof c=="function"?c:b(c)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b}),Object.isSealed||(Object.isSealed=function(b){return!1}),Object.isFrozen||(Object.isFrozen=function(b){return!1}),Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)===b)throw new TypeError;var c="";while(i(b,c))c+="?";b[c]=!0;var d=i(b,c);return delete b[c],d});if(!Object.keys){var x=!0,y=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],z=y.length;for(var A in{toString:null})x=!1;Object.keys=function H(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var H=[];for(var b in a)i(a,b)&&H.push(b);if(x)for(var c=0,d=z;c9999?"+":"")+("00000"+Math.abs(e)).slice(0<=e&&e<=9999?-4:-6),c=b.length;while(c--)d=b[c],d<10&&(b[c]="0"+d);return e+"-"+b.slice(0,2).join("-")+"T"+b.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(b){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(a){var b=function e(b,c,d,f,g,h,i){var j=arguments.length;if(this instanceof a){var k=j==1&&String(b)===b?new a(e.parse(b)):j>=7?new a(b,c,d,f,g,h,i):j>=6?new a(b,c,d,f,g,h):j>=5?new a(b,c,d,f,g):j>=4?new a(b,c,d,f):j>=3?new a(b,c,d):j>=2?new a(b,c):j>=1?new a(b):new a;return k.constructor=e,k}return a.apply(this,arguments)},c=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var d in a)b[d]=a[d];return b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function(d){var e=c.exec(d);if(e){e.shift();for(var f=1;f<7;f++)e[f]=+(e[f]||(f<3?1:0)),f==1&&e[f]--;var g=+e.pop(),h=+e.pop(),i=e.pop(),j=0;if(i){if(h>23||g>59)return NaN;j=(h*60+g)*6e4*(i=="+"?-1:1)}var k=+e[0];return 0<=k&&k<=99?(e[0]=k+400,a.UTC.apply(this,e)+j-126227808e5):a.UTC.apply(this,e)+j}return a.parse.apply(this,arguments)},b}(Date));var B=" \n \f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||B.trim()){B="["+B+"]";var C=new RegExp("^"+B+B+"*"),D=new RegExp(B+B+"*$");String.prototype.trim=function(){return String(this).replace(C,"").replace(D,"")}}var E=function(a){return a=+a,a!==a?a=0:a!==0&&a!==1/0&&a!==-Infinity&&(a=(a>0||-1)*Math.floor(Math.abs(a))),a},F="a"[0]!="a",G=function(a){if(a==null)throw new TypeError;return F&&typeof a=="string"&&a?a.split(""):Object(a)}}),define("ace/lib/dom",["require","exports","module"],function(a,b,c){"use strict";var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}return d&&c.push(b),a.className=c.join(" "),d},b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.hasCssString=function(a,b){var c=0,d;b=b||document;if(b.createStyleSheet&&(d=b.styleSheets)){while(c5||Math.abs(a.clientY-j)>5)h=0;h==d&&(h=0,g(a));if(e)return b.preventDefault(a)};b.addListener(a,"mousedown",k),e.isOldIE&&b.addListener(a,"dblclick",k)},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko||e.isOpera){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){return h=a.keyIdentifier||a.keyCode,g(c,a,a.keyCode)})}};if(window.postMessage){var h=1;b.nextTick=function(a,c){c=c||window;var d="zero-timeout-message-"+h;b.addListener(c,"message",function e(f){f.data==d&&(b.stopPropagation(f),b.removeListener(c,"message",e),a())}),c.postMessage(d,"*")}}else b.nextTick=function(a,b){b=b||window,window.setTimeout(a,0)}}),define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(a,b,c){"use strict";var d=a("./oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(var b in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[b].toUpperCase();a[c]=parseInt(b,10)}return d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS),a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),define("ace/lib/oop",["require","exports","module"],function(a,b,c){"use strict",b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),define("ace/lib/useragent",["require","exports","module"],function(a,b,c){"use strict";var d=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),e=navigator.userAgent;b.isWin=d=="win",b.isMac=d=="mac",b.isLinux=d=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=window.controllers&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(e.split("WebKit/")[1])||undefined,b.isChrome=parseFloat(e.split(" Chrome/")[1])||undefined,b.isAIR=e.indexOf("AdobeAIR")>=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(a,b,c){"use strict",a("./lib/fixoldbrowsers");var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/useragent"),g=a("./keyboard/textinput").TextInput,h=a("./mouse/mouse_handler").MouseHandler,i=a("./mouse/fold_handler").FoldHandler,j=a("./keyboard/keybinding").KeyBinding,k=a("./edit_session").EditSession,l=a("./search").Search,m=a("./range").Range,n=a("./lib/event_emitter").EventEmitter,o=a("./commands/command_manager").CommandManager,p=a("./commands/default_commands").commands,q=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.commands=new o(f.isMac?"mac":"win",p),this.textInput=new g(a.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new j(this),f.isIPad||(this.$mouseHandler=new h(this),new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session==a)return;if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:a,oldSession:b})},this.getSession=function(){return this.session},this.getSelection=function(){return this.selection},this.resize=function(){this.renderer.onResize()},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(a){var b=a.data,c=b.range,d;c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"?d=c.end.row:d=Infinity,this.renderer.updateLines(c.start.row,d),this._emit("change",a),this.$cursorChange()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.$highlightActiveLine){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row);if(this.getSelectionStyle()!="line"||!this.selection.isMultiLine()){var d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}}},this.onSelectionChange=function(a){var b=this.getSession();b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";return this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a),a},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(a){this._emit("paste",a),this.insert(a)},this.insert=function(a){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace(" ",this.session.getTabString());if(!this.selection.isEmpty())d=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r0;++r)j.charAt(r)==" "?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}i&&c.autoOutdent(h,b,d.row)},this.onTextInput=function(a){this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(a){this.$mouseHandler.setDragDelay(a)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(a){if(this.$selectionStyle==a)return;this.$selectionStyle=a,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:a})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine==a)return;this.$highlightActiveLine=a,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightGutterLine=!0,this.setHighlightGutterLine=function(a){if(this.$highlightGutterLine==a)return;this.renderer.setHighlightGutterLine(a)},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord==a)return;this.$highlightSelectedWord=a,a?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){if(this.getShowInvisibles()==a)return;this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.setShowFoldWidgets=function(a){var b=this.renderer.$gutterLayer;if(b.getShowFoldWidgets()==a)return;this.renderer.$gutterLayer.setShowFoldWidgets(a),this.$showFoldWidgets=a,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.setFadeFoldWidgets=function(a){this.renderer.setFadeFoldWidgets(a)},this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets()},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var c=this.session,d=c.getState(b.start.row),e=c.getMode().transformAction(d,"deletion",this,c,b);e&&(b=e)}this.session.remove(b),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b===0)return;var c=this.session.getLine(a.row),d,e;b=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(a,b){var c=this.renderer,d=this.renderer.layerConfig,e=a*Math.floor(d.height/d.lineHeight);this.$blockScrolling++,b==1?this.selection.$moveSelection(function(){this.moveCursorBy(e,0)}):b==0&&(this.selection.moveCursorBy(e,0),this.selection.clearSelection()),this.$blockScrolling--;var f=c.scrollTop;c.scrollBy(0,e*d.lineHeight),b!=null&&c.scrollCursorIntoView(null,.5),c.animateScrolling(f)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b,c,d){this.renderer.scrollToLine(a,b,c,d)},this.centerSelection=function(){var a=this.getSelectionRange(),b=Math.floor(a.start.row+(a.end.row-a.start.row)/2);this.renderer.scrollToLine(b,!0)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(){var a=this.getCursorPosition(),b=this.session.findMatchingBracket(a);b||(a.column+=1,b=this.session.findMatchingBracket(a)),b||(a.column-=2,b=this.session.findMatchingBracket(a)),b&&(this.clearSelection(),this.moveCursorTo(b.row,b.column))},this.gotoLine=function(a,b,c){this.selection.clearSelection(),this.session.unfold({row:a-1,column:b||0}),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowFullyVisible(a-1)||this.scrollToLine(a-1,!0,c)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateFileStart=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session),d=0;return c?(this.$tryReplace(c,a)&&(d=1),c!==null&&(this.selection.setSelectionRange(c),this.renderer.scrollSelectionIntoView(c.start,c.end)),d):d},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session),d=0;if(!c.length)return d;this.$blockScrolling+=1;var e=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var f=c.length-1;f>=0;--f)this.$tryReplace(c[f],a)&&d++;return this.selection.setSelectionRange(e),this.$blockScrolling-=1,d},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a);return b=this.$search.replace(c,b),b!==null?(a.end=this.session.replace(a,b),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b,c){this.clearSelection(),b=b||{},b.needle=a,this.$search.set(b),this.$find(!1,c)},this.findNext=function(a,b){a=a||{},this.$search.set(a),this.$find(!1,b)},this.findPrevious=function(a,b){a=a||{},this.$search.set(a),this.$find(!0,b)},this.$find=function(a,b){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())}),typeof a!="undefined"&&this.$search.set({backwards:a});var c=this.$search.find(this.session);if(c){this.$blockScrolling+=1,this.session.unfold(c),this.selection.setSelectionRange(c),this.$blockScrolling-=1;var d=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(c.start,c.end,.5),this.renderer.animateScrolling(d)}},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy()}}).call(q.prototype),b.Editor=q}),define("ace/lib/lang",["require","exports","module"],function(a,b,c){"use strict",b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return(new Array(b+1)).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(var c=0,d=a.length;c1&&(d.charAt(0)==g?d=d.substr(1):d.charAt(d.length-1)==g&&(d=d.slice(0,-1))),d&&d!=g&&(j?b.onPaste(d):b.onTextInput(d));if(!v())return!1}}i=!1,j=!1,c.value=g,l()}function v(){return document.activeElement===c}var c=f.createElement("textarea");e.isTouchPad&&c.setAttribute("x-palm-disable-auto-cap",!0),c.setAttribute("wrap","off"),c.style.left="-10000px",c.style.position="fixed",a.insertBefore(c,a.firstChild);var g=String.fromCharCode(0);m();var h=!1,i=!1,j=!1,k="",n=function(a){setTimeout(function(){h||m(a.data)},0)},o=function(a){if(e.isOldIE&&c.value.charCodeAt(0)>128)return;setTimeout(function(){h||m()},0)},p=function(a){h=!0,b.onCompositionStart(),e.isGecko||setTimeout(q,0)},q=function(){if(!h)return;b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b));if(e.isOldIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);if((c.value.charCodeAt(0)|0)<129)return;h?q():p()})}"onpropertychange"in c&&!("oninput"in c)?d.addListener(c,"propertychange",o):d.addListener(c,"input",n),d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),"onbeforecopy"in c&&typeof clipboardData!="undefined"?(d.addListener(c,"beforecopy",function(a){var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}})):(d.addListener(c,"copy",s),d.addListener(c,"cut",t)),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){b.onFocus(),l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a,b){a&&(k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:1000;left:"+(a.x-2)+"px; top:"+(a.y-2)+"px;"),b&&(c.value="")},this.onContextMenuClose=function(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m()},0)}};b.TextInput=g}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event"],function(a,b,c){"use strict";var d=a("../lib/event"),e=a("./default_handlers").DefaultHandlers,f=a("./default_gutter_handler").GutterHandler,g=a("./mouse_event").MouseEvent,h=function(a){this.editor=a,new e(this),new f(this),d.addListener(a.container,"mousedown",function(b){return a.focus(),d.preventDefault(b)}),d.addListener(a.container,"selectstart",function(a){return d.preventDefault(a)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"mousedown",this.onMouseEvent.bind(this,"mousedown")),d.addListener(b,"click",this.onMouseEvent.bind(this,"click")),d.addListener(b,"mousemove",this.onMouseMove.bind(this,"mousemove")),d.addMultiMouseDownListener(b,0,2,500,this.onMouseEvent.bind(this,"dblclick")),d.addMultiMouseDownListener(b,0,3,600,this.onMouseEvent.bind(this,"tripleclick")),d.addMultiMouseDownListener(b,0,4,600,this.onMouseEvent.bind(this,"quadclick")),d.addMouseWheelListener(a.container,this.onMouseWheel.bind(this,"mousewheel"));var c=a.renderer.$gutter;d.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),d.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),d.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),d.addListener(c,"mousemove",this.onMouseMove.bind(this,"gutter"))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.onMouseEvent=function(a,b){this.editor._emit(a,new g(b,this.editor))},this.$dragDelay=250,this.setDragDelay=function(a){this.$dragDelay=a},this.getDragDelay=function(){return this.$dragDelay},this.onMouseMove=function(a,b){var c=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!c||!c.length)return;this.editor._emit(a,new g(b,this.editor))},this.onMouseWheel=function(a,b){var c=new g(b,this.editor);c.speed=this.$scrollSpeed*2,c.wheelX=b.wheelX,c.wheelY=b.wheelY,this.editor._emit(a,c)},this.setState=function(a){this.state=a},this.captureMouse=function(a,b){b&&this.setState(b),this.x=a.x,this.y=a.y;var c=this.editor.renderer.$keepTextAreaAtCursor;this.editor.renderer.$keepTextAreaAtCursor=!1;var e=this,f=function(a){e.x=a.clientX,e.y=a.clientY},g=function(a){clearInterval(i),e[e.state+"End"]&&e[e.state+"End"](a),e.$clickSelection=null,e.editor.renderer.$keepTextAreaAtCursor=c,e.editor.renderer.$moveTextAreaToCursor()},h=function(){e[e.state]&&e[e.state]()};d.capture(this.editor.container,f,g);var i=setInterval(h,20);a.preventDefault()}}).call(h.prototype),b.MouseHandler=h}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/browser_focus"],function(a,b,c){function g(a){a.$clickSelection=null,a.browserFocus=new e;var b=a.editor;b.setDefaultHandler("mousedown",this.onMouseDown.bind(a)),b.setDefaultHandler("dblclick",this.onDoubleClick.bind(a)),b.setDefaultHandler("tripleclick",this.onTripleClick.bind(a)),b.setDefaultHandler("quadclick",this.onQuadClick.bind(a)),b.setDefaultHandler("mousewheel",this.onScroll.bind(a));var c=["select","startSelect","drag","dragEnd","dragWait","dragWaitEnd","startDrag"];c.forEach(function(b){a[b]=this[b]},this),a.selectByLines=this.extendSelectionBy.bind(a,"getLineRange"),a.selectByWords=this.extendSelectionBy.bind(a,"getWordRange")}function h(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))}"use strict";var d=a("../lib/dom"),e=a("../lib/browser_focus").BrowserFocus,f=5;(function(){this.onMouseDown=function(a){this.mousedownEvent=a;var b=a.inSelection(),c=a.getDocumentPosition(),d=this.editor,e=this;this.ev=a;var f=d.getSelectionRange(),g=f.isEmpty(),h=a.getButton();if(h!==0){g&&(d.moveCursorToPosition(c),d.selection.clearSelection()),this.moveTextarea=function(){d.textInput.onContextMenu({x:e.x,y:e.y})},this.moveTextareaEnd=d.textInput.onContextMenuClose,d.textInput.onContextMenu({x:this.x,y:this.y},g),this.captureMouse(a,"moveTextarea");return}if(b&&!d.isFocused()){d.focus();return}if(!b||this.$clickSelection||a.getShiftKey())this.startSelect(c);else if(b){var i=a.domEvent;i.ctrlKey||i.altKey?this.startDrag():(this.mousedownEvent.time=(new Date).getTime(),this.setState("dragWait"))}this.captureMouse(a)},this.startSelect=function(a){a=a||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(a):this.$clickSelection||(this.editor.moveCursorToPosition(a),this.editor.selection.clearSelection()),this.setState("select")},this.select=function(){var a,b=this.editor,c=b.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var d=this.$clickSelection.comparePoint(c);d==-1?a=this.$clickSelection.end:d==1?a=this.$clickSelection.start:(c=this.$clickSelection.end,a=this.$clickSelection.start),b.selection.setSelectionAnchor(a.row,a.column)}b.selection.selectToPosition(c),b.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(a){var b,c=this.editor,d=c.renderer.screenToTextCoordinates(this.x,this.y),e=c.selection[a](d.row,d.column);if(this.$clickSelection){var f=this.$clickSelection.comparePoint(e.start),g=this.$clickSelection.comparePoint(e.end);f==-1&&g<=0?(b=this.$clickSelection.end,d=e.start):g==1&&f>=0?(b=this.$clickSelection.start,d=e.end):f==-1&&g==1?(d=e.end,b=e.start):(d=this.$clickSelection.end,b=this.$clickSelection.start),c.selection.setSelectionAnchor(b.row,b.column)}c.selection.selectToPosition(d),c.renderer.scrollCursorIntoView()},this.startDrag=function(){var a=this.editor;this.setState("drag"),this.dragRange=a.getSelectionRange();var b=a.getSelectionStyle();this.dragSelectionMarker=a.session.addMarker(this.dragRange,"ace_selection",b),a.clearSelection(),d.addCssClass(a.container,"ace_dragging"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(a,b,c,d){if(c=="esc")return{command:this.command}},command:{exec:function(a){var b=a.$mouseHandler;b.dragCursor=null,b.dragEnd(),b.startSelect()}}}),a.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.dragWait=function(){var a=h(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),b=(new Date).getTime(),c=this.editor;a>f?this.startSelect():b-this.mousedownEvent.time>c.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(a){this.mousedownEvent.domEvent=a,this.startSelect()},this.drag=function(){var a=this.editor;this.dragCursor=a.renderer.screenToTextCoordinates(this.x,this.y),a.moveCursorToPosition(this.dragCursor),a.renderer.scrollCursorIntoView()},this.dragEnd=function(a){var b=this.editor,c=this.dragCursor,e=this.dragRange;d.removeCssClass(b.container,"ace_dragging"),b.session.removeMarker(this.dragSelectionMarker),b.keyBinding.removeKeyboardHandler(this.$dragKeybinding);if(!c)return;b.clearSelection();if(a&&(a.ctrlKey||a.altKey)){var f=b.session,g=e;g.end=f.insert(c,f.getTextRange(e)),g.start=c}else{if(e.contains(c.row,c.column))return;var g=b.moveText(e,c)}if(!g)return;b.selection.setSelectionRange(g)},this.onDoubleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByWords"),c.moveCursorToPosition(b),c.selection.selectWord(),this.$clickSelection=c.getSelectionRange()},this.onTripleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByLines"),c.moveCursorToPosition(b),c.selection.selectLine(),this.$clickSelection=c.getSelectionRange()},this.onQuadClick=function(a){var b=this.editor;b.selectAll(),this.$clickSelection=b.getSelectionRange(),this.setState("select")},this.onScroll=function(a){var b=this.editor,c=b.renderer.isScrollableBy(a.wheelX*a.speed,a.wheelY*a.speed);if(c)this.$passScrollEvent=!1;else{if(this.$passScrollEvent)return;if(!this.$scrollStopTimeout){var d=this;this.$scrollStopTimeout=setTimeout(function(){d.$passScrollEvent=!0,d.$scrollStopTimeout=null},200)}}return b.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed),a.preventDefault()}}).call(g.prototype),b.DefaultHandlers=g}),define("ace/lib/browser_focus",["require","exports","module","ace/lib/oop","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./oop"),e=a("./event"),f=a("./event_emitter").EventEmitter,g=function(a){a=a||window,this.lastFocus=(new Date).getTime(),this._isFocused=!0;var b=this;"onfocusin"in a.document?(e.addListener(a.document,"focusin",function(a){b._setFocused(!0)}),e.addListener(a.document,"focusout",function(a){b._setFocused(!!a.toElement)})):(e.addListener(a,"blur",function(a){b._setFocused(!1)}),e.addListener(a,"focus",function(a){b._setFocused(!0)}))};(function(){d.implement(this,f),this.isFocused=function(){return this._isFocused},this._setFocused=function(a){if(this._isFocused==a)return;a&&(this.lastFocus=(new Date).getTime()),this._isFocused=a,this._emit("changeFocus")}}).call(g.prototype),b.BrowserFocus=g}),define("ace/lib/event_emitter",["require","exports","module"],function(a,b,c){"use strict";var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var c=this._eventRegistry[a]||[],d=this._defaultHandlers[a];if(!c.length&&!d)return;b=b||{},b.type=a,b.stopPropagation||(b.stopPropagation=function(){this.propagationStopped=!0}),b.preventDefault||(b.preventDefault=function(){this.defaultPrevented=!0});for(var e=0;e=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}e.implement(this,h),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this)),this.bgTokenizer&&(this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(a==0){this.$rowCache=[];return}var b=this.$rowCache;for(var c=0;c=a){b.splice(c,b.length);return}},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.start(b.range.start.row),this._emit("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)},this.getTokenAt=function(a,b){var c=this.bgTokenizer.getTokens(a,a)[0].tokens,d,e=0;if(b==null)f=c.length-1,e=this.getLine(a).length;else for(var f=0;f=b)break}return d=c[f],d?(d.index=f,d.start=e-d.value.length,d):null},this.setUndoManager=function(a){this.$undoManager=a,this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=f.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?f.stringRepeat(" ",this.getTabSize()):" "},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){if(this.$useSoftTabs===a)return;this.$useSoftTabs=a},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){if(isNaN(a)||this.$tabSize===a)return;this.$modified=!0,this.$tabSize=a,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){if(this.$overwrite==a)return;this.$overwrite=a,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));var e=d?this.tokenRe:this.nonTokenRe,f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a+1,c),1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipColumnToRow=function(a,b){return b<0?0:Math.min(this.doc.getLine(a).length,b)},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$clipRangeToDocument=function(a){a.start.row<0?(a.start.row=0,a.start.column=0):a.start.column=this.$clipColumnToRow(a.start.row,a.start.column);var b=this.doc.getLength()-1;return a.end.row>b?(a.end.row=b,a.end.column=this.doc.getLine(b).length):a.end.column=this.$clipColumnToRow(a.end.row,a.end.column),a},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(var c=0;c0?(this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;return c&&(a=Math.min(c,a)),Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines?a.data.lines.length:f-e):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){b&&this.$wrapData.splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o=e&&k.shiftRow(c)}}else{c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b&&this.$updateWrapData(e,f),i},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),e=this.$wrapData,g=this.$wrapLimit,h,j,k=a;b=Math.min(b,c.length-1);while(k<=b){j=this.getFoldLine(k,j);if(!j)h=this.$getDisplayTokens(f.stringTrimRight(c[k])),e[k]=this.$computeWrapSplits(h,g,d),k++;else{h=[],j.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,h.length),f[0]=i;for(var g=1;g=o)h.pop();e[j.start.row]=this.$computeWrapSplits(h,g,d),k=j.end.row+1}}};var b=1,c=2,i=3,l=4,n=9,o=10,p=11,q=12;this.$computeWrapSplits=function(a,b){function g(b){var d=a.slice(e,b),g=d.length;d.join("").replace(/12/g,function(){g-=1}).replace(/2/g,function(){g-=1}),f+=g,c.push(f),e=b}if(a.length==0)return[];var c=[],d=a.length,e=0,f=0;while(d-e>b){var h=e+b;if(a[h]>=o){while(a[h]>=o)h++;g(h);continue}if(a[h]==i||a[h]==l){for(h;h!=e-1;h--)if(a[h]==i)break;if(h>e){g(h);continue}h=e+b;for(h;hj&&a[h]j&&a[h]==n)h--;if(h>j){g(++h);continue}h=e+b,g(h)}return c},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;g39&&h<48||h>57&&h<64?e.push(n):h>=4352&&r(h)?e.push(b,c):e.push(b)}return e},this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=c+a.length*Math.max(this.getTabSize(),2)),c=c||0;var d,e;for(e=0;e=4352&&r(d)?c+=2:c+=1;if(c>b)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight},this.getScreenLastRowColumn=function(a){var b=this.screenToDocumentPosition(a,Number.MAX_VALUE);return this.documentToScreenColumn(b.row,b.column)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g=0,h=0,i=this.$rowCache;for(var j=0;j=a||d>=l)break;g+=h,d++,d>n&&(d=m.end.row+1,m=this.getNextFoldLine(d,m),n=m?m.start.row:Infinity),k&&i.push({docRow:d,screenRow:g})}if(m&&m.start.row<=d)c=this.getFoldDisplayLine(m),d=m.start.row;else{if(g+h<=a||d>l)return{row:l,column:this.getLine(l).length};c=this.getLine(d),m=null}if(this.$useWrapMode){var o=this.$wrapData[d];o&&(f=o[a-g],a>g&&o.length&&(e=o[a-g-1]||o[o.length-1],c=c.substring(e)))}return e+=this.$getStringScreenWidth(c,b)[1],this.$useWrapMode&&e>=f&&(e=f-1),m?m.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d;if(this.$useWrapMode){d=this.$wrapData;if(a>d.length-1)return{row:this.getScreenLength(),column:d.length==0?0:d[d.length-1].length-1}}var e=0,f=null,g=null;g=this.getFoldAt(a,b,1),g&&(a=g.start.row,b=g.start.column);var h,i=0,j=this.$rowCache;for(var k=0;k=n){h=m.end.row+1;if(h>a)break;m=this.getNextFoldLine(h,m),n=m?m.start.row:Infinity}else h=i+1;e+=this.getRowLength(i),i=h,l&&j.push({docRow:i,screenRow:e})}var o="";m&&i>=n?(o=this.getFoldDisplayLine(m,a,b),f=m.start.row):(o=this.getLine(a).substring(0,b),f=a);if(this.$useWrapMode){var p=d[f],q=0;while(o.length>=p[q])e++,q++;o=o.substring(p[q-1]||0,o.length)}return{row:e,column:this.$getStringScreenWidth(o)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null;if(!this.$useWrapMode){a=this.getLength();var c=this.$foldData;for(var d=0;dg&&(f=b.end.row+1,b=this.$foldData[d++],g=b?b.start.row:Infinity)}return a}}).call(n.prototype),a("./edit_session/folding").Folding.call(n.prototype),a("./edit_session/bracket_match").BracketMatch.call(n.prototype),b.EditSession=n}),define("ace/config",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}"no use strict";var d=a("./lib/lang"),e=function(){return this}(),f={packaged:!1,workerPath:"",modePath:"",themePath:"",suffix:".js"};b.get=function(a){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);return f[a]},b.set=function(a,b){if(!f.hasOwnProperty(a))throw new Error("Unknown confik key: "+a);f[a]=b},b.all=function(){return d.copyObject(f)},b.init=function(){f.packaged=a.packaged||c.packaged||e.define&&define.packaged;if(!e.document)return"";var d={},h="",i,j=document.getElementsByTagName("script");for(var k=0;kb.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.anchor,b=this.lead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length),this.moveCursorTo(0,0)},this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$desiredColumn=null},this.$moveSelection=function(a){var b=this.lead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(a,b){if(typeof b=="undefined"){var c=a||this.lead;a=c.row,b=c.column}return this.session.getWordRange(a,b)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var a=this.getCursor(),b=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(b)},this.getLineRange=function(a,b){var c=typeof a=="number"?a:this.lead.row,d,e=this.session.getFoldLine(c);return e?(c=e.start.row,d=e.end.row):d=c,b?new g(c,0,d,this.session.getLine(d).length):new g(c,0,d+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row=c.length){this.moveCursorTo(a,c.length),this.moveCursorRight(),a0&&this.moveCursorWordLeft();return}if(g=this.session.tokenRe.exec(f))b-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.$shortWordEndIndex=function(a){var b,c=0,d,e=/\s/,f=this.session.tokenRe;f.lastIndex=0;if(b=this.session.tokenRe.exec(a))c=this.session.tokenRe.lastIndex;else{while((d=a[c])&&e.test(d))c++;if(c<=1){f.lastIndex=0;while((d=a[c])&&!f.test(d)){f.lastIndex=0,c++;if(e.test(d)){if(c>2){c--;break}while((d=a[c])&&e.test(d))c++;if(c>2)break}}}}return f.lastIndex=0,c},this.moveCursorShortWordRight=function(){var a=this.lead.row,b=this.lead.column,c=this.doc.getLine(a),d=c.substring(b),e=this.session.getFoldAt(a,b,1);if(e)return this.moveCursorTo(e.end.row,e.end.column);if(b==c.length)return this.moveCursorRight();var f=this.$shortWordEndIndex(d);this.moveCursorTo(a,b+f)},this.moveCursorShortWordLeft=function(){var a=this.lead.row,b=this.lead.column,c;if(c=this.session.getFoldAt(a,b,-1))return this.moveCursorTo(c.start.row,c.start.column);if(b==0)return this.moveCursorLeft();var d=this.session.getLine(a).substring(0,b),f=e.stringReverse(d),g=this.$shortWordEndIndex(f);return this.moveCursorTo(a,b-g)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.lead.row,this.lead.column);b===0&&(this.$desiredColumn?c.column=this.$desiredColumn:this.$desiredColumn=c.column);var d=this.session.screenToDocumentPosition(c.row+a,c.column);this.moveCursorTo(d.row,d.column+b,b===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,b,c){var d=this.session.getFoldAt(a,b,1);d&&(a=d.start.row,b=d.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(a,b),this.$keepDesiredColumnOnChange=!1,c||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,b,c){var d=this.session.screenToDocumentPosition(a,b);this.moveCursorTo(d.row,d.column,c)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var b=this.getRange();return a?(a.start.column=b.start.column,a.start.row=b.start.row,a.end.column=b.end.column,a.end.row=b.end.row):a=b,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a}}).call(h.prototype),b.Selection=h}),define("ace/range",["require","exports","module"],function(a,b,c){"use strict";var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.isEqual=function(a){return this.start.row==a.start.row&&this.end.row==a.end.row&&this.start.column==a.start.column&&this.end.column==a.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;return b=this.compare(c.row,c.column),b==1?(b=this.compare(d.row,d.column),b==1?2:b==0?1:0):b==-1?-2:(b=this.compare(d.row,d.column),b==-1?-1:b==1?42:0)},this.comparePoint=function(a){return this.compare(a.row,a.column)},this.containsRange=function(a){return this.comparePoint(a.start)==0&&this.comparePoint(a.end)==0},this.intersects=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)||this.isStart(a,b)?!1:!0:!1},this.insideStart=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)?!1:!0:!1},this.insideEnd=function(a,b){return this.compare(a,b)==0?this.isStart(a,b)?!1:!0:!1},this.compare=function(a,b){return!this.isMultiLine()&&a===this.start.row?bthis.end.column?1:0:athis.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row=0&&/^[\w\d]/.test(h)||e<=g&&/[\w\d]$/.test(h))return;h=f.substring(c.start.column,c.end.column);if(!/^[\w\d]+$/.test(h))return;var i=a.getCursorPosition(),j={wrap:!0,wholeWord:!0,caseSensitive:!0,needle:h},k=a.$search.getOptions();a.$search.set(j);var l=a.$search.findAll(b);l.forEach(function(a){if(!a.contains(i.row,i.column)){var c=b.addMarker(a,"ace_selected_word","text");b.$selectionOccurrences.push(c)}}),a.$search.set(k)},this.clearSelectionHighlight=function(a){if(!a.session.$selectionOccurrences)return;a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[]},this.createModeDelegates=function(a){if(!this.$embeds)return;this.$modes={};for(var b=0;b1&&e[i].token.length!==j-1)throw new Error("Matching groups and length of the token array don't match in rule #"+i+" of state "+c);h[g]={rule:i,len:j},g+=j,f.push(k)}this.regExps[c]=new RegExp("(?:("+f.join(")|(")+")|(.))",b)}};(function(){this.getLineTokens=function(a,b){var c=b,d=this.rules[c],e=this.matchMappings[c],f=this.regExps[c];f.lastIndex=0;var g,h=[],i=0,j={type:null,value:""};while(g=f.exec(a)){var k="text",l=null,m=[g[0]];for(var n=0;n1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token,l.next&&(c=l.next,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length),a},this.insert=function(a,b){if(!b||b.length===0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];return a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||"")),a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b),this.$lines.splice.apply(this.$lines,c);var d=new f(a,0,a+b.length,0),e={action:"insertLines",range:d,lines:b};return this._emit("change",{data:e}),d.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};return this._emit("change",{data:d}),c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};return this._emit("change",{data:e}),d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b==c)return;var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};return this._emit("change",{data:i}),d.start},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};return this._emit("change",{data:e}),d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._emit("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&c.start.row!=this.row)return;if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0),c}}).call(f.prototype)}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=function(a,b){this.running=!1,this.lines=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!c.running)return;var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._emit("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a,b){return this.$tokenizeRows(a,b)},this.getState=function(a){return this.$tokenizeRows(a,a)[0].state},this.$tokenizeRows=function(a,b){if(!this.doc||isNaN(a)||isNaN(b))return[{state:"start",tokens:[]}];var c=[],d="start",e=!1;a>0&&this.lines[a-1]?(d=this.lines[a-1].state,e=!0):a==0?(d="start",e=!0):this.lines.length>0&&(d=this.lines[this.lines.length-1].state);var f=this.doc.getLines(a,b);for(var g=a;g<=b;g++)if(!this.lines[g]){var h=this.tokenizer.getLineTokens(f[g-a]||"",d),d=h.state;c.push(h),e&&(this.lines[g]=h)}else{var h=this.lines[g];d=h.state,c.push(h)}return c}}).call(f.prototype),b.BackgroundTokenizer=f}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(a,b,c){function h(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f=a)return e;if(e.end.row>a)return null}return null},this.getNextFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d=a)return e}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e=b){h=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){return this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),a},this.addFold=function(a,b){var c=this.$foldData,d=!1,g;a instanceof f?g=a:g=new f(b,a),this.$clipRangeToDocument(g.range);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1),m=this.getFoldAt(j,k,-1);if(l&&m==l)return l.addSubFold(g);if(l&&!l.range.isStart(h,i)||m&&!m.range.isEnd(j,k))throw"A fold can't intersect already existing fold"+g.range+l.range;var n=this.getFoldsInRange(g.range);n.length>0&&(this.removeFolds(n),g.subFolds=n);for(var o=0;othis.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j=this.$rowTokens.length){this.$row+=1;if(this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row,this.$row)[0].tokens,this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var a=this.$rowTokens,b=this.$tokenIndex,c=a[b].start;if(c!==undefined)return c;c=0;while(b>0)b-=1,c+=a[b].value.length;return c}}).call(d.prototype),b.TokenIterator=d}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator"],function(a,b,c){function e(){this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;var c=b.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("rparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn()-2,j=g.value;for(;;){while(i>=0){var k=j.charAt(i);if(k==c){e-=1;if(e==0)return{row:f.getCurrentTokenRow(),column:i+f.getCurrentTokenColumn()}}else k==a&&(e+=1);i-=1}do g=f.stepBackward();while(g&&!h.test(g.type));if(g==null)break;j=g.value,i=j.length-1}return null},this.$findClosingBracket=function(a,b){var c=this.$brackets[a],e=1,f=new d(this,b.row,b.column),g=f.getCurrentToken();if(!g)return null;var h=new RegExp("(\\.?"+g.type.replace(".","|").replace("lparen","lparen|rparen")+")+"),i=b.column-f.getCurrentTokenColumn();for(;;){var j=g.value,k=j.length;while(i=0;h--){var i=g[h],j=c.$rangeFromMatch(f,i.offset,i.str.length);if(d(j))return!0}})}}},this.$rangeFromMatch=function(a,b,c){return new f(a,b,a,b+c)},this.$assembleRegExp=function(){if(this.$options.regExp)var a=this.$options.needle;else a=d.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(a="\\b"+a+"\\b");var b="g";this.$options.caseSensitive||(b+="i");var c=new RegExp(a,b);return c},this.$forwardLineIterator=function(a){function k(e){var f=a.getLine(e);return b&&e==c.end.row&&(f=f.substring(0,c.end.column)),j&&e==d.row&&(f=f.substring(0,d.column)),f}var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"start":"end"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap,j=!1;return{forEach:function(a){var b=d.row,c=k(b),g=d.column,l=!1;j=!1;while(!a(c,g,b)){if(l)return;b++,g=0;if(b>h){if(!i)return;b=e,g=f,j=!0}b==d.row&&(l=!0),c=k(b)}}}},this.$backwardLineIterator=function(a){var b=this.$options.scope==g.SELECTION,c=this.$options.range||a.getSelection().getRange(),d=this.$options.start||c[b?"end":"start"],e=b?c.start.row:0,f=b?c.start.column:0,h=b?c.end.row:a.getLength()-1,i=this.$options.wrap;return{forEach:function(g){var j=d.row,k=a.getLine(j).substring(0,d.column),l=0,m=!1,n=!1;while(!g(k,l,j)){if(m)return;j--,l=0;if(j0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/useragent"),h=a("./config"),i=a("./lib/net"),j=a("./layer/gutter").Gutter,k=a("./layer/marker").Marker,l=a("./layer/text").Text,m=a("./layer/cursor").Cursor,n=a("./scrollbar").ScrollBar,o=a("./renderloop").RenderLoop,p=a("./lib/event_emitter").EventEmitter,q=a("text!./css/editor.css");e.importCssString(q,"ace_editor");var r=function(a,b){var c=this;this.container=a,this.$keepTextAreaAtCursor=!g.isIE,e.addCssClass(a,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.setHighlightGutterLine(!0),this.$gutterLayer=new j(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,!0)),this.setFadeFoldWidgets(!0),this.$markerBack=new k(this.content);var d=this.$textLayer=new l(this.content);this.canvas=d.element,this.$markerFront=new k(this.content),this.characterWidth=d.getCharacterWidth(),this.lineHeight=d.getLineHeight(),this.$cursorLayer=new m(this.content),this.$cursorPadding=8,this.$horizScroll=!1,this.$horizScrollAlwaysVisible=!1,this.$animatedScroll=!1,this.scrollBar=new n(a),this.scrollBar.addEventListener("scroll",function(a){c.$inScrollAnimation||c.session.setScrollTop(a.data)}),this.scrollTop=0,this.scrollLeft=0,f.addListener(this.scroller,"scroll",function(){var a=c.scroller.scrollLeft;c.scrollLeft=a,c.session.setScrollLeft(a),c.scroller.className=a==0?"ace_scroller":"ace_scroller horscroll"}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){c.characterWidth=d.getCharacterWidth(),c.lineHeight=d.getLineHeight(),c.$updatePrintMargin(),c.onResize(!0),c.$loop.schedule(c.CHANGE_FULL)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,d.implement(this,p),this.setSession=function(a){this.session=a,this.scroller.className="ace_scroller",this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRowthis.layerConfig.height)return;b+=(this.showGutter?this.$gutterLayer.gutterWidth:0)-this.scrollLeft;var c=this.container.getBoundingClientRect();this.textarea.style.left=c.left+b+"px",this.textarea.style.top=c.top+a+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var a=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+a},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(a){this.$padding=a,this.$textLayer.setPadding(a),this.$cursorLayer.setPadding(a),this.$markerFront.setPadding(a),this.$markerBack.setPadding(a),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible},this.setHScrollBarAlwaysVisible=function(a){this.$horizScrollAlwaysVisible!=a&&(this.$horizScrollAlwaysVisible=a,(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL))},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(a){if(!a||!this.session||!this.container.offsetWidth)return;(a&this.CHANGE_FULL||a&this.CHANGE_SIZE||a&this.CHANGE_TEXT||a&this.CHANGE_LINES||a&this.CHANGE_SCROLL)&&this.$computeLayerConfig();if(a&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var b=this.scroller.scrollLeft;this.scrollLeft=b,this.session.setScrollLeft(b)}if(a&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}if(a&this.CHANGE_SCROLL){this.$updateScrollBar(),a&this.CHANGE_TEXT||a&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}a&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_LINES?this.$updateLines()&&(this.$updateScrollBar(),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_GUTTER&&this.showGutter&&this.$gutterLayer.update(this.layerConfig),a&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),a&this.CHANGE_SIZE&&this.$updateScrollBar()},this.$computeLayerConfig=function(){var a=this.session,b=this.scrollTop%this.lineHeight,c=this.$size.scrollerHeight+this.lineHeight,d=this.$getLongestLine(),e=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-d<0,f=this.$horizScroll!==e;this.$horizScroll=e,f&&(this.scroller.style.overflowX=e?"scroll":"hidden",e||this.session.setScrollLeft(0));var g=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,g-this.$size.scrollerHeight)));var h=Math.ceil(c/this.lineHeight)-1,i=Math.max(0,Math.round((this.scrollTop-b)/this.lineHeight)),j=i+h,k,l,m={lineHeight:this.lineHeight};i=a.screenToDocumentRow(i,0);var n=a.getFoldLine(i);n&&(i=n.start.row),k=a.documentToScreenRow(i,0),l=a.getRowHeight(m,i),j=Math.min(a.screenToDocumentRow(j,0),a.getLength()-1),c=this.$size.scrollerHeight+a.getRowHeight(m,j)+l,b=this.scrollTop-k*this.lineHeight,this.layerConfig={width:d,padding:this.$padding,firstRow:i,firstRowScreen:k,lastRow:j,lineHeight:this.lineHeight,characterWidth:this.characterWidth,minHeight:c,maxHeight:g,offset:b,height:this.$size.scrollerHeight},this.$gutter.style.marginTop=-b+"px",this.content.style.marginTop=-b+"px",this.content.style.width=d+2*this.$padding+"px",this.content.style.height=c+"px",f&&this.onResize(!0)},this.$updateLines=function(){var a=this.$changedLines.firstRow,b=this.$changedLines.lastRow;this.$changedLines=null;var c=this.layerConfig;if(c.width!=this.$getLongestLine())return this.$textLayer.update(c);if(a>c.lastRow+1)return;if(be?(b&&(e-=b*this.$size.scrollerHeight),this.session.setScrollTop(e)):this.scrollTop+this.$size.scrollerHeightd?(d0)return!0;if(b>0&&this.session.getScrollTop()+this.$size.scrollerHeight0?1:-1}},this.screenToTextCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=Math.round((a+this.scrollLeft-c.left-this.$padding)/this.characterWidth),e=Math.floor((b+this.scrollTop-c.top)/this.lineHeight);return this.session.screenToDocumentPosition(e,Math.max(d,0))},this.textToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=this.session.documentToScreenPosition(a,b),e=this.$padding+Math.round(d.column*this.characterWidth),f=d.row*this.lineHeight;return{pageX:c.left+e-this.scrollLeft,pageY:c.top+f-this.scrollTop}},this.visualizeFocus=function(){e.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){e.removeCssClass(this.container,"ace_focus")},this.showComposition=function(a){this.$composition||(this.$composition=e.createElement("div"),this.$composition.className="ace_composition",this.content.appendChild(this.$composition)),this.$composition.innerHTML=" ";var b=this.$cursorLayer.getPixelPosition(),c=this.$composition.style;c.top=b.top+"px",c.left=b.left+this.$padding+"px",c.height=this.lineHeight+"px",this.hideCursor()},this.setCompositionText=function(a){e.setInnerText(this.$composition,a)},this.hideComposition=function(){this.showCursor();if(!this.$composition)return;var a=this.$composition.style;a.top="-10000px",a.left="-10000px"},this._loadTheme=function(a,b){if(!h.get("packaged"))return b();var c=a.split("/").pop(),d=h.get("themePath")+"/theme-"+c+h.get("suffix");i.loadScript(d,b)},this.setTheme=function(b){function h(a){e.importCssString(a.cssText,a.cssClass,c.container.ownerDocument),c.$theme&&e.removeCssClass(c.container,c.$theme),c.$theme=a?a.cssClass:null,c.$theme&&e.addCssClass(c.container,c.$theme),a&&a.isDark?e.addCssClass(c.container,"ace_dark"):e.removeCssClass(c.container,"ace_dark"),c.$size&&(c.$size.width=0,c.onResize())}var c=this;this.$themeValue=b;if(!b||typeof b=="string"){var d=b||"ace/theme/textmate",f;try{f=a(d)}catch(g){}if(f)return h(f);c._loadTheme(d,function(){a([d],function(a){if(c.$themeValue!==b)return;h(a)})})}else h(b)},this.getTheme=function(){return this.$themeValue},this.setStyle=function(b){e.addCssClass(this.container,b)},this.unsetStyle=function(b){e.removeCssClass(this.container,b)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(r.prototype),b.VirtualRenderer=r}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=a("../lib/oop"),f=a("../lib/event_emitter").EventEmitter,g=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_gutter-layer",a.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$breakpoints=[],this.$annotations=[],this.$decorations=[]};(function(){e.implement(this,f),this.setSession=function(a){this.session=a},this.addGutterDecoration=function(a,b){this.$decorations[a]||(this.$decorations[a]=""),this.$decorations[a]+=" "+b},this.removeGutterDecoration=function(a,b){this.$decorations[a]=this.$decorations[a].replace(" "+b,"")},this.setBreakpoints=function(a){this.$breakpoints=a.concat()},this.setAnnotations=function(a){this.$annotations=[];for(var b in a)if(a.hasOwnProperty(b)){var c=a[b];if(!c)continue;var d=this.$annotations[b]={text:[]};for(var e=0;eh&&(e=g.end.row+1,g=this.session.getNextFoldLine(e,g),h=g?g.start.row:Infinity);if(e>f)break;var j=this.$annotations[e]||b;c.push("
",e+1);if(i){var k=i[e];k==null&&(k=i[e]=this.session.getFoldWidget(e)),k&&c.push("")}var l=this.session.getRowLength(e)-1;while(l--)c.push("
¦");c.push("
"),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px";var m=this.element.offsetWidth;m!==this.gutterWidth&&(this.gutterWidth=m,this._emit("changeGutterWidth",m))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(a){a?d.addCssClass(this.element,"ace_folding-enabled"):d.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=a},this.getShowFoldWidgets=function(){return this.$showFoldWidgets}}).call(g.prototype),b.Gutter=g}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../range").Range,e=a("../lib/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!a)return;this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c],f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz+" start",a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c+" start",e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f"),j=this.$getTop(b.end.row,d),i=Math.round(b.end.column*d.characterWidth),a.push("
"),h=(b.end.row-b.start.row-1)*d.lineHeight;if(h<0)return;j=this.$getTop(b.start.row+1,d),a.push("
")},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("
")}}).call(f.prototype),b.Marker=f}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/dom"),f=a("../lib/lang"),g=a("../lib/useragent"),h=a("../lib/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._emit("changeCharacterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=g.isIE||g.isOldGecko?function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="fixed",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}if(!this.element.offsetWidth)return null;var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0||i.height==0?null:i}:function(){if(!this.$measureNode){var a=this.$measureNode=e.createElement("div"),b=a.style;b.width=b.height="auto",b.left=b.top="-100px",b.visibility="hidden",b.position="fixed",b.overflow="visible",b.whiteSpace="nowrap",a.innerHTML="X";var c=this.element.parentNode;while(c&&!e.hasCssClass(c,"ace_editor"))c=c.parentNode;if(!c)return this.$measureNode=null;c.appendChild(a)}var d=this.$measureNode.getBoundingClientRect(),f={height:d.height,width:d.width};return f.width==0||f.height==0?null:f},this.setSession=function(a){this.session=a},this.showInvisibles=!1,this.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,!0)},this.$tabStrings=[],this.$computeTabString=function(){var a=this.session.getTabSize(),b=this.$tabStrings=[0];for(var c=1;c"+this.TAB_CHAR+(new Array(c)).join(" ")+""):b.push((new Array(c+1)).join(" "))},this.updateLines=function(a,b,c){this.$computeTabString(),(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRowb.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=this.element.ownerDocument.createDocumentFragment(),f=b,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[],k=this.session.getTokens(f,f);k.length==1&&this.$renderLine(j,f,k[0].tokens,!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var l=i.childNodes;while(l.length)d.appendChild(l[0])}f++}return d},this.update=function(a){this.$computeTabString(),this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("
");var i=this.session.getTokens(f,f);i.length==1&&this.$renderLine(b,f,i[0].tokens,!1),this.$useLineGroups()&&b.push("
"),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\u0000-\u0019\u00a0\u2000-\u200b\u2028\u2029\u3000])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,g=function(a,c,d,f,g){if(c)return(new Array(a.length+1)).join(" ");if(a=="&")return"&";if(a=="<")return"<";if(a==" "){var h=e.session.getScreenTabSize(b+f);return b+=h-1,e.$tabStrings[h]}if(a==" "){var i=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",j=e.showInvisibles?e.SPACE_CHAR:"";return b+=1,""+j+""}return d?""+e.SPACE_CHAR+"":(b+=1,""+a+"")},h=d.replace(f,g);if(!this.$textToken[c.type]){var i="ace_"+c.type.replace(/\./g," ace_"),j="";c.type=="fold"&&(j=" style='width:"+c.value.length*this.config.characterWidth+"px;' "),a.push("",h,"")}else a.push(h);return b+d.length},this.$renderLineCore=function(a,b,c,d,e){var f=0,g=0,h,i=0,j=this;!d||d.length==0?h=Number.MAX_VALUE:h=d[0],e||a.push("
");for(var k=0;k=h)i=j.$renderToken(a,i,l,m.substring(0,h-f)),m=m.substring(h-f),f=h,e||a.push("
","
"),g++,i=0,h=d[g]||Number.MAX_VALUE;m.length!=0&&(f+=m.length,i=j.$renderToken(a,i,l,m))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push(""+this.EOL_CHAR+""):a.push(""+this.EOF_CHAR+"")),e||a.push("
")},this.$renderLine=function(a,b,c,d){if(!this.session.isRowFolded(b)){var e=this.session.getRowSplitData(b);this.$renderLineCore(a,b,c,e,d)}else this.$renderFoldLine(a,b,c,d)},this.$renderFoldLine=function(a,b,c,d){function h(a,b,c){var d=0,e=0;while(e+a[d].value.lengthc-b&&(f=f.substring(0,c-b)),g.push({type:a[d].type,value:f}),e=b+f.length,d+=1}while(ec&&(f=f.substring(0,c-e)),g.push({type:a[d].type,value:f}),e+=f.length,d+=1}}var e=this.session,f=e.getFoldLine(b),g=[];f.walk(function(a,b,d,e,f){a?g.push({type:"fold",value:a}):(f&&(c=this.session.getTokens(b,b)[0].tokens),c.length!=0&&h(c,e,d))}.bind(this),f.end.row,this.session.getLine(f.end.row).length);var i=this.session.$useWrapMode?this.session.$wrapData[b]:null;this.$renderLineCore(a,b,g,i,d)},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(a,b,c){"use strict";var d=a("../lib/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.cursors=[],this.cursor=this.addCursor()};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.addCursor=function(){var a=d.createElement("div"),b="ace_cursor";return this.isVisible||(b+=" ace_hidden"),this.overwrite&&(b+=" ace_overwrite"),a.className=b,this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1;for(var a=this.cursors.length;a--;)d.addCssClass(this.cursors[a],"ace_hidden");clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0;for(var a=this.cursors.length;a--;)d.removeCssClass(this.cursors[a],"ace_hidden");this.element.style.visibility="",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible)return;var a=this.cursors.length==1?this.cursor:this.element;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility=""},400)},1e3)},this.getPixelPosition=function(a,b){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(a),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a;if(this.session.selectionMarkerCount>0){var b=this.session.$selectionMarkers,c=0,d,e=0;for(var c=b.length;c--;){d=b[c];var f=this.getPixelPosition(d.cursor,!0),g=(this.cursors[e++]||this.addCursor()).style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px"}if(e>1)while(this.cursors.length>e)this.removeCursor()}else{var f=this.getPixelPosition(null,!0),g=this.cursor.style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px";while(this.cursors.length>1)this.removeCursor()}var h=this.session.getOverwrite();h!=this.overwrite&&this.$setOverite(h),this.$pixelPos=f,this.restartTimer()},this.$setOverite=function(a){this.overwrite=a;for(var b=this.cursors.length;b--;)a?d.addCssClass(this.cursors[b],"ace_overwrite"):d.removeCssClass(this.cursors[b],"ace_overwrite")},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){"use strict";var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(a.ownerDocument),this.element.style.width=(this.width||15)+5+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(a,b,c){"use strict";var d=a("./lib/event"),e=function(a,b){this.onRender=a,this.pending=!1,this.changes=0,this.window=b||window};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;d.nextTick(function(){b.pending=!1;var a;while(a=b.changes)b.changes=0,b.onRender(a)},this.window)}}}).call(e.prototype),b.RenderLoop=e}),define("text!ace/css/editor.css",[],"\n.ace_editor {\n position: absolute;\n overflow: hidden;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n font-size: 12px;\n}\n\n.ace_scroller {\n position: absolute;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.ace_content {\n position: absolute;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n cursor: text;\n}\n\n.ace_composition {\n position: absolute;\n background: #555;\n color: #DDD;\n z-index: 4;\n}\n\n.ace_gutter {\n position: absolute;\n overflow : hidden;\n height: 100%;\n width: auto;\n cursor: default;\n z-index: 1000;\n}\n\n.ace_gutter_active_line {\n position: absolute;\n right: 0;\n width: 100%;\n}\n\n.ace_gutter.horscroll {\n box-shadow: 0px 0px 20px rgba(0,0,0,0.4);\n}\n\n.ace_gutter-cell {\n padding-left: 19px;\n padding-right: 6px;\n}\n\n.ace_gutter-cell.ace_error {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n background-image: url(\"data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n background-repeat: no-repeat;\n background-position: 2px center;\n}\n\n.ace_editor .ace_sb {\n position: absolute;\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0;\n}\n\n.ace_editor .ace_sb div {\n position: absolute;\n width: 1px;\n left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n z-index: 0;\n position: absolute;\n overflow: hidden;\n margin: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n position: absolute;\n height: 100%;\n}\n\n.ace_editor textarea {\n position: fixed;\n z-index: 0;\n width: 0.5em;\n height: 1em;\n opacity: 0;\n background: transparent;\n appearance: none;\n -moz-appearance: none;\n border: none;\n resize: none;\n outline: none;\n overflow: hidden;\n}\n\n.ace_layer {\n z-index: 1;\n position: absolute;\n overflow: hidden;\n white-space: nowrap;\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n /* setting pointer-events: auto; on node under the mouse, which changes\n during scroll, will break mouse wheel scrolling in Safari */\n pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n position: relative;\n min-width: 40px;\n text-align: right;\n pointer-events: auto;\n}\n\n.ace_text-layer {\n color: black;\n font: inherit !important;\n}\n\n.ace_cjk {\n display: inline-block;\n text-align: center;\n}\n\n.ace_cursor-layer {\n z-index: 4;\n}\n\n.ace_cursor {\n z-index: 4;\n position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n opacity: 0.2;\n}\n\n.ace_editor.multiselect .ace_cursor {\n border-left-width: 1px;\n}\n\n.ace_line {\n white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n position: absolute;\n z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n position: absolute;\n z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n position: absolute;\n z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n position: absolute;\n z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n position: absolute;\n z-index: 4;\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n \n display: inline-block;\n height: 11px;\n margin-top: -2px;\n vertical-align: middle;\n\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n color: transparent;\n\n border: 1px solid black;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n border-radius: 2px;\n \n cursor: pointer;\n pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n background-image: \n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat, repeat-x;\n background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n cursor: move;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n padding-right: 13px;\n}\n\n.ace_fold-widget {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n\n margin: 0 -12px 1px 1px;\n display: inline-block;\n height: 14px;\n width: 11px;\n vertical-align: text-bottom;\n \n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n background-repeat: no-repeat;\n background-position: center 5px;\n\n border-radius: 3px;\n}\n\n.ace_fold-widget.end {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n border: 1px solid rgba(0, 0, 0, 0.3);\n background-color: rgba(255, 255, 255, 0.2);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n background-position: center 4px;\n}\n\n.ace_fold-widget:active {\n border: 1px solid rgba(0, 0, 0, 0.4);\n background-color: rgba(0, 0, 0, 0.05);\n -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n\n.ace_fold-widget.invalid {\n background-color: #FFB4B4;\n border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n -moz-transition: 0.5s opacity;\n -webkit-transition: 0.5s opacity;\n -o-transition: 0.5s opacity;\n -ms-transition: 0.5s opacity;\n transition: 0.5s opacity;\n opacity: 0;\n}\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n -moz-transition-duration: 0.05s;\n -webkit-transition-duration: 0.05s;\n -o-transition-duration: 0.05s;\n -ms-transition-duration: 0.05s;\n transition-duration: 0.05s;\n -moz-transition-delay: 0.2s;\n -webkit-transition-delay: 0.2s;\n -o-transition-delay: 0.2s;\n -ms-transition-delay: 0.2s;\n transition-delay: 0.2s; \n opacity:1;\n}\n"),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(a,b,c){function k(a,b,c){return j.$options.wrap=!0,j.$options.needle=b,j.$options.backwards=c==-1,j.find(a)}function n(a,b){return a.row==b.row&&a.column==b.column}function o(a){a.$onAddRange=a.$onAddRange.bind(a),a.$onRemoveRange=a.$onRemoveRange.bind(a),a.$onMultiSelect=a.$onMultiSelect.bind(a),a.$onSingleSelect=a.$onSingleSelect.bind(a),b.onSessionChange.call(a,a),a.on("changeSession",b.onSessionChange.bind(a)),a.on("mousedown",g),a.commands.addCommands(b.commands.defaultCommands),p(a)}function p(a){function e(){c&&(d.style.cursor="",c=!1)}var b=a.textInput.getElement(),c=!1,d=a.renderer.content;h.addListener(b,"keydown",function(a){a.keyCode==18&&!(a.ctrlKey||a.shiftKey||a.metaKey)?c||(d.style.cursor="crosshair",c=!0):c&&(d.style.cursor="")}),h.addListener(b,"keyup",e),h.addListener(b,"blur",e)}var d=a("./range_list").RangeList,e=a("./range").Range,f=a("./selection").Selection,g=a("./mouse/multi_select_handler").onMouseDown,h=a("./lib/event");b.commands=a("./commands/multi_select_commands");var i=a("./search").Search,j=new i,l=a("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(l.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(a,b){if(!a)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var c=this.toOrientedRange();if(a.intersects(c))return b||this.fromOrientedRange(a);this.rangeList.add(c),this.$onAddRange(c)}a.cursor||(a.cursor=a.end);var d=this.rangeList.add(a);return this.$onAddRange(a),d.length&&this.$onRemoveRange(d),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(a)},this.toSingleRange=function(a){a=a||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),a&&this.fromOrientedRange(a)},this.substractPoint=function(a){var b=this.rangeList.substractPoint(a);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var a=this.rangeList.merge();a.length?this.$onRemoveRange(a):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(a){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(a),this._emit("addRange",{range:a})},this.$onRemoveRange=function(a){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();a.push(b),this.rangeCount=0}for(var c=a.length;c--;){var d=this.ranges.indexOf(a[c]);this.ranges.splice(d,1)}this._emit("removeRange",{ranges:a}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new d,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var c=this.getRange(),d=c.start.row,f=c.end.row;if(d==f)return;var g=[],h=this.getLineRange(d,!0);h.start.column=c.start.column,g.push(h);for(var i=d+1;i1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),f=this.session.documentToScreenPosition(this.selectionAnchor),g=this.rectangularRangeBlock(d,f);g.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(a,b,c){var d=[],f=a.column0)p--;if(p>0){var q=0;while(d[q].isEmpty())q++}for(var r=p;r>=q;r--)d[r].isEmpty()&&d.splice(r,1)}return d}}.call(f.prototype);var m=a("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(a){a.cursor||(a.cursor=a.end);var b=this.getSelectionStyle();return a.marker=this.session.addMarker(a,"ace_selection",b),this.session.$selectionMarkers.push(a),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,a},this.removeSelectionMarker=function(a){if(!a.marker)return;this.session.removeMarker(a.marker);var b=this.session.$selectionMarkers.indexOf(a);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(a){var b=this.session.$selectionMarkers;for(var c=a.length;c--;){var d=a[c];if(!d.marker)continue;this.session.removeMarker(d.marker);var e=b.indexOf(d);e!=-1&&b.splice(e,1)}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(a){this.addSelectionMarker(a.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(a){this.removeSelectionMarkers(a.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(a){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("multiselect"),this.keyBinding.addKeyboardHandler(b.commands.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(a){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("multiselect"),this.keyBinding.removeKeyboardHandler(b.commands.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(a){var b=a.command,c=a.editor;b.multiSelectAction?b.multiSelectAction=="forEach"?c.forEachSelection(b,a.args):b.multiSelectAction=="single"?(c.exitMultiSelectMode(),b.exec(c,a.args||{})):b.multiSelectAction(c,a.args||{}):(b.exec(c,a.args||{}),c.multiSelect.addRange(c.multiSelect.toOrientedRange()),c.multiSelect.mergeOverlappingRanges()),a.preventDefault()},this.forEachSelection=function(a,b){if(this.inVirtualSelectionMode)return;var c=this.session,d=this.selection,e=d.rangeList,g=d._eventRegistry;d._eventRegistry={};var h=new f(c);this.inVirtualSelectionMode=!0;for(var i=e.ranges.length;i--;)h.fromOrientedRange(e.ranges[i]),this.selection=c.selection=h,a.exec(this,b||{}),h.toOrientedRange(e.ranges[i]);h.detach(),this.selection=c.selection=d,this.inVirtualSelectionMode=!1,d._eventRegistry=g,d.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var a="";if(this.inMultiSelectMode){var b=this.multiSelect.rangeList.ranges;a=[];for(var c=0;cc.length){this.commands.exec("insertstring",this,a);return}for(var d=c.length;d--;){var e=c[d];e.isEmpty()||this.session.remove(e),this.session.insert(e.start,b[d])}},this.findAll=function(a,b,c){b=b||{},b.needle=a||b.needle,this.$search.set(b);var d=this.$search.findAll(this.session);if(!d.length)return 0;this.$blockScrolling+=1;var e=this.multiSelect;c||e.toSingleRange(d[0]);for(var f=d.length;f--;)e.addRange(d[f],!0);return this.$blockScrolling-=1,d.length},this.selectMoreLines=function(a,b){var c=this.selection.toOrientedRange(),d=c.cursor==c.end,f=this.session.documentToScreenPosition(c.cursor);this.selection.$desiredColumn&&(f.column=this.selection.$desiredColumn);var g=this.session.screenToDocumentPosition(f.row+a,f.column);if(!c.isEmpty())var h=this.session.documentToScreenPosition(d?c.end:c.start),i=this.session.screenToDocumentPosition(h.row+a,h.column);else var i=g;if(d){var j=e.fromPoints(g,i);j.cursor=j.start}else{var j=e.fromPoints(i,g);j.cursor=j.end}j.desiredColumn=f.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(c);else if(b)var k=c.cursor;this.selection.addRange(j),k&&this.selection.substractPoint(k)},this.transposeSelections=function(a){var b=this.session,c=b.multiSelect,d=c.ranges;for(var e=d.length;e--;){var f=d[e];if(f.isEmpty()){var g=b.getWordRange(f.start.row,f.start.column);f.start.row=g.start.row,f.start.column=g.start.column,f.end.row=g.end.row,f.end.column=g.end.column}}c.mergeOverlappingRanges();var h=[];for(var e=d.length;e--;){var f=d[e];h.unshift(b.getTextRange(f))}a<0?h.unshift(h.pop()):h.push(h.shift());for(var e=d.length;e--;){var f=d[e],g=f.clone();b.replace(f,h[e]),f.start.row=g.start.row,f.start.column=g.start.column}},this.selectMore=function(a,b){var c=this.session,d=c.multiSelect,e=d.toOrientedRange();if(e.isEmpty()){var e=c.getWordRange(e.start.row,e.start.column);e.cursor=e.end,this.multiSelect.addRange(e)}var f=c.getTextRange(e),g=k(c,f,a);g&&(g.cursor=a==-1?g.start:g.end,this.multiSelect.addRange(g)),b&&this.multiSelect.substractPoint(e.cursor)}}).call(m.prototype),b.onSessionChange=function(a){var b=a.session;b.multiSelect||(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b.multiSelect;var c=a.oldSession;c&&(c.multiSelect&&c.multiSelect.editor==this&&(c.multiSelect.editor=null),b.multiSelect.removeEventListener("addRange",this.$onAddRange),b.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),b.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),b.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},b.MultiSelect=o}),define("ace/range_list",["require","exports","module"],function(a,b,c){"use strict";var d=function(){this.ranges=[]};(function(){this.comparePoints=function(a,b){return a.row-b.row||a.column-b.column},this.pointIndex=function(a,b){var c=this.ranges;for(var d=b||0;d0)continue;return f==0?d:(f=this.comparePoints(a,e.start),f>=0?d:-d-1)}return-d-1},this.add=function(a){var b=this.pointIndex(a.start);b<0&&(b=-b-1);var c=this.pointIndex(a.end,b);return c<0?c=-c-1:c++,this.ranges.splice(b,c-b,a)},this.addList=function(a){var b=[];for(var c=a.length;c--;)b.push.call(b,this.add(a[c]));return b},this.substractPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges.splice(b,1)},this.merge=function(){var a=[],b=this.ranges,c=b[0],d;for(var e=1;e=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges[b]},this.clipRows=function(a,b){var c=this.ranges;if(c[0].start.row>b||c[c.length-1].start.rowe)break;l.start.row==e&&l.start.column>=c.column&&(l.start.column+=h,l.start.row+=g),l.end.row==e&&l.end.column>=c.column&&(l.end.column+=h,l.end.row+=g)}if(g!=0&&j=this.pos.column&&c.start.column<=this.pos.column+this.length+1){var f=c.start.column-this.pos.column;this.length+=e;if(!this.session.$fromUndo){if(b.action==="insertText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column=this.pos.column&&b.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var a=0;a + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +/** + * Define a module along with a payload + * @param module a name for the payload + * @param payload a function to call with (require, exports, module) params + */ + +(function() { + +var ACE_NAMESPACE = ""; + +var global = (function() { + return this; +})(); + +var _define = function(module, deps, payload) { + if (typeof module !== 'string') { + if (_define.original) + _define.original.apply(window, arguments); + else { + console.error('dropping module because define wasn\'t a string.'); + console.trace(); + } + return; + } + + if (arguments.length == 2) + payload = deps; + + if (!_define.modules) + _define.modules = {}; + + _define.modules[module] = payload; +}; +var _require = function(parentId, module, callback) { + if (Object.prototype.toString.call(module) === "[object Array]") { + var params = []; + for (var i = 0, l = module.length; i < l; ++i) { + var dep = lookup(parentId, module[i]); + if (!dep && _require.original) + return _require.original.apply(window, arguments); + params.push(dep); + } + if (callback) { + callback.apply(null, params); + } + } + else if (typeof module === 'string') { + var payload = lookup(parentId, module); + if (!payload && _require.original) + return _require.original.apply(window, arguments); + + if (callback) { + callback(); + } + + return payload; + } + else { + if (_require.original) + return _require.original.apply(window, arguments); + } +}; + +var normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = base + "/" + moduleName; + + while(moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; +var lookup = function(parentId, moduleName) { + + moduleName = normalizeModule(parentId, moduleName); + + var module = _define.modules[moduleName]; + if (!module) { + return null; + } + + if (typeof module === 'function') { + var exports = {}; + var mod = { + id: moduleName, + uri: '', + exports: exports, + packaged: true + }; + + var req = function(module, callback) { + return _require(moduleName, module, callback); + }; + + var returnValue = module(req, exports, mod); + exports = returnValue || mod.exports; + + // cache the resulting module object for next time + _define.modules[moduleName] = exports; + return exports; + } + + return module; +}; + +function exportAce(ns) { + + if (typeof requirejs !== "undefined") { + + var define = global.define; + global.define = function(id, deps, callback) { + if (typeof callback !== "function") + return define.apply(this, arguments); + + return define(id, deps, function(require, exports, module) { + if (deps[2] == "module") + module.packaged = true; + return callback.apply(this, arguments); + }); + }; + global.define.packaged = true; + + return; + } + + var require = function(module, callback) { + return _require("", module, callback); + }; + require.packaged = true; + + var root = global; + if (ns) { + if (!global[ns]) + global[ns] = {}; + root = global[ns]; + } + + if (root.define) + _define.original = root.define; + + root.define = _define; + + if (root.require) + _require.original = root.require; + + root.require = require; +} + +exportAce(ACE_NAMESPACE); + +})(); + +/** + * class Ace + * + * The main class required to set up an Ace instance in the browser. + * + * + **/ + +define('ace/ace', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/dom', 'ace/lib/event', 'ace/editor', 'ace/edit_session', 'ace/undomanager', 'ace/virtual_renderer', 'ace/multi_select', 'ace/worker/worker_client', 'ace/keyboard/hash_handler', 'ace/keyboard/state_handler', 'ace/placeholder', 'ace/config', 'ace/theme/textmate'], function(require, exports, module) { + + +require("./lib/fixoldbrowsers"); + +var Dom = require("./lib/dom"); +var Event = require("./lib/event"); + +var Editor = require("./editor").Editor; +var EditSession = require("./edit_session").EditSession; +var UndoManager = require("./undomanager").UndoManager; +var Renderer = require("./virtual_renderer").VirtualRenderer; +var MultiSelect = require("./multi_select").MultiSelect; + +// The following require()s are for inclusion in the built ace file +require("./worker/worker_client"); +require("./keyboard/hash_handler"); +require("./keyboard/state_handler"); +require("./placeholder"); +exports.config = require("./config"); +exports.edit = function(el) { + if (typeof(el) == "string") { + el = document.getElementById(el); + } + + if (el.env && el.env.editor instanceof Editor) + return el.env.editor; + + var doc = new EditSession(Dom.getInnerText(el)); + doc.setUndoManager(new UndoManager()); + el.innerHTML = ''; + + var editor = new Editor(new Renderer(el, require("./theme/textmate"))); + new MultiSelect(editor); + editor.setSession(doc); + + var env = {}; + env.document = doc; + env.editor = editor; + editor.resize(); + Event.addListener(window, "resize", function() { + editor.resize(); + }); + el.env = env; + // Store env on editor such that it can be accessed later on from + // the returned object. + editor.env = env; + return editor; +}; + +}); +// vim:set ts=4 sts=4 sw=4 st: +// -- kriskowal Kris Kowal Copyright (C) 2009-2010 MIT License +// -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project) +// -- dantman Daniel Friesen Copyright(C) 2010 XXX No License Specified +// -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License +// -- Irakli Gozalishvili Copyright (C) 2010 MIT License + +/*! + Copyright (c) 2009, 280 North Inc. http://280north.com/ + MIT License. http://github.com/280north/narwhal/blob/master/README.md +*/ + +define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) { + + +require("./regexp"); +require("./es5-shim"); + +}); + +define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) { + + + //--------------------------------- + // Private variables + //--------------------------------- + + var real = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + real.test.call(x, ""); + return !x.lastIndex; + }(); + + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + + //--------------------------------- + // Overriden native methods + //--------------------------------- + + // Adds named capture support (with backreferences returned as `result.name`), and fixes two + // cross-browser issues per ES3: + // - Captured values for nonparticipating capturing groups should be returned as `undefined`, + // rather than the empty string. + // - `lastIndex` should not be incremented after zero-length matches. + RegExp.prototype.exec = function (str) { + var match = real.exec.apply(this, arguments), + name, r2; + if ( typeof(str) == 'string' && match) { + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", "")); + // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed + // matching due to characters outside the match + real.replace.call(str.slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + // Attach named capture properties + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + // Fix browsers that increment `lastIndex` after zero-length matches + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + return match; + }; + + // Don't override `test` if it won't change anything + if (!compliantLastIndexIncrement) { + // Fix browser bug in native method + RegExp.prototype.test = function (str) { + // Use the native `exec` to skip some processing overhead, even though the overriden + // `exec` would take care of the `lastIndex` fix + var match = real.exec.call(this, str); + // Fix browsers that increment `lastIndex` after zero-length matches + if (match && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + return !!match; + }; + } + + //--------------------------------- + // Private helper functions + //--------------------------------- + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + }; + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + }; + +}); +// vim: ts=4 sts=4 sw=4 expandtab +// -- kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License +// -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project) +// -- dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA +// -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License +// -- Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License +// -- kitcambridge Kit Cambridge Copyright (C) 2011 MIT License +// -- kossnocorp Sasha Koss XXX TODO License or CLA +// -- bryanforbes Bryan Forbes XXX TODO License or CLA +// -- killdream Quildreen Motta Copyright (C) 2011 MIT Licence +// -- michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD License +// -- sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License +// -- bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain) +// -- iwyg XXX TODO License or CLA +// -- DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License +// -- xavierm02 Montillet Xavier XXX TODO License or CLA +// -- Raynos Raynos XXX TODO License or CLA +// -- samsonjs Sami Samhuri Copyright (C) 2010 MIT License +// -- rwldrn Rick Waldron Copyright (C) 2011 MIT License +// -- lexer Alexey Zakharov XXX TODO License or CLA + +/*! + Copyright (c) 2009, 280 North Inc. http://280north.com/ + MIT License. http://github.com/280north/narwhal/blob/master/README.md +*/ + +define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { + +/* + * Brings an environment as close to ECMAScript 5 compliance + * as is possible with the facilities of erstwhile engines. + * + * Annotated ES5: http://es5.github.com/ (specific links below) + * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf + * + * @module + */ + +/*whatsupdoc*/ + +// +// Function +// ======== +// + +// ES-5 15.3.4.5 +// http://es5.github.com/#x15.3.4.5 + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + // 1. Let Target be the this value. + var target = this; + // 2. If IsCallable(Target) is false, throw a TypeError exception. + if (typeof target != "function") + throw new TypeError(); // TODO message + // 3. Let A be a new (possibly empty) internal list of all of the + // argument values provided after thisArg (arg1, arg2 etc), in order. + // XXX slicedArgs will stand in for "A" if used + var args = slice.call(arguments, 1); // for normal call + // 4. Let F be a new native ECMAScript object. + // 11. Set the [[Prototype]] internal property of F to the standard + // built-in Function prototype object as specified in 15.3.3.1. + // 12. Set the [[Call]] internal property of F as described in + // 15.3.4.5.1. + // 13. Set the [[Construct]] internal property of F as described in + // 15.3.4.5.2. + // 14. Set the [[HasInstance]] internal property of F as described in + // 15.3.4.5.3. + var bound = function () { + + if (this instanceof bound) { + // 15.3.4.5.2 [[Construct]] + // When the [[Construct]] internal method of a function object, + // F that was created using the bind function is called with a + // list of arguments ExtraArgs, the following steps are taken: + // 1. Let target be the value of F's [[TargetFunction]] + // internal property. + // 2. If target has no [[Construct]] internal method, a + // TypeError exception is thrown. + // 3. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Construct]] internal + // method of target providing args as the arguments. + + var F = function(){}; + F.prototype = target.prototype; + var self = new F; + + var result = target.apply( + self, + args.concat(slice.call(arguments)) + ); + if (result !== null && Object(result) === result) + return result; + return self; + + } else { + // 15.3.4.5.1 [[Call]] + // When the [[Call]] internal method of a function object, F, + // which was created using the bind function is called with a + // this value and a list of arguments ExtraArgs, the following + // steps are taken: + // 1. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 2. Let boundThis be the value of F's [[BoundThis]] internal + // property. + // 3. Let target be the value of F's [[TargetFunction]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Call]] internal method + // of target providing boundThis as the this value and + // providing args as the arguments. + + // equiv: target.call(this, ...boundArgs, ...args) + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + // XXX bound.length is never writable, so don't even try + // + // 15. If the [[Class]] internal property of Target is "Function", then + // a. Let L be the length property of Target minus the length of A. + // b. Set the length own property of F to either 0 or L, whichever is + // larger. + // 16. Else set the length own property of F to 0. + // 17. Set the attributes of the length own property of F to the values + // specified in 15.3.5.1. + + // TODO + // 18. Set the [[Extensible]] internal property of F to true. + + // TODO + // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3). + // 20. Call the [[DefineOwnProperty]] internal method of F with + // arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]: + // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and + // false. + // 21. Call the [[DefineOwnProperty]] internal method of F with + // arguments "arguments", PropertyDescriptor {[[Get]]: thrower, + // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false}, + // and false. + + // TODO + // NOTE Function objects created using Function.prototype.bind do not + // have a prototype property or the [[Code]], [[FormalParameters]], and + // [[Scope]] internal properties. + // XXX can't delete prototype in pure-js. + + // 22. Return F. + return bound; + }; +} + +// Shortcut to an often accessed properties, in order to avoid multiple +// dereference that costs universally. +// _Please note: Shortcuts are defined after `Function.prototype.bind` as we +// us it in defining shortcuts. +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); + +// If JS engine supports accessors creating shortcuts. +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} + +// +// Array +// ===== +// + +// ES5 15.4.3.2 +// http://es5.github.com/#x15.4.3.2 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return toString(obj) == "[object Array]"; + }; +} + +// The IsCallable() check in the Array functions +// has been replaced with a strict check on the +// internal class of the object to trap cases where +// the provided function was actually a regular +// expression literal, which in V8 and +// JavaScriptCore is a typeof "function". Only in +// V8 are regular expression literals permitted as +// reduce parameters, so it is desirable in the +// general case for the shim to match the more +// strict and common behavior of rejecting regular +// expressions. + +// ES5 15.4.4.18 +// http://es5.github.com/#x15.4.4.18 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var self = toObject(this), + thisp = arguments[1], + i = 0, + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (i < length) { + if (i in self) { + // Invoke the callback function with call, passing arguments: + // context, property value, property key, thisArg object context + fun.call(thisp, self[i], i, self); + } + i++; + } + }; +} + +// ES5 15.4.4.19 +// http://es5.github.com/#x15.4.4.19 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var self = toObject(this), + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, self); + } + return result; + }; +} + +// ES5 15.4.4.20 +// http://es5.github.com/#x15.4.4.20 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + result = [], + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, self)) + result.push(self[i]); + } + return result; + }; +} + +// ES5 15.4.4.16 +// http://es5.github.com/#x15.4.4.16 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, self)) + return false; + } + return true; + }; +} + +// ES5 15.4.4.17 +// http://es5.github.com/#x15.4.4.17 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, self)) + return true; + } + return false; + }; +} + +// ES5 15.4.4.21 +// http://es5.github.com/#x15.4.4.21 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var self = toObject(this), + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + // no value to return if no initial value and an empty array + if (!length && arguments.length == 1) + throw new TypeError(); // TODO message + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + + // if array contains no values, no initial value to return + if (++i >= length) + throw new TypeError(); // TODO message + } while (true); + } + + for (; i < length; i++) { + if (i in self) + result = fun.call(void 0, result, self[i], i, self); + } + + return result; + }; +} + +// ES5 15.4.4.22 +// http://es5.github.com/#x15.4.4.22 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var self = toObject(this), + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + // no value to return if no initial value, empty array + if (!length && arguments.length == 1) + throw new TypeError(); // TODO message + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + + // if array contains no values, no initial value to return + if (--i < 0) + throw new TypeError(); // TODO message + } while (true); + } + + do { + if (i in this) + result = fun.call(void 0, result, self[i], i, self); + } while (i--); + + return result; + }; +} + +// ES5 15.4.4.14 +// http://es5.github.com/#x15.4.4.14 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = toObject(this), + length = self.length >>> 0; + + if (!length) + return -1; + + var i = 0; + if (arguments.length > 1) + i = toInteger(arguments[1]); + + // handle negative indices + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} + +// ES5 15.4.4.15 +// http://es5.github.com/#x15.4.4.15 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf +if (!Array.prototype.lastIndexOf) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = toObject(this), + length = self.length >>> 0; + + if (!length) + return -1; + var i = length - 1; + if (arguments.length > 1) + i = Math.min(i, toInteger(arguments[1])); + // handle negative indices + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) + return i; + } + return -1; + }; +} + +// +// Object +// ====== +// + +// ES5 15.2.3.2 +// http://es5.github.com/#x15.2.3.2 +if (!Object.getPrototypeOf) { + // https://github.com/kriskowal/es5-shim/issues#issue/2 + // http://ejohn.org/blog/objectgetprototypeof/ + // recommended by fschaefer on github + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} + +// ES5 15.2.3.3 +// http://es5.github.com/#x15.2.3.3 +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + // If object does not owns property return undefined immediately. + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + + // If object has a property then it's for sure both `enumerable` and + // `configurable`. + descriptor = { enumerable: true, configurable: true }; + + // If JS engine supports accessor properties then property may be a + // getter or setter. + if (supportsAccessors) { + // Unfortunately `__lookupGetter__` will return a getter even + // if object has own non getter property along with a same named + // inherited getter. To avoid misbehavior we temporary remove + // `__proto__` so that `__lookupGetter__` will return getter only + // if it's owned by an object. + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + + // Once we have getter and setter we can put values back. + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + + // If it was accessor property we're done and return here + // in order to avoid adding `value` to the descriptor. + return descriptor; + } + } + + // If we got this far we know that object has an own property that is + // not an accessor so we set it as a value and return descriptor. + descriptor.value = object[property]; + return descriptor; + }; +} + +// ES5 15.2.3.4 +// http://es5.github.com/#x15.2.3.4 +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} + +// ES5 15.2.3.5 +// http://es5.github.com/#x15.2.3.5 +if (!Object.create) { + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = { "__proto__": null }; + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + // IE has no built-in implementation of `Object.getPrototypeOf` + // neither `__proto__`, but this manually setting `__proto__` will + // guarantee that `Object.getPrototypeOf` will work as expected with + // objects created using `Object.create` + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +// ES5 15.2.3.6 +// http://es5.github.com/#x15.2.3.6 + +// Patch for WebKit and IE8 standard mode +// Designed by hax +// related issue: https://github.com/kriskowal/es5-shim/issues#issue/5 +// IE8 Reference: +// http://msdn.microsoft.com/en-us/library/dd282900.aspx +// http://msdn.microsoft.com/en-us/library/dd229916.aspx +// WebKit Bugs: +// https://bugs.webkit.org/show_bug.cgi?id=36423 + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + // returns falsy + } +} + +// check whether defineProperty works if it's given. Otherwise, +// shim partially. +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + + // make a valiant attempt to use the real defineProperty + // for I8's DOM elements. + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + // try the shim if the real one doesn't work + } + } + + // If it's a data property. + if (owns(descriptor, "value")) { + // fail silently if "writable", "enumerable", or "configurable" + // are requested but not supported + /* + // alternate approach: + if ( // can't implement these features; allow false but not true + !(owns(descriptor, "writable") ? descriptor.writable : true) || + !(owns(descriptor, "enumerable") ? descriptor.enumerable : true) || + !(owns(descriptor, "configurable") ? descriptor.configurable : true) + ) + throw new RangeError( + "This implementation of Object.defineProperty does not " + + "support configurable, enumerable, or writable." + ); + */ + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + // As accessors are supported only on engines implementing + // `__proto__` we can safely override `__proto__` while defining + // a property to make sure that we don't hit an inherited + // accessor. + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + // Deleting a property anyway since getter / setter may be + // defined on object itself. + delete object[property]; + object[property] = descriptor.value; + // Setting original `__proto__` back now. + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + // If we got that far then getters and setters can be defined !! + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} + +// ES5 15.2.3.7 +// http://es5.github.com/#x15.2.3.7 +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} + +// ES5 15.2.3.8 +// http://es5.github.com/#x15.2.3.8 +if (!Object.seal) { + Object.seal = function seal(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// ES5 15.2.3.9 +// http://es5.github.com/#x15.2.3.9 +if (!Object.freeze) { + Object.freeze = function freeze(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// detect a Rhino bug and patch it +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} + +// ES5 15.2.3.10 +// http://es5.github.com/#x15.2.3.10 +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// ES5 15.2.3.11 +// http://es5.github.com/#x15.2.3.11 +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} + +// ES5 15.2.3.12 +// http://es5.github.com/#x15.2.3.12 +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} + +// ES5 15.2.3.13 +// http://es5.github.com/#x15.2.3.13 +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + // 1. If Type(O) is not Object throw a TypeError exception. + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + // 2. Return the Boolean value of the [[Extensible]] internal property of O. + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} + +// ES5 15.2.3.14 +// http://es5.github.com/#x15.2.3.14 +if (!Object.keys) { + // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) + hasDontEnumBug = false; + + Object.keys = function keys(object) { + + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError("Object.keys called on a non-object"); + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + + return keys; + }; + +} + +// +// Date +// ==== +// + +// ES5 15.9.5.43 +// http://es5.github.com/#x15.9.5.43 +// This function returns a String value represent the instance in time +// represented by this Date object. The format of the String is the Date Time +// string format defined in 15.9.1.15. All fields are present in the String. +// The time zone is always UTC, denoted by the suffix Z. If the time value of +// this object is not a finite Number a RangeError exception is thrown. +if (!Date.prototype.toISOString || (new Date(-62198755200000).toISOString().indexOf('-000001') === -1)) { + Date.prototype.toISOString = function toISOString() { + var result, length, value, year; + if (!isFinite(this)) + throw new RangeError; + + // the date time string format is specified in 15.9.1.15. + result = [this.getUTCMonth() + 1, this.getUTCDate(), + this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()]; + year = this.getUTCFullYear(); + year = (year < 0 ? '-' : (year > 9999 ? '+' : '')) + ('00000' + Math.abs(year)).slice(0 <= year && year <= 9999 ? -4 : -6); + + length = result.length; + while (length--) { + value = result[length]; + // pad months, days, hours, minutes, and seconds to have two digits. + if (value < 10) + result[length] = "0" + value; + } + // pad milliseconds to have three digits. + return year + "-" + result.slice(0, 2).join("-") + "T" + result.slice(2).join(":") + "." + + ("000" + this.getUTCMilliseconds()).slice(-3) + "Z"; + } +} + +// ES5 15.9.4.4 +// http://es5.github.com/#x15.9.4.4 +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} + +// ES5 15.9.5.44 +// http://es5.github.com/#x15.9.5.44 +// This function provides a String representation of a Date object for use by +// JSON.stringify (15.12.3). +if (!Date.prototype.toJSON) { + Date.prototype.toJSON = function toJSON(key) { + // When the toJSON method is called with argument key, the following + // steps are taken: + + // 1. Let O be the result of calling ToObject, giving it the this + // value as its argument. + // 2. Let tv be ToPrimitive(O, hint Number). + // 3. If tv is a Number and is not finite, return null. + // XXX + // 4. Let toISO be the result of calling the [[Get]] internal method of + // O with argument "toISOString". + // 5. If IsCallable(toISO) is false, throw a TypeError exception. + if (typeof this.toISOString != "function") + throw new TypeError(); // TODO message + // 6. Return the result of calling the [[Call]] internal method of + // toISO with O as the this value and an empty argument list. + return this.toISOString(); + + // NOTE 1 The argument is ignored. + + // NOTE 2 The toJSON function is intentionally generic; it does not + // require that its this value be a Date object. Therefore, it can be + // transferred to other kinds of objects for use as a method. However, + // it does require that any such object have a toISOString method. An + // object is free to use the argument key to filter its + // stringification. + }; +} + +// ES5 15.9.4.2 +// http://es5.github.com/#x15.9.4.2 +// based on work shared by Daniel Friesen (dantman) +// http://gist.github.com/303249 +if (Date.parse("+275760-09-13T00:00:00.000Z") !== 8.64e15) { + // XXX global assignment won't work in embeddings that use + // an alternate object for the context. + Date = (function(NativeDate) { + + // Date.length === 7 + var Date = function Date(Y, M, D, h, m, s, ms) { + var length = arguments.length; + if (this instanceof NativeDate) { + var date = length == 1 && String(Y) === Y ? // isString(Y) + // We explicitly pass it through parse: + new NativeDate(Date.parse(Y)) : + // We have to manually make calls depending on argument + // length here + length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) : + length >= 6 ? new NativeDate(Y, M, D, h, m, s) : + length >= 5 ? new NativeDate(Y, M, D, h, m) : + length >= 4 ? new NativeDate(Y, M, D, h) : + length >= 3 ? new NativeDate(Y, M, D) : + length >= 2 ? new NativeDate(Y, M) : + length >= 1 ? new NativeDate(Y) : + new NativeDate(); + // Prevent mixups with unfixed Date object + date.constructor = Date; + return date; + } + return NativeDate.apply(this, arguments); + }; + + // 15.9.1.15 Date Time String Format. + var isoDateExpression = new RegExp("^" + + "(\\d{4}|[\+\-]\\d{6})" + // four-digit year capture or sign + 6-digit extended year + "(?:-(\\d{2})" + // optional month capture + "(?:-(\\d{2})" + // optional day capture + "(?:" + // capture hours:minutes:seconds.milliseconds + "T(\\d{2})" + // hours capture + ":(\\d{2})" + // minutes capture + "(?:" + // optional :seconds.milliseconds + ":(\\d{2})" + // seconds capture + "(?:\\.(\\d{3}))?" + // milliseconds capture + ")?" + + "(?:" + // capture UTC offset component + "Z|" + // UTC capture + "(?:" + // offset specifier +/-hours:minutes + "([-+])" + // sign capture + "(\\d{2})" + // hours offset capture + ":(\\d{2})" + // minutes offset capture + ")" + + ")?)?)?)?" + + "$"); + + // Copy any custom methods a 3rd party library may have added + for (var key in NativeDate) + Date[key] = NativeDate[key]; + + // Copy "native" methods explicitly; they may be non-enumerable + Date.now = NativeDate.now; + Date.UTC = NativeDate.UTC; + Date.prototype = NativeDate.prototype; + Date.prototype.constructor = Date; + + // Upgrade Date.parse to handle simplified ISO 8601 strings + Date.parse = function parse(string) { + var match = isoDateExpression.exec(string); + if (match) { + match.shift(); // kill match[0], the full match + // parse months, days, hours, minutes, seconds, and milliseconds + for (var i = 1; i < 7; i++) { + // provide default values if necessary + match[i] = +(match[i] || (i < 3 ? 1 : 0)); + // match[1] is the month. Months are 0-11 in JavaScript + // `Date` objects, but 1-12 in ISO notation, so we + // decrement. + if (i == 1) + match[i]--; + } + + // parse the UTC offset component + var minuteOffset = +match.pop(), hourOffset = +match.pop(), sign = match.pop(); + + // compute the explicit time zone offset if specified + var offset = 0; + if (sign) { + // detect invalid offsets and return early + if (hourOffset > 23 || minuteOffset > 59) + return NaN; + + // express the provided time zone offset in minutes. The offset is + // negative for time zones west of UTC; positive otherwise. + offset = (hourOffset * 60 + minuteOffset) * 6e4 * (sign == "+" ? -1 : 1); + } + + // Date.UTC for years between 0 and 99 converts year to 1900 + year + // The Gregorian calendar has a 400-year cycle, so + // to Date.UTC(year + 400, .... ) - 12622780800000 == Date.UTC(year, ...), + // where 12622780800000 - number of milliseconds in Gregorian calendar 400 years + var year = +match[0]; + if (0 <= year && year <= 99) { + match[0] = year + 400; + return NativeDate.UTC.apply(this, match) + offset - 12622780800000; + } + + // compute a new UTC date value, accounting for the optional offset + return NativeDate.UTC.apply(this, match) + offset; + } + return NativeDate.parse.apply(this, arguments); + }; + + return Date; + })(Date); +} + +// +// String +// ====== +// + +// ES5 15.5.4.20 +// http://es5.github.com/#x15.5.4.20 +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + // http://blog.stevenlevithan.com/archives/faster-trim-javascript + // http://perfectionkills.com/whitespace-deviations/ + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +// +// Util +// ====== +// + +// ES5 9.4 +// http://es5.github.com/#x9.4 +// http://jsperf.com/to-integer +var toInteger = function (n) { + n = +n; + if (n !== n) // isNaN + n = 0; + else if (n !== 0 && n !== (1/0) && n !== -(1/0)) + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + return n; +}; + +var prepareString = "a"[0] != "a", + // ES5 9.9 + // http://es5.github.com/#x9.9 + toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError(); // TODO message + } + // If the implementation doesn't support by-index access of + // string characters (ex. IE < 7), split the string + if (prepareString && typeof o == "string" && o) { + return o.split(""); + } + return Object(o); + }; +}); + +define('ace/lib/dom', ['require', 'exports', 'module' ], function(require, exports, module) { + + +var XHTML_NS = "http://www.w3.org/1999/xhtml"; + +exports.createElement = function(tag, ns) { + return document.createElementNS ? + document.createElementNS(ns || XHTML_NS, tag) : + document.createElement(tag); +}; + +exports.setText = function(elem, text) { + if (elem.innerText !== undefined) { + elem.innerText = text; + } + if (elem.textContent !== undefined) { + elem.textContent = text; + } +}; + +exports.hasCssClass = function(el, name) { + var classes = el.className.split(/\s+/g); + return classes.indexOf(name) !== -1; +}; +exports.addCssClass = function(el, name) { + if (!exports.hasCssClass(el, name)) { + el.className += " " + name; + } +}; +exports.removeCssClass = function(el, name) { + var classes = el.className.split(/\s+/g); + while (true) { + var index = classes.indexOf(name); + if (index == -1) { + break; + } + classes.splice(index, 1); + } + el.className = classes.join(" "); +}; + +exports.toggleCssClass = function(el, name) { + var classes = el.className.split(/\s+/g), add = true; + while (true) { + var index = classes.indexOf(name); + if (index == -1) { + break; + } + add = false; + classes.splice(index, 1); + } + if(add) + classes.push(name); + + el.className = classes.join(" "); + return add; +}; +exports.setCssClass = function(node, className, include) { + if (include) { + exports.addCssClass(node, className); + } else { + exports.removeCssClass(node, className); + } +}; + +exports.hasCssString = function(id, doc) { + var index = 0, sheets; + doc = doc || document; + + if (doc.createStyleSheet && (sheets = doc.styleSheets)) { + while (index < sheets.length) + if (sheets[index++].owningElement.id === id) return true; + } else if ((sheets = doc.getElementsByTagName("style"))) { + while (index < sheets.length) + if (sheets[index++].id === id) return true; + } + + return false; +}; + +exports.importCssString = function importCssString(cssText, id, doc) { + doc = doc || document; + // If style is already imported return immediately. + if (id && exports.hasCssString(id, doc)) + return null; + + var style; + + if (doc.createStyleSheet) { + style = doc.createStyleSheet(); + style.cssText = cssText; + if (id) + style.owningElement.id = id; + } else { + style = doc.createElementNS + ? doc.createElementNS(XHTML_NS, "style") + : doc.createElement("style"); + + style.appendChild(doc.createTextNode(cssText)); + if (id) + style.id = id; + + var head = doc.getElementsByTagName("head")[0] || doc.documentElement; + head.appendChild(style); + } +}; + +exports.importCssStylsheet = function(uri, doc) { + if (doc.createStyleSheet) { + doc.createStyleSheet(uri); + } else { + var link = exports.createElement('link'); + link.rel = 'stylesheet'; + link.href = uri; + + var head = doc.getElementsByTagName("head")[0] || doc.documentElement; + head.appendChild(link); + } +}; + +exports.getInnerWidth = function(element) { + return ( + parseInt(exports.computedStyle(element, "paddingLeft"), 10) + + parseInt(exports.computedStyle(element, "paddingRight"), 10) + + element.clientWidth + ); +}; + +exports.getInnerHeight = function(element) { + return ( + parseInt(exports.computedStyle(element, "paddingTop"), 10) + + parseInt(exports.computedStyle(element, "paddingBottom"), 10) + + element.clientHeight + ); +}; + +if (window.pageYOffset !== undefined) { + exports.getPageScrollTop = function() { + return window.pageYOffset; + }; + + exports.getPageScrollLeft = function() { + return window.pageXOffset; + }; +} +else { + exports.getPageScrollTop = function() { + return document.body.scrollTop; + }; + + exports.getPageScrollLeft = function() { + return document.body.scrollLeft; + }; +} + +if (window.getComputedStyle) + exports.computedStyle = function(element, style) { + if (style) + return (window.getComputedStyle(element, "") || {})[style] || ""; + return window.getComputedStyle(element, "") || {}; + }; +else + exports.computedStyle = function(element, style) { + if (style) + return element.currentStyle[style]; + return element.currentStyle; + }; + +exports.scrollbarWidth = function(document) { + + var inner = exports.createElement("p"); + inner.style.width = "100%"; + inner.style.minWidth = "0px"; + inner.style.height = "200px"; + + var outer = exports.createElement("div"); + var style = outer.style; + + style.position = "absolute"; + style.left = "-10000px"; + style.overflow = "hidden"; + style.width = "200px"; + style.minWidth = "0px"; + style.height = "150px"; + + outer.appendChild(inner); + + var body = document.body || document.documentElement; + body.appendChild(outer); + + var noScrollbar = inner.offsetWidth; + + style.overflow = "scroll"; + var withScrollbar = inner.offsetWidth; + + if (noScrollbar == withScrollbar) { + withScrollbar = outer.clientWidth; + } + + body.removeChild(outer); + + return noScrollbar-withScrollbar; +}; +exports.setInnerHtml = function(el, innerHtml) { + var element = el.cloneNode(false);//document.createElement("div"); + element.innerHTML = innerHtml; + el.parentNode.replaceChild(element, el); + return element; +}; + +exports.setInnerText = function(el, innerText) { + var document = el.ownerDocument; + if (document.body && "textContent" in document.body) + el.textContent = innerText; + else + el.innerText = innerText; + +}; + +exports.getInnerText = function(el) { + var document = el.ownerDocument; + if (document.body && "textContent" in document.body) + return el.textContent; + else + return el.innerText || el.textContent || ""; +}; + +exports.getParentWindow = function(document) { + return document.defaultView || document.parentWindow; +}; + +}); + +define('ace/lib/event', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/useragent', 'ace/lib/dom'], function(require, exports, module) { + + +var keys = require("./keys"); +var useragent = require("./useragent"); +var dom = require("./dom"); + +exports.addListener = function(elem, type, callback) { + if (elem.addEventListener) { + return elem.addEventListener(type, callback, false); + } + if (elem.attachEvent) { + var wrapper = function() { + callback(window.event); + }; + callback._wrapper = wrapper; + elem.attachEvent("on" + type, wrapper); + } +}; + +exports.removeListener = function(elem, type, callback) { + if (elem.removeEventListener) { + return elem.removeEventListener(type, callback, false); + } + if (elem.detachEvent) { + elem.detachEvent("on" + type, callback._wrapper || callback); + } +}; +exports.stopEvent = function(e) { + exports.stopPropagation(e); + exports.preventDefault(e); + return false; +}; + +exports.stopPropagation = function(e) { + if (e.stopPropagation) + e.stopPropagation(); + else + e.cancelBubble = true; +}; + +exports.preventDefault = function(e) { + if (e.preventDefault) + e.preventDefault(); + else + e.returnValue = false; +}; +exports.getButton = function(e) { + if (e.type == "dblclick") + return 0; + else if (e.type == "contextmenu") + return 2; + + // DOM Event + if (e.preventDefault) { + return e.button; + } + // old IE + else { + return {1:0, 2:2, 4:1}[e.button]; + } +}; + +if (document.documentElement.setCapture) { + exports.capture = function(el, eventHandler, releaseCaptureHandler) { + function onMouseMove(e) { + eventHandler(e); + return exports.stopPropagation(e); + } + + var called = false; + function onReleaseCapture(e) { + eventHandler(e); + + if (!called) { + called = true; + releaseCaptureHandler(e); + } + + exports.removeListener(el, "mousemove", eventHandler); + exports.removeListener(el, "mouseup", onReleaseCapture); + exports.removeListener(el, "losecapture", onReleaseCapture); + + el.releaseCapture(); + } + + exports.addListener(el, "mousemove", eventHandler); + exports.addListener(el, "mouseup", onReleaseCapture); + exports.addListener(el, "losecapture", onReleaseCapture); + el.setCapture(); + }; +} +else { + exports.capture = function(el, eventHandler, releaseCaptureHandler) { + function onMouseMove(e) { + eventHandler(e); + e.stopPropagation(); + } + + function onMouseUp(e) { + eventHandler && eventHandler(e); + releaseCaptureHandler && releaseCaptureHandler(e); + + document.removeEventListener("mousemove", onMouseMove, true); + document.removeEventListener("mouseup", onMouseUp, true); + + e.stopPropagation(); + } + + document.addEventListener("mousemove", onMouseMove, true); + document.addEventListener("mouseup", onMouseUp, true); + }; +} + +exports.addMouseWheelListener = function(el, callback) { + var factor = 8; + var listener = function(e) { + if (e.wheelDelta !== undefined) { + if (e.wheelDeltaX !== undefined) { + e.wheelX = -e.wheelDeltaX / factor; + e.wheelY = -e.wheelDeltaY / factor; + } else { + e.wheelX = 0; + e.wheelY = -e.wheelDelta / factor; + } + } + else { + if (e.axis && e.axis == e.HORIZONTAL_AXIS) { + e.wheelX = (e.detail || 0) * 5; + e.wheelY = 0; + } else { + e.wheelX = 0; + e.wheelY = (e.detail || 0) * 5; + } + } + callback(e); + }; + exports.addListener(el, "DOMMouseScroll", listener); + exports.addListener(el, "mousewheel", listener); +}; + +exports.addMultiMouseDownListener = function(el, button, count, timeout, callback) { + var clicks = 0; + var startX, startY; + + var listener = function(e) { + clicks += 1; + if (clicks == 1) { + startX = e.clientX; + startY = e.clientY; + + setTimeout(function() { + clicks = 0; + }, timeout || 600); + } + + var isButton = exports.getButton(e) == button; + if (!isButton || Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5) + clicks = 0; + + if (clicks == count) { + clicks = 0; + callback(e); + } + + if (isButton) + return exports.preventDefault(e); + }; + + exports.addListener(el, "mousedown", listener); + useragent.isOldIE && exports.addListener(el, "dblclick", listener); +}; + +function normalizeCommandKeys(callback, e, keyCode) { + var hashId = 0; + if (useragent.isOpera && useragent.isMac) { + hashId = 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) + | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0); + } else { + hashId = 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) + | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0); + } + + if (keyCode in keys.MODIFIER_KEYS) { + switch (keys.MODIFIER_KEYS[keyCode]) { + case "Alt": + hashId = 2; + break; + case "Shift": + hashId = 4; + break; + case "Ctrl": + hashId = 1; + break; + default: + hashId = 8; + break; + } + keyCode = 0; + } + + if (hashId & 8 && (keyCode == 91 || keyCode == 93)) { + keyCode = 0; + } + + // If there is no hashID and the keyCode is not a function key, then + // we don't call the callback as we don't handle a command key here + // (it's a normal key/character input). + if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) { + return false; + } + return callback(e, hashId, keyCode); +} + +exports.addCommandKeyListener = function(el, callback) { + var addListener = exports.addListener; + if (useragent.isOldGecko || useragent.isOpera) { + // Old versions of Gecko aka. Firefox < 4.0 didn't repeat the keydown + // event if the user pressed the key for a longer time. Instead, the + // keydown event was fired once and later on only the keypress event. + // To emulate the 'right' keydown behavior, the keyCode of the initial + // keyDown event is stored and in the following keypress events the + // stores keyCode is used to emulate a keyDown event. + var lastKeyDownKeyCode = null; + addListener(el, "keydown", function(e) { + lastKeyDownKeyCode = e.keyCode; + }); + addListener(el, "keypress", function(e) { + return normalizeCommandKeys(callback, e, lastKeyDownKeyCode); + }); + } else { + var lastDown = null; + + addListener(el, "keydown", function(e) { + lastDown = e.keyIdentifier || e.keyCode; + return normalizeCommandKeys(callback, e, e.keyCode); + }); + } +}; + +if (window.postMessage) { + var postMessageId = 1; + exports.nextTick = function(callback, win) { + win = win || window; + var messageName = "zero-timeout-message-" + postMessageId; + exports.addListener(win, "message", function listener(e) { + if (e.data == messageName) { + exports.stopPropagation(e); + exports.removeListener(win, "message", listener); + callback(); + } + }); + win.postMessage(messageName, "*"); + }; +} +else { + exports.nextTick = function(callback, win) { + win = win || window; + window.setTimeout(callback, 0); + }; +} + +}); + +// Most of the following code is taken from SproutCore with a few changes. + +define('ace/lib/keys', ['require', 'exports', 'module' , 'ace/lib/oop'], function(require, exports, module) { + + +var oop = require("./oop"); +var Keys = (function() { + var ret = { + MODIFIER_KEYS: { + 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta' + }, + + KEY_MODS: { + "ctrl": 1, "alt": 2, "option" : 2, + "shift": 4, "meta": 8, "command": 8 + }, + + FUNCTION_KEYS : { + 8 : "Backspace", + 9 : "Tab", + 13 : "Return", + 19 : "Pause", + 27 : "Esc", + 32 : "Space", + 33 : "PageUp", + 34 : "PageDown", + 35 : "End", + 36 : "Home", + 37 : "Left", + 38 : "Up", + 39 : "Right", + 40 : "Down", + 44 : "Print", + 45 : "Insert", + 46 : "Delete", + 96 : "Numpad0", + 97 : "Numpad1", + 98 : "Numpad2", + 99 : "Numpad3", + 100: "Numpad4", + 101: "Numpad5", + 102: "Numpad6", + 103: "Numpad7", + 104: "Numpad8", + 105: "Numpad9", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "Numlock", + 145: "Scrolllock" + }, + + PRINTABLE_KEYS: { + 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', + 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a', + 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', + 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', + 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v', + 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.', + 188: ',', 190: '.', 191: '/', 192: '`', 219: '[', 220: '\\', + 221: ']', 222: '\'' + } + }; + + // A reverse map of FUNCTION_KEYS + for (var i in ret.FUNCTION_KEYS) { + var name = ret.FUNCTION_KEYS[i].toUpperCase(); + ret[name] = parseInt(i, 10); + } + + // Add the MODIFIER_KEYS, FUNCTION_KEYS and PRINTABLE_KEYS to the KEY + // variables as well. + oop.mixin(ret, ret.MODIFIER_KEYS); + oop.mixin(ret, ret.PRINTABLE_KEYS); + oop.mixin(ret, ret.FUNCTION_KEYS); + + return ret; +})(); +oop.mixin(exports, Keys); + +exports.keyCodeToString = function(keyCode) { + return (Keys[keyCode] || String.fromCharCode(keyCode)).toLowerCase(); +} + +}); + +define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { + + +exports.inherits = (function() { + var tempCtor = function() {}; + return function(ctor, superCtor) { + tempCtor.prototype = superCtor.prototype; + ctor.super_ = superCtor.prototype; + ctor.prototype = new tempCtor(); + ctor.prototype.constructor = ctor; + }; +}()); + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +define('ace/lib/useragent', ['require', 'exports', 'module' ], function(require, exports, module) { + + +var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(); +var ua = navigator.userAgent; + +// Is the user using a browser that identifies itself as Windows +exports.isWin = (os == "win"); + +// Is the user using a browser that identifies itself as Mac OS +exports.isMac = (os == "mac"); + +// Is the user using a browser that identifies itself as Linux +exports.isLinux = (os == "linux"); + +exports.isIE = + navigator.appName == "Microsoft Internet Explorer" + && parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]); + +exports.isOldIE = exports.isIE && exports.isIE < 9; + +// Is this Firefox or related? +exports.isGecko = exports.isMozilla = window.controllers && window.navigator.product === "Gecko"; + +// oldGecko == rev < 2.0 +exports.isOldGecko = exports.isGecko && parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1], 10) < 4; + +// Is this Opera +exports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == "[object Opera]"; + +// Is the user using a browser that identifies itself as WebKit +exports.isWebKit = parseFloat(ua.split("WebKit/")[1]) || undefined; + +exports.isChrome = parseFloat(ua.split(" Chrome/")[1]) || undefined; + +exports.isAIR = ua.indexOf("AdobeAIR") >= 0; + +exports.isIPad = ua.indexOf("iPad") >= 0; + +exports.isTouchPad = ua.indexOf("TouchPad") >= 0; +exports.OS = { + LINUX: "LINUX", + MAC: "MAC", + WINDOWS: "WINDOWS" +}; +exports.getOS = function() { + if (exports.isMac) { + return exports.OS.MAC; + } else if (exports.isLinux) { + return exports.OS.LINUX; + } else { + return exports.OS.WINDOWS; + } +}; + +}); + +define('ace/editor', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/oop', 'ace/lib/lang', 'ace/lib/useragent', 'ace/keyboard/textinput', 'ace/mouse/mouse_handler', 'ace/mouse/fold_handler', 'ace/keyboard/keybinding', 'ace/edit_session', 'ace/search', 'ace/range', 'ace/lib/event_emitter', 'ace/commands/command_manager', 'ace/commands/default_commands'], function(require, exports, module) { + + +require("./lib/fixoldbrowsers"); + +var oop = require("./lib/oop"); +var lang = require("./lib/lang"); +var useragent = require("./lib/useragent"); +var TextInput = require("./keyboard/textinput").TextInput; +var MouseHandler = require("./mouse/mouse_handler").MouseHandler; +var FoldHandler = require("./mouse/fold_handler").FoldHandler; +//var TouchHandler = require("./touch_handler").TouchHandler; +var KeyBinding = require("./keyboard/keybinding").KeyBinding; +var EditSession = require("./edit_session").EditSession; +var Search = require("./search").Search; +var Range = require("./range").Range; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var CommandManager = require("./commands/command_manager").CommandManager; +var defaultCommands = require("./commands/default_commands").commands; + +/** + * new Editor(renderer, session) + * - renderer (VirtualRenderer): Associated `VirtualRenderer` that draws everything + * - session (EditSession): The `EditSession` to refer to + * + * Creates a new `Editor` object. + * + **/ +var Editor = function(renderer, session) { + var container = renderer.getContainerElement(); + this.container = container; + this.renderer = renderer; + + this.commands = new CommandManager(useragent.isMac ? "mac" : "win", defaultCommands); + this.textInput = new TextInput(renderer.getTextAreaContainer(), this); + this.renderer.textarea = this.textInput.getElement(); + this.keyBinding = new KeyBinding(this); + + // TODO detect touch event support + if (useragent.isIPad) { + //this.$mouseHandler = new TouchHandler(this); + } else { + this.$mouseHandler = new MouseHandler(this); + new FoldHandler(this); + } + + this.$blockScrolling = 0; + this.$search = new Search().set({ + wrap: true + }); + + this.setSession(session || new EditSession("")); +}; + +(function(){ + + oop.implement(this, EventEmitter); + this.setKeyboardHandler = function(keyboardHandler) { + this.keyBinding.setKeyboardHandler(keyboardHandler); + }; + this.getKeyboardHandler = function() { + return this.keyBinding.getKeyboardHandler(); + }; + this.setSession = function(session) { + if (this.session == session) + return; + + if (this.session) { + var oldSession = this.session; + this.session.removeEventListener("change", this.$onDocumentChange); + this.session.removeEventListener("changeMode", this.$onChangeMode); + this.session.removeEventListener("tokenizerUpdate", this.$onTokenizerUpdate); + this.session.removeEventListener("changeTabSize", this.$onChangeTabSize); + this.session.removeEventListener("changeWrapLimit", this.$onChangeWrapLimit); + this.session.removeEventListener("changeWrapMode", this.$onChangeWrapMode); + this.session.removeEventListener("onChangeFold", this.$onChangeFold); + this.session.removeEventListener("changeFrontMarker", this.$onChangeFrontMarker); + this.session.removeEventListener("changeBackMarker", this.$onChangeBackMarker); + this.session.removeEventListener("changeBreakpoint", this.$onChangeBreakpoint); + this.session.removeEventListener("changeAnnotation", this.$onChangeAnnotation); + this.session.removeEventListener("changeOverwrite", this.$onCursorChange); + this.session.removeEventListener("changeScrollTop", this.$onScrollTopChange); + this.session.removeEventListener("changeLeftTop", this.$onScrollLeftChange); + + var selection = this.session.getSelection(); + selection.removeEventListener("changeCursor", this.$onCursorChange); + selection.removeEventListener("changeSelection", this.$onSelectionChange); + } + + this.session = session; + + this.$onDocumentChange = this.onDocumentChange.bind(this); + session.addEventListener("change", this.$onDocumentChange); + this.renderer.setSession(session); + + this.$onChangeMode = this.onChangeMode.bind(this); + session.addEventListener("changeMode", this.$onChangeMode); + + this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this); + session.addEventListener("tokenizerUpdate", this.$onTokenizerUpdate); + + this.$onChangeTabSize = this.renderer.updateText.bind(this.renderer); + session.addEventListener("changeTabSize", this.$onChangeTabSize); + + this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this); + session.addEventListener("changeWrapLimit", this.$onChangeWrapLimit); + + this.$onChangeWrapMode = this.onChangeWrapMode.bind(this); + session.addEventListener("changeWrapMode", this.$onChangeWrapMode); + + this.$onChangeFold = this.onChangeFold.bind(this); + session.addEventListener("changeFold", this.$onChangeFold); + + this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this); + this.session.addEventListener("changeFrontMarker", this.$onChangeFrontMarker); + + this.$onChangeBackMarker = this.onChangeBackMarker.bind(this); + this.session.addEventListener("changeBackMarker", this.$onChangeBackMarker); + + this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this); + this.session.addEventListener("changeBreakpoint", this.$onChangeBreakpoint); + + this.$onChangeAnnotation = this.onChangeAnnotation.bind(this); + this.session.addEventListener("changeAnnotation", this.$onChangeAnnotation); + + this.$onCursorChange = this.onCursorChange.bind(this); + this.session.addEventListener("changeOverwrite", this.$onCursorChange); + + this.$onScrollTopChange = this.onScrollTopChange.bind(this); + this.session.addEventListener("changeScrollTop", this.$onScrollTopChange); + + this.$onScrollLeftChange = this.onScrollLeftChange.bind(this); + this.session.addEventListener("changeScrollLeft", this.$onScrollLeftChange); + + this.selection = session.getSelection(); + this.selection.addEventListener("changeCursor", this.$onCursorChange); + + this.$onSelectionChange = this.onSelectionChange.bind(this); + this.selection.addEventListener("changeSelection", this.$onSelectionChange); + + this.onChangeMode(); + + this.$blockScrolling += 1; + this.onCursorChange(); + this.$blockScrolling -= 1; + + this.onScrollTopChange(); + this.onScrollLeftChange(); + this.onSelectionChange(); + this.onChangeFrontMarker(); + this.onChangeBackMarker(); + this.onChangeBreakpoint(); + this.onChangeAnnotation(); + this.session.getUseWrapMode() && this.renderer.adjustWrapLimit(); + this.renderer.updateFull(); + + this._emit("changeSession", { + session: session, + oldSession: oldSession + }); + }; + this.getSession = function() { + return this.session; + }; + this.getSelection = function() { + return this.selection; + }; + this.resize = function() { + this.renderer.onResize(); + }; + this.setTheme = function(theme) { + this.renderer.setTheme(theme); + }; + this.getTheme = function() { + return this.renderer.getTheme(); + }; + this.setStyle = function(style) { + this.renderer.setStyle(style); + }; + this.unsetStyle = function(style) { + this.renderer.unsetStyle(style); + }; + this.setFontSize = function(size) { + this.container.style.fontSize = size; + this.renderer.updateFontSize(); + }; + this.$highlightBrackets = function() { + if (this.session.$bracketHighlight) { + this.session.removeMarker(this.session.$bracketHighlight); + this.session.$bracketHighlight = null; + } + + if (this.$highlightPending) { + return; + } + + // perform highlight async to not block the browser during navigation + var self = this; + this.$highlightPending = true; + setTimeout(function() { + self.$highlightPending = false; + + var pos = self.session.findMatchingBracket(self.getCursorPosition()); + if (pos) { + var range = new Range(pos.row, pos.column, pos.row, pos.column+1); + self.session.$bracketHighlight = self.session.addMarker(range, "ace_bracket", "text"); + } + }, 10); + }; + this.focus = function() { + // Safari needs the timeout + // iOS and Firefox need it called immediately + // to be on the save side we do both + var _self = this; + setTimeout(function() { + _self.textInput.focus(); + }); + this.textInput.focus(); + }; + this.isFocused = function() { + return this.textInput.isFocused(); + }; + this.blur = function() { + this.textInput.blur(); + }; + this.onFocus = function() { + this.renderer.showCursor(); + this.renderer.visualizeFocus(); + this._emit("focus"); + }; + this.onBlur = function() { + this.renderer.hideCursor(); + this.renderer.visualizeBlur(); + this._emit("blur"); + }; + + this.$cursorChange = function() { + this.renderer.updateCursor(); + }; + this.onDocumentChange = function(e) { + var delta = e.data; + var range = delta.range; + var lastRow; + + if (range.start.row == range.end.row && delta.action != "insertLines" && delta.action != "removeLines") + lastRow = range.end.row; + else + lastRow = Infinity; + this.renderer.updateLines(range.start.row, lastRow); + + this._emit("change", e); + + // update cursor because tab characters can influence the cursor position + this.$cursorChange(); + }; + this.onTokenizerUpdate = function(e) { + var rows = e.data; + this.renderer.updateLines(rows.first, rows.last); + }; + this.onScrollTopChange = function() { + this.renderer.scrollToY(this.session.getScrollTop()); + }; + this.onScrollLeftChange = function() { + this.renderer.scrollToX(this.session.getScrollLeft()); + }; + this.onCursorChange = function() { + this.$cursorChange(); + + if (!this.$blockScrolling) { + this.renderer.scrollCursorIntoView(); + } + + this.$highlightBrackets(); + this.$updateHighlightActiveLine(); + }; + this.$updateHighlightActiveLine = function() { + var session = this.getSession(); + + if (session.$highlightLineMarker) + session.removeMarker(session.$highlightLineMarker); + + session.$highlightLineMarker = null; + + if (this.$highlightActiveLine) { + var cursor = this.getCursorPosition(); + var foldLine = this.session.getFoldLine(cursor.row); + + if ((this.getSelectionStyle() != "line" || !this.selection.isMultiLine())) { + var range; + if (foldLine) { + range = new Range(foldLine.start.row, 0, foldLine.end.row + 1, 0); + } else { + range = new Range(cursor.row, 0, cursor.row+1, 0); + } + session.$highlightLineMarker = session.addMarker(range, "ace_active_line", "background"); + } + } + }; + this.onSelectionChange = function(e) { + var session = this.getSession(); + + if (session.$selectionMarker) { + session.removeMarker(session.$selectionMarker); + } + session.$selectionMarker = null; + + if (!this.selection.isEmpty()) { + var range = this.selection.getRange(); + var style = this.getSelectionStyle(); + session.$selectionMarker = session.addMarker(range, "ace_selection", style); + } else { + this.$updateHighlightActiveLine(); + } + + if (this.$highlightSelectedWord && !this.$wordHighlightTimer) + this.$wordHighlightTimer = setTimeout(function(self) { + self.session.$mode.highlightSelection(self); + self.$wordHighlightTimer = null; + }, 30, this); + }; + this.onChangeFrontMarker = function() { + this.renderer.updateFrontMarkers(); + }; + this.onChangeBackMarker = function() { + this.renderer.updateBackMarkers(); + }; + this.onChangeBreakpoint = function() { + this.renderer.setBreakpoints(this.session.getBreakpoints()); + }; + this.onChangeAnnotation = function() { + this.renderer.setAnnotations(this.session.getAnnotations()); + }; + this.onChangeMode = function() { + this.renderer.updateText(); + }; + this.onChangeWrapLimit = function() { + this.renderer.updateFull(); + }; + this.onChangeWrapMode = function() { + this.renderer.onResize(true); + }; + this.onChangeFold = function() { + // Update the active line marker as due to folding changes the current + // line range on the screen might have changed. + this.$updateHighlightActiveLine(); + // TODO: This might be too much updating. Okay for now. + this.renderer.updateFull(); + }; + this.getCopyText = function() { + var text = ""; + if (!this.selection.isEmpty()) + text = this.session.getTextRange(this.getSelectionRange()); + + this._emit("copy", text); + return text; + }; + this.onCopy = function() { + this.commands.exec("copy", this); + }; + this.onCut = function() { + this.commands.exec("cut", this); + }; + this.onPaste = function(text) { + this._emit("paste", text); + this.insert(text); + }; + this.insert = function(text) { + var session = this.session; + var mode = session.getMode(); + + var cursor = this.getCursorPosition(); + + if (this.getBehavioursEnabled()) { + // Get a transform if the current mode wants one. + var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text); + if (transform) + text = transform.text; + } + + text = text.replace("\t", this.session.getTabString()); + + // remove selected text + if (!this.selection.isEmpty()) { + cursor = this.session.remove(this.getSelectionRange()); + this.clearSelection(); + } + else if (this.session.getOverwrite()) { + var range = new Range.fromPoints(cursor, cursor); + range.end.column += text.length; + this.session.remove(range); + } + + this.clearSelection(); + + var start = cursor.column; + var lineState = session.getState(cursor.row); + var shouldOutdent = mode.checkOutdent(lineState, session.getLine(cursor.row), text); + var line = session.getLine(cursor.row); + var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString()); + var end = session.insert(cursor, text); + + if (transform && transform.selection) { + if (transform.selection.length == 2) { // Transform relative to the current column + this.selection.setSelectionRange( + new Range(cursor.row, start + transform.selection[0], + cursor.row, start + transform.selection[1])); + } else { // Transform relative to the current row. + this.selection.setSelectionRange( + new Range(cursor.row + transform.selection[0], + transform.selection[1], + cursor.row + transform.selection[2], + transform.selection[3])); + } + } + + var lineState = session.getState(cursor.row); + + // TODO disabled multiline auto indent + // possibly doing the indent before inserting the text + // if (cursor.row !== end.row) { + if (session.getDocument().isNewLine(text)) { + this.moveCursorTo(cursor.row+1, 0); + + var size = session.getTabSize(); + var minIndent = Number.MAX_VALUE; + + for (var row = cursor.row + 1; row <= end.row; ++row) { + var indent = 0; + + line = session.getLine(row); + for (var i = 0; i < line.length; ++i) + if (line.charAt(i) == '\t') + indent += size; + else if (line.charAt(i) == ' ') + indent += 1; + else + break; + if (/[^\s]/.test(line)) + minIndent = Math.min(indent, minIndent); + } + + for (var row = cursor.row + 1; row <= end.row; ++row) { + var outdent = minIndent; + + line = session.getLine(row); + for (var i = 0; i < line.length && outdent > 0; ++i) + if (line.charAt(i) == '\t') + outdent -= size; + else if (line.charAt(i) == ' ') + outdent -= 1; + session.remove(new Range(row, 0, row, i)); + } + session.indentRows(cursor.row + 1, end.row, lineIndent); + } + if (shouldOutdent) + mode.autoOutdent(lineState, session, cursor.row); + }; + this.onTextInput = function(text) { + this.keyBinding.onTextInput(text); + }; + this.onCommandKey = function(e, hashId, keyCode) { + this.keyBinding.onCommandKey(e, hashId, keyCode); + }; + this.setOverwrite = function(overwrite) { + this.session.setOverwrite(overwrite); + }; + this.getOverwrite = function() { + return this.session.getOverwrite(); + }; + this.toggleOverwrite = function() { + this.session.toggleOverwrite(); + }; + this.setScrollSpeed = function(speed) { + this.$mouseHandler.setScrollSpeed(speed); + }; + this.getScrollSpeed = function() { + return this.$mouseHandler.getScrollSpeed(); + }; + this.setDragDelay = function(dragDelay) { + this.$mouseHandler.setDragDelay(dragDelay); + }; + this.getDragDelay = function() { + return this.$mouseHandler.getDragDelay(); + }; + + this.$selectionStyle = "line"; + this.setSelectionStyle = function(style) { + if (this.$selectionStyle == style) return; + + this.$selectionStyle = style; + this.onSelectionChange(); + this._emit("changeSelectionStyle", {data: style}); + }; + this.getSelectionStyle = function() { + return this.$selectionStyle; + }; + + this.$highlightActiveLine = true; + this.setHighlightActiveLine = function(shouldHighlight) { + if (this.$highlightActiveLine == shouldHighlight) + return; + + this.$highlightActiveLine = shouldHighlight; + this.$updateHighlightActiveLine(); + }; + this.getHighlightActiveLine = function() { + return this.$highlightActiveLine; + }; + + this.$highlightGutterLine = true; + this.setHighlightGutterLine = function(shouldHighlight) { + if (this.$highlightGutterLine == shouldHighlight) + return; + + this.renderer.setHighlightGutterLine(shouldHighlight); + this.$highlightGutterLine = shouldHighlight; + }; + + this.getHighlightGutterLine = function() { + return this.$highlightGutterLine; + }; + + this.$highlightSelectedWord = true; + this.setHighlightSelectedWord = function(shouldHighlight) { + if (this.$highlightSelectedWord == shouldHighlight) + return; + + this.$highlightSelectedWord = shouldHighlight; + if (shouldHighlight) { + this.session.getMode().highlightSelection(this); + } else { + this.session.getMode().clearSelectionHighlight(this); + if (this.$wordHighlightTimer) { + clearTimeout(this.$wordHighlightTimer); + this.$wordHighlightTimer = null; + } + } + }; + this.getHighlightSelectedWord = function() { + return this.$highlightSelectedWord; + }; + + this.setAnimatedScroll = function(shouldAnimate){ + this.renderer.setAnimatedScroll(shouldAnimate); + }; + + this.getAnimatedScroll = function(){ + return this.renderer.getAnimatedScroll(); + }; + this.setShowInvisibles = function(showInvisibles) { + if (this.getShowInvisibles() == showInvisibles) + return; + + this.renderer.setShowInvisibles(showInvisibles); + }; + this.getShowInvisibles = function() { + return this.renderer.getShowInvisibles(); + }; + this.setShowPrintMargin = function(showPrintMargin) { + this.renderer.setShowPrintMargin(showPrintMargin); + }; + this.getShowPrintMargin = function() { + return this.renderer.getShowPrintMargin(); + }; + this.setPrintMarginColumn = function(showPrintMargin) { + this.renderer.setPrintMarginColumn(showPrintMargin); + }; + this.getPrintMarginColumn = function() { + return this.renderer.getPrintMarginColumn(); + }; + + this.$readOnly = false; + this.setReadOnly = function(readOnly) { + this.$readOnly = readOnly; + }; + this.getReadOnly = function() { + return this.$readOnly; + }; + + this.$modeBehaviours = true; + this.setBehavioursEnabled = function (enabled) { + this.$modeBehaviours = enabled; + }; + this.getBehavioursEnabled = function () { + return this.$modeBehaviours; + }; + this.setShowFoldWidgets = function(show) { + var gutter = this.renderer.$gutterLayer; + if (gutter.getShowFoldWidgets() == show) + return; + + this.renderer.$gutterLayer.setShowFoldWidgets(show); + this.$showFoldWidgets = show; + this.renderer.updateFull(); + }; + this.getShowFoldWidgets = function() { + return this.renderer.$gutterLayer.getShowFoldWidgets(); + }; + + this.setFadeFoldWidgets = function(show) { + this.renderer.setFadeFoldWidgets(show); + }; + + this.getFadeFoldWidgets = function() { + return this.renderer.getFadeFoldWidgets(); + }; + this.remove = function(dir) { + if (this.selection.isEmpty()){ + if (dir == "left") + this.selection.selectLeft(); + else + this.selection.selectRight(); + } + + var range = this.getSelectionRange(); + if (this.getBehavioursEnabled()) { + var session = this.session; + var state = session.getState(range.start.row); + var new_range = session.getMode().transformAction(state, 'deletion', this, session, range); + if (new_range) + range = new_range; + } + + this.session.remove(range); + this.clearSelection(); + }; + this.removeWordRight = function() { + if (this.selection.isEmpty()) + this.selection.selectWordRight(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeWordLeft = function() { + if (this.selection.isEmpty()) + this.selection.selectWordLeft(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeToLineStart = function() { + if (this.selection.isEmpty()) + this.selection.selectLineStart(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeToLineEnd = function() { + if (this.selection.isEmpty()) + this.selection.selectLineEnd(); + + var range = this.getSelectionRange(); + if (range.start.column == range.end.column && range.start.row == range.end.row) { + range.end.column = 0; + range.end.row++; + } + + this.session.remove(range); + this.clearSelection(); + }; + this.splitLine = function() { + if (!this.selection.isEmpty()) { + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + } + + var cursor = this.getCursorPosition(); + this.insert("\n"); + this.moveCursorToPosition(cursor); + }; + this.transposeLetters = function() { + if (!this.selection.isEmpty()) { + return; + } + + var cursor = this.getCursorPosition(); + var column = cursor.column; + if (column === 0) + return; + + var line = this.session.getLine(cursor.row); + var swap, range; + if (column < line.length) { + swap = line.charAt(column) + line.charAt(column-1); + range = new Range(cursor.row, column-1, cursor.row, column+1); + } + else { + swap = line.charAt(column-1) + line.charAt(column-2); + range = new Range(cursor.row, column-2, cursor.row, column); + } + this.session.replace(range, swap); + }; + this.toLowerCase = function() { + var originalRange = this.getSelectionRange(); + if (this.selection.isEmpty()) { + this.selection.selectWord(); + } + + var range = this.getSelectionRange(); + var text = this.session.getTextRange(range); + this.session.replace(range, text.toLowerCase()); + this.selection.setSelectionRange(originalRange); + }; + this.toUpperCase = function() { + var originalRange = this.getSelectionRange(); + if (this.selection.isEmpty()) { + this.selection.selectWord(); + } + + var range = this.getSelectionRange(); + var text = this.session.getTextRange(range); + this.session.replace(range, text.toUpperCase()); + this.selection.setSelectionRange(originalRange); + }; + this.indent = function() { + var session = this.session; + var range = this.getSelectionRange(); + + if (range.start.row < range.end.row || range.start.column < range.end.column) { + var rows = this.$getSelectedRows(); + session.indentRows(rows.first, rows.last, "\t"); + } else { + var indentString; + + if (this.session.getUseSoftTabs()) { + var size = session.getTabSize(), + position = this.getCursorPosition(), + column = session.documentToScreenColumn(position.row, position.column), + count = (size - column % size); + + indentString = lang.stringRepeat(" ", count); + } else + indentString = "\t"; + return this.insert(indentString); + } + }; + this.blockOutdent = function() { + var selection = this.session.getSelection(); + this.session.outdentRows(selection.getRange()); + }; + this.toggleCommentLines = function() { + var state = this.session.getState(this.getCursorPosition().row); + var rows = this.$getSelectedRows(); + this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last); + }; + this.removeLines = function() { + var rows = this.$getSelectedRows(); + var range; + if (rows.first === 0 || rows.last+1 < this.session.getLength()) + range = new Range(rows.first, 0, rows.last+1, 0); + else + range = new Range( + rows.first-1, this.session.getLine(rows.first-1).length, + rows.last, this.session.getLine(rows.last).length + ); + this.session.remove(range); + this.clearSelection(); + }; + this.moveLinesDown = function() { + this.$moveLines(function(firstRow, lastRow) { + return this.session.moveLinesDown(firstRow, lastRow); + }); + }; + this.moveLinesUp = function() { + this.$moveLines(function(firstRow, lastRow) { + return this.session.moveLinesUp(firstRow, lastRow); + }); + }; + this.moveText = function(range, toPosition) { + if (this.$readOnly) + return null; + + return this.session.moveText(range, toPosition); + }; + this.copyLinesUp = function() { + this.$moveLines(function(firstRow, lastRow) { + this.session.duplicateLines(firstRow, lastRow); + return 0; + }); + }; + this.copyLinesDown = function() { + this.$moveLines(function(firstRow, lastRow) { + return this.session.duplicateLines(firstRow, lastRow); + }); + }; + this.$moveLines = function(mover) { + var rows = this.$getSelectedRows(); + var selection = this.selection; + if (!selection.isMultiLine()) { + var range = selection.getRange(); + var reverse = selection.isBackwards(); + } + + var linesMoved = mover.call(this, rows.first, rows.last); + + if (range) { + range.start.row += linesMoved; + range.end.row += linesMoved; + selection.setSelectionRange(range, reverse); + } + else { + selection.setSelectionAnchor(rows.last+linesMoved+1, 0); + selection.$moveSelection(function() { + selection.moveCursorTo(rows.first+linesMoved, 0); + }); + } + }; + this.$getSelectedRows = function() { + var range = this.getSelectionRange().collapseRows(); + + return { + first: range.start.row, + last: range.end.row + }; + }; + this.onCompositionStart = function(text) { + this.renderer.showComposition(this.getCursorPosition()); + }; + this.onCompositionUpdate = function(text) { + this.renderer.setCompositionText(text); + }; + this.onCompositionEnd = function() { + this.renderer.hideComposition(); + }; + this.getFirstVisibleRow = function() { + return this.renderer.getFirstVisibleRow(); + }; + this.getLastVisibleRow = function() { + return this.renderer.getLastVisibleRow(); + }; + this.isRowVisible = function(row) { + return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow()); + }; + this.isRowFullyVisible = function(row) { + return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow()); + }; + this.$getVisibleRowCount = function() { + return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1; + }; + + this.$moveByPage = function(dir, select) { + var renderer = this.renderer; + var config = this.renderer.layerConfig; + var rows = dir * Math.floor(config.height / config.lineHeight); + + this.$blockScrolling++; + if (select == true) { + this.selection.$moveSelection(function(){ + this.moveCursorBy(rows, 0); + }); + } else if (select == false) { + this.selection.moveCursorBy(rows, 0); + this.selection.clearSelection(); + } + this.$blockScrolling--; + + var scrollTop = renderer.scrollTop; + + renderer.scrollBy(0, rows * config.lineHeight); + if (select != null) + renderer.scrollCursorIntoView(null, 0.5); + + renderer.animateScrolling(scrollTop); + }; + this.selectPageDown = function() { + this.$moveByPage(1, true); + }; + this.selectPageUp = function() { + this.$moveByPage(-1, true); + }; + this.gotoPageDown = function() { + this.$moveByPage(1, false); + }; + this.gotoPageUp = function() { + this.$moveByPage(-1, false); + }; + this.scrollPageDown = function() { + this.$moveByPage(1); + }; + this.scrollPageUp = function() { + this.$moveByPage(-1); + }; + this.scrollToRow = function(row) { + this.renderer.scrollToRow(row); + }; + this.scrollToLine = function(line, center, animate, callback) { + this.renderer.scrollToLine(line, center, animate, callback); + }; + this.centerSelection = function() { + var range = this.getSelectionRange(); + var line = Math.floor(range.start.row + (range.end.row - range.start.row) / 2); + this.renderer.scrollToLine(line, true); + }; + this.getCursorPosition = function() { + return this.selection.getCursor(); + }; + this.getCursorPositionScreen = function() { + return this.session.documentToScreenPosition(this.getCursorPosition()); + }; + this.getSelectionRange = function() { + return this.selection.getRange(); + }; + this.selectAll = function() { + this.$blockScrolling += 1; + this.selection.selectAll(); + this.$blockScrolling -= 1; + }; + this.clearSelection = function() { + this.selection.clearSelection(); + }; + this.moveCursorTo = function(row, column) { + this.selection.moveCursorTo(row, column); + }; + this.moveCursorToPosition = function(pos) { + this.selection.moveCursorToPosition(pos); + }; + this.jumpToMatching = function() { + var cursor = this.getCursorPosition(); + var pos = this.session.findMatchingBracket(cursor); + if (!pos) { + cursor.column += 1; + pos = this.session.findMatchingBracket(cursor); + } + if (!pos) { + cursor.column -= 2; + pos = this.session.findMatchingBracket(cursor); + } + + if (pos) { + this.clearSelection(); + this.moveCursorTo(pos.row, pos.column); + } + }; + this.gotoLine = function(lineNumber, column, animate) { + this.selection.clearSelection(); + this.session.unfold({row: lineNumber - 1, column: column || 0}); + + this.$blockScrolling += 1; + this.moveCursorTo(lineNumber - 1, column || 0); + this.$blockScrolling -= 1; + + if (!this.isRowFullyVisible(lineNumber - 1)) + this.scrollToLine(lineNumber - 1, true, animate); + }; + this.navigateTo = function(row, column) { + this.clearSelection(); + this.moveCursorTo(row, column); + }; + this.navigateUp = function(times) { + this.selection.clearSelection(); + times = times || 1; + this.selection.moveCursorBy(-times, 0); + }; + this.navigateDown = function(times) { + this.selection.clearSelection(); + times = times || 1; + this.selection.moveCursorBy(times, 0); + }; + this.navigateLeft = function(times) { + if (!this.selection.isEmpty()) { + var selectionStart = this.getSelectionRange().start; + this.moveCursorToPosition(selectionStart); + } + else { + times = times || 1; + while (times--) { + this.selection.moveCursorLeft(); + } + } + this.clearSelection(); + }; + this.navigateRight = function(times) { + if (!this.selection.isEmpty()) { + var selectionEnd = this.getSelectionRange().end; + this.moveCursorToPosition(selectionEnd); + } + else { + times = times || 1; + while (times--) { + this.selection.moveCursorRight(); + } + } + this.clearSelection(); + }; + this.navigateLineStart = function() { + this.selection.moveCursorLineStart(); + this.clearSelection(); + }; + this.navigateLineEnd = function() { + this.selection.moveCursorLineEnd(); + this.clearSelection(); + }; + this.navigateFileEnd = function() { + var scrollTop = this.renderer.scrollTop; + this.selection.moveCursorFileEnd(); + this.clearSelection(); + this.renderer.animateScrolling(scrollTop); + }; + this.navigateFileStart = function() { + var scrollTop = this.renderer.scrollTop; + this.selection.moveCursorFileStart(); + this.clearSelection(); + this.renderer.animateScrolling(scrollTop); + }; + this.navigateWordRight = function() { + this.selection.moveCursorWordRight(); + this.clearSelection(); + }; + this.navigateWordLeft = function() { + this.selection.moveCursorWordLeft(); + this.clearSelection(); + }; + this.replace = function(replacement, options) { + if (options) + this.$search.set(options); + + var range = this.$search.find(this.session); + var replaced = 0; + if (!range) + return replaced; + + if (this.$tryReplace(range, replacement)) { + replaced = 1; + } + if (range !== null) { + this.selection.setSelectionRange(range); + this.renderer.scrollSelectionIntoView(range.start, range.end); + } + + return replaced; + }; + this.replaceAll = function(replacement, options) { + if (options) { + this.$search.set(options); + } + + var ranges = this.$search.findAll(this.session); + var replaced = 0; + if (!ranges.length) + return replaced; + + this.$blockScrolling += 1; + + var selection = this.getSelectionRange(); + this.clearSelection(); + this.selection.moveCursorTo(0, 0); + + for (var i = ranges.length - 1; i >= 0; --i) { + if(this.$tryReplace(ranges[i], replacement)) { + replaced++; + } + } + + this.selection.setSelectionRange(selection); + this.$blockScrolling -= 1; + + return replaced; + }; + + this.$tryReplace = function(range, replacement) { + var input = this.session.getTextRange(range); + replacement = this.$search.replace(input, replacement); + if (replacement !== null) { + range.end = this.session.replace(range, replacement); + return range; + } else { + return null; + } + }; + this.getLastSearchOptions = function() { + return this.$search.getOptions(); + }; + this.find = function(needle, options, animate) { + this.clearSelection(); + options = options || {}; + options.needle = needle; + this.$search.set(options); + this.$find(options.backwards, animate); + }; + this.findNext = function(options, animate) { + options = options || {}; + this.$search.set(options); + this.$find(false, animate); + }; + this.findPrevious = function(options, animate) { + options = options || {}; + this.$search.set(options); + this.$find(true, animate); + }; + + this.$find = function(backwards, animate) { + if (!this.selection.isEmpty()) + this.$search.set({needle: this.session.getTextRange(this.getSelectionRange())}); + + if (typeof backwards != "undefined") + this.$search.set({backwards: backwards}); + + var range = this.$search.find(this.session); + if (range) { + this.$blockScrolling += 1; + this.session.unfold(range); + this.selection.setSelectionRange(range); + this.$blockScrolling -= 1; + + var scrollTop = this.renderer.scrollTop; + this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5); + this.renderer.animateScrolling(scrollTop); + } + }; + this.undo = function() { + this.$blockScrolling++; + this.session.getUndoManager().undo(); + this.$blockScrolling--; + this.renderer.scrollCursorIntoView(null, 0.5); + }; + this.redo = function() { + this.$blockScrolling++; + this.session.getUndoManager().redo(); + this.$blockScrolling--; + this.renderer.scrollCursorIntoView(null, 0.5); + }; + this.destroy = function() { + this.renderer.destroy(); + }; + +}).call(Editor.prototype); + + +exports.Editor = Editor; +}); + +define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { + + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + return new Array(count + 1).join(string); +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i 1) { + if (value.charAt(0) == PLACEHOLDER) + value = value.substr(1); + else if (value.charAt(value.length - 1) == PLACEHOLDER) + value = value.slice(0, -1); + } + + if (value && value != PLACEHOLDER) { + if (pasted) + host.onPaste(value); + else + host.onTextInput(value); + } + + // If editor is no longer focused we quit immediately, since + // it means that something else is in charge now. + if (!isFocused()) + return false; + } + } + + copied = false; + pasted = false; + + // Safari doesn't fire copy events if no text is selected + text.value = PLACEHOLDER; + select(); + } + + var onTextInput = function(e) { + setTimeout(function () { + if (!inCompostion) + sendText(e.data); + }, 0); + }; + + var onPropertyChange = function(e) { + if (useragent.isOldIE && text.value.charCodeAt(0) > 128) return; + setTimeout(function() { + if (!inCompostion) + sendText(); + }, 0); + }; + + var onCompositionStart = function(e) { + inCompostion = true; + host.onCompositionStart(); + if (!useragent.isGecko) setTimeout(onCompositionUpdate, 0); + }; + + var onCompositionUpdate = function() { + if (!inCompostion) return; + host.onCompositionUpdate(text.value); + }; + + var onCompositionEnd = function(e) { + inCompostion = false; + host.onCompositionEnd(); + }; + + var onCopy = function(e) { + copied = true; + var copyText = host.getCopyText(); + if(copyText) + text.value = copyText; + else + e.preventDefault(); + select(); + setTimeout(function () { + sendText(); + }, 0); + }; + + var onCut = function(e) { + copied = true; + var copyText = host.getCopyText(); + if(copyText) { + text.value = copyText; + host.onCut(); + } else + e.preventDefault(); + select(); + setTimeout(function () { + sendText(); + }, 0); + }; + + event.addCommandKeyListener(text, host.onCommandKey.bind(host)); + + if (useragent.isOldIE) { + var keytable = { 13:1, 27:1 }; + event.addListener(text, "keyup", function (e) { + if (inCompostion && (!text.value || keytable[e.keyCode])) + setTimeout(onCompositionEnd, 0); + if ((text.value.charCodeAt(0)|0) < 129) { + return; + } + inCompostion ? onCompositionUpdate() : onCompositionStart(); + }); + } + + if ("onpropertychange" in text && !("oninput" in text)) + event.addListener(text, "propertychange", onPropertyChange); + else + event.addListener(text, "input", onTextInput); + + event.addListener(text, "paste", function(e) { + // Mark that the next input text comes from past. + pasted = true; + // Some browsers support the event.clipboardData API. Use this to get + // the pasted content which increases speed if pasting a lot of lines. + if (e.clipboardData && e.clipboardData.getData) { + sendText(e.clipboardData.getData("text/plain")); + e.preventDefault(); + } + else { + // If a browser doesn't support any of the things above, use the regular + // method to detect the pasted input. + onPropertyChange(); + } + }); + + if ("onbeforecopy" in text && typeof clipboardData !== "undefined") { + event.addListener(text, "beforecopy", function(e) { + var copyText = host.getCopyText(); + if (copyText) + clipboardData.setData("Text", copyText); + else + e.preventDefault(); + }); + event.addListener(parentNode, "keydown", function(e) { + if (e.ctrlKey && e.keyCode == 88) { + var copyText = host.getCopyText(); + if (copyText) { + clipboardData.setData("Text", copyText); + host.onCut(); + } + event.preventDefault(e); + } + }); + } + else if (useragent.isOpera) { + event.addListener(parentNode, "keydown", function(e) { + if ((useragent.isMac && !e.metaKey) || !e.ctrlKey) + return; + + if ((e.keyCode == 88 || e.keyCode == 67)) { + var copyText = host.getCopyText(); + if (copyText) { + text.value = copyText; + text.select(); + if (e.keyCode == 88) + host.onCut(); + } + } + }); + } + else { + event.addListener(text, "copy", onCopy); + event.addListener(text, "cut", onCut); + } + + event.addListener(text, "compositionstart", onCompositionStart); + if (useragent.isGecko) { + event.addListener(text, "text", onCompositionUpdate); + } + if (useragent.isWebKit) { + event.addListener(text, "keyup", onCompositionUpdate); + } + event.addListener(text, "compositionend", onCompositionEnd); + + event.addListener(text, "blur", function() { + host.onBlur(); + }); + + event.addListener(text, "focus", function() { + host.onFocus(); + select(); + }); + + this.focus = function() { + host.onFocus(); + select(); + text.focus(); + }; + + this.blur = function() { + text.blur(); + }; + + function isFocused() { + return document.activeElement === text; + } + this.isFocused = isFocused; + + this.getElement = function() { + return text; + }; + + this.onContextMenu = function(mousePos, isEmpty){ + if (mousePos) { + if (!tempStyle) + tempStyle = text.style.cssText; + + text.style.cssText = + 'position:fixed; z-index:1000;' + + 'left:' + (mousePos.x - 2) + 'px; top:' + (mousePos.y - 2) + 'px;'; + } + if (isEmpty) + text.value=''; + }; + + this.onContextMenuClose = function(){ + setTimeout(function () { + if (tempStyle) { + text.style.cssText = tempStyle; + tempStyle = ''; + } + sendText(); + }, 0); + }; +}; + +exports.TextInput = TextInput; +}); + +define('ace/mouse/mouse_handler', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/mouse/default_handlers', 'ace/mouse/default_gutter_handler', 'ace/mouse/mouse_event'], function(require, exports, module) { + + +var event = require("../lib/event"); +var DefaultHandlers = require("./default_handlers").DefaultHandlers; +var DefaultGutterHandler = require("./default_gutter_handler").GutterHandler; +var MouseEvent = require("./mouse_event").MouseEvent; + +var MouseHandler = function(editor) { + this.editor = editor; + + new DefaultHandlers(this); + new DefaultGutterHandler(this); + + event.addListener(editor.container, "mousedown", function(e) { + editor.focus(); + return event.preventDefault(e); + }); + event.addListener(editor.container, "selectstart", function(e) { + return event.preventDefault(e); + }); + + var mouseTarget = editor.renderer.getMouseEventTarget(); + event.addListener(mouseTarget, "mousedown", this.onMouseEvent.bind(this, "mousedown")); + event.addListener(mouseTarget, "click", this.onMouseEvent.bind(this, "click")); + event.addListener(mouseTarget, "mousemove", this.onMouseMove.bind(this, "mousemove")); + event.addMultiMouseDownListener(mouseTarget, 0, 2, 500, this.onMouseEvent.bind(this, "dblclick")); + event.addMultiMouseDownListener(mouseTarget, 0, 3, 600, this.onMouseEvent.bind(this, "tripleclick")); + event.addMultiMouseDownListener(mouseTarget, 0, 4, 600, this.onMouseEvent.bind(this, "quadclick")); + event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, "mousewheel")); + + var gutterEl = editor.renderer.$gutter; + event.addListener(gutterEl, "mousedown", this.onMouseEvent.bind(this, "guttermousedown")); + event.addListener(gutterEl, "click", this.onMouseEvent.bind(this, "gutterclick")); + event.addListener(gutterEl, "dblclick", this.onMouseEvent.bind(this, "gutterdblclick")); + event.addListener(gutterEl, "mousemove", this.onMouseMove.bind(this, "gutter")); +}; + +(function() { + + this.$scrollSpeed = 1; + this.setScrollSpeed = function(speed) { + this.$scrollSpeed = speed; + }; + + this.getScrollSpeed = function() { + return this.$scrollSpeed; + }; + + this.onMouseEvent = function(name, e) { + this.editor._emit(name, new MouseEvent(e, this.editor)); + }; + + this.$dragDelay = 250; + this.setDragDelay = function(dragDelay) { + this.$dragDelay = dragDelay; + }; + + this.getDragDelay = function() { + return this.$dragDelay; + }; + + this.onMouseMove = function(name, e) { + // optimization, because mousemove doesn't have a default handler. + var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove; + if (!listeners || !listeners.length) + return; + + this.editor._emit(name, new MouseEvent(e, this.editor)); + }; + + this.onMouseWheel = function(name, e) { + var mouseEvent = new MouseEvent(e, this.editor); + mouseEvent.speed = this.$scrollSpeed * 2; + mouseEvent.wheelX = e.wheelX; + mouseEvent.wheelY = e.wheelY; + + this.editor._emit(name, mouseEvent); + }; + + this.setState = function(state) { + this.state = state; + }; + + this.captureMouse = function(ev, state) { + if (state) + this.setState(state); + + this.x = ev.x; + this.y = ev.y; + + // do not move textarea during selection + var kt = this.editor.renderer.$keepTextAreaAtCursor; + this.editor.renderer.$keepTextAreaAtCursor = false; + + var self = this; + var onMouseSelection = function(e) { + self.x = e.clientX; + self.y = e.clientY; + }; + + var onMouseSelectionEnd = function(e) { + clearInterval(timerId); + self[self.state + "End"] && self[self.state + "End"](e); + self.$clickSelection = null; + self.editor.renderer.$keepTextAreaAtCursor = kt; + self.editor.renderer.$moveTextAreaToCursor(); + }; + + var onSelectionInterval = function() { + self[self.state] && self[self.state](); + } + + event.capture(this.editor.container, onMouseSelection, onMouseSelectionEnd); + var timerId = setInterval(onSelectionInterval, 20); + + ev.preventDefault(); + }; +}).call(MouseHandler.prototype); + +exports.MouseHandler = MouseHandler; +}); + +define('ace/mouse/default_handlers', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/browser_focus'], function(require, exports, module) { + + +var dom = require("../lib/dom"); +var BrowserFocus = require("../lib/browser_focus").BrowserFocus; + + +var DRAG_OFFSET = 5; // pixels + + + +function DefaultHandlers(mouseHandler) { + mouseHandler.$clickSelection = null; + mouseHandler.browserFocus = new BrowserFocus(); + + var editor = mouseHandler.editor; + editor.setDefaultHandler("mousedown", this.onMouseDown.bind(mouseHandler)); + editor.setDefaultHandler("dblclick", this.onDoubleClick.bind(mouseHandler)); + editor.setDefaultHandler("tripleclick", this.onTripleClick.bind(mouseHandler)); + editor.setDefaultHandler("quadclick", this.onQuadClick.bind(mouseHandler)); + editor.setDefaultHandler("mousewheel", this.onScroll.bind(mouseHandler)); + + var exports = ["select", "startSelect", "drag", "dragEnd", "dragWait", + "dragWaitEnd", "startDrag"]; + + exports.forEach(function(x) { + mouseHandler[x] = this[x]; + }, this); + + mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, "getLineRange"); + mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, "getWordRange"); +} + +(function() { + + this.onMouseDown = function(ev) { + this.mousedownEvent = ev; + var inSelection = ev.inSelection(); + var pos = ev.getDocumentPosition(); + var editor = this.editor; + var _self = this; + + this.ev = ev + var selectionRange = editor.getSelectionRange(); + var selectionEmpty = selectionRange.isEmpty(); + + var button = ev.getButton(); + if (button !== 0) { + if (selectionEmpty) { + editor.moveCursorToPosition(pos); + editor.selection.clearSelection(); + } + // 2: contextmenu, 1: linux paste + this.moveTextarea = function() { + editor.textInput.onContextMenu({x: _self.x, y: _self.y}); + }; + this.moveTextareaEnd = editor.textInput.onContextMenuClose; + + editor.textInput.onContextMenu({x: this.x, y: this.y}, selectionEmpty); + this.captureMouse(ev, "moveTextarea"); + + return; + } + + // if this click caused the editor to be focused should not clear the + // selection + if (inSelection && !editor.isFocused()) { + editor.focus(); + return; + } + + if (!inSelection || this.$clickSelection || ev.getShiftKey()) { + // Directly pick STATE_SELECT, since the user is not clicking inside + // a selection. + this.startSelect(pos); + } else if (inSelection) { + var e = ev.domEvent; + if ((e.ctrlKey || e.altKey)) { + this.startDrag(); + } else { + this.mousedownEvent.time = (new Date()).getTime(); + this.setState("dragWait"); + } + } + + this.captureMouse(ev) + }; + + this.startSelect = function(pos) { + pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y); + if (this.mousedownEvent.getShiftKey()) { + this.editor.selection.selectToPosition(pos); + } + else if (!this.$clickSelection) { + this.editor.moveCursorToPosition(pos); + this.editor.selection.clearSelection(); + } + this.setState("select"); + } + + this.select = function() { + var anchor, editor = this.editor; + var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + + if (this.$clickSelection) { + var cmp = this.$clickSelection.comparePoint(cursor); + + if (cmp == -1) { + anchor = this.$clickSelection.end; + } else if (cmp == 1) { + anchor = this.$clickSelection.start; + } else { + cursor = this.$clickSelection.end; + anchor = this.$clickSelection.start; + } + editor.selection.setSelectionAnchor(anchor.row, anchor.column); + } + editor.selection.selectToPosition(cursor); + + editor.renderer.scrollCursorIntoView(); + }; + + this.extendSelectionBy = function(unitName) { + var anchor, editor = this.editor; + var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + var range = editor.selection[unitName](cursor.row, cursor.column); + + if (this.$clickSelection) { + var cmpStart = this.$clickSelection.comparePoint(range.start); + var cmpEnd = this.$clickSelection.comparePoint(range.end); + + if (cmpStart == -1 && cmpEnd <= 0) { + anchor = this.$clickSelection.end; + cursor = range.start; + } else if (cmpEnd == 1 && cmpStart >= 0) { + anchor = this.$clickSelection.start; + cursor = range.end; + } else if (cmpStart == -1 && cmpEnd == 1) { + cursor = range.end; + anchor = range.start; + } else { + cursor = this.$clickSelection.end; + anchor = this.$clickSelection.start; + } + editor.selection.setSelectionAnchor(anchor.row, anchor.column); + } + editor.selection.selectToPosition(cursor); + + editor.renderer.scrollCursorIntoView(); + }; + + this.startDrag = function() { + var editor = this.editor; + this.setState("drag"); + this.dragRange = editor.getSelectionRange(); + var style = editor.getSelectionStyle(); + this.dragSelectionMarker = editor.session.addMarker(this.dragRange, "ace_selection", style); + editor.clearSelection(); + dom.addCssClass(editor.container, "ace_dragging"); + if (!this.$dragKeybinding) { + this.$dragKeybinding = { + handleKeyboard: function(data, hashId, keyString, keyCode) { + if (keyString == "esc") + return {command: this.command}; + }, + command: { + exec: function(editor) { + var self = editor.$mouseHandler; + self.dragCursor = null + self.dragEnd(); + self.startSelect(); + } + } + } + } + + editor.keyBinding.addKeyboardHandler(this.$dragKeybinding); + }; + + this.dragWait = function() { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + var time = (new Date()).getTime(); + var editor = this.editor; + + if (distance > DRAG_OFFSET) { + this.startSelect(); + } else if ((time - this.mousedownEvent.time) > editor.getDragDelay()) { + this.startDrag() + } + }; + + this.dragWaitEnd = function(e) { + this.mousedownEvent.domEvent = e; + this.startSelect(); + }; + + this.drag = function() { + var editor = this.editor; + this.dragCursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + editor.moveCursorToPosition(this.dragCursor); + editor.renderer.scrollCursorIntoView(); + }; + + this.dragEnd = function(e) { + var editor = this.editor; + var dragCursor = this.dragCursor; + var dragRange = this.dragRange; + dom.removeCssClass(editor.container, "ace_dragging"); + editor.session.removeMarker(this.dragSelectionMarker); + editor.keyBinding.removeKeyboardHandler(this.$dragKeybinding); + + if (!dragCursor) + return; + + editor.clearSelection(); + if (e && (e.ctrlKey || e.altKey)) { + var session = editor.session; + var newRange = dragRange; + newRange.end = session.insert(dragCursor, session.getTextRange(dragRange)); + newRange.start = dragCursor; + } else if (dragRange.contains(dragCursor.row, dragCursor.column)) { + return; + } else { + var newRange = editor.moveText(dragRange, dragCursor); + } + + if (!newRange) + return; + + editor.selection.setSelectionRange(newRange); + }; + + this.onDoubleClick = function(ev) { + var pos = ev.getDocumentPosition(); + var editor = this.editor; + + this.setState("selectByWords"); + + editor.moveCursorToPosition(pos); + editor.selection.selectWord(); + this.$clickSelection = editor.getSelectionRange(); + }; + + this.onTripleClick = function(ev) { + var pos = ev.getDocumentPosition(); + var editor = this.editor; + + this.setState("selectByLines"); + + editor.moveCursorToPosition(pos); + editor.selection.selectLine(); + this.$clickSelection = editor.getSelectionRange(); + }; + + this.onQuadClick = function(ev) { + var editor = this.editor; + + editor.selectAll(); + this.$clickSelection = editor.getSelectionRange(); + this.setState("null"); + }; + + this.onScroll = function(ev) { + var editor = this.editor; + var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + if (isScrolable) { + this.$passScrollEvent = false; + } else { + if (this.$passScrollEvent) + return; + + if (!this.$scrollStopTimeout) { + var self = this; + this.$scrollStopTimeout = setTimeout(function() { + self.$passScrollEvent = true; + self.$scrollStopTimeout = null; + }, 200); + } + } + + editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + return ev.preventDefault(); + }; + +}).call(DefaultHandlers.prototype); + +exports.DefaultHandlers = DefaultHandlers; + +function calcDistance(ax, ay, bx, by) { + return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2)); +} + +}); + +define('ace/lib/browser_focus', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var oop = require("./oop"); +var event = require("./event"); +var EventEmitter = require("./event_emitter").EventEmitter; +var BrowserFocus = function(win) { + win = win || window; + + this.lastFocus = new Date().getTime(); + this._isFocused = true; + + var _self = this; + + // IE < 9 supports focusin and focusout events + if ("onfocusin" in win.document) { + event.addListener(win.document, "focusin", function(e) { + _self._setFocused(true); + }); + + event.addListener(win.document, "focusout", function(e) { + _self._setFocused(!!e.toElement); + }); + } + else { + event.addListener(win, "blur", function(e) { + _self._setFocused(false); + }); + + event.addListener(win, "focus", function(e) { + _self._setFocused(true); + }); + } +}; + +(function(){ + + oop.implement(this, EventEmitter); + + this.isFocused = function() { + return this._isFocused; + }; + + this._setFocused = function(isFocused) { + if (this._isFocused == isFocused) + return; + + if (isFocused) + this.lastFocus = new Date().getTime(); + + this._isFocused = isFocused; + this._emit("changeFocus"); + }; + +}).call(BrowserFocus.prototype); + + +exports.BrowserFocus = BrowserFocus; +}); + +define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { + + +var EventEmitter = {}; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry = this._eventRegistry || {}; + this._defaultHandlers = this._defaultHandlers || {}; + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + e = e || {}; + e.type = eventName; + + if (!e.stopPropagation) { + e.stopPropagation = function() { + this.propagationStopped = true; + }; + } + + if (!e.preventDefault) { + e.preventDefault = function() { + this.defaultPrevented = true; + }; + } + + for (var i=0; i= row) { + rowCache.splice(i, rowCache.length); + return; + } + } + }; + this.onChangeFold = function(e) { + var fold = e.data; + this.$resetRowCache(fold.start.row); + }; + this.onChange = function(e) { + var delta = e.data; + this.$modified = true; + + this.$resetRowCache(delta.range.start.row); + + var removedFolds = this.$updateInternalDataOnChange(e); + if (!this.$fromUndo && this.$undoManager && !delta.ignore) { + this.$deltasDoc.push(delta); + if (removedFolds && removedFolds.length != 0) { + this.$deltasFold.push({ + action: "removeFolds", + folds: removedFolds + }); + } + + this.$informUndoManager.schedule(); + } + + this.bgTokenizer.start(delta.range.start.row); + this._emit("change", e); + }; + this.setValue = function(text) { + this.doc.setValue(text); + this.selection.moveCursorTo(0, 0); + this.selection.clearSelection(); + + this.$resetRowCache(0); + this.$deltas = []; + this.$deltasDoc = []; + this.$deltasFold = []; + this.getUndoManager().reset(); + }; + /** alias of: EditSession.getValue + * EditSession.toString() -> String + * + * Returns the current [[Document `Document`]] as a string. + * + **/ + this.getValue = + this.toString = function() { + return this.doc.getValue(); + }; + this.getSelection = function() { + return this.selection; + }; + this.getState = function(row) { + return this.bgTokenizer.getState(row); + }; + this.getTokens = function(firstRow, lastRow) { + return this.bgTokenizer.getTokens(firstRow, lastRow); + }; + this.getTokenAt = function(row, column) { + var tokens = this.bgTokenizer.getTokens(row, row)[0].tokens; + var token, c = 0; + if (column == null) { + i = tokens.length - 1; + c = this.getLine(row).length; + } else { + for (var i = 0; i < tokens.length; i++) { + c += tokens[i].value.length; + if (c >= column) + break; + } + } + token = tokens[i]; + if (!token) + return null; + token.index = i; + token.start = c - token.value.length; + return token; + }; + this.setUndoManager = function(undoManager) { + this.$undoManager = undoManager; + this.$resetRowCache(0); + this.$deltas = []; + this.$deltasDoc = []; + this.$deltasFold = []; + + if (this.$informUndoManager) + this.$informUndoManager.cancel(); + + if (undoManager) { + var self = this; + this.$syncInformUndoManager = function() { + self.$informUndoManager.cancel(); + + if (self.$deltasFold.length) { + self.$deltas.push({ + group: "fold", + deltas: self.$deltasFold + }); + self.$deltasFold = []; + } + + if (self.$deltasDoc.length) { + self.$deltas.push({ + group: "doc", + deltas: self.$deltasDoc + }); + self.$deltasDoc = []; + } + + if (self.$deltas.length > 0) { + undoManager.execute({ + action: "aceupdate", + args: [self.$deltas, self] + }); + } + + self.$deltas = []; + } + this.$informUndoManager = + lang.deferredCall(this.$syncInformUndoManager); + } + }; + + this.$defaultUndoManager = { + undo: function() {}, + redo: function() {}, + reset: function() {} + }; + this.getUndoManager = function() { + return this.$undoManager || this.$defaultUndoManager; + }, + + /** + * EditSession.getTabString() -> String + * + * Returns the current value for tabs. If the user is using soft tabs, this will be a series of spaces (defined by [[EditSession.getTabSize `getTabSize()`]]); otherwise it's simply `'\t'`. + **/ + this.getTabString = function() { + if (this.getUseSoftTabs()) { + return lang.stringRepeat(" ", this.getTabSize()); + } else { + return "\t"; + } + }; + + this.$useSoftTabs = true; + this.setUseSoftTabs = function(useSoftTabs) { + if (this.$useSoftTabs === useSoftTabs) return; + + this.$useSoftTabs = useSoftTabs; + }; + this.getUseSoftTabs = function() { + return this.$useSoftTabs; + }; + + this.$tabSize = 4; + this.setTabSize = function(tabSize) { + if (isNaN(tabSize) || this.$tabSize === tabSize) return; + + this.$modified = true; + this.$tabSize = tabSize; + this._emit("changeTabSize"); + }; + this.getTabSize = function() { + return this.$tabSize; + }; + this.isTabStop = function(position) { + return this.$useSoftTabs && (position.column % this.$tabSize == 0); + }; + + this.$overwrite = false; + this.setOverwrite = function(overwrite) { + if (this.$overwrite == overwrite) return; + + this.$overwrite = overwrite; + this._emit("changeOverwrite"); + }; + this.getOverwrite = function() { + return this.$overwrite; + }; + this.toggleOverwrite = function() { + this.setOverwrite(!this.$overwrite); + }; + this.getBreakpoints = function() { + return this.$breakpoints; + }; + this.setBreakpoints = function(rows) { + this.$breakpoints = []; + for (var i=0; i 0) { + inToken = !!line.charAt(column - 1).match(this.tokenRe); + } + + if (!inToken) { + inToken = !!line.charAt(column).match(this.tokenRe); + } + + var re = inToken ? this.tokenRe : this.nonTokenRe; + + var start = column; + if (start > 0) { + do { + start--; + } + while (start >= 0 && line.charAt(start).match(re)); + start++; + } + + var end = column; + while (end < line.length && line.charAt(end).match(re)) { + end++; + } + + return new Range(row, start, row, end); + }; + this.getAWordRange = function(row, column) { + var wordRange = this.getWordRange(row, column); + var line = this.getLine(wordRange.end.row); + + while (line.charAt(wordRange.end.column).match(/[ \t]/)) { + wordRange.end.column += 1; + } + return wordRange; + }; + this.setNewLineMode = function(newLineMode) { + this.doc.setNewLineMode(newLineMode); + }; + this.getNewLineMode = function() { + return this.doc.getNewLineMode(); + }; + + this.$useWorker = true; + this.setUseWorker = function(useWorker) { + if (this.$useWorker == useWorker) + return; + + this.$useWorker = useWorker; + + this.$stopWorker(); + if (useWorker) + this.$startWorker(); + }; + this.getUseWorker = function() { + return this.$useWorker; + }; + this.onReloadTokenizer = function(e) { + var rows = e.data; + this.bgTokenizer.start(rows.first); + this._emit("tokenizerUpdate", e); + }; + + this.$modes = {}; + this._loadMode = function(mode, callback) { + if (!this.$modes["null"]) + this.$modes["null"] = this.$modes["ace/mode/text"] = new TextMode(); + + if (this.$modes[mode]) + return callback(this.$modes[mode]); + + var _self = this; + var module; + try { + module = require(mode); + } catch (e) {}; + if (module) + return done(module); + + // set mode to text until loading is finished + if (!this.$mode) + this.$setModePlaceholder(); + + fetch(function() { + require([mode], done); + }); + + function done(module) { + if (_self.$modes[mode]) + return callback(_self.$modes[mode]); + + _self.$modes[mode] = new module.Mode(); + _self.$modes[mode].$id = mode; + _self._emit("loadmode", { + name: mode, + mode: _self.$modes[mode] + }); + callback(_self.$modes[mode]); + } + + function fetch(callback) { + if (!config.get("packaged")) + return callback(); + + var base = mode.split("/").pop(); + var filename = config.get("modePath") + "/mode-" + base + ".js"; + net.loadScript(filename, callback); + } + }; + + this.$setModePlaceholder = function() { + this.$mode = this.$modes["null"]; + var tokenizer = this.$mode.getTokenizer(); + + if (!this.bgTokenizer) { + this.bgTokenizer = new BackgroundTokenizer(tokenizer); + var _self = this; + this.bgTokenizer.addEventListener("update", function(e) { + _self._emit("tokenizerUpdate", e); + }); + } else { + this.bgTokenizer.setTokenizer(tokenizer); + } + this.bgTokenizer.setDocument(this.getDocument()); + + this.tokenRe = this.$mode.tokenRe; + this.nonTokenRe = this.$mode.nonTokenRe; + }; + this.$mode = null; + this.$modeId = null; + this.setMode = function(mode) { + mode = mode || "null"; + // load on demand + if (typeof mode === "string") { + if (this.$modeId == mode) + return; + + this.$modeId = mode; + var _self = this; + this._loadMode(mode, function(module) { + if (_self.$modeId !== mode) + return; + + _self.setMode(module); + }); + return; + } + + if (this.$mode === mode) return; + this.$mode = mode; + this.$modeId = mode.$id; + + this.$stopWorker(); + + if (this.$useWorker) + this.$startWorker(); + + var tokenizer = mode.getTokenizer(); + + if(tokenizer.addEventListener !== undefined) { + var onReloadTokenizer = this.onReloadTokenizer.bind(this); + tokenizer.addEventListener("update", onReloadTokenizer); + } + + if (!this.bgTokenizer) { + this.bgTokenizer = new BackgroundTokenizer(tokenizer); + var _self = this; + this.bgTokenizer.addEventListener("update", function(e) { + _self._emit("tokenizerUpdate", e); + }); + } else { + this.bgTokenizer.setTokenizer(tokenizer); + } + + this.bgTokenizer.setDocument(this.getDocument()); + this.bgTokenizer.start(0); + + this.tokenRe = mode.tokenRe; + this.nonTokenRe = mode.nonTokenRe; + + this.$setFolding(mode.foldingRules); + + this._emit("changeMode"); + }; + this.$stopWorker = function() { + if (this.$worker) + this.$worker.terminate(); + + this.$worker = null; + }; + this.$startWorker = function() { + if (typeof Worker !== "undefined" && !require.noWorker) { + try { + this.$worker = this.$mode.createWorker(this); + } catch (e) { + console.log("Could not load worker"); + console.log(e); + this.$worker = null; + } + } + else + this.$worker = null; + }; + this.getMode = function() { + return this.$mode; + }; + + this.$scrollTop = 0; + this.setScrollTop = function(scrollTop) { + scrollTop = Math.round(Math.max(0, scrollTop)); + if (this.$scrollTop === scrollTop) + return; + + this.$scrollTop = scrollTop; + this._emit("changeScrollTop", scrollTop); + }; + this.getScrollTop = function() { + return this.$scrollTop; + }; + + this.$scrollLeft = 0; + this.setScrollLeft = function(scrollLeft) { + scrollLeft = Math.round(Math.max(0, scrollLeft)); + if (this.$scrollLeft === scrollLeft) + return; + + this.$scrollLeft = scrollLeft; + this._emit("changeScrollLeft", scrollLeft); + }; + this.getScrollLeft = function() { + return this.$scrollLeft; + }; + this.getWidth = function() { + this.$computeWidth(); + return this.width; + }; + this.getScreenWidth = function() { + this.$computeWidth(); + return this.screenWidth; + }; + + this.$computeWidth = function(force) { + if (this.$modified || force) { + this.$modified = false; + + var lines = this.doc.getAllLines(); + var longestLine = 0; + var longestScreenLine = 0; + + for ( var i = 0; i < lines.length; i++) { + var foldLine = this.getFoldLine(i), + line, len; + + line = lines[i]; + if (foldLine) { + var end = foldLine.range.end; + line = this.getFoldDisplayLine(foldLine); + // Continue after the foldLine.end.row. All the lines in + // between are folded. + i = end.row; + } + len = line.length; + longestLine = Math.max(longestLine, len); + if (!this.$useWrapMode) { + longestScreenLine = Math.max( + longestScreenLine, + this.$getStringScreenWidth(line)[0] + ); + } + } + this.width = longestLine; + + if (this.$useWrapMode) { + this.screenWidth = this.$wrapLimit; + } else { + this.screenWidth = longestScreenLine; + } + } + }; + this.getLine = function(row) { + return this.doc.getLine(row); + }; + this.getLines = function(firstRow, lastRow) { + return this.doc.getLines(firstRow, lastRow); + }; + this.getLength = function() { + return this.doc.getLength(); + }; + this.getTextRange = function(range) { + return this.doc.getTextRange(range); + }; + this.insert = function(position, text) { + return this.doc.insert(position, text); + }; + this.remove = function(range) { + return this.doc.remove(range); + }; + this.undoChanges = function(deltas, dontSelect) { + if (!deltas.length) + return; + + this.$fromUndo = true; + var lastUndoRange = null; + for (var i = deltas.length - 1; i != -1; i--) { + var delta = deltas[i]; + if (delta.group == "doc") { + this.doc.revertDeltas(delta.deltas); + lastUndoRange = + this.$getUndoSelection(delta.deltas, true, lastUndoRange); + } else { + delta.deltas.forEach(function(foldDelta) { + this.addFolds(foldDelta.folds); + }, this); + } + } + this.$fromUndo = false; + lastUndoRange && + this.$undoSelect && + !dontSelect && + this.selection.setSelectionRange(lastUndoRange); + return lastUndoRange; + }; + this.redoChanges = function(deltas, dontSelect) { + if (!deltas.length) + return; + + this.$fromUndo = true; + var lastUndoRange = null; + for (var i = 0; i < deltas.length; i++) { + var delta = deltas[i]; + if (delta.group == "doc") { + this.doc.applyDeltas(delta.deltas); + lastUndoRange = + this.$getUndoSelection(delta.deltas, false, lastUndoRange); + } + } + this.$fromUndo = false; + lastUndoRange && + this.$undoSelect && + !dontSelect && + this.selection.setSelectionRange(lastUndoRange); + return lastUndoRange; + }; + this.setUndoSelect = function(enable) { + this.$undoSelect = enable; + }; + this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) { + function isInsert(delta) { + var insert = + delta.action == "insertText" || delta.action == "insertLines"; + return isUndo ? !insert : insert; + } + + var delta = deltas[0]; + var range, point; + var lastDeltaIsInsert = false; + if (isInsert(delta)) { + range = delta.range.clone(); + lastDeltaIsInsert = true; + } else { + range = Range.fromPoints(delta.range.start, delta.range.start); + lastDeltaIsInsert = false; + } + + for (var i = 1; i < deltas.length; i++) { + delta = deltas[i]; + if (isInsert(delta)) { + point = delta.range.start; + if (range.compare(point.row, point.column) == -1) { + range.setStart(delta.range.start); + } + point = delta.range.end; + if (range.compare(point.row, point.column) == 1) { + range.setEnd(delta.range.end); + } + lastDeltaIsInsert = true; + } else { + point = delta.range.start; + if (range.compare(point.row, point.column) == -1) { + range = + Range.fromPoints(delta.range.start, delta.range.start); + } + lastDeltaIsInsert = false; + } + } + + // Check if this range and the last undo range has something in common. + // If true, merge the ranges. + if (lastUndoRange != null) { + var cmp = lastUndoRange.compareRange(range); + if (cmp == 1) { + range.setStart(lastUndoRange.start); + } else if (cmp == -1) { + range.setEnd(lastUndoRange.end); + } + } + + return range; + }, + + /** related to: Document.replace + * EditSession.replace(range, text) -> Object + * - range (Range): A specified Range to replace + * - text (String): The new text to use as a replacement + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}```
+ * If the text and range are empty, this function returns an object containing the current `range.start` value.
+ * If the text is the exact same as what currently exists, this function returns an object containing the current `range.end` value. + * + * Replaces a range in the document with the new `text`. + * + * + * + **/ + this.replace = function(range, text) { + return this.doc.replace(range, text); + }; + this.moveText = function(fromRange, toPosition) { + var text = this.getTextRange(fromRange); + this.remove(fromRange); + + var toRow = toPosition.row; + var toColumn = toPosition.column; + + // Make sure to update the insert location, when text is removed in + // front of the chosen point of insertion. + if (!fromRange.isMultiLine() && fromRange.start.row == toRow && + fromRange.end.column < toColumn) + toColumn -= text.length; + + if (fromRange.isMultiLine() && fromRange.end.row < toRow) { + var lines = this.doc.$split(text); + toRow -= lines.length - 1; + } + + var endRow = toRow + fromRange.end.row - fromRange.start.row; + var endColumn = fromRange.isMultiLine() ? + fromRange.end.column : + toColumn + fromRange.end.column - fromRange.start.column; + + var toRange = new Range(toRow, toColumn, endRow, endColumn); + + this.insert(toRange.start, text); + + return toRange; + }; + this.indentRows = function(startRow, endRow, indentString) { + indentString = indentString.replace(/\t/g, this.getTabString()); + for (var row=startRow; row<=endRow; row++) + this.insert({row: row, column:0}, indentString); + }; + this.outdentRows = function (range) { + var rowRange = range.collapseRows(); + var deleteRange = new Range(0, 0, 0, 0); + var size = this.getTabSize(); + + for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) { + var line = this.getLine(i); + + deleteRange.start.row = i; + deleteRange.end.row = i; + for (var j = 0; j < size; ++j) + if (line.charAt(j) != ' ') + break; + if (j < size && line.charAt(j) == '\t') { + deleteRange.start.column = j; + deleteRange.end.column = j + 1; + } else { + deleteRange.start.column = 0; + deleteRange.end.column = j; + } + this.remove(deleteRange); + } + }; + this.moveLinesUp = function(firstRow, lastRow) { + if (firstRow <= 0) return 0; + + var removed = this.doc.removeLines(firstRow, lastRow); + this.doc.insertLines(firstRow - 1, removed); + return -1; + }; + this.moveLinesDown = function(firstRow, lastRow) { + if (lastRow >= this.doc.getLength()-1) return 0; + + var removed = this.doc.removeLines(firstRow, lastRow); + this.doc.insertLines(firstRow+1, removed); + return 1; + }; + this.duplicateLines = function(firstRow, lastRow) { + var firstRow = this.$clipRowToDocument(firstRow); + var lastRow = this.$clipRowToDocument(lastRow); + + var lines = this.getLines(firstRow, lastRow); + this.doc.insertLines(firstRow, lines); + + var addedRows = lastRow - firstRow + 1; + return addedRows; + }; + + + this.$clipRowToDocument = function(row) { + return Math.max(0, Math.min(row, this.doc.getLength()-1)); + }; + + this.$clipColumnToRow = function(row, column) { + if (column < 0) + return 0; + return Math.min(this.doc.getLine(row).length, column); + }; + + + this.$clipPositionToDocument = function(row, column) { + column = Math.max(0, column); + + if (row < 0) { + row = 0; + column = 0; + } else { + var len = this.doc.getLength(); + if (row >= len) { + row = len - 1; + column = this.doc.getLine(len-1).length; + } else { + column = Math.min(this.doc.getLine(row).length, column); + } + } + + return { + row: row, + column: column + }; + }; + + this.$clipRangeToDocument = function(range) { + if (range.start.row < 0) { + range.start.row = 0; + range.start.column = 0 + } else { + range.start.column = this.$clipColumnToRow( + range.start.row, + range.start.column + ); + } + + var len = this.doc.getLength() - 1; + if (range.end.row > len) { + range.end.row = len; + range.end.column = this.doc.getLine(len).length; + } else { + range.end.column = this.$clipColumnToRow( + range.end.row, + range.end.column + ); + } + return range; + }; + + // WRAPMODE + this.$wrapLimit = 80; + this.$useWrapMode = false; + this.$wrapLimitRange = { + min : null, + max : null + }; + this.setUseWrapMode = function(useWrapMode) { + if (useWrapMode != this.$useWrapMode) { + this.$useWrapMode = useWrapMode; + this.$modified = true; + this.$resetRowCache(0); + + // If wrapMode is activaed, the wrapData array has to be initialized. + if (useWrapMode) { + var len = this.getLength(); + this.$wrapData = []; + for (var i = 0; i < len; i++) { + this.$wrapData.push([]); + } + this.$updateWrapData(0, len - 1); + } + + this._emit("changeWrapMode"); + } + }; + this.getUseWrapMode = function() { + return this.$useWrapMode; + }; + + // Allow the wrap limit to move freely between min and max. Either + // parameter can be null to allow the wrap limit to be unconstrained + // in that direction. Or set both parameters to the same number to pin + // the limit to that value. + /** + * EditSession.setWrapLimitRange(min, max) + * - min (Number): The minimum wrap value (the left side wrap) + * - max (Number): The maximum wrap value (the right side wrap) + * + * Sets the boundaries of wrap. Either value can be `null` to have an unconstrained wrap, or, they can be the same number to pin the limit. If the wrap limits for `min` or `max` are different, this method also emits the `'changeWrapMode'` event. + **/ + this.setWrapLimitRange = function(min, max) { + if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) { + this.$wrapLimitRange.min = min; + this.$wrapLimitRange.max = max; + this.$modified = true; + // This will force a recalculation of the wrap limit + this._emit("changeWrapMode"); + } + }; + this.adjustWrapLimit = function(desiredLimit) { + var wrapLimit = this.$constrainWrapLimit(desiredLimit); + if (wrapLimit != this.$wrapLimit && wrapLimit > 0) { + this.$wrapLimit = wrapLimit; + this.$modified = true; + if (this.$useWrapMode) { + this.$updateWrapData(0, this.getLength() - 1); + this.$resetRowCache(0) + this._emit("changeWrapLimit"); + } + return true; + } + return false; + }; + this.$constrainWrapLimit = function(wrapLimit) { + var min = this.$wrapLimitRange.min; + if (min) + wrapLimit = Math.max(min, wrapLimit); + + var max = this.$wrapLimitRange.max; + if (max) + wrapLimit = Math.min(max, wrapLimit); + + // What would a limit of 0 even mean? + return Math.max(1, wrapLimit); + }; + this.getWrapLimit = function() { + return this.$wrapLimit; + }; + this.getWrapLimitRange = function() { + // Avoid unexpected mutation by returning a copy + return { + min : this.$wrapLimitRange.min, + max : this.$wrapLimitRange.max + }; + }; + this.$updateInternalDataOnChange = function(e) { + var useWrapMode = this.$useWrapMode; + var len; + var action = e.data.action; + var firstRow = e.data.range.start.row; + var lastRow = e.data.range.end.row; + var start = e.data.range.start; + var end = e.data.range.end; + var removedFolds = null; + + if (action.indexOf("Lines") != -1) { + if (action == "insertLines") { + lastRow = firstRow + (e.data.lines.length); + } else { + lastRow = firstRow; + } + len = e.data.lines ? e.data.lines.length : lastRow - firstRow; + } else { + len = lastRow - firstRow; + } + + if (len != 0) { + if (action.indexOf("remove") != -1) { + useWrapMode && this.$wrapData.splice(firstRow, len); + + var foldLines = this.$foldData; + removedFolds = this.getFoldsInRange(e.data.range); + this.removeFolds(removedFolds); + + var foldLine = this.getFoldLine(end.row); + var idx = 0; + if (foldLine) { + foldLine.addRemoveChars(end.row, end.column, start.column - end.column); + foldLine.shiftRow(-len); + + var foldLineBefore = this.getFoldLine(firstRow); + if (foldLineBefore && foldLineBefore !== foldLine) { + foldLineBefore.merge(foldLine); + foldLine = foldLineBefore; + } + idx = foldLines.indexOf(foldLine) + 1; + } + + for (idx; idx < foldLines.length; idx++) { + var foldLine = foldLines[idx]; + if (foldLine.start.row >= end.row) { + foldLine.shiftRow(-len); + } + } + + lastRow = firstRow; + } else { + var args; + if (useWrapMode) { + args = [firstRow, 0]; + for (var i = 0; i < len; i++) args.push([]); + this.$wrapData.splice.apply(this.$wrapData, args); + } + + // If some new line is added inside of a foldLine, then split + // the fold line up. + var foldLines = this.$foldData; + var foldLine = this.getFoldLine(firstRow); + var idx = 0; + if (foldLine) { + var cmp = foldLine.range.compareInside(start.row, start.column) + // Inside of the foldLine range. Need to split stuff up. + if (cmp == 0) { + foldLine = foldLine.split(start.row, start.column); + foldLine.shiftRow(len); + foldLine.addRemoveChars( + lastRow, 0, end.column - start.column); + } else + // Infront of the foldLine but same row. Need to shift column. + if (cmp == -1) { + foldLine.addRemoveChars(firstRow, 0, end.column - start.column); + foldLine.shiftRow(len); + } + // Nothing to do if the insert is after the foldLine. + idx = foldLines.indexOf(foldLine) + 1; + } + + for (idx; idx < foldLines.length; idx++) { + var foldLine = foldLines[idx]; + if (foldLine.start.row >= firstRow) { + foldLine.shiftRow(len); + } + } + } + } else { + // Realign folds. E.g. if you add some new chars before a fold, the + // fold should "move" to the right. + len = Math.abs(e.data.range.start.column - e.data.range.end.column); + if (action.indexOf("remove") != -1) { + // Get all the folds in the change range and remove them. + removedFolds = this.getFoldsInRange(e.data.range); + this.removeFolds(removedFolds); + + len = -len; + } + var foldLine = this.getFoldLine(firstRow); + if (foldLine) { + foldLine.addRemoveChars(firstRow, start.column, len); + } + } + + if (useWrapMode && this.$wrapData.length != this.doc.getLength()) { + console.error("doc.getLength() and $wrapData.length have to be the same!"); + } + + useWrapMode && this.$updateWrapData(firstRow, lastRow); + + return removedFolds; + }; + this.$updateWrapData = function(firstRow, lastRow) { + var lines = this.doc.getAllLines(); + var tabSize = this.getTabSize(); + var wrapData = this.$wrapData; + var wrapLimit = this.$wrapLimit; + var tokens; + var foldLine; + + var row = firstRow; + lastRow = Math.min(lastRow, lines.length - 1); + while (row <= lastRow) { + foldLine = this.getFoldLine(row, foldLine); + if (!foldLine) { + tokens = this.$getDisplayTokens(lang.stringTrimRight(lines[row])); + wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize); + row ++; + } else { + tokens = []; + foldLine.walk( + function(placeholder, row, column, lastColumn) { + var walkTokens; + if (placeholder) { + walkTokens = this.$getDisplayTokens( + placeholder, tokens.length); + walkTokens[0] = PLACEHOLDER_START; + for (var i = 1; i < walkTokens.length; i++) { + walkTokens[i] = PLACEHOLDER_BODY; + } + } else { + walkTokens = this.$getDisplayTokens( + lines[row].substring(lastColumn, column), + tokens.length); + } + tokens = tokens.concat(walkTokens); + }.bind(this), + foldLine.end.row, + lines[foldLine.end.row].length + 1 + ); + // Remove spaces/tabs from the back of the token array. + while (tokens.length != 0 && tokens[tokens.length - 1] >= SPACE) + tokens.pop(); + + wrapData[foldLine.start.row] + = this.$computeWrapSplits(tokens, wrapLimit, tabSize); + row = foldLine.end.row + 1; + } + } + }; + + // "Tokens" + var CHAR = 1, + CHAR_EXT = 2, + PLACEHOLDER_START = 3, + PLACEHOLDER_BODY = 4, + PUNCTUATION = 9, + SPACE = 10, + TAB = 11, + TAB_SPACE = 12; + this.$computeWrapSplits = function(tokens, wrapLimit) { + if (tokens.length == 0) { + return []; + } + + var splits = []; + var displayLength = tokens.length; + var lastSplit = 0, lastDocSplit = 0; + + function addSplit(screenPos) { + var displayed = tokens.slice(lastSplit, screenPos); + + // The document size is the current size - the extra width for tabs + // and multipleWidth characters. + var len = displayed.length; + displayed.join(""). + // Get all the TAB_SPACEs. + replace(/12/g, function() { + len -= 1; + }). + // Get all the CHAR_EXT/multipleWidth characters. + replace(/2/g, function() { + len -= 1; + }); + + lastDocSplit += len; + splits.push(lastDocSplit); + lastSplit = screenPos; + } + + while (displayLength - lastSplit > wrapLimit) { + // This is, where the split should be. + var split = lastSplit + wrapLimit; + + // If there is a space or tab at this split position, then making + // a split is simple. + if (tokens[split] >= SPACE) { + // Include all following spaces + tabs in this split as well. + while (tokens[split] >= SPACE) { + split ++; + } + addSplit(split); + continue; + } + + // === ELSE === + // Check if split is inside of a placeholder. Placeholder are + // not splitable. Therefore, seek the beginning of the placeholder + // and try to place the split beofre the placeholder's start. + if (tokens[split] == PLACEHOLDER_START + || tokens[split] == PLACEHOLDER_BODY) + { + // Seek the start of the placeholder and do the split + // before the placeholder. By definition there always + // a PLACEHOLDER_START between split and lastSplit. + for (split; split != lastSplit - 1; split--) { + if (tokens[split] == PLACEHOLDER_START) { + // split++; << No incremental here as we want to + // have the position before the Placeholder. + break; + } + } + + // If the PLACEHOLDER_START is not the index of the + // last split, then we can do the split + if (split > lastSplit) { + addSplit(split); + continue; + } + + // If the PLACEHOLDER_START IS the index of the last + // split, then we have to place the split after the + // placeholder. So, let's seek for the end of the placeholder. + split = lastSplit + wrapLimit; + for (split; split < tokens.length; split++) { + if (tokens[split] != PLACEHOLDER_BODY) + { + break; + } + } + + // If spilt == tokens.length, then the placeholder is the last + // thing in the line and adding a new split doesn't make sense. + if (split == tokens.length) { + break; // Breaks the while-loop. + } + + // Finally, add the split... + addSplit(split); + continue; + } + + // === ELSE === + // Search for the first non space/tab/placeholder/punctuation token backwards. + var minSplit = Math.max(split - 10, lastSplit - 1); + while (split > minSplit && tokens[split] < PLACEHOLDER_START) { + split --; + } + while (split > minSplit && tokens[split] == PUNCTUATION) { + split --; + } + // If we found one, then add the split. + if (split > minSplit) { + addSplit(++split); + continue; + } + + // === ELSE === + split = lastSplit + wrapLimit; + // The split is inside of a CHAR or CHAR_EXT token and no space + // around -> force a split. + addSplit(split); + } + return splits; + } + + /** internal, hide + * EditSession.$getDisplayTokens(str, offset) -> Array + * - str (String): The string to check + * - offset (Number): The value to start at + * + * Given a string, returns an array of the display characters, including tabs and spaces. + **/ + this.$getDisplayTokens = function(str, offset) { + var arr = []; + var tabSize; + offset = offset || 0; + + for (var i = 0; i < str.length; i++) { + var c = str.charCodeAt(i); + // Tab + if (c == 9) { + tabSize = this.getScreenTabSize(arr.length + offset); + arr.push(TAB); + for (var n = 1; n < tabSize; n++) { + arr.push(TAB_SPACE); + } + } + // Space + else if (c == 32) { + arr.push(SPACE); + } else if((c > 39 && c < 48) || (c > 57 && c < 64)) { + arr.push(PUNCTUATION); + } + // full width characters + else if (c >= 0x1100 && isFullWidth(c)) { + arr.push(CHAR, CHAR_EXT); + } else { + arr.push(CHAR); + } + } + return arr; + } + + /** internal, hide + * EditSession.$getStringScreenWidth(str, maxScreenColumn, screenColumn) -> [Number] + * - str (String): The string to calculate the screen width of + * - maxScreenColumn (Number): + * - screenColumn (Number): + * + ([Number]): Returns an `int[]` array with two elements:
+ * The first position indicates the number of columns for `str` on screen.
+ * The second value contains the position of the document column that this function read until. + * + * Calculates the width of the string `str` on the screen while assuming that the string starts at the first column on the screen. + * + * + **/ + this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) { + if (maxScreenColumn == 0) { + return [0, 0]; + } + if (maxScreenColumn == null) { + maxScreenColumn = screenColumn + + str.length * Math.max(this.getTabSize(), 2); + } + screenColumn = screenColumn || 0; + + var c, column; + for (column = 0; column < str.length; column++) { + c = str.charCodeAt(column); + // tab + if (c == 9) { + screenColumn += this.getScreenTabSize(screenColumn); + } + // full width characters + else if (c >= 0x1100 && isFullWidth(c)) { + screenColumn += 2; + } else { + screenColumn += 1; + } + if (screenColumn > maxScreenColumn) { + break + } + } + + return [screenColumn, column]; + } + + /** + * EditSession.getRowLength(row) -> Number + * - row (Number): The row number to check + * + * + * Returns the length of the indicated row. + **/ + this.getRowLength = function(row) { + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1; + } else { + return this.$wrapData[row].length + 1; + } + } + + /** + * EditSession.getRowHeight(config, row) -> Number + * - config (Object): An object containing a parameter indicating the `lineHeight`. + * - row (Number): The row number to check + * + * Returns the height of the indicated row. This is mostly relevant for situations where wrapping occurs, and a single line spans across multiple rows. + * + **/ + this.getRowHeight = function(config, row) { + return this.getRowLength(row) * config.lineHeight; + } + + /** internal, hide, related to: EditSession.documentToScreenColumn + * EditSession.getScreenLastRowColumn(screenRow) -> Number + * - screenRow (Number): The screen row to check + * + * Returns the column position (on screen) for the last character in the provided row. + **/ + this.getScreenLastRowColumn = function(screenRow) { + var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE) + return this.documentToScreenColumn(pos.row, pos.column); + }; + this.getDocumentLastRowColumn = function(docRow, docColumn) { + var screenRow = this.documentToScreenRow(docRow, docColumn); + return this.getScreenLastRowColumn(screenRow); + }; + this.getDocumentLastRowColumnPosition = function(docRow, docColumn) { + var screenRow = this.documentToScreenRow(docRow, docColumn); + return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10); + }; + this.getRowSplitData = function(row) { + if (!this.$useWrapMode) { + return undefined; + } else { + return this.$wrapData[row]; + } + }; + this.getScreenTabSize = function(screenColumn) { + return this.$tabSize - screenColumn % this.$tabSize; + }; + this.screenToDocumentRow = function(screenRow, screenColumn) { + return this.screenToDocumentPosition(screenRow, screenColumn).row; + }; + this.screenToDocumentColumn = function(screenRow, screenColumn) { + return this.screenToDocumentPosition(screenRow, screenColumn).column; + }; + this.screenToDocumentPosition = function(screenRow, screenColumn) { + if (screenRow < 0) { + return { + row: 0, + column: 0 + } + } + + var line; + var docRow = 0; + var docColumn = 0; + var column; + var row = 0; + var rowLength = 0; + + var rowCache = this.$rowCache; + for (var i = 0; i < rowCache.length; i++) { + if (rowCache[i].screenRow < screenRow) { + row = rowCache[i].screenRow; + docRow = rowCache[i].docRow; + } + else { + break; + } + } + var doCache = !rowCache.length || i == rowCache.length; + + var maxRow = this.getLength() - 1; + var foldLine = this.getNextFoldLine(docRow); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (row <= screenRow) { + rowLength = this.getRowLength(docRow); + if (row + rowLength - 1 >= screenRow || docRow >= maxRow) { + break; + } else { + row += rowLength; + docRow++; + if (docRow > foldStart) { + docRow = foldLine.end.row+1; + foldLine = this.getNextFoldLine(docRow, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + } + if (doCache) { + rowCache.push({ + docRow: docRow, + screenRow: row + }); + } + } + + if (foldLine && foldLine.start.row <= docRow) { + line = this.getFoldDisplayLine(foldLine); + docRow = foldLine.start.row; + } else if (row + rowLength <= screenRow || docRow > maxRow) { + // clip at the end of the document + return { + row: maxRow, + column: this.getLine(maxRow).length + } + } else { + line = this.getLine(docRow); + foldLine = null; + } + + if (this.$useWrapMode) { + var splits = this.$wrapData[docRow]; + if (splits) { + column = splits[screenRow - row]; + if(screenRow > row && splits.length) { + docColumn = splits[screenRow - row - 1] || splits[splits.length - 1]; + line = line.substring(docColumn); + } + } + } + + docColumn += this.$getStringScreenWidth(line, screenColumn)[1]; + + // We remove one character at the end so that the docColumn + // position returned is not associated to the next row on the screen. + if (this.$useWrapMode && docColumn >= column) { + docColumn = column - 1; + } + + if (foldLine) { + return foldLine.idxToPosition(docColumn); + } + + return { + row: docRow, + column: docColumn + } + }; + this.documentToScreenPosition = function(docRow, docColumn) { + // Normalize the passed in arguments. + if (typeof docColumn === "undefined") + var pos = this.$clipPositionToDocument(docRow.row, docRow.column); + else + pos = this.$clipPositionToDocument(docRow, docColumn); + + docRow = pos.row; + docColumn = pos.column; + + var wrapData; + // Special case in wrapMode if the doc is at the end of the document. + if (this.$useWrapMode) { + wrapData = this.$wrapData; + if (docRow > wrapData.length - 1) { + return { + row: this.getScreenLength(), + column: wrapData.length == 0 + ? 0 + : (wrapData[wrapData.length - 1].length - 1) + }; + } + } + + var screenRow = 0; + var foldStartRow = null; + var fold = null; + + // Clamp the docRow position in case it's inside of a folded block. + fold = this.getFoldAt(docRow, docColumn, 1); + if (fold) { + docRow = fold.start.row; + docColumn = fold.start.column; + } + + var rowEnd, row = 0; + var rowCache = this.$rowCache; + + for (var i = 0; i < rowCache.length; i++) { + if (rowCache[i].docRow < docRow) { + screenRow = rowCache[i].screenRow; + row = rowCache[i].docRow; + } else { + break; + } + } + var doCache = !rowCache.length || i == rowCache.length; + + var foldLine = this.getNextFoldLine(row); + var foldStart = foldLine ?foldLine.start.row :Infinity; + + while (row < docRow) { + if (row >= foldStart) { + rowEnd = foldLine.end.row + 1; + if (rowEnd > docRow) + break; + foldLine = this.getNextFoldLine(rowEnd, foldLine); + foldStart = foldLine ?foldLine.start.row :Infinity; + } + else { + rowEnd = row + 1; + } + + screenRow += this.getRowLength(row); + row = rowEnd; + + if (doCache) { + rowCache.push({ + docRow: row, + screenRow: screenRow + }); + } + } + + // Calculate the text line that is displayed in docRow on the screen. + var textLine = ""; + // Check if the final row we want to reach is inside of a fold. + if (foldLine && row >= foldStart) { + textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn); + foldStartRow = foldLine.start.row; + } else { + textLine = this.getLine(docRow).substring(0, docColumn); + foldStartRow = docRow; + } + // Clamp textLine if in wrapMode. + if (this.$useWrapMode) { + var wrapRow = wrapData[foldStartRow]; + var screenRowOffset = 0; + while (textLine.length >= wrapRow[screenRowOffset]) { + screenRow ++; + screenRowOffset++; + } + textLine = textLine.substring( + wrapRow[screenRowOffset - 1] || 0, textLine.length + ); + } + + return { + row: screenRow, + column: this.$getStringScreenWidth(textLine)[0] + }; + }; + this.documentToScreenColumn = function(row, docColumn) { + return this.documentToScreenPosition(row, docColumn).column; + }; + this.documentToScreenRow = function(docRow, docColumn) { + return this.documentToScreenPosition(docRow, docColumn).row; + }; + this.getScreenLength = function() { + var screenRows = 0; + var fold = null; + if (!this.$useWrapMode) { + screenRows = this.getLength(); + + // Remove the folded lines again. + var foldData = this.$foldData; + for (var i = 0; i < foldData.length; i++) { + fold = foldData[i]; + screenRows -= fold.end.row - fold.start.row; + } + } else { + var lastRow = this.$wrapData.length; + var row = 0, i = 0; + var fold = this.$foldData[i++]; + var foldStart = fold ? fold.start.row :Infinity; + + while (row < lastRow) { + screenRows += this.$wrapData[row].length + 1; + row ++; + if (row > foldStart) { + row = fold.end.row+1; + fold = this.$foldData[i++]; + foldStart = fold ?fold.start.row :Infinity; + } + } + } + + return screenRows; + } + + // For every keystroke this gets called once per char in the whole doc!! + // Wouldn't hurt to make it a bit faster for c >= 0x1100 + function isFullWidth(c) { + if (c < 0x1100) + return false; + return c >= 0x1100 && c <= 0x115F || + c >= 0x11A3 && c <= 0x11A7 || + c >= 0x11FA && c <= 0x11FF || + c >= 0x2329 && c <= 0x232A || + c >= 0x2E80 && c <= 0x2E99 || + c >= 0x2E9B && c <= 0x2EF3 || + c >= 0x2F00 && c <= 0x2FD5 || + c >= 0x2FF0 && c <= 0x2FFB || + c >= 0x3000 && c <= 0x303E || + c >= 0x3041 && c <= 0x3096 || + c >= 0x3099 && c <= 0x30FF || + c >= 0x3105 && c <= 0x312D || + c >= 0x3131 && c <= 0x318E || + c >= 0x3190 && c <= 0x31BA || + c >= 0x31C0 && c <= 0x31E3 || + c >= 0x31F0 && c <= 0x321E || + c >= 0x3220 && c <= 0x3247 || + c >= 0x3250 && c <= 0x32FE || + c >= 0x3300 && c <= 0x4DBF || + c >= 0x4E00 && c <= 0xA48C || + c >= 0xA490 && c <= 0xA4C6 || + c >= 0xA960 && c <= 0xA97C || + c >= 0xAC00 && c <= 0xD7A3 || + c >= 0xD7B0 && c <= 0xD7C6 || + c >= 0xD7CB && c <= 0xD7FB || + c >= 0xF900 && c <= 0xFAFF || + c >= 0xFE10 && c <= 0xFE19 || + c >= 0xFE30 && c <= 0xFE52 || + c >= 0xFE54 && c <= 0xFE66 || + c >= 0xFE68 && c <= 0xFE6B || + c >= 0xFF01 && c <= 0xFF60 || + c >= 0xFFE0 && c <= 0xFFE6; + }; + +}).call(EditSession.prototype); + +require("./edit_session/folding").Folding.call(EditSession.prototype); +require("./edit_session/bracket_match").BracketMatch.call(EditSession.prototype); + +exports.EditSession = EditSession; +}); + +define('ace/config', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { +"no use strict"; + +var lang = require("./lib/lang"); + +var global = (function() { + return this; +})(); + +var options = { + packaged: false, + workerPath: "", + modePath: "", + themePath: "", + suffix: ".js" +}; + +exports.get = function(key) { + if (!options.hasOwnProperty(key)) + throw new Error("Unknown confik key: " + key); + + return options[key]; +}; + +exports.set = function(key, value) { + if (!options.hasOwnProperty(key)) + throw new Error("Unknown confik key: " + key); + + options[key] = value; +}; + +exports.all = function() { + return lang.copyObject(options); +}; + +exports.init = function() { + options.packaged = require.packaged || module.packaged || (global.define && define.packaged); + + if (!global.document) + return ""; + + var scriptOptions = {}; + var scriptUrl = ""; + + var scripts = document.getElementsByTagName("script"); + for (var i=0; i lead.row || (anchor.row == lead.row && anchor.column > lead.column)); + }; + this.getRange = function() { + var anchor = this.anchor; + var lead = this.lead; + + if (this.isEmpty()) + return Range.fromPoints(lead, lead); + + if (this.isBackwards()) { + return Range.fromPoints(lead, anchor); + } + else { + return Range.fromPoints(anchor, lead); + } + }; + this.clearSelection = function() { + if (!this.$isEmpty) { + this.$isEmpty = true; + this._emit("changeSelection"); + } + }; + this.selectAll = function() { + var lastRow = this.doc.getLength() - 1; + this.setSelectionAnchor(lastRow, this.doc.getLine(lastRow).length); + this.moveCursorTo(0, 0); + }; + this.setSelectionRange = function(range, reverse) { + if (reverse) { + this.setSelectionAnchor(range.end.row, range.end.column); + this.selectTo(range.start.row, range.start.column); + } else { + this.setSelectionAnchor(range.start.row, range.start.column); + this.selectTo(range.end.row, range.end.column); + } + this.$desiredColumn = null; + }; + + this.$moveSelection = function(mover) { + var lead = this.lead; + if (this.$isEmpty) + this.setSelectionAnchor(lead.row, lead.column); + + mover.call(this); + }; + this.selectTo = function(row, column) { + this.$moveSelection(function() { + this.moveCursorTo(row, column); + }); + }; + this.selectToPosition = function(pos) { + this.$moveSelection(function() { + this.moveCursorToPosition(pos); + }); + }; + this.selectUp = function() { + this.$moveSelection(this.moveCursorUp); + }; + this.selectDown = function() { + this.$moveSelection(this.moveCursorDown); + }; + this.selectRight = function() { + this.$moveSelection(this.moveCursorRight); + }; + this.selectLeft = function() { + this.$moveSelection(this.moveCursorLeft); + }; + this.selectLineStart = function() { + this.$moveSelection(this.moveCursorLineStart); + }; + this.selectLineEnd = function() { + this.$moveSelection(this.moveCursorLineEnd); + }; + this.selectFileEnd = function() { + this.$moveSelection(this.moveCursorFileEnd); + }; + this.selectFileStart = function() { + this.$moveSelection(this.moveCursorFileStart); + }; + this.selectWordRight = function() { + this.$moveSelection(this.moveCursorWordRight); + }; + this.selectWordLeft = function() { + this.$moveSelection(this.moveCursorWordLeft); + }; + this.getWordRange = function(row, column) { + if (typeof column == "undefined") { + var cursor = row || this.lead; + row = cursor.row; + column = cursor.column; + } + return this.session.getWordRange(row, column); + }; + + this.selectWord = function() { + this.setSelectionRange(this.getWordRange()); + }; + this.selectAWord = function() { + var cursor = this.getCursor(); + var range = this.session.getAWordRange(cursor.row, cursor.column); + this.setSelectionRange(range); + }; + + this.getLineRange = function(row, excludeLastChar) { + var rowStart = typeof row == "number" ? row : this.lead.row; + var rowEnd; + + var foldLine = this.session.getFoldLine(rowStart); + if (foldLine) { + rowStart = foldLine.start.row; + rowEnd = foldLine.end.row; + } else { + rowEnd = rowStart; + } + if (excludeLastChar) + return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length); + else + return new Range(rowStart, 0, rowEnd + 1, 0); + }; + this.selectLine = function() { + this.setSelectionRange(this.getLineRange()); + }; + this.moveCursorUp = function() { + this.moveCursorBy(-1, 0); + }; + this.moveCursorDown = function() { + this.moveCursorBy(1, 0); + }; + this.moveCursorLeft = function() { + var cursor = this.lead.getPosition(), + fold; + + if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) { + this.moveCursorTo(fold.start.row, fold.start.column); + } else if (cursor.column == 0) { + // cursor is a line (start + if (cursor.row > 0) { + this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length); + } + } + else { + var tabSize = this.session.getTabSize(); + if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(" ").length-1 == tabSize) + this.moveCursorBy(0, -tabSize); + else + this.moveCursorBy(0, -1); + } + }; + this.moveCursorRight = function() { + var cursor = this.lead.getPosition(), + fold; + if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) { + this.moveCursorTo(fold.end.row, fold.end.column); + } + else if (this.lead.column == this.doc.getLine(this.lead.row).length) { + if (this.lead.row < this.doc.getLength() - 1) { + this.moveCursorTo(this.lead.row + 1, 0); + } + } + else { + var tabSize = this.session.getTabSize(); + var cursor = this.lead; + if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(" ").length-1 == tabSize) + this.moveCursorBy(0, tabSize); + else + this.moveCursorBy(0, 1); + } + }; + this.moveCursorLineStart = function() { + var row = this.lead.row; + var column = this.lead.column; + var screenRow = this.session.documentToScreenRow(row, column); + + // Determ the doc-position of the first character at the screen line. + var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0); + + // Determ the line + var beforeCursor = this.session.getDisplayLine( + row, null, + firstColumnPosition.row, firstColumnPosition.column + ); + + var leadingSpace = beforeCursor.match(/^\s*/); + if (leadingSpace[0].length == column) { + this.moveCursorTo( + firstColumnPosition.row, firstColumnPosition.column + ); + } + else { + this.moveCursorTo( + firstColumnPosition.row, + firstColumnPosition.column + leadingSpace[0].length + ); + } + }; + this.moveCursorLineEnd = function() { + var lead = this.lead; + var lastRowColumnPosition = + this.session.getDocumentLastRowColumnPosition(lead.row, lead.column); + this.moveCursorTo( + lastRowColumnPosition.row, + lastRowColumnPosition.column + ); + }; + this.moveCursorFileEnd = function() { + var row = this.doc.getLength() - 1; + var column = this.doc.getLine(row).length; + this.moveCursorTo(row, column); + }; + this.moveCursorFileStart = function() { + this.moveCursorTo(0, 0); + }; + this.moveCursorLongWordRight = function() { + var row = this.lead.row; + var column = this.lead.column; + var line = this.doc.getLine(row); + var rightOfCursor = line.substring(column); + + var match; + this.session.nonTokenRe.lastIndex = 0; + this.session.tokenRe.lastIndex = 0; + + // skip folds + var fold = this.session.getFoldAt(row, column, 1); + if (fold) { + this.moveCursorTo(fold.end.row, fold.end.column); + return; + } + + // first skip space + if (match = this.session.nonTokenRe.exec(rightOfCursor)) { + column += this.session.nonTokenRe.lastIndex; + this.session.nonTokenRe.lastIndex = 0; + rightOfCursor = line.substring(column); + } + + // if at line end proceed with next line + if (column >= line.length) { + this.moveCursorTo(row, line.length); + this.moveCursorRight(); + if (row < this.doc.getLength() - 1) + this.moveCursorWordRight(); + return; + } + + // advance to the end of the next token + if (match = this.session.tokenRe.exec(rightOfCursor)) { + column += this.session.tokenRe.lastIndex; + this.session.tokenRe.lastIndex = 0; + } + + this.moveCursorTo(row, column); + }; + this.moveCursorLongWordLeft = function() { + var row = this.lead.row; + var column = this.lead.column; + + // skip folds + var fold; + if (fold = this.session.getFoldAt(row, column, -1)) { + this.moveCursorTo(fold.start.row, fold.start.column); + return; + } + + var str = this.session.getFoldStringAt(row, column, -1); + if (str == null) { + str = this.doc.getLine(row).substring(0, column) + } + + var leftOfCursor = lang.stringReverse(str); + var match; + this.session.nonTokenRe.lastIndex = 0; + this.session.tokenRe.lastIndex = 0; + + // skip whitespace + if (match = this.session.nonTokenRe.exec(leftOfCursor)) { + column -= this.session.nonTokenRe.lastIndex; + leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex); + this.session.nonTokenRe.lastIndex = 0; + } + + // if at begin of the line proceed in line above + if (column <= 0) { + this.moveCursorTo(row, 0); + this.moveCursorLeft(); + if (row > 0) + this.moveCursorWordLeft(); + return; + } + + // move to the begin of the word + if (match = this.session.tokenRe.exec(leftOfCursor)) { + column -= this.session.tokenRe.lastIndex; + this.session.tokenRe.lastIndex = 0; + } + + this.moveCursorTo(row, column); + }; + + this.$shortWordEndIndex = function(rightOfCursor) { + var match, index = 0, ch; + var whitespaceRe = /\s/; + var tokenRe = this.session.tokenRe; + + tokenRe.lastIndex = 0; + if (match = this.session.tokenRe.exec(rightOfCursor)) { + index = this.session.tokenRe.lastIndex; + } else { + while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch)) + index ++; + + if (index <= 1) { + tokenRe.lastIndex = 0; + while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) { + tokenRe.lastIndex = 0; + index ++; + if (whitespaceRe.test(ch)) { + if (index > 2) { + index-- + break; + } else { + while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch)) + index ++; + if (index > 2) + break + } + } + } + } + } + tokenRe.lastIndex = 0; + + return index; + }; + + this.moveCursorShortWordRight = function() { + var row = this.lead.row; + var column = this.lead.column; + var line = this.doc.getLine(row); + var rightOfCursor = line.substring(column); + + var fold = this.session.getFoldAt(row, column, 1); + if (fold) + return this.moveCursorTo(fold.end.row, fold.end.column); + + if (column == line.length) + return this.moveCursorRight(); + + var index = this.$shortWordEndIndex(rightOfCursor); + + this.moveCursorTo(row, column + index); + }; + + this.moveCursorShortWordLeft = function() { + var row = this.lead.row; + var column = this.lead.column; + + var fold; + if (fold = this.session.getFoldAt(row, column, -1)) + return this.moveCursorTo(fold.start.row, fold.start.column); + + if (column == 0) + return this.moveCursorLeft(); + + var str = this.session.getLine(row).substring(0, column); + var leftOfCursor = lang.stringReverse(str); + var index = this.$shortWordEndIndex(leftOfCursor); + + return this.moveCursorTo(row, column - index); + }; + + this.moveCursorWordRight = function() { + if (this.session.$selectLongWords) + this.moveCursorLongWordRight(); + else + this.moveCursorShortWordRight(); + }; + + this.moveCursorWordLeft = function() { + if (this.session.$selectLongWords) + this.moveCursorLongWordLeft(); + else + this.moveCursorShortWordLeft(); + }; + this.moveCursorBy = function(rows, chars) { + var screenPos = this.session.documentToScreenPosition( + this.lead.row, + this.lead.column + ); + + if (chars === 0) { + if (this.$desiredColumn) + screenPos.column = this.$desiredColumn; + else + this.$desiredColumn = screenPos.column; + } + + var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column); + + // move the cursor and update the desired column + this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0); + }; + this.moveCursorToPosition = function(position) { + this.moveCursorTo(position.row, position.column); + }; + this.moveCursorTo = function(row, column, keepDesiredColumn) { + // Ensure the row/column is not inside of a fold. + var fold = this.session.getFoldAt(row, column, 1); + if (fold) { + row = fold.start.row; + column = fold.start.column; + } + + this.$keepDesiredColumnOnChange = true; + this.lead.setPosition(row, column); + this.$keepDesiredColumnOnChange = false; + + if (!keepDesiredColumn) + this.$desiredColumn = null; + }; + this.moveCursorToScreen = function(row, column, keepDesiredColumn) { + var pos = this.session.screenToDocumentPosition(row, column); + this.moveCursorTo(pos.row, pos.column, keepDesiredColumn); + }; + + // remove listeners from document + this.detach = function() { + this.lead.detach(); + this.anchor.detach(); + this.session = this.doc = null; + } + + this.fromOrientedRange = function(range) { + this.setSelectionRange(range, range.cursor == range.start); + this.$desiredColumn = range.desiredColumn || this.$desiredColumn; + } + + this.toOrientedRange = function(range) { + var r = this.getRange(); + if (range) { + range.start.column = r.start.column; + range.start.row = r.start.row; + range.end.column = r.end.column; + range.end.row = r.end.row; + } else { + range = r; + } + + range.cursor = this.isBackwards() ? range.start : range.end; + range.desiredColumn = this.$desiredColumn; + return range; + } + +}).call(Selection.prototype); + +exports.Selection = Selection; +}); + +define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { + + +/** + * class Range + * + * This object is used in various places to indicate a region within the editor. To better visualize how this works, imagine a rectangle. Each quadrant of the rectangle is analogus to a range, as ranges contain a starting row and starting column, and an ending row, and ending column. + * + **/ + +/** + * new Range(startRow, startColumn, endRow, endColumn) + * - startRow (Number): The starting row + * - startColumn (Number): The starting column + * - endRow (Number): The ending row + * - endColumn (Number): The ending column + * + * Creates a new `Range` object with the given starting and ending row and column points. + * + **/ +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + /** + * Range.isEqual(range) -> Boolean + * - range (Range): A range to check against + * + * Returns `true` if and only if the starting row and column, and ending tow and column, are equivalent to those given by `range`. + * + **/ + this.isEqual = function(range) { + return this.start.row == range.start.row && + this.end.row == range.end.row && + this.start.column == range.start.column && + this.end.column == range.end.column + }; + + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + } + + /** related to: Range.compare + * Range.comparePoint(p) -> Number + * - p (Range): A point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1
+ * + * Checks the row and column points of `p` with the row and column points of the calling range. + * + * + * + **/ + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + } + + /** related to: Range.comparePoint + * Range.containsRange(range) -> Boolean + * - range (Range): A range to compare with + * + * Checks the start and end points of `range` and compares them to the calling range. Returns `true` if the `range` is contained within the caller's range. + * + **/ + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + } + + /** + * Range.intersects(range) -> Boolean + * - range (Range): A range to compare with + * + * Returns `true` if passed in `range` intersects with the one calling this method. + * + **/ + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + } + + /** + * Range.isEnd(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the caller's ending row point is the same as `row`, and if the caller's ending column is the same as `column`. + * + **/ + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + } + + /** + * Range.isStart(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the caller's starting row point is the same as `row`, and if the caller's starting column is the same as `column`. + * + **/ + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + } + + /** + * Range.setStart(row, column) + * - row (Number): A row point to set + * - column (Number): A column point to set + * + * Sets the starting row and column for the range. + * + **/ + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + } + + /** + * Range.setEnd(row, column) + * - row (Number): A row point to set + * - column (Number): A column point to set + * + * Sets the starting row and column for the range. + * + **/ + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + } + + /** related to: Range.compare + * Range.inside(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range. + * + **/ + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** related to: Range.compare + * Range.insideStart(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range's starting points. + * + **/ + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** related to: Range.compare + * Range.insideEnd(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range's ending points. + * + **/ + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** + * Range.compare(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + **/ + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + }; + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.compareEnd(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range, or if `isEnd` is `true.
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + **/ + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.compareInside(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `1` if the ending row of the calling range is equal to `row`, and the ending column of the calling range is equal to `column`
+ * * `-1` if the starting row of the calling range is equal to `row`, and the starting column of the calling range is equal to `column`
+ *
+ * Otherwise, it returns the value after calling [[Range.compare `compare()`]]. + * + * Checks the row and column points with the row and column points of the calling range. + * + * + * + **/ + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.clipRows(firstRow, lastRow) -> Range + * - firstRow (Number): The starting row + * - lastRow (Number): The ending row + * + * Returns the part of the current `Range` that occurs within the boundaries of `firstRow` and `lastRow` as a new `Range` object. + * + **/ + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) { + var end = { + row: lastRow+1, + column: 0 + }; + } + + if (this.start.row > lastRow) { + var start = { + row: lastRow+1, + column: 0 + }; + } + + if (this.start.row < firstRow) { + var start = { + row: firstRow, + column: 0 + }; + } + + if (this.end.row < firstRow) { + var end = { + row: firstRow, + column: 0 + }; + } + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row == this.end.row && this.start.column == this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) + else + return new Range(this.start.row, 0, this.end.row, 0) + }; + this.toScreenRange = function(session) { + var screenPosStart = + session.documentToScreenPosition(this.start); + var screenPosEnd = + session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; + +exports.Range = Range; +}); + +define('ace/mode/text', ['require', 'exports', 'module' , 'ace/tokenizer', 'ace/mode/text_highlight_rules', 'ace/mode/behaviour', 'ace/unicode'], function(require, exports, module) { + + +var Tokenizer = require("../tokenizer").Tokenizer; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var Behaviour = require("./behaviour").Behaviour; +var unicode = require("../unicode"); + +var Mode = function() { + this.$tokenizer = new Tokenizer(new TextHighlightRules().getRules()); + this.$behaviour = new Behaviour(); +}; + +(function() { + + this.tokenRe = new RegExp("^[" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "\\$_]+", "g" + ); + + this.nonTokenRe = new RegExp("^(?:[^" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "\\$_]|\s])+", "g" + ); + + this.getTokenizer = function() { + return this.$tokenizer; + }; + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + }; + + this.getNextLineIndent = function(state, line, tab) { + return ""; + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.autoOutdent = function(state, doc, row) { + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + + this.createWorker = function(session) { + return null; + }; + + this.highlightSelection = function(editor) { + var session = editor.session; + if (!session.$selectionOccurrences) + session.$selectionOccurrences = []; + + if (session.$selectionOccurrences.length) + this.clearSelectionHighlight(editor); + + var selection = editor.getSelectionRange(); + if (selection.isEmpty() || selection.isMultiLine()) + return; + + var startOuter = selection.start.column - 1; + var endOuter = selection.end.column + 1; + var line = session.getLine(selection.start.row); + var lineCols = line.length; + var needle = line.substring(Math.max(startOuter, 0), + Math.min(endOuter, lineCols)); + + // Make sure the outer characters are not part of the word. + if ((startOuter >= 0 && /^[\w\d]/.test(needle)) || + (endOuter <= lineCols && /[\w\d]$/.test(needle))) + return; + + needle = line.substring(selection.start.column, selection.end.column); + if (!/^[\w\d]+$/.test(needle)) + return; + + var cursor = editor.getCursorPosition(); + + var newOptions = { + wrap: true, + wholeWord: true, + caseSensitive: true, + needle: needle + }; + + var currentOptions = editor.$search.getOptions(); + editor.$search.set(newOptions); + + var ranges = editor.$search.findAll(session); + ranges.forEach(function(range) { + if (!range.contains(cursor.row, cursor.column)) { + var marker = session.addMarker(range, "ace_selected_word", "text"); + session.$selectionOccurrences.push(marker); + } + }); + + editor.$search.set(currentOptions); + }; + + this.clearSelectionHighlight = function(editor) { + if (!editor.session.$selectionOccurrences) + return; + + editor.session.$selectionOccurrences.forEach(function(marker) { + editor.session.removeMarker(marker); + }); + + editor.session.$selectionOccurrences = []; + }; + + this.createModeDelegates = function (mapping) { + if (!this.$embeds) { + return; + } + this.$modes = {}; + for (var i = 0; i < this.$embeds.length; i++) { + if (mapping[this.$embeds[i]]) { + this.$modes[this.$embeds[i]] = new mapping[this.$embeds[i]](); + } + } + + var delegations = ['toggleCommentLines', 'getNextLineIndent', 'checkOutdent', 'autoOutdent', 'transformAction']; + + for (var i = 0; i < delegations.length; i++) { + (function(scope) { + var functionName = delegations[i]; + var defaultHandler = scope[functionName]; + scope[delegations[i]] = function() { + return this.$delegator(functionName, arguments, defaultHandler); + } + } (this)); + } + } + + this.$delegator = function(method, args, defaultHandler) { + var state = args[0]; + + for (var i = 0; i < this.$embeds.length; i++) { + if (!this.$modes[this.$embeds[i]]) continue; + + var split = state.split(this.$embeds[i]); + if (!split[0] && split[1]) { + args[0] = split[1]; + var mode = this.$modes[this.$embeds[i]]; + return mode[method].apply(mode, args); + } + } + var ret = defaultHandler.apply(this, args); + return defaultHandler ? ret : undefined; + }; + + this.transformAction = function(state, action, editor, session, param) { + if (this.$behaviour) { + var behaviours = this.$behaviour.getBehaviours(); + for (var key in behaviours) { + if (behaviours[key][action]) { + var ret = behaviours[key][action].apply(this, arguments); + if (ret) { + return ret; + } + } + } + } + } + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/tokenizer', ['require', 'exports', 'module' ], function(require, exports, module) { + + +/** + * class Tokenizer + * + * This class takes a set of highlighting rules, and creates a tokenizer out of them. For more information, see [the wiki on extending highlighters](https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode#wiki-extendingTheHighlighter). + * + **/ + +/** + * new Tokenizer(rules, flag) + * - rules (Object): The highlighting rules + * - flag (String): Any additional regular expression flags to pass (like "i" for case insensitive) + * + * Constructs a new tokenizer based on the given rules and flags. + * + **/ +var Tokenizer = function(rules, flag) { + flag = flag ? "g" + flag : "g"; + this.rules = rules; + + this.regExps = {}; + this.matchMappings = {}; + for ( var key in this.rules) { + var rule = this.rules[key]; + var state = rule; + var ruleRegExps = []; + var matchTotal = 0; + var mapping = this.matchMappings[key] = {}; + + for ( var i = 0; i < state.length; i++) { + + if (state[i].regex instanceof RegExp) + state[i].regex = state[i].regex.toString().slice(1, -1); + + // Count number of matching groups. 2 extra groups from the full match + // And the catch-all on the end (used to force a match); + var matchcount = new RegExp("(?:(" + state[i].regex + ")|(.))").exec("a").length - 2; + + // Replace any backreferences and offset appropriately. + var adjustedregex = state[i].regex.replace(/\\([0-9]+)/g, function (match, digit) { + return "\\" + (parseInt(digit, 10) + matchTotal + 1); + }); + + if (matchcount > 1 && state[i].token.length !== matchcount-1) + throw new Error("Matching groups and length of the token array don't match in rule #" + i + " of state " + key); + + mapping[matchTotal] = { + rule: i, + len: matchcount + }; + matchTotal += matchcount; + + ruleRegExps.push(adjustedregex); + } + + this.regExps[key] = new RegExp("(?:(" + ruleRegExps.join(")|(") + ")|(.))", flag); + } +}; + +(function() { + + /** + * Tokenizer.getLineTokens() -> Object + * + * Returns an object containing two properties: `tokens`, which contains all the tokens; and `state`, the current state. + **/ + this.getLineTokens = function(line, startState) { + var currentState = startState; + var state = this.rules[currentState]; + var mapping = this.matchMappings[currentState]; + var re = this.regExps[currentState]; + re.lastIndex = 0; + + var match, tokens = []; + + var lastIndex = 0; + + var token = { + type: null, + value: "" + }; + + while (match = re.exec(line)) { + var type = "text"; + var rule = null; + var value = [match[0]]; + + for (var i = 0; i < match.length-2; i++) { + if (match[i + 1] === undefined) + continue; + + rule = state[mapping[i].rule]; + + if (mapping[i].len > 1) + value = match.slice(i+2, i+1+mapping[i].len); + + // compute token type + if (typeof rule.token == "function") + type = rule.token.apply(this, value); + else + type = rule.token; + + if (rule.next) { + currentState = rule.next; + state = this.rules[currentState]; + mapping = this.matchMappings[currentState]; + lastIndex = re.lastIndex; + + re = this.regExps[currentState]; + re.lastIndex = lastIndex; + } + break; + } + + if (value[0]) { + if (typeof type == "string") { + value = [value.join("")]; + type = [type]; + } + for (var i = 0; i < value.length; i++) { + if (!value[i]) + continue; + + if ((!rule || rule.merge || type[i] === "text") && token.type === type[i]) { + token.value += value[i]; + } else { + if (token.type) + tokens.push(token); + + token = { + type: type[i], + value: value[i] + }; + } + } + } + + if (lastIndex == line.length) + break; + + lastIndex = re.lastIndex; + } + + if (token.type) + tokens.push(token); + + return { + tokens : tokens, + state : currentState + }; + }; + +}).call(Tokenizer.prototype); + +exports.Tokenizer = Tokenizer; +}); + +define('ace/mode/text_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var TextHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [{ + token : "empty_line", + regex : '^$' + }, { + token : "text", + regex : ".+" + }] + }; +}; + +(function() { + + this.addRules = function(rules, prefix) { + for (var key in rules) { + var state = rules[key]; + for (var i=0; i +Uses the Unicode 5.2 character database + +This package for the XRegExp Unicode plugin enables the following Unicode categories (aka properties): + +L - Letter (the top-level Letter category is included in the Unicode plugin base script) + Ll - Lowercase letter + Lu - Uppercase letter + Lt - Titlecase letter + Lm - Modifier letter + Lo - Letter without case +M - Mark + Mn - Non-spacing mark + Mc - Spacing combining mark + Me - Enclosing mark +N - Number + Nd - Decimal digit + Nl - Letter number + No - Other number +P - Punctuation + Pd - Dash punctuation + Ps - Open punctuation + Pe - Close punctuation + Pi - Initial punctuation + Pf - Final punctuation + Pc - Connector punctuation + Po - Other punctuation +S - Symbol + Sm - Math symbol + Sc - Currency symbol + Sk - Modifier symbol + So - Other symbol +Z - Separator + Zs - Space separator + Zl - Line separator + Zp - Paragraph separator +C - Other + Cc - Control + Cf - Format + Co - Private use + Cs - Surrogate + Cn - Unassigned + +Example usage: + + \p{N} + \p{Cn} +*/ + + +// will be populated by addUnicodePackage +exports.packages = {}; + +addUnicodePackage({ + L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC", + Ll: "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A", + Lu: "0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A", + Lt: "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC", + Lm: "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F", + Lo: "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC", + M: "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26", + Mn: "0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26", + Mc: "0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC", + Me: "0488048906DE20DD-20E020E2-20E4A670-A672", + N: "0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19", + Nd: "0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19", + Nl: "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF", + No: "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835", + P: "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65", + Pd: "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D", + Ps: "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62", + Pe: "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63", + Pi: "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20", + Pf: "00BB2019201D203A2E032E052E0A2E0D2E1D2E21", + Pc: "005F203F20402054FE33FE34FE4D-FE4FFF3F", + Po: "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65", + S: "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD", + Sm: "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC", + Sc: "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6", + Sk: "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3", + So: "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD", + Z: "002000A01680180E2000-200A20282029202F205F3000", + Zs: "002000A01680180E2000-200A202F205F3000", + Zl: "2028", + Zp: "2029", + C: "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF", + Cc: "0000-001F007F-009F", + Cf: "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB", + Co: "E000-F8FF", + Cs: "D800-DFFF", + Cn: "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF" +}); + +function addUnicodePackage (pack) { + var codePoint = /\w{4}/g; + for (var name in pack) + exports.packages[name] = pack[name].replace(codePoint, "\\u$&"); +}; + +}); + +define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { + + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + + /** + * new Document([text]) + * - text (String | Array): The starting text + * + * Creates a new `Document`. If `text` is included, the `Document` contains those strings; otherwise, it's empty. + * + **/ +var Document = function(text) { + this.$lines = []; + + if (Array.isArray(text)) { + this.insertLines(0, text); + } + // There has to be one line at least in the document. If you pass an empty + // string to the insert function, nothing will happen. Workaround. + else if (text.length == 0) { + this.$lines = [""]; + } else { + this.insert({row: 0, column:0}, text); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength(); + this.remove(new Range(0, 0, len, this.getLine(len-1).length)); + this.insert({row: 0, column:0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + + // check for IE split bug + if ("aaa".split(/a/).length == 0) + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + } + else + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + if (match) { + this.$autoNewLine = match[1]; + } else { + this.$autoNewLine = "\n"; + } + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + + case "unix": + return "\n"; + + case "auto": + return this.$autoNewLine; + } + }; + + this.$autoNewLine = "\n"; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + if (range.start.row == range.end.row) { + return this.$lines[range.start.row].substring(range.start.column, + range.end.column); + } + else { + var lines = this.getLines(range.start.row+1, range.end.row-1); + lines.unshift((this.$lines[range.start.row] || "").substring(range.start.column)); + lines.push((this.$lines[range.end.row] || "").substring(0, range.end.column)); + return lines.join(this.getNewLineCharacter()); + } + }; + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length-1).length; + } + return position; + }; + this.insert = function(position, text) { + if (!text || text.length === 0) + return position; + + position = this.$clipPosition(position); + + // only detect new lines if the document has no line break yet + if (this.getLength() <= 1) + this.$detectNewLine(text); + + var lines = this.$split(text); + var firstLine = lines.splice(0, 1)[0]; + var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; + + position = this.insertInLine(position, firstLine); + if (lastLine !== null) { + position = this.insertNewLine(position); // terminate first line + position = this.insertLines(position.row, lines); + position = this.insertInLine(position, lastLine || ""); + } + return position; + }; + this.insertLines = function(row, lines) { + if (lines.length == 0) + return {row: row, column: 0}; + + var args = [row, 0]; + args.push.apply(args, lines); + this.$lines.splice.apply(this.$lines, args); + + var range = new Range(row, 0, row + lines.length, 0); + var delta = { + action: "insertLines", + range: range, + lines: lines + }; + this._emit("change", { data: delta }); + return range.end; + }; + this.insertNewLine = function(position) { + position = this.$clipPosition(position); + var line = this.$lines[position.row] || ""; + + this.$lines[position.row] = line.substring(0, position.column); + this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); + + var end = { + row : position.row + 1, + column : 0 + }; + + var delta = { + action: "insertText", + range: Range.fromPoints(position, end), + text: this.getNewLineCharacter() + }; + this._emit("change", { data: delta }); + + return end; + }; + this.insertInLine = function(position, text) { + if (text.length == 0) + return position; + + var line = this.$lines[position.row] || ""; + + this.$lines[position.row] = line.substring(0, position.column) + text + + line.substring(position.column); + + var end = { + row : position.row, + column : position.column + text.length + }; + + var delta = { + action: "insertText", + range: Range.fromPoints(position, end), + text: text + }; + this._emit("change", { data: delta }); + + return end; + }; + this.remove = function(range) { + // clip to document + range.start = this.$clipPosition(range.start); + range.end = this.$clipPosition(range.end); + + if (range.isEmpty()) + return range.start; + + var firstRow = range.start.row; + var lastRow = range.end.row; + + if (range.isMultiLine()) { + var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; + var lastFullRow = lastRow - 1; + + if (range.end.column > 0) + this.removeInLine(lastRow, 0, range.end.column); + + if (lastFullRow >= firstFullRow) + this.removeLines(firstFullRow, lastFullRow); + + if (firstFullRow != firstRow) { + this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); + this.removeNewLine(range.start.row); + } + } + else { + this.removeInLine(firstRow, range.start.column, range.end.column); + } + return range.start; + }; + this.removeInLine = function(row, startColumn, endColumn) { + if (startColumn == endColumn) + return; + + var range = new Range(row, startColumn, row, endColumn); + var line = this.getLine(row); + var removed = line.substring(startColumn, endColumn); + var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); + this.$lines.splice(row, 1, newLine); + + var delta = { + action: "removeText", + range: range, + text: removed + }; + this._emit("change", { data: delta }); + return range.start; + }; + this.removeLines = function(firstRow, lastRow) { + var range = new Range(firstRow, 0, lastRow + 1, 0); + var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); + + var delta = { + action: "removeLines", + range: range, + nl: this.getNewLineCharacter(), + lines: removed + }; + this._emit("change", { data: delta }); + return removed; + }; + this.removeNewLine = function(row) { + var firstLine = this.getLine(row); + var secondLine = this.getLine(row+1); + + var range = new Range(row, firstLine.length, row+1, 0); + var line = firstLine + secondLine; + + this.$lines.splice(row, 2, line); + + var delta = { + action: "removeText", + range: range, + text: this.getNewLineCharacter() + }; + this._emit("change", { data: delta }); + }; + this.replace = function(range, text) { + if (text.length == 0 && range.isEmpty()) + return range.start; + + // Shortcut: If the text we want to insert is the same as it is already + // in the document, we don't have to replace anything. + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + if (text) { + var end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + var delta = deltas[i]; + + var range = Range.fromPoints(delta.range.start, delta.range.end); + + if (delta.action == "insertLines") + this.removeLines(range.start.row, range.end.row - 1); + else if (delta.action == "insertText") + this.remove(range); + else if (delta.action == "removeLines") + this.insertLines(range.start.row, delta.lines); + else if (delta.action == "removeText") + this.insert(range.start, delta.text); + } + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +/** + * new Anchor(doc, row, column) + * - doc (Document): The document to associate with the anchor + * - row (Number): The starting row position + * - column (Number): The starting column position + * + * Creates a new `Anchor` and associates it with a document. + * + **/ + +var Anchor = exports.Anchor = function(doc, row, column) { + this.document = doc; + + if (typeof column == "undefined") + this.setPosition(row.row, row.column); + else + this.setPosition(row, column); + + this.$onChange = this.onChange.bind(this); + doc.on("change", this.$onChange); +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.getPosition = function() { + return this.$clipPositionToDocument(this.row, this.column); + }; + + this.getDocument = function() { + return this.document; + }; + + this.onChange = function(e) { + var delta = e.data; + var range = delta.range; + + if (range.start.row == range.end.row && range.start.row != this.row) + return; + + if (range.start.row > this.row) + return; + + if (range.start.row == this.row && range.start.column > this.column) + return; + + var row = this.row; + var column = this.column; + + if (delta.action === "insertText") { + if (range.start.row === row && range.start.column <= column) { + if (range.start.row === range.end.row) { + column += range.end.column - range.start.column; + } + else { + column -= range.start.column; + row += range.end.row - range.start.row; + } + } + else if (range.start.row !== range.end.row && range.start.row < row) { + row += range.end.row - range.start.row; + } + } else if (delta.action === "insertLines") { + if (range.start.row <= row) { + row += range.end.row - range.start.row; + } + } + else if (delta.action == "removeText") { + if (range.start.row == row && range.start.column < column) { + if (range.end.column >= column) + column = range.start.column; + else + column = Math.max(0, column - (range.end.column - range.start.column)); + + } else if (range.start.row !== range.end.row && range.start.row < row) { + if (range.end.row == row) { + column = Math.max(0, column - range.end.column) + range.start.column; + } + row -= (range.end.row - range.start.row); + } + else if (range.end.row == row) { + row -= range.end.row - range.start.row; + column = Math.max(0, column - range.end.column) + range.start.column; + } + } else if (delta.action == "removeLines") { + if (range.start.row <= row) { + if (range.end.row <= row) + row -= range.end.row - range.start.row; + else { + row = range.start.row; + column = 0; + } + } + } + + this.setPosition(row, column, true); + }; + + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } + else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._emit("change", { + old: old, + value: pos + }); + }; + + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +define('ace/background_tokenizer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +/** + * new BackgroundTokenizer(tokenizer, editor) + * - tokenizer (Tokenizer): The tokenizer to use + * - editor (Editor): The editor to associate with + * + * Creates a new `BackgroundTokenizer` object. + * + * + **/ + +var BackgroundTokenizer = function(tokenizer, editor) { + this.running = false; + this.lines = []; + this.currentLine = 0; + this.tokenizer = tokenizer; + + var self = this; + + this.$worker = function() { + if (!self.running) { return; } + + var workerStart = new Date(); + var startLine = self.currentLine; + var doc = self.doc; + + var processedLines = 0; + + var len = doc.getLength(); + while (self.currentLine < len) { + self.lines[self.currentLine] = self.$tokenizeRows(self.currentLine, self.currentLine)[0]; + self.currentLine++; + + // only check every 5 lines + processedLines += 1; + if ((processedLines % 5 == 0) && (new Date() - workerStart) > 20) { + self.fireUpdateEvent(startLine, self.currentLine-1); + self.running = setTimeout(self.$worker, 20); + return; + } + } + + self.running = false; + + self.fireUpdateEvent(startLine, len - 1); + }; +}; + +(function(){ + + oop.implement(this, EventEmitter); + + this.setTokenizer = function(tokenizer) { + this.tokenizer = tokenizer; + this.lines = []; + + this.start(0); + }; + + this.setDocument = function(doc) { + this.doc = doc; + this.lines = []; + + this.stop(); + }; + + this.fireUpdateEvent = function(firstRow, lastRow) { + var data = { + first: firstRow, + last: lastRow + }; + this._emit("update", {data: data}); + }; + + this.start = function(startRow) { + this.currentLine = Math.min(startRow || 0, this.currentLine, + this.doc.getLength()); + + // remove all cached items below this line + this.lines.splice(this.currentLine, this.lines.length); + + this.stop(); + // pretty long delay to prevent the tokenizer from interfering with the user + this.running = setTimeout(this.$worker, 700); + }; + + this.stop = function() { + if (this.running) + clearTimeout(this.running); + this.running = false; + }; + + this.getTokens = function(firstRow, lastRow) { + return this.$tokenizeRows(firstRow, lastRow); + }; + + this.getState = function(row) { + return this.$tokenizeRows(row, row)[0].state; + }; + this.$tokenizeRows = function(firstRow, lastRow) { + if (!this.doc || isNaN(firstRow) || isNaN(lastRow)) + return [{'state':'start','tokens':[]}]; + + var rows = []; + + // determine start state + var state = "start"; + var doCache = false; + if (firstRow > 0 && this.lines[firstRow - 1]) { + state = this.lines[firstRow - 1].state; + doCache = true; + } else if (firstRow == 0) { + state = "start"; + doCache = true; + } else if (this.lines.length > 0) { + // Guess that we haven't changed state. + state = this.lines[this.lines.length-1].state; + } + + var lines = this.doc.getLines(firstRow, lastRow); + for (var row=firstRow; row<=lastRow; row++) { + if (!this.lines[row]) { + var tokens = this.tokenizer.getLineTokens(lines[row-firstRow] || "", state); + var state = tokens.state; + rows.push(tokens); + + if (doCache) { + this.lines[row] = tokens; + } + } + else { + var tokens = this.lines[row]; + state = tokens.state; + rows.push(tokens); + } + } + return rows; + }; + +}).call(BackgroundTokenizer.prototype); + +exports.BackgroundTokenizer = BackgroundTokenizer; +}); + +define('ace/edit_session/folding', ['require', 'exports', 'module' , 'ace/range', 'ace/edit_session/fold_line', 'ace/edit_session/fold', 'ace/token_iterator'], function(require, exports, module) { + + +var Range = require("../range").Range; +var FoldLine = require("./fold_line").FoldLine; +var Fold = require("./fold").Fold; +var TokenIterator = require("../token_iterator").TokenIterator; + +function Folding() { + /* + * Looks up a fold at a given row/column. Possible values for side: + * -1: ignore a fold if fold.start = row/column + * +1: ignore a fold if fold.end = row/column + */ + this.getFoldAt = function(row, column, side) { + var foldLine = this.getFoldLine(row); + if (!foldLine) + return null; + + var folds = foldLine.folds; + for (var i = 0; i < folds.length; i++) { + var fold = folds[i]; + if (fold.range.contains(row, column)) { + if (side == 1 && fold.range.isEnd(row, column)) { + continue; + } else if (side == -1 && fold.range.isStart(row, column)) { + continue; + } + return fold; + } + } + }; + this.getFoldsInRange = function(range) { + range = range.clone(); + var start = range.start; + var end = range.end; + var foldLines = this.$foldData; + var foundFolds = []; + + start.column += 1; + end.column -= 1; + + for (var i = 0; i < foldLines.length; i++) { + var cmp = foldLines[i].range.compareRange(range); + if (cmp == 2) { + // Range is before foldLine. No intersection. This means, + // there might be other foldLines that intersect. + continue; + } + else if (cmp == -2) { + // Range is after foldLine. There can't be any other foldLines then, + // so let's give up. + break; + } + + var folds = foldLines[i].folds; + for (var j = 0; j < folds.length; j++) { + var fold = folds[j]; + cmp = fold.range.compareRange(range); + if (cmp == -2) { + break; + } else if (cmp == 2) { + continue; + } else + // WTF-state: Can happen due to -1/+1 to start/end column. + if (cmp == 42) { + break; + } + foundFolds.push(fold); + } + } + return foundFolds; + }; + this.getAllFolds = function() { + var folds = []; + var foldLines = this.$foldData; + + function addFold(fold) { + folds.push(fold); + if (!fold.subFolds) + return; + + for (var i = 0; i < fold.subFolds.length; i++) + addFold(fold.subFolds[i]); + } + + for (var i = 0; i < foldLines.length; i++) + for (var j = 0; j < foldLines[i].folds.length; j++) + addFold(foldLines[i].folds[j]); + + return folds; + }; + this.getFoldStringAt = function(row, column, trim, foldLine) { + foldLine = foldLine || this.getFoldLine(row); + if (!foldLine) + return null; + + var lastFold = { + end: { column: 0 } + }; + // TODO: Refactor to use getNextFoldTo function. + var str, fold; + for (var i = 0; i < foldLine.folds.length; i++) { + fold = foldLine.folds[i]; + var cmp = fold.range.compareEnd(row, column); + if (cmp == -1) { + str = this + .getLine(fold.start.row) + .substring(lastFold.end.column, fold.start.column); + break; + } + else if (cmp === 0) { + return null; + } + lastFold = fold; + } + if (!str) + str = this.getLine(fold.start.row).substring(lastFold.end.column); + + if (trim == -1) + return str.substring(0, column - lastFold.end.column); + else if (trim == 1) + return str.substring(column - lastFold.end.column); + else + return str; + }; + + this.getFoldLine = function(docRow, startFoldLine) { + var foldData = this.$foldData; + var i = 0; + if (startFoldLine) + i = foldData.indexOf(startFoldLine); + if (i == -1) + i = 0; + for (i; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) { + return foldLine; + } else if (foldLine.end.row > docRow) { + return null; + } + } + return null; + }; + + // returns the fold which starts after or contains docRow + this.getNextFoldLine = function(docRow, startFoldLine) { + var foldData = this.$foldData; + var i = 0; + if (startFoldLine) + i = foldData.indexOf(startFoldLine); + if (i == -1) + i = 0; + for (i; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (foldLine.end.row >= docRow) { + return foldLine; + } + } + return null; + }; + + this.getFoldedRowCount = function(first, last) { + var foldData = this.$foldData, rowCount = last-first+1; + for (var i = 0; i < foldData.length; i++) { + var foldLine = foldData[i], + end = foldLine.end.row, + start = foldLine.start.row; + if (end >= last) { + if(start < last) { + if(start >= first) + rowCount -= last-start; + else + rowCount = 0;//in one fold + } + break; + } else if(end >= first){ + if (start >= first) //fold inside range + rowCount -= end-start; + else + rowCount -= end-first+1; + } + } + return rowCount; + }; + + this.$addFoldLine = function(foldLine) { + this.$foldData.push(foldLine); + this.$foldData.sort(function(a, b) { + return a.start.row - b.start.row; + }); + return foldLine; + }; + this.addFold = function(placeholder, range) { + var foldData = this.$foldData; + var added = false; + var fold; + + if (placeholder instanceof Fold) + fold = placeholder; + else + fold = new Fold(range, placeholder); + + this.$clipRangeToDocument(fold.range); + + var startRow = fold.start.row; + var startColumn = fold.start.column; + var endRow = fold.end.row; + var endColumn = fold.end.column; + + // --- Some checking --- + if (fold.placeholder.length < 2) + throw "Placeholder has to be at least 2 characters"; + + if (startRow == endRow && endColumn - startColumn < 2) + throw "The range has to be at least 2 characters width"; + + var startFold = this.getFoldAt(startRow, startColumn, 1); + var endFold = this.getFoldAt(endRow, endColumn, -1); + if (startFold && endFold == startFold) + return startFold.addSubFold(fold); + + if ( + (startFold && !startFold.range.isStart(startRow, startColumn)) + || (endFold && !endFold.range.isEnd(endRow, endColumn)) + ) { + throw "A fold can't intersect already existing fold" + fold.range + startFold.range; + } + + // Check if there are folds in the range we create the new fold for. + var folds = this.getFoldsInRange(fold.range); + if (folds.length > 0) { + // Remove the folds from fold data. + this.removeFolds(folds); + // Add the removed folds as subfolds on the new fold. + fold.subFolds = folds; + } + + for (var i = 0; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (endRow == foldLine.start.row) { + foldLine.addFold(fold); + added = true; + break; + } + else if (startRow == foldLine.end.row) { + foldLine.addFold(fold); + added = true; + if (!fold.sameRow) { + // Check if we might have to merge two FoldLines. + var foldLineNext = foldData[i + 1]; + if (foldLineNext && foldLineNext.start.row == endRow) { + // We need to merge! + foldLine.merge(foldLineNext); + break; + } + } + break; + } + else if (endRow <= foldLine.start.row) { + break; + } + } + + if (!added) + foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold)); + + if (this.$useWrapMode) + this.$updateWrapData(foldLine.start.row, foldLine.start.row); + + // Notify that fold data has changed. + this.$modified = true; + this._emit("changeFold", { data: fold }); + + return fold; + }; + + this.addFolds = function(folds) { + folds.forEach(function(fold) { + this.addFold(fold); + }, this); + }; + + this.removeFold = function(fold) { + var foldLine = fold.foldLine; + var startRow = foldLine.start.row; + var endRow = foldLine.end.row; + + var foldLines = this.$foldData; + var folds = foldLine.folds; + // Simple case where there is only one fold in the FoldLine such that + // the entire fold line can get removed directly. + if (folds.length == 1) { + foldLines.splice(foldLines.indexOf(foldLine), 1); + } else + // If the fold is the last fold of the foldLine, just remove it. + if (foldLine.range.isEnd(fold.end.row, fold.end.column)) { + folds.pop(); + foldLine.end.row = folds[folds.length - 1].end.row; + foldLine.end.column = folds[folds.length - 1].end.column; + } else + // If the fold is the first fold of the foldLine, just remove it. + if (foldLine.range.isStart(fold.start.row, fold.start.column)) { + folds.shift(); + foldLine.start.row = folds[0].start.row; + foldLine.start.column = folds[0].start.column; + } else + // We know there are more then 2 folds and the fold is not at the edge. + // This means, the fold is somewhere in between. + // + // If the fold is in one row, we just can remove it. + if (fold.sameRow) { + folds.splice(folds.indexOf(fold), 1); + } else + // The fold goes over more then one row. This means remvoing this fold + // will cause the fold line to get splitted up. newFoldLine is the second part + { + var newFoldLine = foldLine.split(fold.start.row, fold.start.column); + folds = newFoldLine.folds; + folds.shift(); + newFoldLine.start.row = folds[0].start.row; + newFoldLine.start.column = folds[0].start.column; + } + + if (this.$useWrapMode) { + this.$updateWrapData(startRow, endRow); + } + + // Notify that fold data has changed. + this.$modified = true; + this._emit("changeFold", { data: fold }); + }; + + this.removeFolds = function(folds) { + // We need to clone the folds array passed in as it might be the folds + // array of a fold line and as we call this.removeFold(fold), folds + // are removed from folds and changes the current index. + var cloneFolds = []; + for (var i = 0; i < folds.length; i++) { + cloneFolds.push(folds[i]); + } + + cloneFolds.forEach(function(fold) { + this.removeFold(fold); + }, this); + this.$modified = true; + }; + + this.expandFold = function(fold) { + this.removeFold(fold); + fold.subFolds.forEach(function(fold) { + this.addFold(fold); + }, this); + fold.subFolds = []; + }; + + this.expandFolds = function(folds) { + folds.forEach(function(fold) { + this.expandFold(fold); + }, this); + }; + + this.unfold = function(location, expandInner) { + var range, folds; + if (location == null) + range = new Range(0, 0, this.getLength(), 0); + else if (typeof location == "number") + range = new Range(location, 0, location, this.getLine(location).length); + else if ("row" in location) + range = Range.fromPoints(location, location); + else + range = location; + + folds = this.getFoldsInRange(range); + if (expandInner) { + this.removeFolds(folds); + } else { + // TODO: might need to remove and add folds in one go instead of using + // expandFolds several times. + while (folds.length) { + this.expandFolds(folds); + folds = this.getFoldsInRange(range); + } + } + }; + this.isRowFolded = function(docRow, startFoldRow) { + return !!this.getFoldLine(docRow, startFoldRow); + }; + + this.getRowFoldEnd = function(docRow, startFoldRow) { + var foldLine = this.getFoldLine(docRow, startFoldRow); + return (foldLine + ? foldLine.end.row + : docRow); + }; + + this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) { + if (startRow == null) { + startRow = foldLine.start.row; + startColumn = 0; + } + + if (endRow == null) { + endRow = foldLine.end.row; + endColumn = this.getLine(endRow).length; + } + + // Build the textline using the FoldLine walker. + var doc = this.doc; + var textLine = ""; + + foldLine.walk(function(placeholder, row, column, lastColumn) { + if (row < startRow) { + return; + } else if (row == startRow) { + if (column < startColumn) { + return; + } + lastColumn = Math.max(startColumn, lastColumn); + } + if (placeholder) { + textLine += placeholder; + } else { + textLine += doc.getLine(row).substring(lastColumn, column); + } + }.bind(this), endRow, endColumn); + return textLine; + }; + + this.getDisplayLine = function(row, endColumn, startRow, startColumn) { + var foldLine = this.getFoldLine(row); + + if (!foldLine) { + var line; + line = this.doc.getLine(row); + return line.substring(startColumn || 0, endColumn || line.length); + } else { + return this.getFoldDisplayLine( + foldLine, row, endColumn, startRow, startColumn); + } + }; + + this.$cloneFoldData = function() { + var fd = []; + fd = this.$foldData.map(function(foldLine) { + var folds = foldLine.folds.map(function(fold) { + return fold.clone(); + }); + return new FoldLine(fd, folds); + }); + + return fd; + }; + + this.toggleFold = function(tryToUnfold) { + var selection = this.selection; + var range = selection.getRange(); + var fold; + var bracketPos; + + if (range.isEmpty()) { + var cursor = range.start; + fold = this.getFoldAt(cursor.row, cursor.column); + + if (fold) { + this.expandFold(fold); + return; + } + else if (bracketPos = this.findMatchingBracket(cursor)) { + if (range.comparePoint(bracketPos) == 1) { + range.end = bracketPos; + } + else { + range.start = bracketPos; + range.start.column++; + range.end.column--; + } + } + else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) { + if (range.comparePoint(bracketPos) == 1) + range.end = bracketPos; + else + range.start = bracketPos; + + range.start.column++; + } + else { + range = this.getCommentFoldRange(cursor.row, cursor.column) || range; + } + } else { + var folds = this.getFoldsInRange(range); + if (tryToUnfold && folds.length) { + this.expandFolds(folds); + return; + } + else if (folds.length == 1 ) { + fold = folds[0]; + } + } + + if (!fold) + fold = this.getFoldAt(range.start.row, range.start.column); + + if (fold && fold.range.toString() == range.toString()) { + this.expandFold(fold); + return; + } + + var placeholder = "..."; + if (!range.isMultiLine()) { + placeholder = this.getTextRange(range); + if(placeholder.length < 4) + return; + placeholder = placeholder.trim().substring(0, 2) + ".."; + } + + this.addFold(placeholder, range); + }; + + this.getCommentFoldRange = function(row, column) { + var iterator = new TokenIterator(this, row, column); + var token = iterator.getCurrentToken(); + if (token && /^comment|string/.test(token.type)) { + var range = new Range(); + var re = new RegExp(token.type.replace(/\..*/, "\\.")); + do { + token = iterator.stepBackward(); + } while(token && re.test(token.type)); + + iterator.stepForward(); + range.start.row = iterator.getCurrentTokenRow(); + range.start.column = iterator.getCurrentTokenColumn() + 2; + + iterator = new TokenIterator(this, row, column); + + do { + token = iterator.stepForward(); + } while(token && re.test(token.type)); + + token = iterator.stepBackward(); + + range.end.row = iterator.getCurrentTokenRow(); + range.end.column = iterator.getCurrentTokenColumn() + token.value.length; + return range; + } + }; + + this.foldAll = function(startRow, endRow) { + var foldWidgets = this.foldWidgets; + endRow = endRow || this.getLength(); + for (var row = startRow || 0; row < endRow; row++) { + if (foldWidgets[row] == null) + foldWidgets[row] = this.getFoldWidget(row); + if (foldWidgets[row] != "start") + continue; + + var range = this.getFoldWidgetRange(row); + // sometimes range can be incompatible with existing fold + // wouldn't it be better for addFold to return null istead of throwing? + if (range && range.end.row < endRow) try { + this.addFold("...", range); + } catch(e) {} + } + }; + + this.$foldStyles = { + "manual": 1, + "markbegin": 1, + "markbeginend": 1 + }; + this.$foldStyle = "markbegin"; + this.setFoldStyle = function(style) { + if (!this.$foldStyles[style]) + throw new Error("invalid fold style: " + style + "[" + Object.keys(this.$foldStyles).join(", ") + "]"); + + if (this.$foldStyle == style) + return; + + this.$foldStyle = style; + + if (style == "manual") + this.unfold(); + + // reset folding + var mode = this.$foldMode; + this.$setFolding(null); + this.$setFolding(mode); + }; + + // structured folding + this.$setFolding = function(foldMode) { + if (this.$foldMode == foldMode) + return; + + this.$foldMode = foldMode; + + this.removeListener('change', this.$updateFoldWidgets); + this._emit("changeAnnotation"); + + if (!foldMode || this.$foldStyle == "manual") { + this.foldWidgets = null; + return; + } + + this.foldWidgets = []; + this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle); + this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle); + + this.$updateFoldWidgets = this.updateFoldWidgets.bind(this); + this.on('change', this.$updateFoldWidgets); + + }; + + this.onFoldWidgetClick = function(row, e) { + var type = this.getFoldWidget(row); + var line = this.getLine(row); + var onlySubfolds = e.shiftKey; + var addSubfolds = onlySubfolds || e.ctrlKey || e.altKey || e.metaKey; + var fold; + + if (type == "end") + fold = this.getFoldAt(row, 0, -1); + else + fold = this.getFoldAt(row, line.length, 1); + + if (fold) { + if (addSubfolds) + this.removeFold(fold); + else + this.expandFold(fold); + return; + } + + var range = this.getFoldWidgetRange(row); + if (range) { + // sometimes singleline folds can be missed by the code above + if (!range.isMultiLine()) { + fold = this.getFoldAt(range.start.row, range.start.column, 1); + if (fold && range.isEqual(fold.range)) { + this.removeFold(fold); + return; + } + } + + if (!onlySubfolds) + this.addFold("...", range); + + if (addSubfolds) + this.foldAll(range.start.row + 1, range.end.row); + } else { + if (addSubfolds) + this.foldAll(row + 1, this.getLength()); + e.target.className += " invalid" + } + }; + + this.updateFoldWidgets = function(e) { + var delta = e.data; + var range = delta.range; + var firstRow = range.start.row; + var len = range.end.row - firstRow; + + if (len === 0) { + this.foldWidgets[firstRow] = null; + } else if (delta.action == "removeText" || delta.action == "removeLines") { + this.foldWidgets.splice(firstRow, len + 1, null); + } else { + var args = Array(len + 1); + args.unshift(firstRow, 1); + this.foldWidgets.splice.apply(this.foldWidgets, args); + } + }; + +} + +exports.Folding = Folding; + +}); + +define('ace/edit_session/fold_line', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; +function FoldLine(foldData, folds) { + this.foldData = foldData; + if (Array.isArray(folds)) { + this.folds = folds; + } else { + folds = this.folds = [ folds ]; + } + + var last = folds[folds.length - 1] + this.range = new Range(folds[0].start.row, folds[0].start.column, + last.end.row, last.end.column); + this.start = this.range.start; + this.end = this.range.end; + + this.folds.forEach(function(fold) { + fold.setFoldLine(this); + }, this); +} + +(function() { + /* + * Note: This doesn't update wrapData! + */ + this.shiftRow = function(shift) { + this.start.row += shift; + this.end.row += shift; + this.folds.forEach(function(fold) { + fold.start.row += shift; + fold.end.row += shift; + }); + } + + this.addFold = function(fold) { + if (fold.sameRow) { + if (fold.start.row < this.startRow || fold.endRow > this.endRow) { + throw "Can't add a fold to this FoldLine as it has no connection"; + } + this.folds.push(fold); + this.folds.sort(function(a, b) { + return -a.range.compareEnd(b.start.row, b.start.column); + }); + if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) { + this.end.row = fold.end.row; + this.end.column = fold.end.column; + } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) { + this.start.row = fold.start.row; + this.start.column = fold.start.column; + } + } else if (fold.start.row == this.end.row) { + this.folds.push(fold); + this.end.row = fold.end.row; + this.end.column = fold.end.column; + } else if (fold.end.row == this.start.row) { + this.folds.unshift(fold); + this.start.row = fold.start.row; + this.start.column = fold.start.column; + } else { + throw "Trying to add fold to FoldRow that doesn't have a matching row"; + } + fold.foldLine = this; + } + + this.containsRow = function(row) { + return row >= this.start.row && row <= this.end.row; + } + + this.walk = function(callback, endRow, endColumn) { + var lastEnd = 0, + folds = this.folds, + fold, + comp, stop, isNewRow = true; + + if (endRow == null) { + endRow = this.end.row; + endColumn = this.end.column; + } + + for (var i = 0; i < folds.length; i++) { + fold = folds[i]; + + comp = fold.range.compareStart(endRow, endColumn); + // This fold is after the endRow/Column. + if (comp == -1) { + callback(null, endRow, endColumn, lastEnd, isNewRow); + return; + } + + stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow); + stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd); + + // If the user requested to stop the walk or endRow/endColumn is + // inside of this fold (comp == 0), then end here. + if (stop || comp == 0) { + return; + } + + // Note the new lastEnd might not be on the same line. However, + // it's the callback's job to recognize this. + isNewRow = !fold.sameRow; + lastEnd = fold.end.column; + } + callback(null, endRow, endColumn, lastEnd, isNewRow); + } + + this.getNextFoldTo = function(row, column) { + var fold, cmp; + for (var i = 0; i < this.folds.length; i++) { + fold = this.folds[i]; + cmp = fold.range.compareEnd(row, column); + if (cmp == -1) { + return { + fold: fold, + kind: "after" + }; + } else if (cmp == 0) { + return { + fold: fold, + kind: "inside" + } + } + } + return null; + } + + this.addRemoveChars = function(row, column, len) { + var ret = this.getNextFoldTo(row, column), + fold, folds; + if (ret) { + fold = ret.fold; + if (ret.kind == "inside" + && fold.start.column != column + && fold.start.row != row) + { + //throwing here breaks whole editor + //@todo properly handle this + window.console && window.console.log(row, column, fold); + } else if (fold.start.row == row) { + folds = this.folds; + var i = folds.indexOf(fold); + if (i == 0) { + this.start.column += len; + } + for (i; i < folds.length; i++) { + fold = folds[i]; + fold.start.column += len; + if (!fold.sameRow) { + return; + } + fold.end.column += len; + } + this.end.column += len; + } + } + } + + this.split = function(row, column) { + var fold = this.getNextFoldTo(row, column).fold, + folds = this.folds; + var foldData = this.foldData; + + if (!fold) { + return null; + } + var i = folds.indexOf(fold); + var foldBefore = folds[i - 1]; + this.end.row = foldBefore.end.row; + this.end.column = foldBefore.end.column; + + // Remove the folds after row/column and create a new FoldLine + // containing these removed folds. + folds = folds.splice(i, folds.length - i); + + var newFoldLine = new FoldLine(foldData, folds); + foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine); + return newFoldLine; + } + + this.merge = function(foldLineNext) { + var folds = foldLineNext.folds; + for (var i = 0; i < folds.length; i++) { + this.addFold(folds[i]); + } + // Remove the foldLineNext - no longer needed, as + // it's merged now with foldLineNext. + var foldData = this.foldData; + foldData.splice(foldData.indexOf(foldLineNext), 1); + } + + this.toString = function() { + var ret = [this.range.toString() + ": [" ]; + + this.folds.forEach(function(fold) { + ret.push(" " + fold.toString()); + }); + ret.push("]") + return ret.join("\n"); + } + + this.idxToPosition = function(idx) { + var lastFoldEndColumn = 0; + var fold; + + for (var i = 0; i < this.folds.length; i++) { + var fold = this.folds[i]; + + idx -= fold.start.column - lastFoldEndColumn; + if (idx < 0) { + return { + row: fold.start.row, + column: fold.start.column + idx + }; + } + + idx -= fold.placeholder.length; + if (idx < 0) { + return fold.start; + } + + lastFoldEndColumn = fold.end.column; + } + + return { + row: this.end.row, + column: this.end.column + idx + }; + } +}).call(FoldLine.prototype); + +exports.FoldLine = FoldLine; +}); + +define('ace/edit_session/fold', ['require', 'exports', 'module' ], function(require, exports, module) { + + +/* + * Simple fold-data struct. + **/ +var Fold = exports.Fold = function(range, placeholder) { + this.foldLine = null; + this.placeholder = placeholder; + this.range = range; + this.start = range.start; + this.end = range.end; + + this.sameRow = range.start.row == range.end.row; + this.subFolds = []; +}; + +(function() { + + this.toString = function() { + return '"' + this.placeholder + '" ' + this.range.toString(); + }; + + this.setFoldLine = function(foldLine) { + this.foldLine = foldLine; + this.subFolds.forEach(function(fold) { + fold.setFoldLine(foldLine); + }); + }; + + this.clone = function() { + var range = this.range.clone(); + var fold = new Fold(range, this.placeholder); + this.subFolds.forEach(function(subFold) { + fold.subFolds.push(subFold.clone()); + }); + return fold; + }; + + this.addSubFold = function(fold) { + if (this.range.isEqual(fold)) + return this; + + if (!this.range.containsRange(fold)) + throw "A fold can't intersect already existing fold" + fold.range + this.range; + + var row = fold.range.start.row, column = fold.range.start.column; + for (var i = 0, cmp = -1; i < this.subFolds.length; i++) { + cmp = this.subFolds[i].range.compare(row, column); + if (cmp != 1) + break; + } + var afterStart = this.subFolds[i]; + + if (cmp == 0) + return afterStart.addSubFold(fold) + + // cmp == -1 + var row = fold.range.end.row, column = fold.range.end.column; + for (var j = i, cmp = -1; j < this.subFolds.length; j++) { + cmp = this.subFolds[j].range.compare(row, column); + if (cmp != 1) + break; + } + var afterEnd = this.subFolds[j]; + + if (cmp == 0) + throw "A fold can't intersect already existing fold" + fold.range + this.range; + + var consumedFolds = this.subFolds.splice(i, j - i, fold) + fold.setFoldLine(this.foldLine); + + return fold; + } + +}).call(Fold.prototype); + +}); + +define('ace/token_iterator', ['require', 'exports', 'module' ], function(require, exports, module) { + + +/** + * class TokenIterator + * + * This class provides an essay way to treat the document as a stream of tokens, and provides methods to iterate over these tokens. + * + **/ + +/** + * new TokenIterator(session, initialRow, initialColumn) + * - session (EditSession): The session to associate with + * - initialRow (Number): The row to start the tokenizing at + * - initialColumn (Number): The column to start the tokenizing at + * + * Creates a new token iterator object. The inital token index is set to the provided row and column coordinates. + * + **/ +var TokenIterator = function(session, initialRow, initialColumn) { + this.$session = session; + this.$row = initialRow; + this.$rowTokens = session.getTokens(initialRow, initialRow)[0].tokens; + + var token = session.getTokenAt(initialRow, initialColumn); + this.$tokenIndex = token ? token.index : -1; +}; + +(function() { + + /** + * TokenIterator.stepBackward() -> [String] + * + (String): If the current point is not at the top of the file, this function returns `null`. Otherwise, it returns an array of the tokenized strings. + * + * Tokenizes all the items from the current point to the row prior in the document. + **/ + this.stepBackward = function() { + this.$tokenIndex -= 1; + + while (this.$tokenIndex < 0) { + this.$row -= 1; + if (this.$row < 0) { + this.$row = 0; + return null; + } + + this.$rowTokens = this.$session.getTokens(this.$row, this.$row)[0].tokens; + this.$tokenIndex = this.$rowTokens.length - 1; + } + + return this.$rowTokens[this.$tokenIndex]; + }; + this.stepForward = function() { + var rowCount = this.$session.getLength(); + this.$tokenIndex += 1; + + while (this.$tokenIndex >= this.$rowTokens.length) { + this.$row += 1; + if (this.$row >= rowCount) { + this.$row = rowCount - 1; + return null; + } + + this.$rowTokens = this.$session.getTokens(this.$row, this.$row)[0].tokens; + this.$tokenIndex = 0; + } + + return this.$rowTokens[this.$tokenIndex]; + }; + this.getCurrentToken = function () { + return this.$rowTokens[this.$tokenIndex]; + }; + this.getCurrentTokenRow = function () { + return this.$row; + }; + this.getCurrentTokenColumn = function() { + var rowTokens = this.$rowTokens; + var tokenIndex = this.$tokenIndex; + + // If a column was cached by EditSession.getTokenAt, then use it + var column = rowTokens[tokenIndex].start; + if (column !== undefined) + return column; + + column = 0; + while (tokenIndex > 0) { + tokenIndex -= 1; + column += rowTokens[tokenIndex].value.length; + } + + return column; + }; + +}).call(TokenIterator.prototype); + +exports.TokenIterator = TokenIterator; +}); + +define('ace/edit_session/bracket_match', ['require', 'exports', 'module' , 'ace/token_iterator'], function(require, exports, module) { + + +var TokenIterator = require("../token_iterator").TokenIterator; + +/** + * new BracketMatch(position) + * - platform (String): Identifier for the platform; must be either `'mac'` or `'win'` + * - commands (Array): A list of commands + * + * TODO + * + * + **/ +function BracketMatch() { + + /** + * new findMatchingBracket(position) + * - position (Number): Identifier for the platform; must be either `'mac'` or `'win'` + * - commands (Array): A list of commands + * + * TODO + * + * + **/ + this.findMatchingBracket = function(position) { + if (position.column == 0) return null; + + var charBeforeCursor = this.getLine(position.row).charAt(position.column-1); + if (charBeforeCursor == "") return null; + + var match = charBeforeCursor.match(/([\(\[\{])|([\)\]\}])/); + if (!match) { + return null; + } + + if (match[1]) { + return this.$findClosingBracket(match[1], position); + } else { + return this.$findOpeningBracket(match[2], position); + } + }; + + this.$brackets = { + ")": "(", + "(": ")", + "]": "[", + "[": "]", + "{": "}", + "}": "{" + }; + + this.$findOpeningBracket = function(bracket, position, typeRe) { + var openBracket = this.$brackets[bracket]; + var depth = 1; + + var iterator = new TokenIterator(this, position.row, position.column); + var token = iterator.getCurrentToken(); + if (!token) + token = iterator.stepForward(); + if (!token) + return + + if (!typeRe){ + typeRe = new RegExp( + "(\\.?" + + token.type.replace(".", "\\.").replace("rparen", ".paren") + + ")+" + ); + } + + // Start searching in token, just before the character at position.column + var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2; + var value = token.value; + + while (true) { + + while (valueIndex >= 0) { + var chr = value.charAt(valueIndex); + if (chr == openBracket) { + depth -= 1; + if (depth == 0) { + return {row: iterator.getCurrentTokenRow(), + column: valueIndex + iterator.getCurrentTokenColumn()}; + } + } + else if (chr == bracket) { + depth += 1; + } + valueIndex -= 1; + } + + // Scan backward through the document, looking for the next token + // whose type matches typeRe + do { + token = iterator.stepBackward(); + } while (token && !typeRe.test(token.type)); + + if (token == null) + break; + + value = token.value; + valueIndex = value.length - 1; + } + + return null; + }; + + this.$findClosingBracket = function(bracket, position, typeRe, allowBlankLine) { + var closingBracket = this.$brackets[bracket]; + var depth = 1; + + var iterator = new TokenIterator(this, position.row, position.column); + var token = iterator.getCurrentToken(); + if (!token) + token = iterator.stepForward(); + if (!token) + return + + if (!typeRe){ + typeRe = new RegExp( + "(\\.?" + + token.type.replace(".", "\\.").replace("lparen", ".paren") + + ")+" + ); + } + + // Start searching in token, after the character at position.column + var valueIndex = position.column - iterator.getCurrentTokenColumn(); + + while (true) { + + var value = token.value; + var valueLength = value.length; + while (valueIndex < valueLength) { + var chr = value.charAt(valueIndex); + if (chr == closingBracket) { + depth -= 1; + if (depth == 0) { + return {row: iterator.getCurrentTokenRow(), + column: valueIndex + iterator.getCurrentTokenColumn()}; + } + } + else if (chr == bracket) { + depth += 1; + } + valueIndex += 1; + } + + // Scan forward through the document, looking for the next token + // whose type matches typeRe + do { + token = iterator.stepForward(); + if (allowBlankLine) { + // if you've reached the doc end, or, you match a new content line + if (token === null || token.type == "string") { + return {row: iterator.getCurrentTokenRow() + (token === null ? 1 : -1), column: 0}; + } + } + } while (token && !typeRe.test(token.type)); + + if (token == null) + break; + + valueIndex = 0; + } + + return null; + }; +} +exports.BracketMatch = BracketMatch; + +}); + +define('ace/search', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/range'], function(require, exports, module) { + + +var lang = require("./lib/lang"); +var oop = require("./lib/oop"); +var Range = require("./range").Range; + +/** + * new Search() + * + * Creates a new `Search` object. The search options contain the following defaults: + * + * * `needle`: `""` + * * `backwards`: `false` + * * `wrap`: `false` + * * `caseSensitive`: `false` + * * `wholeWord`: `false` + * * `scope`: `ALL` + * * `regExp`: `false` + * +**/ + +var Search = function() { + this.$options = { + needle: "", + backwards: false, + wrap: false, + caseSensitive: false, + wholeWord: false, + scope: Search.ALL, + regExp: false + }; +}; + +Search.ALL = 1; +Search.SELECTION = 2; + +(function() { + + /** + * Search.set(options) -> Search + * - options (Object): An object containing all the new search properties + * + * Sets the search options via the `options` parameter. + * + **/ + this.set = function(options) { + oop.mixin(this.$options, options); + return this; + }; + this.getOptions = function() { + return lang.copyObject(this.$options); + }; + this.find = function(session) { + if (!this.$options.needle) + return null; + + var iterator = this.$matchIterator(session); + + if (!iterator) + return false; + + var firstRange = null; + iterator.forEach(function(range) { + firstRange = range; + return true; + }); + + return firstRange; + }; + this.findAll = function(session) { + var options = this.$options; + if (!options.needle) + return []; + + var iterator = this.$matchIterator(session); + + if (!iterator) + return false; + + var ignoreCursor = !options.start && options.wrap && options.scope == Search.ALL; + if (ignoreCursor) + options.start = {row: 0, column: 0}; + + var ranges = []; + iterator.forEach(function(range) { + ranges.push(range); + }); + + if (ignoreCursor) + options.start = null; + + return ranges; + }; + this.replace = function(input, replacement) { + if (!this.$options.regExp) + return input == this.$options.needle ? replacement : null; + + var re = this.$assembleRegExp(); + if (!re) + return; + + var match = re.exec(input); + if (match && match[0].length == input.length) { + return input.replace(re, replacement); + } + else { + return null; + } + }; + this.$matchIterator = function(session) { + var re = this.$assembleRegExp(); + if (!re) + return false; + + var self = this, callback, backwards = this.$options.backwards; + + if (this.$options.$isMultiLine) { + var matchIterator = function(line, startIndex, row) { + var startLine = line; + if (startIndex) + line = line.substring(startIndex); + + var len = re.length; + var part = re[0]; + if (line.slice(-part.length) != part) + return; + + for (var i = 1; i < len - 1; i++) + if (re[i] != session.getLine(row + i)) + return; + + part = re[len - 1]; + if (session.getLine(row + len - 1).slice(0, part.length) != part) + return; + + var range = new Range( + row, startLine.length - re[0].length, + row + len - 1, re[len - 1].length + ); + if (callback(range)) + return true; + } + } else if (backwards) { + var matchIterator = function(line, startIndex, row) { + if (startIndex) + line = line.substring(startIndex); + + var matches = []; + + line.replace(re, function(str) { + var offset = arguments[arguments.length-2]; + matches.push({ + str: str, + offset: startIndex + offset + }); + return str; + }); + + for (var i=matches.length-1; i>= 0; i--) { + var match = matches[i]; + var range = self.$rangeFromMatch(row, match.offset, match.str.length); + if (callback(range)) + return true; + } + } + } else { + var matchIterator = function(line, startIndex, row) { + if (startIndex) + line = line.substring(startIndex); + + var matches = []; + + line.replace(re, function(str) { + var offset = arguments[arguments.length-2]; + matches.push({ + str: str, + offset: startIndex + offset + }); + return str; + }); + + for (var i=0; i lastRow) { + if (wrap) { + row = firstRow; + startIndex = firstColumn; + inWrap = true; + } else { + return; + } + } + + if (row == start.row) + stop = true; + + line = getLine(row); + } + } + } else { + var forEach = function(callback) { + var row = start.row; + + var line = session.getLine(row).substring(0, start.column); + var startIndex = 0; + var stop = false; + var inWrap = false; + + while (!callback(line, startIndex, row)) { + if (stop) + return; + + row--; + startIndex = 0; + + if (row < firstRow) { + if (wrap) { + row = lastRow; + inWrap = true; + } else { + return; + } + } + + if (row == start.row) + stop = true; + + line = session.getLine(row); + if (searchSelection) { + if (row == firstRow) + startIndex = firstColumn; + else if (row == lastRow) + line = line.substring(0, range.end.column); + } + + if (inWrap && row == start.row) + startIndex = start.column; + } + } + } + + return {forEach: forEach}; + }; + +}).call(Search.prototype); + +exports.Search = Search; +}); +define('ace/commands/command_manager', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/keyboard/hash_handler', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var HashHandler = require("../keyboard/hash_handler").HashHandler; +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +/** + * new CommandManager(platform, commands) + * - platform (String): Identifier for the platform; must be either `'mac'` or `'win'` + * - commands (Array): A list of commands + * + * TODO + * + * + **/ + +var CommandManager = function(platform, commands) { + this.platform = platform; + this.commands = {}; + this.commmandKeyBinding = {}; + + this.addCommands(commands); + + this.setDefaultHandler("exec", function(e) { + return e.command.exec(e.editor, e.args || {}); + }); +}; + +oop.inherits(CommandManager, HashHandler); + +(function() { + + oop.implement(this, EventEmitter); + + this.exec = function(command, editor, args) { + if (typeof command === 'string') + command = this.commands[command]; + + if (!command) + return false; + + if (editor && editor.$readOnly && !command.readOnly) + return false; + + try { + var retvalue = this._emit("exec", { + editor: editor, + command: command, + args: args + }); + } catch (e) { + window.console && window.console.log(e); + return true; + } + + return retvalue === false ? false : true; + }; + + this.toggleRecording = function() { + if (this.$inReplay) + return; + if (this.recording) { + this.macro.pop(); + this.removeEventListener("exec", this.$addCommandToMacro); + + if (!this.macro.length) + this.macro = this.oldMacro; + + return this.recording = false; + } + if (!this.$addCommandToMacro) { + this.$addCommandToMacro = function(e) { + this.macro.push([e.command, e.args]); + }.bind(this); + } + + this.oldMacro = this.macro; + this.macro = []; + this.on("exec", this.$addCommandToMacro); + return this.recording = true; + }; + + this.replay = function(editor) { + if (this.$inReplay || !this.macro) + return; + + if (this.recording) + return this.toggleRecording(); + + try { + this.$inReplay = true; + this.macro.forEach(function(x) { + if (typeof x == "string") + this.exec(x, editor); + else + this.exec(x[0], editor, x[1]); + }, this); + } finally { + this.$inReplay = false; + } + }; + + this.trimMacro = function(m) { + return m.map(function(x){ + if (typeof x[0] != "string") + x[0] = x[0].name; + if (!x[1]) + x = x[0]; + return x; + }); + }; + +}).call(CommandManager.prototype); + +exports.CommandManager = CommandManager; + +}); + +define('ace/keyboard/hash_handler', ['require', 'exports', 'module' , 'ace/lib/keys'], function(require, exports, module) { + + +var keyUtil = require("../lib/keys"); + +function HashHandler(config, platform) { + this.platform = platform; + this.commands = {}; + this.commmandKeyBinding = {}; + + this.addCommands(config); +}; + +(function() { + + this.addCommand = function(command) { + if (this.commands[command.name]) + this.removeCommand(command); + + this.commands[command.name] = command; + + if (command.bindKey) { + this._buildKeyHash(command); + } + }; + + this.removeCommand = function(command) { + var name = (typeof command === 'string' ? command : command.name); + command = this.commands[name]; + delete this.commands[name]; + + // exhaustive search is brute force but since removeCommand is + // not a performance critical operation this should be OK + var ckb = this.commmandKeyBinding; + for (var hashId in ckb) { + for (var key in ckb[hashId]) { + if (ckb[hashId][key] == command) + delete ckb[hashId][key]; + } + } + }; + + this.bindKey = function(key, command) { + if(!key) + return; + + var ckb = this.commmandKeyBinding; + key.split("|").forEach(function(keyPart) { + var binding = this.parseKeys(keyPart, command); + var hashId = binding.hashId; + (ckb[hashId] || (ckb[hashId] = {}))[binding.key] = command; + }, this); + }; + + this.addCommands = function(commands) { + commands && Object.keys(commands).forEach(function(name) { + var command = commands[name]; + if (typeof command === "string") + return this.bindKey(command, name); + + if (typeof command === "function") + command = { exec: command }; + + if (!command.name) + command.name = name; + + this.addCommand(command); + }, this); + }; + + this.removeCommands = function(commands) { + Object.keys(commands).forEach(function(name) { + this.removeCommand(commands[name]); + }, this); + }; + + this.bindKeys = function(keyList) { + Object.keys(keyList).forEach(function(key) { + this.bindKey(key, keyList[key]); + }, this); + }; + + this._buildKeyHash = function(command) { + var binding = command.bindKey; + if (!binding) + return; + + var key = typeof binding == "string" ? binding: binding[this.platform]; + this.bindKey(key, command); + }; + + this.parseKeys = function(keys) { + var key; + var hashId = 0; + var parts = keys.toLowerCase().trim().split(/\s*\-\s*/); + + for (var i = 0, l = parts.length; i < l; i++) { + if (keyUtil.KEY_MODS[parts[i]]) + hashId = hashId | keyUtil.KEY_MODS[parts[i]]; + else + key = parts[i] || "-"; //when empty, the splitSafe removed a '-' + } + + if (parts[0] == "text" && parts.length == 2) { + hashId = -1; + key = parts[1]; + } + + return { + key: key, + hashId: hashId + }; + }; + + this.findKeyCommand = function findKeyCommand(hashId, keyString) { + var ckbr = this.commmandKeyBinding; + return ckbr[hashId] && ckbr[hashId][keyString.toLowerCase()]; + }; + + this.handleKeyboard = function(data, hashId, keyString, keyCode) { + return { + command: this.findKeyCommand(hashId, keyString) + }; + }; + +}).call(HashHandler.prototype) + +exports.HashHandler = HashHandler; +}); + +define('ace/commands/default_commands', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +function bindKey(win, mac) { + return { + win: win, + mac: mac + }; +} + +exports.commands = [{ + name: "selectall", + bindKey: bindKey("Ctrl-A", "Command-A"), + exec: function(editor) { editor.selectAll(); }, + readOnly: true +}, { + name: "centerselection", + bindKey: bindKey(null, "Ctrl-L"), + exec: function(editor) { editor.centerSelection(); }, + readOnly: true +}, { + name: "gotoline", + bindKey: bindKey("Ctrl-L", "Command-L"), + exec: function(editor) { + var line = parseInt(prompt("Enter line number:"), 10); + if (!isNaN(line)) { + editor.gotoLine(line); + } + }, + readOnly: true +}, { + name: "fold", + bindKey: bindKey("Alt-L", "Alt-L"), + exec: function(editor) { editor.session.toggleFold(false); }, + readOnly: true +}, { + name: "unfold", + bindKey: bindKey("Alt-Shift-L", "Alt-Shift-L"), + exec: function(editor) { editor.session.toggleFold(true); }, + readOnly: true +}, { + name: "foldall", + bindKey: bindKey("Alt-0", "Alt-0"), + exec: function(editor) { editor.session.foldAll(); }, + readOnly: true +}, { + name: "unfoldall", + bindKey: bindKey("Alt-Shift-0", "Alt-Shift-0"), + exec: function(editor) { editor.session.unfold(); }, + readOnly: true +}, { + name: "findnext", + bindKey: bindKey("Ctrl-K", "Command-G"), + exec: function(editor) { editor.findNext(); }, + readOnly: true +}, { + name: "findprevious", + bindKey: bindKey("Ctrl-Shift-K", "Command-Shift-G"), + exec: function(editor) { editor.findPrevious(); }, + readOnly: true +}, { + name: "find", + bindKey: bindKey("Ctrl-F", "Command-F"), + exec: function(editor) { + var needle = prompt("Find:", editor.getCopyText()); + editor.find(needle); + }, + readOnly: true +}, { + name: "overwrite", + bindKey: bindKey("Insert", "Insert"), + exec: function(editor) { editor.toggleOverwrite(); }, + readOnly: true +}, { + name: "selecttostart", + bindKey: bindKey("Ctrl-Shift-Home|Alt-Shift-Up", "Command-Shift-Up"), + exec: function(editor) { editor.getSelection().selectFileStart(); }, + readOnly: true +}, { + name: "gotostart", + bindKey: bindKey("Ctrl-Home|Ctrl-Up", "Command-Home|Command-Up"), + exec: function(editor) { editor.navigateFileStart(); }, + readOnly: true +}, { + name: "selectup", + bindKey: bindKey("Shift-Up", "Shift-Up"), + exec: function(editor) { editor.getSelection().selectUp(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "golineup", + bindKey: bindKey("Up", "Up|Ctrl-P"), + exec: function(editor, args) { editor.navigateUp(args.times); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selecttoend", + bindKey: bindKey("Ctrl-Shift-End|Alt-Shift-Down", "Command-Shift-Down"), + exec: function(editor) { editor.getSelection().selectFileEnd(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotoend", + bindKey: bindKey("Ctrl-End|Ctrl-Down", "Command-End|Command-Down"), + exec: function(editor) { editor.navigateFileEnd(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectdown", + bindKey: bindKey("Shift-Down", "Shift-Down"), + exec: function(editor) { editor.getSelection().selectDown(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "golinedown", + bindKey: bindKey("Down", "Down|Ctrl-N"), + exec: function(editor, args) { editor.navigateDown(args.times); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectwordleft", + bindKey: bindKey("Ctrl-Shift-Left", "Option-Shift-Left"), + exec: function(editor) { editor.getSelection().selectWordLeft(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotowordleft", + bindKey: bindKey("Ctrl-Left", "Option-Left"), + exec: function(editor) { editor.navigateWordLeft(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selecttolinestart", + bindKey: bindKey("Alt-Shift-Left", "Command-Shift-Left"), + exec: function(editor) { editor.getSelection().selectLineStart(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotolinestart", + bindKey: bindKey("Alt-Left|Home", "Command-Left|Home|Ctrl-A"), + exec: function(editor) { editor.navigateLineStart(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectleft", + bindKey: bindKey("Shift-Left", "Shift-Left"), + exec: function(editor) { editor.getSelection().selectLeft(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotoleft", + bindKey: bindKey("Left", "Left|Ctrl-B"), + exec: function(editor, args) { editor.navigateLeft(args.times); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectwordright", + bindKey: bindKey("Ctrl-Shift-Right", "Option-Shift-Right"), + exec: function(editor) { editor.getSelection().selectWordRight(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotowordright", + bindKey: bindKey("Ctrl-Right", "Option-Right"), + exec: function(editor) { editor.navigateWordRight(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selecttolineend", + bindKey: bindKey("Alt-Shift-Right", "Command-Shift-Right"), + exec: function(editor) { editor.getSelection().selectLineEnd(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotolineend", + bindKey: bindKey("Alt-Right|End", "Command-Right|End|Ctrl-E"), + exec: function(editor) { editor.navigateLineEnd(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectright", + bindKey: bindKey("Shift-Right", "Shift-Right"), + exec: function(editor) { editor.getSelection().selectRight(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "gotoright", + bindKey: bindKey("Right", "Right|Ctrl-F"), + exec: function(editor, args) { editor.navigateRight(args.times); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectpagedown", + bindKey: bindKey("Shift-PageDown", "Shift-PageDown"), + exec: function(editor) { editor.selectPageDown(); }, + readOnly: true +}, { + name: "pagedown", + bindKey: bindKey(null, "PageDown"), + exec: function(editor) { editor.scrollPageDown(); }, + readOnly: true +}, { + name: "gotopagedown", + bindKey: bindKey("PageDown", "Option-PageDown|Ctrl-V"), + exec: function(editor) { editor.gotoPageDown(); }, + readOnly: true +}, { + name: "selectpageup", + bindKey: bindKey("Shift-PageUp", "Shift-PageUp"), + exec: function(editor) { editor.selectPageUp(); }, + readOnly: true +}, { + name: "pageup", + bindKey: bindKey(null, "PageUp"), + exec: function(editor) { editor.scrollPageUp(); }, + readOnly: true +}, { + name: "gotopageup", + bindKey: bindKey("PageUp", "Option-PageUp"), + exec: function(editor) { editor.gotoPageUp(); }, + readOnly: true +}, { + name: "selectlinestart", + bindKey: bindKey("Shift-Home", "Shift-Home"), + exec: function(editor) { editor.getSelection().selectLineStart(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "selectlineend", + bindKey: bindKey("Shift-End", "Shift-End"), + exec: function(editor) { editor.getSelection().selectLineEnd(); }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "togglerecording", + bindKey: bindKey("Ctrl-Alt-E", "Command-Option-E"), + exec: function(editor) { editor.commands.toggleRecording(); }, + readOnly: true +}, { + name: "replaymacro", + bindKey: bindKey("Ctrl-Shift-E", "Command-Shift-E"), + exec: function(editor) { editor.commands.replay(editor); }, + readOnly: true +}, { + name: "jumptomatching", + bindKey: bindKey("Ctrl-Shift-P", "Ctrl-Shift-P"), + exec: function(editor) { editor.jumpToMatching(); }, + multiSelectAction: "forEach", + readOnly: true +}, + +// commands disabled in readOnly mode +{ + name: "cut", + exec: function(editor) { + var range = editor.getSelectionRange(); + editor._emit("cut", range); + + if (!editor.selection.isEmpty()) { + editor.session.remove(range); + editor.clearSelection(); + } + }, + multiSelectAction: "forEach" +}, { + name: "removeline", + bindKey: bindKey("Ctrl-D", "Command-D"), + exec: function(editor) { editor.removeLines(); }, + multiSelectAction: "forEach" +}, { + name: "togglecomment", + bindKey: bindKey("Ctrl-/", "Command-/"), + exec: function(editor) { editor.toggleCommentLines(); }, + multiSelectAction: "forEach" +}, { + name: "replace", + bindKey: bindKey("Ctrl-R", "Command-Option-F"), + exec: function(editor) { + var needle = prompt("Find:", editor.getCopyText()); + if (!needle) + return; + var replacement = prompt("Replacement:"); + if (!replacement) + return; + editor.replace(replacement, {needle: needle}); + } +}, { + name: "replaceall", + bindKey: bindKey("Ctrl-Shift-R", "Command-Shift-Option-F"), + exec: function(editor) { + var needle = prompt("Find:"); + if (!needle) + return; + var replacement = prompt("Replacement:"); + if (!replacement) + return; + editor.replaceAll(replacement, {needle: needle}); + } +}, { + name: "undo", + bindKey: bindKey("Ctrl-Z", "Command-Z"), + exec: function(editor) { editor.undo(); } +}, { + name: "redo", + bindKey: bindKey("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"), + exec: function(editor) { editor.redo(); } +}, { + name: "copylinesup", + bindKey: bindKey("Ctrl-Alt-Up", "Command-Option-Up"), + exec: function(editor) { editor.copyLinesUp(); } +}, { + name: "movelinesup", + bindKey: bindKey("Alt-Up", "Option-Up"), + exec: function(editor) { editor.moveLinesUp(); } +}, { + name: "copylinesdown", + bindKey: bindKey("Ctrl-Alt-Down", "Command-Option-Down"), + exec: function(editor) { editor.copyLinesDown(); } +}, { + name: "movelinesdown", + bindKey: bindKey("Alt-Down", "Option-Down"), + exec: function(editor) { editor.moveLinesDown(); } +}, { + name: "del", + bindKey: bindKey("Delete", "Delete|Ctrl-D"), + exec: function(editor) { editor.remove("right"); }, + multiSelectAction: "forEach" +}, { + name: "backspace", + bindKey: bindKey( + "Command-Backspace|Option-Backspace|Shift-Backspace|Backspace", + "Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H" + ), + exec: function(editor) { editor.remove("left"); }, + multiSelectAction: "forEach" +}, { + name: "removetolinestart", + bindKey: bindKey("Alt-Backspace", "Command-Backspace"), + exec: function(editor) { editor.removeToLineStart(); }, + multiSelectAction: "forEach" +}, { + name: "removetolineend", + bindKey: bindKey("Alt-Delete", "Ctrl-K"), + exec: function(editor) { editor.removeToLineEnd(); }, + multiSelectAction: "forEach" +}, { + name: "removewordleft", + bindKey: bindKey("Ctrl-Backspace", "Alt-Backspace|Ctrl-Alt-Backspace"), + exec: function(editor) { editor.removeWordLeft(); }, + multiSelectAction: "forEach" +}, { + name: "removewordright", + bindKey: bindKey("Ctrl-Delete", "Alt-Delete"), + exec: function(editor) { editor.removeWordRight(); }, + multiSelectAction: "forEach" +}, { + name: "outdent", + bindKey: bindKey("Shift-Tab", "Shift-Tab"), + exec: function(editor) { editor.blockOutdent(); }, + multiSelectAction: "forEach" +}, { + name: "indent", + bindKey: bindKey("Tab", "Tab"), + exec: function(editor) { editor.indent(); }, + multiSelectAction: "forEach" +}, { + name: "insertstring", + exec: function(editor, str) { editor.insert(str); }, + multiSelectAction: "forEach" +}, { + name: "inserttext", + exec: function(editor, args) { + editor.insert(lang.stringRepeat(args.text || "", args.times || 1)); + }, + multiSelectAction: "forEach" +}, { + name: "splitline", + bindKey: bindKey(null, "Ctrl-O"), + exec: function(editor) { editor.splitLine(); }, + multiSelectAction: "forEach" +}, { + name: "transposeletters", + bindKey: bindKey("Ctrl-T", "Ctrl-T"), + exec: function(editor) { editor.transposeLetters(); }, + multiSelectAction: function(editor) {editor.transposeSelections(1); } +}, { + name: "touppercase", + bindKey: bindKey("Ctrl-U", "Ctrl-U"), + exec: function(editor) { editor.toUpperCase(); }, + multiSelectAction: "forEach" +}, { + name: "tolowercase", + bindKey: bindKey("Ctrl-Shift-U", "Ctrl-Shift-U"), + exec: function(editor) { editor.toLowerCase(); }, + multiSelectAction: "forEach" +}]; + +}); + +define('ace/undomanager', ['require', 'exports', 'module' ], function(require, exports, module) { + + +/** + * class UndoManager + * + * This object maintains the undo stack for an [[EditSession `EditSession`]]. + * + **/ + +/** + * new UndoManager() + * + * Resets the current undo state and creates a new `UndoManager`. + **/ +var UndoManager = function() { + this.reset(); +}; + +(function() { + + /** + * UndoManager.execute(options) -> Void + * - options (Object): Contains additional properties + * + * Provides a means for implementing your own undo manager. `options` has one property, `args`, an [[Array `Array`]], with two elements: + * * `args[0]` is an array of deltas + * * `args[1]` is the document to associate with + * + **/ + this.execute = function(options) { + var deltas = options.args[0]; + this.$doc = options.args[1]; + this.$undoStack.push(deltas); + this.$redoStack = []; + }; + this.undo = function(dontSelect) { + var deltas = this.$undoStack.pop(); + var undoSelectionRange = null; + if (deltas) { + undoSelectionRange = + this.$doc.undoChanges(deltas, dontSelect); + this.$redoStack.push(deltas); + } + return undoSelectionRange; + }; + this.redo = function(dontSelect) { + var deltas = this.$redoStack.pop(); + var redoSelectionRange = null; + if (deltas) { + redoSelectionRange = + this.$doc.redoChanges(deltas, dontSelect); + this.$undoStack.push(deltas); + } + return redoSelectionRange; + }; + this.reset = function() { + this.$undoStack = []; + this.$redoStack = []; + }; + this.hasUndo = function() { + return this.$undoStack.length > 0; + }; + this.hasRedo = function() { + return this.$redoStack.length > 0; + }; + +}).call(UndoManager.prototype); + +exports.UndoManager = UndoManager; +}); + +define('ace/virtual_renderer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/event', 'ace/lib/useragent', 'ace/config', 'ace/lib/net', 'ace/layer/gutter', 'ace/layer/marker', 'ace/layer/text', 'ace/layer/cursor', 'ace/scrollbar', 'ace/renderloop', 'ace/lib/event_emitter', 'text!ace/css/editor.css'], function(require, exports, module) { + + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var event = require("./lib/event"); +var useragent = require("./lib/useragent"); +var config = require("./config"); +var net = require("./lib/net"); +var GutterLayer = require("./layer/gutter").Gutter; +var MarkerLayer = require("./layer/marker").Marker; +var TextLayer = require("./layer/text").Text; +var CursorLayer = require("./layer/cursor").Cursor; +var ScrollBar = require("./scrollbar").ScrollBar; +var RenderLoop = require("./renderloop").RenderLoop; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var editorCss = require("text!./css/editor.css"); + +dom.importCssString(editorCss, "ace_editor"); + +/** + * new VirtualRenderer(container, theme) + * - container (DOMElement): The root element of the editor + * - theme (String): The starting theme + * + * Constructs a new `VirtualRenderer` within the `container` specified, applying the given `theme`. + * + **/ + +var VirtualRenderer = function(container, theme) { + var _self = this; + + this.container = container; + + // TODO: this breaks rendering in Cloud9 with multiple ace instances +// // Imports CSS once per DOM document ('ace_editor' serves as an identifier). +// dom.importCssString(editorCss, "ace_editor", container.ownerDocument); + + // in IE <= 9 the native cursor always shines through + this.$keepTextAreaAtCursor = !useragent.isIE; + + dom.addCssClass(container, "ace_editor"); + + this.setTheme(theme); + + this.$gutter = dom.createElement("div"); + this.$gutter.className = "ace_gutter"; + this.container.appendChild(this.$gutter); + + this.scroller = dom.createElement("div"); + this.scroller.className = "ace_scroller"; + this.container.appendChild(this.scroller); + + this.content = dom.createElement("div"); + this.content.className = "ace_content"; + this.scroller.appendChild(this.content); + + this.setHighlightGutterLine(true); + this.$gutterLayer = new GutterLayer(this.$gutter); + this.$gutterLayer.on("changeGutterWidth", this.onResize.bind(this, true)); + this.setFadeFoldWidgets(true); + + this.$markerBack = new MarkerLayer(this.content); + + var textLayer = this.$textLayer = new TextLayer(this.content); + this.canvas = textLayer.element; + + this.$markerFront = new MarkerLayer(this.content); + + this.characterWidth = textLayer.getCharacterWidth(); + this.lineHeight = textLayer.getLineHeight(); + + this.$cursorLayer = new CursorLayer(this.content); + this.$cursorPadding = 8; + + // Indicates whether the horizontal scrollbar is visible + this.$horizScroll = false; + this.$horizScrollAlwaysVisible = false; + + this.$animatedScroll = false; + + this.scrollBar = new ScrollBar(container); + this.scrollBar.addEventListener("scroll", function(e) { + if (!_self.$inScrollAnimation) + _self.session.setScrollTop(e.data); + }); + + this.scrollTop = 0; + this.scrollLeft = 0; + + event.addListener(this.scroller, "scroll", function() { + var scrollLeft = _self.scroller.scrollLeft; + _self.scrollLeft = scrollLeft; + _self.session.setScrollLeft(scrollLeft); + }); + + this.cursorPos = { + row : 0, + column : 0 + }; + + this.$textLayer.addEventListener("changeCharacterSize", function() { + _self.characterWidth = textLayer.getCharacterWidth(); + _self.lineHeight = textLayer.getLineHeight(); + _self.$updatePrintMargin(); + _self.onResize(true); + + _self.$loop.schedule(_self.CHANGE_FULL); + }); + + this.$size = { + width: 0, + height: 0, + scrollerHeight: 0, + scrollerWidth: 0 + }; + + this.layerConfig = { + width : 1, + padding : 0, + firstRow : 0, + firstRowScreen: 0, + lastRow : 0, + lineHeight : 1, + characterWidth : 1, + minHeight : 1, + maxHeight : 1, + offset : 0, + height : 1 + }; + + this.$loop = new RenderLoop( + this.$renderChanges.bind(this), + this.container.ownerDocument.defaultView + ); + this.$loop.schedule(this.CHANGE_FULL); + + this.setPadding(4); + this.$updatePrintMargin(); +}; + +(function() { + this.showGutter = true; + + this.CHANGE_CURSOR = 1; + this.CHANGE_MARKER = 2; + this.CHANGE_GUTTER = 4; + this.CHANGE_SCROLL = 8; + this.CHANGE_LINES = 16; + this.CHANGE_TEXT = 32; + this.CHANGE_SIZE = 64; + this.CHANGE_MARKER_BACK = 128; + this.CHANGE_MARKER_FRONT = 256; + this.CHANGE_FULL = 512; + this.CHANGE_H_SCROLL = 1024; + + oop.implement(this, EventEmitter); + this.setSession = function(session) { + this.session = session; + + this.scroller.className = "ace_scroller"; + + this.$cursorLayer.setSession(session); + this.$markerBack.setSession(session); + this.$markerFront.setSession(session); + this.$gutterLayer.setSession(session); + this.$textLayer.setSession(session); + this.$loop.schedule(this.CHANGE_FULL); + + }; + this.updateLines = function(firstRow, lastRow) { + if (lastRow === undefined) + lastRow = Infinity; + + if (!this.$changedLines) { + this.$changedLines = { + firstRow: firstRow, + lastRow: lastRow + }; + } + else { + if (this.$changedLines.firstRow > firstRow) + this.$changedLines.firstRow = firstRow; + + if (this.$changedLines.lastRow < lastRow) + this.$changedLines.lastRow = lastRow; + } + + this.$loop.schedule(this.CHANGE_LINES); + }; + this.updateText = function() { + this.$loop.schedule(this.CHANGE_TEXT); + }; + this.updateFull = function() { + this.$loop.schedule(this.CHANGE_FULL); + }; + this.updateFontSize = function() { + this.$textLayer.checkForSizeChanges(); + }; + this.onResize = function(force) { + var changes = this.CHANGE_SIZE; + var size = this.$size; + + var height = dom.getInnerHeight(this.container); + if (force || size.height != height) { + size.height = height; + + this.scroller.style.height = height + "px"; + size.scrollerHeight = this.scroller.clientHeight; + this.scrollBar.setHeight(size.scrollerHeight); + + if (this.session) { + this.session.setScrollTop(this.getScrollTop()); + changes = changes | this.CHANGE_FULL; + } + } + + var width = dom.getInnerWidth(this.container); + if (force || size.width != width) { + size.width = width; + + var gutterWidth = this.showGutter ? this.$gutter.offsetWidth : 0; + this.scroller.style.left = gutterWidth + "px"; + size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBar.getWidth()); + this.scroller.style.width = size.scrollerWidth + "px"; + + if (this.session.getUseWrapMode() && this.adjustWrapLimit() || force) + changes = changes | this.CHANGE_FULL; + } + + this.$loop.schedule(changes); + }; + this.adjustWrapLimit = function() { + var availableWidth = this.$size.scrollerWidth - this.$padding * 2; + var limit = Math.floor(availableWidth / this.characterWidth); + return this.session.adjustWrapLimit(limit); + }; + this.setAnimatedScroll = function(shouldAnimate){ + this.$animatedScroll = shouldAnimate; + }; + this.getAnimatedScroll = function() { + return this.$animatedScroll; + }; + this.setShowInvisibles = function(showInvisibles) { + if (this.$textLayer.setShowInvisibles(showInvisibles)) + this.$loop.schedule(this.CHANGE_TEXT); + }; + this.getShowInvisibles = function() { + return this.$textLayer.showInvisibles; + }; + + this.$showPrintMargin = true; + this.setShowPrintMargin = function(showPrintMargin) { + this.$showPrintMargin = showPrintMargin; + this.$updatePrintMargin(); + }; + this.getShowPrintMargin = function() { + return this.$showPrintMargin; + }; + + this.$printMarginColumn = 80; + this.setPrintMarginColumn = function(showPrintMargin) { + this.$printMarginColumn = showPrintMargin; + this.$updatePrintMargin(); + }; + this.getPrintMarginColumn = function() { + return this.$printMarginColumn; + }; + this.getShowGutter = function(){ + return this.showGutter; + }; + this.setShowGutter = function(show){ + if(this.showGutter === show) + return; + this.$gutter.style.display = show ? "block" : "none"; + this.showGutter = show; + this.onResize(true); + }; + + this.getFadeFoldWidgets = function(){ + return dom.hasCssClass(this.$gutter, "ace_fade-fold-widgets"); + }; + + this.setFadeFoldWidgets = function(show) { + if (show) + dom.addCssClass(this.$gutter, "ace_fade-fold-widgets"); + else + dom.removeCssClass(this.$gutter, "ace_fade-fold-widgets"); + }; + + this.$highlightGutterLine = false; + this.setHighlightGutterLine = function(shouldHighlight) { + // adding this element to gutter causes strange behavior on ie + if (useragent.isIE) + return; + + if (this.$highlightGutterLine == shouldHighlight) + return; + this.$highlightGutterLine = shouldHighlight; + + + if (!this.$gutterLineHighlight) { + this.$gutterLineHighlight = dom.createElement("div"); + this.$gutterLineHighlight.className = "ace_gutter_active_line"; + this.$gutter.appendChild(this.$gutterLineHighlight); + return; + } + + this.$gutterLineHighlight.style.display = shouldHighlight ? "" : "none"; + this.$updateGutterLineHighlight(); + }; + + this.getHighlightGutterLine = function() { + return this.$highlightGutterLine; + }; + + this.$updateGutterLineHighlight = function() { + this.$gutterLineHighlight.style.top = this.$cursorLayer.$pixelPos.top - this.layerConfig.offset + "px"; + this.$gutterLineHighlight.style.height = this.layerConfig.lineHeight + "px"; + }; + + this.$updatePrintMargin = function() { + var containerEl; + + if (!this.$showPrintMargin && !this.$printMarginEl) + return; + + if (!this.$printMarginEl) { + containerEl = dom.createElement("div"); + containerEl.className = "ace_print_margin_layer"; + this.$printMarginEl = dom.createElement("div"); + this.$printMarginEl.className = "ace_print_margin"; + containerEl.appendChild(this.$printMarginEl); + this.content.insertBefore(containerEl, this.$textLayer.element); + } + + var style = this.$printMarginEl.style; + style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + "px"; + style.visibility = this.$showPrintMargin ? "visible" : "hidden"; + }; + this.getContainerElement = function() { + return this.container; + }; + this.getMouseEventTarget = function() { + return this.content; + }; + this.getTextAreaContainer = function() { + return this.container; + }; + + // move text input over the cursor + // this is required for iOS and IME + this.$moveTextAreaToCursor = function() { + if (!this.$keepTextAreaAtCursor) + return; + + var posTop = this.$cursorLayer.$pixelPos.top; + var posLeft = this.$cursorLayer.$pixelPos.left; + posTop -= this.layerConfig.offset; + + if (posTop < 0 || posTop > this.layerConfig.height) + return; + + posLeft += (this.showGutter ? this.$gutterLayer.gutterWidth : 0) - this.scrollLeft; + var bounds = this.container.getBoundingClientRect(); + this.textarea.style.left = (bounds.left + posLeft) + "px"; + this.textarea.style.top = (bounds.top + posTop) + "px"; + }; + this.getFirstVisibleRow = function() { + return this.layerConfig.firstRow; + }; + this.getFirstFullyVisibleRow = function() { + return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1); + }; + this.getLastFullyVisibleRow = function() { + var flint = Math.floor((this.layerConfig.height + this.layerConfig.offset) / this.layerConfig.lineHeight); + return this.layerConfig.firstRow - 1 + flint; + }; + this.getLastVisibleRow = function() { + return this.layerConfig.lastRow; + }; + + this.$padding = null; + this.setPadding = function(padding) { + this.$padding = padding; + this.$textLayer.setPadding(padding); + this.$cursorLayer.setPadding(padding); + this.$markerFront.setPadding(padding); + this.$markerBack.setPadding(padding); + this.$loop.schedule(this.CHANGE_FULL); + this.$updatePrintMargin(); + }; + this.getHScrollBarAlwaysVisible = function() { + return this.$horizScrollAlwaysVisible; + }; + this.setHScrollBarAlwaysVisible = function(alwaysVisible) { + if (this.$horizScrollAlwaysVisible != alwaysVisible) { + this.$horizScrollAlwaysVisible = alwaysVisible; + if (!this.$horizScrollAlwaysVisible || !this.$horizScroll) + this.$loop.schedule(this.CHANGE_SCROLL); + } + }; + + this.$updateScrollBar = function() { + this.scrollBar.setInnerHeight(this.layerConfig.maxHeight); + this.scrollBar.setScrollTop(this.scrollTop); + }; + + this.$renderChanges = function(changes) { + if (!changes || !this.session || !this.container.offsetWidth) + return; + + // text, scrolling and resize changes can cause the view port size to change + if (changes & this.CHANGE_FULL || + changes & this.CHANGE_SIZE || + changes & this.CHANGE_TEXT || + changes & this.CHANGE_LINES || + changes & this.CHANGE_SCROLL + ) + this.$computeLayerConfig(); + + // horizontal scrolling + if (changes & this.CHANGE_H_SCROLL) { + this.scroller.scrollLeft = this.scrollLeft; + + // read the value after writing it since the value might get clipped + var scrollLeft = this.scroller.scrollLeft; + this.scrollLeft = scrollLeft; + this.session.setScrollLeft(scrollLeft); + + this.scroller.className = this.scrollLeft == 0 ? "ace_scroller" : "ace_scroller horscroll"; + } + + // full + if (changes & this.CHANGE_FULL) { + this.$textLayer.checkForSizeChanges(); + // update scrollbar first to not lose scroll position when gutter calls resize + this.$updateScrollBar(); + this.$textLayer.update(this.layerConfig); + if (this.showGutter) + this.$gutterLayer.update(this.layerConfig); + this.$markerBack.update(this.layerConfig); + this.$markerFront.update(this.layerConfig); + this.$cursorLayer.update(this.layerConfig); + this.$moveTextAreaToCursor(); + this.$highlightGutterLine && this.$updateGutterLineHighlight(); + return; + } + + // scrolling + if (changes & this.CHANGE_SCROLL) { + this.$updateScrollBar(); + if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES) + this.$textLayer.update(this.layerConfig); + else + this.$textLayer.scrollLines(this.layerConfig); + + if (this.showGutter) + this.$gutterLayer.update(this.layerConfig); + this.$markerBack.update(this.layerConfig); + this.$markerFront.update(this.layerConfig); + this.$cursorLayer.update(this.layerConfig); + this.$moveTextAreaToCursor(); + this.$highlightGutterLine && this.$updateGutterLineHighlight(); + return; + } + + if (changes & this.CHANGE_TEXT) { + this.$textLayer.update(this.layerConfig); + if (this.showGutter) + this.$gutterLayer.update(this.layerConfig); + } + else if (changes & this.CHANGE_LINES) { + if (this.$updateLines()) { + this.$updateScrollBar(); + if (this.showGutter) + this.$gutterLayer.update(this.layerConfig); + } + } else if (changes & this.CHANGE_GUTTER) { + if (this.showGutter) + this.$gutterLayer.update(this.layerConfig); + } + + if (changes & this.CHANGE_CURSOR) { + this.$cursorLayer.update(this.layerConfig); + this.$moveTextAreaToCursor(); + this.$highlightGutterLine && this.$updateGutterLineHighlight(); + } + + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) { + this.$markerFront.update(this.layerConfig); + } + + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) { + this.$markerBack.update(this.layerConfig); + } + + if (changes & this.CHANGE_SIZE) + this.$updateScrollBar(); + }; + + this.$computeLayerConfig = function() { + var session = this.session; + + var offset = this.scrollTop % this.lineHeight; + var minHeight = this.$size.scrollerHeight + this.lineHeight; + + var longestLine = this.$getLongestLine(); + + var horizScroll = this.$horizScrollAlwaysVisible || this.$size.scrollerWidth - longestLine < 0; + var horizScrollChanged = this.$horizScroll !== horizScroll; + this.$horizScroll = horizScroll; + if (horizScrollChanged) { + this.scroller.style.overflowX = horizScroll ? "scroll" : "hidden"; + // when we hide scrollbar scroll event isn't emited + // leaving session with wrong scrollLeft value + if (!horizScroll) + this.session.setScrollLeft(0); + } + var maxHeight = this.session.getScreenLength() * this.lineHeight; + this.session.setScrollTop(Math.max(0, Math.min(this.scrollTop, maxHeight - this.$size.scrollerHeight))); + + var lineCount = Math.ceil(minHeight / this.lineHeight) - 1; + var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight)); + var lastRow = firstRow + lineCount; + + // Map lines on the screen to lines in the document. + var firstRowScreen, firstRowHeight; + var lineHeight = { lineHeight: this.lineHeight }; + firstRow = session.screenToDocumentRow(firstRow, 0); + + // Check if firstRow is inside of a foldLine. If true, then use the first + // row of the foldLine. + var foldLine = session.getFoldLine(firstRow); + if (foldLine) { + firstRow = foldLine.start.row; + } + + firstRowScreen = session.documentToScreenRow(firstRow, 0); + firstRowHeight = session.getRowHeight(lineHeight, firstRow); + + lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1); + minHeight = this.$size.scrollerHeight + session.getRowHeight(lineHeight, lastRow)+ + firstRowHeight; + + offset = this.scrollTop - firstRowScreen * this.lineHeight; + + this.layerConfig = { + width : longestLine, + padding : this.$padding, + firstRow : firstRow, + firstRowScreen: firstRowScreen, + lastRow : lastRow, + lineHeight : this.lineHeight, + characterWidth : this.characterWidth, + minHeight : minHeight, + maxHeight : maxHeight, + offset : offset, + height : this.$size.scrollerHeight + }; + + // For debugging. + // console.log(JSON.stringify(this.layerConfig)); + + this.$gutterLayer.element.style.marginTop = (-offset) + "px"; + this.content.style.marginTop = (-offset) + "px"; + this.content.style.width = longestLine + 2 * this.$padding + "px"; + this.content.style.height = minHeight + "px"; + + // Horizontal scrollbar visibility may have changed, which changes + // the client height of the scroller + if (horizScrollChanged) + this.onResize(true); + }; + + this.$updateLines = function() { + var firstRow = this.$changedLines.firstRow; + var lastRow = this.$changedLines.lastRow; + this.$changedLines = null; + + var layerConfig = this.layerConfig; + + // if the update changes the width of the document do a full redraw + if (layerConfig.width != this.$getLongestLine()) + return this.$textLayer.update(layerConfig); + + if (firstRow > layerConfig.lastRow + 1) { return; } + if (lastRow < layerConfig.firstRow) { return; } + + // if the last row is unknown -> redraw everything + if (lastRow === Infinity) { + if (this.showGutter) + this.$gutterLayer.update(layerConfig); + this.$textLayer.update(layerConfig); + return; + } + + // else update only the changed rows + this.$textLayer.updateLines(layerConfig, firstRow, lastRow); + return true; + }; + + this.$getLongestLine = function() { + var charCount = this.session.getScreenWidth(); + if (this.$textLayer.showInvisibles) + charCount += 1; + + return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth)); + }; + this.updateFrontMarkers = function() { + this.$markerFront.setMarkers(this.session.getMarkers(true)); + this.$loop.schedule(this.CHANGE_MARKER_FRONT); + }; + this.updateBackMarkers = function() { + this.$markerBack.setMarkers(this.session.getMarkers()); + this.$loop.schedule(this.CHANGE_MARKER_BACK); + }; + this.addGutterDecoration = function(row, className){ + this.$gutterLayer.addGutterDecoration(row, className); + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.removeGutterDecoration = function(row, className){ + this.$gutterLayer.removeGutterDecoration(row, className); + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.setBreakpoints = function(rows) { + this.$gutterLayer.setBreakpoints(rows); + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.setAnnotations = function(annotations) { + this.$gutterLayer.setAnnotations(annotations); + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.updateCursor = function() { + this.$loop.schedule(this.CHANGE_CURSOR); + }; + this.hideCursor = function() { + this.$cursorLayer.hideCursor(); + }; + this.showCursor = function() { + this.$cursorLayer.showCursor(); + }; + + this.scrollSelectionIntoView = function(anchor, lead, offset) { + // first scroll anchor into view then scroll lead into view + this.scrollCursorIntoView(anchor, offset); + this.scrollCursorIntoView(lead, offset); + }; + this.scrollCursorIntoView = function(cursor, offset) { + // the editor is not visible + if (this.$size.scrollerHeight === 0) + return; + + var pos = this.$cursorLayer.getPixelPosition(cursor); + + var left = pos.left; + var top = pos.top; + + if (this.scrollTop > top) { + if (offset) + top -= offset * this.$size.scrollerHeight; + this.session.setScrollTop(top); + } else if (this.scrollTop + this.$size.scrollerHeight < top + this.lineHeight) { + if (offset) + top += offset * this.$size.scrollerHeight; + this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight); + } + + var scrollLeft = this.scrollLeft; + + if (scrollLeft > left) { + if (left < this.$padding + 2 * this.layerConfig.characterWidth) + left = 0; + this.session.setScrollLeft(left); + } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) { + this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth)); + } + }; + this.getScrollTop = function() { + return this.session.getScrollTop(); + }; + this.getScrollLeft = function() { + return this.session.getScrollLeft(); + }; + this.getScrollTopRow = function() { + return this.scrollTop / this.lineHeight; + }; + this.getScrollBottomRow = function() { + return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1); + }; + this.scrollToRow = function(row) { + this.session.setScrollTop(row * this.lineHeight); + }; + + this.alignCursor = function(cursor, alignment) { + if (typeof cursor == "number") + cursor = {row: cursor, column: 0}; + + var pos = this.$cursorLayer.getPixelPosition(cursor); + var offset = pos.top - this.$size.scrollerHeight * (alignment || 0); + + this.session.setScrollTop(offset); + }; + + this.STEPS = 8; + this.$calcSteps = function(fromValue, toValue){ + var i = 0; + var l = this.STEPS; + var steps = []; + + var func = function(t, x_min, dx) { + return dx * (Math.pow(t - 1, 3) + 1) + x_min; + }; + + for (i = 0; i < l; ++i) + steps.push(func(i / this.STEPS, fromValue, toValue - fromValue)); + + return steps; + }; + this.scrollToLine = function(line, center, animate, callback) { + var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0}); + var offset = pos.top; + if (center) + offset -= this.$size.scrollerHeight / 2; + + var initialScroll = this.scrollTop; + this.session.setScrollTop(offset); + if (animate !== false) + this.animateScrolling(initialScroll, callback); + }; + + this.animateScrolling = function(fromValue, callback) { + var toValue = this.scrollTop; + if (this.$animatedScroll && Math.abs(fromValue - toValue) < 100000) { + var _self = this; + var steps = _self.$calcSteps(fromValue, toValue); + this.$inScrollAnimation = true; + + clearInterval(this.$timer); + + _self.session.setScrollTop(steps.shift()); + this.$timer = setInterval(function() { + if (steps.length) { + _self.session.setScrollTop(steps.shift()); + // trick session to think it's already scrolled to not loose toValue + _self.session.$scrollTop = toValue; + } else { + _self.$inScrollAnimation = false; + clearInterval(_self.$timer); + + _self.session.$scrollTop = -1; + _self.session.setScrollTop(toValue); + callback && callback(); + } + }, 10); + } + }; + this.scrollToY = function(scrollTop) { + // after calling scrollBar.setScrollTop + // scrollbar sends us event with same scrollTop. ignore it + if (this.scrollTop !== scrollTop) { + this.$loop.schedule(this.CHANGE_SCROLL); + this.scrollTop = scrollTop; + } + }; + this.scrollToX = function(scrollLeft) { + if (scrollLeft < 0) + scrollLeft = 0; + + if (this.scrollLeft !== scrollLeft) + this.scrollLeft = scrollLeft; + this.$loop.schedule(this.CHANGE_H_SCROLL); + }; + this.scrollBy = function(deltaX, deltaY) { + deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY); + deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX); + }; + this.isScrollableBy = function(deltaX, deltaY) { + if (deltaY < 0 && this.session.getScrollTop() > 0) + return true; + if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight < this.layerConfig.maxHeight) + return true; + // todo: handle horizontal scrolling + }; + + this.pixelToScreenCoordinates = function(x, y) { + var canvasPos = this.scroller.getBoundingClientRect(); + + var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth; + var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight); + var col = Math.round(offset); + + return {row: row, column: col, side: offset - col > 0 ? 1 : -1}; + }; + + this.screenToTextCoordinates = function(x, y) { + var canvasPos = this.scroller.getBoundingClientRect(); + + var col = Math.round( + (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth + ); + var row = Math.floor( + (y + this.scrollTop - canvasPos.top) / this.lineHeight + ); + + return this.session.screenToDocumentPosition(row, Math.max(col, 0)); + }; + this.textToScreenCoordinates = function(row, column) { + var canvasPos = this.scroller.getBoundingClientRect(); + var pos = this.session.documentToScreenPosition(row, column); + + var x = this.$padding + Math.round(pos.column * this.characterWidth); + var y = pos.row * this.lineHeight; + + return { + pageX: canvasPos.left + x - this.scrollLeft, + pageY: canvasPos.top + y - this.scrollTop + }; + }; + this.visualizeFocus = function() { + dom.addCssClass(this.container, "ace_focus"); + }; + this.visualizeBlur = function() { + dom.removeCssClass(this.container, "ace_focus"); + }; + this.showComposition = function(position) { + if (!this.$composition) { + this.$composition = dom.createElement("div"); + this.$composition.className = "ace_composition"; + this.content.appendChild(this.$composition); + } + + this.$composition.innerHTML = " "; + + var pos = this.$cursorLayer.getPixelPosition(); + var style = this.$composition.style; + style.top = pos.top + "px"; + style.left = (pos.left + this.$padding) + "px"; + style.height = this.lineHeight + "px"; + + this.hideCursor(); + }; + this.setCompositionText = function(text) { + dom.setInnerText(this.$composition, text); + }; + this.hideComposition = function() { + this.showCursor(); + + if (!this.$composition) + return; + + var style = this.$composition.style; + style.top = "-10000px"; + style.left = "-10000px"; + }; + + this._loadTheme = function(name, callback) { + if (!config.get("packaged")) + return callback(); + + var base = name.split("/").pop(); + var filename = config.get("themePath") + "/theme-" + base + config.get("suffix"); + net.loadScript(filename, callback); + }; + this.setTheme = function(theme) { + var _self = this; + + this.$themeValue = theme; + if (!theme || typeof theme == "string") { + var moduleName = theme || "ace/theme/textmate"; + + var module; + try { + module = require(moduleName); + } catch (e) {}; + if (module) + return afterLoad(module); + + _self._loadTheme(moduleName, function() { + require([moduleName], function(module) { + if (_self.$themeValue !== theme) + return; + + afterLoad(module); + }); + }); + } else { + afterLoad(theme); + } + + function afterLoad(theme) { + dom.importCssString( + theme.cssText, + theme.cssClass, + _self.container.ownerDocument + ); + + if (_self.$theme) + dom.removeCssClass(_self.container, _self.$theme); + + _self.$theme = theme ? theme.cssClass : null; + + if (_self.$theme) + dom.addCssClass(_self.container, _self.$theme); + + if (theme && theme.isDark) + dom.addCssClass(_self.container, "ace_dark"); + else + dom.removeCssClass(_self.container, "ace_dark"); + + // force re-measure of the gutter width + if (_self.$size) { + _self.$size.width = 0; + _self.onResize(); + } + } + }; + this.getTheme = function() { + return this.$themeValue; + }; + + // Methods allows to add / remove CSS classnames to the editor element. + // This feature can be used by plug-ins to provide a visual indication of + // a certain mode that editor is in. + + /** + * VirtualRenderer.setStyle(style) -> Void + * - style (String): A class name + * + * [Adds a new class, `style`, to the editor.]{: #VirtualRenderer.setStyle} + **/ + this.setStyle = function setStyle(style) { + dom.addCssClass(this.container, style); + }; + this.unsetStyle = function unsetStyle(style) { + dom.removeCssClass(this.container, style); + }; + this.destroy = function() { + this.$textLayer.destroy(); + this.$cursorLayer.destroy(); + }; + +}).call(VirtualRenderer.prototype); + +exports.VirtualRenderer = VirtualRenderer; +}); + +define('ace/layer/gutter', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var dom = require("../lib/dom"); +var oop = require("../lib/oop"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var Gutter = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_gutter-layer"; + parentEl.appendChild(this.element); + this.setShowFoldWidgets(this.$showFoldWidgets); + + this.gutterWidth = 0; + + this.$breakpoints = []; + this.$annotations = []; + this.$decorations = []; +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.setSession = function(session) { + this.session = session; + }; + + this.addGutterDecoration = function(row, className){ + if (!this.$decorations[row]) + this.$decorations[row] = ""; + this.$decorations[row] += " " + className; + }; + + this.removeGutterDecoration = function(row, className){ + this.$decorations[row] = this.$decorations[row].replace(" " + className, ""); + }; + + this.setBreakpoints = function(rows) { + this.$breakpoints = rows.concat(); + }; + + this.setAnnotations = function(annotations) { + // iterate over sparse array + this.$annotations = []; + for (var row in annotations) if (annotations.hasOwnProperty(row)) { + var rowAnnotations = annotations[row]; + if (!rowAnnotations) + continue; + + var rowInfo = this.$annotations[row] = { + text: [] + }; + for (var i=0; i foldStart) { + i = fold.end.row + 1; + fold = this.session.getNextFoldLine(i, fold); + foldStart = fold ?fold.start.row :Infinity; + } + if(i > lastRow) + break; + + var annotation = this.$annotations[i] || emptyAnno; + html.push("
", (i+1)); + + if (foldWidgets) { + var c = foldWidgets[i]; + // check if cached value is invalidated and we need to recompute + if (c == null) + c = foldWidgets[i] = this.session.getFoldWidget(i); + if (c) + html.push( + "" + ); + } + + var wrappedRowLength = this.session.getRowLength(i) - 1; + while (wrappedRowLength--) { + html.push("
\xA6"); + } + + html.push("
"); + + i++; + } + this.element = dom.setInnerHtml(this.element, html.join("")); + this.element.style.height = config.minHeight + "px"; + + var gutterWidth = this.element.offsetWidth; + if (gutterWidth !== this.gutterWidth) { + this.gutterWidth = gutterWidth; + this._emit("changeGutterWidth", gutterWidth); + } + }; + + this.$showFoldWidgets = true; + this.setShowFoldWidgets = function(show) { + if (show) + dom.addCssClass(this.element, "ace_folding-enabled"); + else + dom.removeCssClass(this.element, "ace_folding-enabled"); + + this.$showFoldWidgets = show; + }; + + this.getShowFoldWidgets = function() { + return this.$showFoldWidgets; + }; + +}).call(Gutter.prototype); + +exports.Gutter = Gutter; + +}); + +define('ace/layer/marker', ['require', 'exports', 'module' , 'ace/range', 'ace/lib/dom'], function(require, exports, module) { + + +var Range = require("../range").Range; +var dom = require("../lib/dom"); + +var Marker = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_marker-layer"; + parentEl.appendChild(this.element); +}; + +(function() { + + this.$padding = 0; + + this.setPadding = function(padding) { + this.$padding = padding; + }; + this.setSession = function(session) { + this.session = session; + }; + + this.setMarkers = function(markers) { + this.markers = markers; + }; + + this.update = function(config) { + var config = config || this.config; + if (!config) + return; + + this.config = config; + + + var html = []; + for ( var key in this.markers) { + var marker = this.markers[key]; + + var range = marker.range.clipRows(config.firstRow, config.lastRow); + if (range.isEmpty()) continue; + + range = range.toScreenRange(this.session); + if (marker.renderer) { + var top = this.$getTop(range.start.row, config); + var left = Math.round( + this.$padding + range.start.column * config.characterWidth + ); + marker.renderer(html, range, left, top, config); + } + else if (range.isMultiLine()) { + if (marker.type == "text") { + this.drawTextMarker(html, range, marker.clazz, config); + } else { + this.drawMultiLineMarker( + html, range, marker.clazz, config, + marker.type + ); + } + } + else { + this.drawSingleLineMarker( + html, range, marker.clazz + " start", config, + null, marker.type + ); + } + } + this.element = dom.setInnerHtml(this.element, html.join("")); + }; + + this.$getTop = function(row, layerConfig) { + return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight; + }; + + // Draws a marker, which spans a range of text on multiple lines + this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig) { + // selection start + var row = range.start.row; + + var lineRange = new Range( + row, range.start.column, + row, this.session.getScreenLastRowColumn(row) + ); + this.drawSingleLineMarker(stringBuilder, lineRange, clazz + " start", layerConfig, 1, "text"); + + // selection end + row = range.end.row; + lineRange = new Range(row, 0, row, range.end.column); + this.drawSingleLineMarker(stringBuilder, lineRange, clazz, layerConfig, 0, "text"); + + for (row = range.start.row + 1; row < range.end.row; row++) { + lineRange.start.row = row; + lineRange.end.row = row; + lineRange.end.column = this.session.getScreenLastRowColumn(row); + this.drawSingleLineMarker(stringBuilder, lineRange, clazz, layerConfig, 1, "text"); + } + }; + + // Draws a multi line marker, where lines span the full width + this.drawMultiLineMarker = function(stringBuilder, range, clazz, layerConfig, type) { + var padding = type === "background" ? 0 : this.$padding; + var layerWidth = layerConfig.width + 2 * this.$padding - padding; + // from selection start to the end of the line + var height = layerConfig.lineHeight; + var width = Math.round(layerWidth - (range.start.column * layerConfig.characterWidth)); + var top = this.$getTop(range.start.row, layerConfig); + var left = Math.round( + padding + range.start.column * layerConfig.characterWidth + ); + + stringBuilder.push( + "
" + ); + + // from start of the last line to the selection end + top = this.$getTop(range.end.row, layerConfig); + width = Math.round(range.end.column * layerConfig.characterWidth); + + stringBuilder.push( + "
" + ); + + // all the complete lines + height = (range.end.row - range.start.row - 1) * layerConfig.lineHeight; + if (height < 0) + return; + top = this.$getTop(range.start.row + 1, layerConfig); + + stringBuilder.push( + "
" + ); + }; + + // Draws a marker which covers part or whole width of a single screen line + this.drawSingleLineMarker = function(stringBuilder, range, clazz, layerConfig, extraLength, type) { + var padding = type === "background" ? 0 : this.$padding; + var height = layerConfig.lineHeight; + + if (type === "background") + var width = layerConfig.width; + else + width = Math.round((range.end.column + (extraLength || 0) - range.start.column) * layerConfig.characterWidth); + + var top = this.$getTop(range.start.row, layerConfig); + var left = Math.round( + padding + range.start.column * layerConfig.characterWidth + ); + + stringBuilder.push( + "
" + ); + }; + +}).call(Marker.prototype); + +exports.Marker = Marker; + +}); + +define('ace/layer/text', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/useragent', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var useragent = require("../lib/useragent"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var Text = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_text-layer"; + parentEl.appendChild(this.element); + + this.$characterSize = this.$measureSizes() || {width: 0, height: 0}; + this.$pollSizeChanges(); +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.EOF_CHAR = "\xB6"; //"¶"; + this.EOL_CHAR = "\xAC"; //"¬"; + this.TAB_CHAR = "\u2192"; //"→" "\u21E5"; + this.SPACE_CHAR = "\xB7"; //"·"; + this.$padding = 0; + + this.setPadding = function(padding) { + this.$padding = padding; + this.element.style.padding = "0 " + padding + "px"; + }; + + this.getLineHeight = function() { + return this.$characterSize.height || 1; + }; + + this.getCharacterWidth = function() { + return this.$characterSize.width || 1; + }; + + this.checkForSizeChanges = function() { + var size = this.$measureSizes(); + if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) { + this.$characterSize = size; + this._emit("changeCharacterSize", {data: size}); + } + }; + + this.$pollSizeChanges = function() { + var self = this; + this.$pollSizeChangesTimer = setInterval(function() { + self.checkForSizeChanges(); + }, 500); + }; + + this.$fontStyles = { + fontFamily : 1, + fontSize : 1, + fontWeight : 1, + fontStyle : 1, + lineHeight : 1 + }; + + this.$measureSizes = useragent.isIE || useragent.isOldGecko ? function() { + var n = 1000; + if (!this.$measureNode) { + var measureNode = this.$measureNode = dom.createElement("div"); + var style = measureNode.style; + + style.width = style.height = "auto"; + style.left = style.top = (-n * 40) + "px"; + + style.visibility = "hidden"; + style.position = "fixed"; + style.overflow = "visible"; + style.whiteSpace = "nowrap"; + + // in FF 3.6 monospace fonts can have a fixed sub pixel width. + // that's why we have to measure many characters + // Note: characterWidth can be a float! + measureNode.innerHTML = lang.stringRepeat("Xy", n); + + if (this.element.ownerDocument.body) { + this.element.ownerDocument.body.appendChild(measureNode); + } else { + var container = this.element.parentNode; + while (!dom.hasCssClass(container, "ace_editor")) + container = container.parentNode; + container.appendChild(measureNode); + } + } + + // Size and width can be null if the editor is not visible or + // detached from the document + if (!this.element.offsetWidth) + return null; + + var style = this.$measureNode.style; + var computedStyle = dom.computedStyle(this.element); + for (var prop in this.$fontStyles) + style[prop] = computedStyle[prop]; + + var size = { + height: this.$measureNode.offsetHeight, + width: this.$measureNode.offsetWidth / (n * 2) + }; + + // Size and width can be null if the editor is not visible or + // detached from the document + if (size.width == 0 || size.height == 0) + return null; + + return size; + } + : function() { + if (!this.$measureNode) { + var measureNode = this.$measureNode = dom.createElement("div"); + var style = measureNode.style; + + style.width = style.height = "auto"; + style.left = style.top = -100 + "px"; + + style.visibility = "hidden"; + style.position = "fixed"; + style.overflow = "visible"; + style.whiteSpace = "nowrap"; + + measureNode.innerHTML = "X"; + + var container = this.element.parentNode; + while (container && !dom.hasCssClass(container, "ace_editor")) + container = container.parentNode; + + if (!container) + return this.$measureNode = null; + + container.appendChild(measureNode); + } + + var rect = this.$measureNode.getBoundingClientRect(); + + var size = { + height: rect.height, + width: rect.width + }; + + // Size and width can be null if the editor is not visible or + // detached from the document + if (size.width == 0 || size.height == 0) + return null; + + return size; + }; + + this.setSession = function(session) { + this.session = session; + }; + + this.showInvisibles = false; + this.setShowInvisibles = function(showInvisibles) { + if (this.showInvisibles == showInvisibles) + return false; + + this.showInvisibles = showInvisibles; + return true; + }; + + this.$tabStrings = []; + this.$computeTabString = function() { + var tabSize = this.session.getTabSize(); + var tabStr = this.$tabStrings = [0]; + for (var i = 1; i < tabSize + 1; i++) { + if (this.showInvisibles) { + tabStr.push("" + + this.TAB_CHAR + + new Array(i).join(" ") + + ""); + } else { + tabStr.push(new Array(i+1).join(" ")); + } + } + + }; + + this.updateLines = function(config, firstRow, lastRow) { + this.$computeTabString(); + // Due to wrap line changes there can be new lines if e.g. + // the line to updated wrapped in the meantime. + if (this.config.lastRow != config.lastRow || + this.config.firstRow != config.firstRow) { + this.scrollLines(config); + } + this.config = config; + + var first = Math.max(firstRow, config.firstRow); + var last = Math.min(lastRow, config.lastRow); + + var lineElements = this.element.childNodes; + var lineElementsIdx = 0; + + for (var row = config.firstRow; row < first; row++) { + var foldLine = this.session.getFoldLine(row); + if (foldLine) { + if (foldLine.containsRow(first)) { + first = foldLine.start.row; + break; + } else { + row = foldLine.end.row; + } + } + lineElementsIdx ++; + } + + for (var i=first; i<=last; i++) { + var lineElement = lineElements[lineElementsIdx++]; + if (!lineElement) + continue; + + var html = []; + var tokens = this.session.getTokens(i, i); + this.$renderLine(html, i, tokens[0].tokens, !this.$useLineGroups()); + lineElement = dom.setInnerHtml(lineElement, html.join("")); + + i = this.session.getRowFoldEnd(i); + } + }; + + this.scrollLines = function(config) { + this.$computeTabString(); + var oldConfig = this.config; + this.config = config; + + if (!oldConfig || oldConfig.lastRow < config.firstRow) + return this.update(config); + + if (config.lastRow < oldConfig.firstRow) + return this.update(config); + + var el = this.element; + if (oldConfig.firstRow < config.firstRow) + for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--) + el.removeChild(el.firstChild); + + if (oldConfig.lastRow > config.lastRow) + for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--) + el.removeChild(el.lastChild); + + if (config.firstRow < oldConfig.firstRow) { + var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1); + if (el.firstChild) + el.insertBefore(fragment, el.firstChild); + else + el.appendChild(fragment); + } + + if (config.lastRow > oldConfig.lastRow) { + var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow); + el.appendChild(fragment); + } + }; + + this.$renderLinesFragment = function(config, firstRow, lastRow) { + var fragment = this.element.ownerDocument.createDocumentFragment(); + var row = firstRow; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + if (row > lastRow) + break; + + var container = dom.createElement("div"); + + var html = []; + // Get the tokens per line as there might be some lines in between + // beeing folded. + // OPTIMIZE: If there is a long block of unfolded lines, just make + // this call once for that big block of unfolded lines. + var tokens = this.session.getTokens(row, row); + if (tokens.length == 1) + this.$renderLine(html, row, tokens[0].tokens, false); + + // don't use setInnerHtml since we are working with an empty DIV + container.innerHTML = html.join(""); + if (this.$useLineGroups()) { + container.className = 'ace_line_group'; + fragment.appendChild(container); + } else { + var lines = container.childNodes + while(lines.length) + fragment.appendChild(lines[0]); + } + + row++; + } + return fragment; + }; + + this.update = function(config) { + this.$computeTabString(); + this.config = config; + + var html = []; + var firstRow = config.firstRow, lastRow = config.lastRow; + + var row = firstRow; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row :Infinity; + } + if (row > lastRow) + break; + + if (this.$useLineGroups()) + html.push("
") + + // Get the tokens per line as there might be some lines in between + // beeing folded. + // OPTIMIZE: If there is a long block of unfolded lines, just make + // this call once for that big block of unfolded lines. + var tokens = this.session.getTokens(row, row); + if (tokens.length == 1) + this.$renderLine(html, row, tokens[0].tokens, false); + + if (this.$useLineGroups()) + html.push("
"); // end the line group + + row++; + } + this.element = dom.setInnerHtml(this.element, html.join("")); + }; + + this.$textToken = { + "text": true, + "rparen": true, + "lparen": true + }; + + this.$renderToken = function(stringBuilder, screenColumn, token, value) { + var self = this; + var replaceReg = /\t|&|<|( +)|([\u0000-\u0019\u00a0\u1680\u180E\u2000-\u200b\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g; + var replaceFunc = function(c, a, b, tabIdx, idx4) { + if (a) { + return new Array(c.length+1).join(" "); + } else if (c == "&") { + return "&"; + } else if (c == "<") { + return "<"; + } else if (c == "\t") { + var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx); + screenColumn += tabSize - 1; + return self.$tabStrings[tabSize]; + } else if (c == "\u3000") { + // U+3000 is both invisible AND full-width, so must be handled uniquely + var classToUse = self.showInvisibles ? "ace_cjk ace_invisible" : "ace_cjk"; + var space = self.showInvisibles ? self.SPACE_CHAR : ""; + screenColumn += 1; + return "" + space + ""; + } else if (b) { + return "" + self.SPACE_CHAR + ""; + } else { + screenColumn += 1; + return "" + c + ""; + } + }; + + var output = value.replace(replaceReg, replaceFunc); + + if (!this.$textToken[token.type]) { + var classes = "ace_" + token.type.replace(/\./g, " ace_"); + var style = ""; + if (token.type == "fold") + style = " style='width:" + (token.value.length * this.config.characterWidth) + "px;' "; + stringBuilder.push("", output, ""); + } + else { + stringBuilder.push(output); + } + return screenColumn + value.length; + }; + + this.$renderLineCore = function(stringBuilder, lastRow, tokens, splits, onlyContents) { + var chars = 0; + var split = 0; + var splitChars; + var screenColumn = 0; + var self = this; + + if (!splits || splits.length == 0) + splitChars = Number.MAX_VALUE; + else + splitChars = splits[0]; + + if (!onlyContents) { + stringBuilder.push("
" + ); + } + + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + var value = token.value; + + if (chars + value.length < splitChars) { + screenColumn = self.$renderToken( + stringBuilder, screenColumn, token, value + ); + chars += value.length; + } + else { + while (chars + value.length >= splitChars) { + screenColumn = self.$renderToken( + stringBuilder, screenColumn, + token, value.substring(0, splitChars - chars) + ); + value = value.substring(splitChars - chars); + chars = splitChars; + + if (!onlyContents) { + stringBuilder.push("
", + "
" + ); + } + + split ++; + screenColumn = 0; + splitChars = splits[split] || Number.MAX_VALUE; + } + if (value.length != 0) { + chars += value.length; + screenColumn = self.$renderToken( + stringBuilder, screenColumn, token, value + ); + } + } + } + + if (this.showInvisibles) { + if (lastRow !== this.session.getLength() - 1) + stringBuilder.push("" + this.EOL_CHAR + ""); + else + stringBuilder.push("" + this.EOF_CHAR + ""); + } + if (!onlyContents) + stringBuilder.push("
"); + }; + + this.$renderLine = function(stringBuilder, row, tokens, onlyContents) { + // Check if the line to render is folded or not. If not, things are + // simple, otherwise, we need to fake some things... + if (!this.session.isRowFolded(row)) { + var splits = this.session.getRowSplitData(row); + this.$renderLineCore(stringBuilder, row, tokens, splits, onlyContents); + } else { + this.$renderFoldLine(stringBuilder, row, tokens, onlyContents); + } + }; + + this.$renderFoldLine = function(stringBuilder, row, tokens, onlyContents) { + var session = this.session, + foldLine = session.getFoldLine(row), + renderTokens = []; + + function addTokens(tokens, from, to) { + var idx = 0, col = 0; + while ((col + tokens[idx].value.length) < from) { + col += tokens[idx].value.length; + idx++; + + if (idx == tokens.length) { + return; + } + } + if (col != from) { + var value = tokens[idx].value.substring(from - col); + // Check if the token value is longer then the from...to spacing. + if (value.length > (to - from)) { + value = value.substring(0, to - from); + } + + renderTokens.push({ + type: tokens[idx].type, + value: value + }); + + col = from + value.length; + idx += 1; + } + + while (col < to) { + var value = tokens[idx].value; + if (value.length + col > to) { + value = value.substring(0, to - col); + } + renderTokens.push({ + type: tokens[idx].type, + value: value + }); + col += value.length; + idx += 1; + } + } + + foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) { + if (placeholder) { + renderTokens.push({ + type: "fold", + value: placeholder + }); + } else { + if (isNewRow) { + tokens = this.session.getTokens(row, row)[0].tokens; + } + if (tokens.length != 0) { + addTokens(tokens, lastColumn, column); + } + } + }.bind(this), foldLine.end.row, this.session.getLine(foldLine.end.row).length); + + // TODO: Build a fake splits array! + var splits = this.session.$useWrapMode?this.session.$wrapData[row]:null; + this.$renderLineCore(stringBuilder, row, renderTokens, splits, onlyContents); + }; + + this.$useLineGroups = function() { + // For the updateLines function to work correctly, it's important that the + // child nodes of this.element correspond on a 1-to-1 basis to rows in the + // document (as distinct from lines on the screen). For sessions that are + // wrapped, this means we need to add a layer to the node hierarchy (tagged + // with the class name ace_line_group). + return this.session.getUseWrapMode(); + }; + + this.destroy = function() { + clearInterval(this.$pollSizeChangesTimer); + if (this.$measureNode) + this.$measureNode.parentNode.removeChild(this.$measureNode); + delete this.$measureNode; + }; + +}).call(Text.prototype); + +exports.Text = Text; + +}); + +define('ace/layer/cursor', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + + +var dom = require("../lib/dom"); + +var Cursor = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_cursor-layer"; + parentEl.appendChild(this.element); + + this.isVisible = false; + + this.cursors = []; + this.cursor = this.addCursor(); +}; + +(function() { + + this.$padding = 0; + this.setPadding = function(padding) { + this.$padding = padding; + }; + + this.setSession = function(session) { + this.session = session; + }; + + this.addCursor = function() { + var el = dom.createElement("div"); + var className = "ace_cursor"; + if (!this.isVisible) + className += " ace_hidden"; + if (this.overwrite) + className += " ace_overwrite"; + + el.className = className; + this.element.appendChild(el); + this.cursors.push(el); + return el; + }; + + this.removeCursor = function() { + if (this.cursors.length > 1) { + var el = this.cursors.pop(); + el.parentNode.removeChild(el); + return el; + } + }; + + this.hideCursor = function() { + this.isVisible = false; + for (var i = this.cursors.length; i--; ) + dom.addCssClass(this.cursors[i], "ace_hidden"); + clearInterval(this.blinkId); + }; + + this.showCursor = function() { + this.isVisible = true; + for (var i = this.cursors.length; i--; ) + dom.removeCssClass(this.cursors[i], "ace_hidden"); + + this.element.style.visibility = ""; + this.restartTimer(); + }; + + this.restartTimer = function() { + clearInterval(this.blinkId); + if (!this.isVisible) + return; + + var element = this.cursors.length == 1 ? this.cursor : this.element; + this.blinkId = setInterval(function() { + element.style.visibility = "hidden"; + setTimeout(function() { + element.style.visibility = ""; + }, 400); + }, 1000); + }; + + this.getPixelPosition = function(position, onScreen) { + if (!this.config || !this.session) { + return { + left : 0, + top : 0 + }; + } + + if (!position) + position = this.session.selection.getCursor(); + var pos = this.session.documentToScreenPosition(position); + var cursorLeft = Math.round(this.$padding + + pos.column * this.config.characterWidth); + var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) * + this.config.lineHeight; + + return { + left : cursorLeft, + top : cursorTop + }; + }; + + this.update = function(config) { + this.config = config; + + if (this.session.selectionMarkerCount > 0) { + var selections = this.session.$selectionMarkers; + var i = 0, sel, cursorIndex = 0; + + for (var i = selections.length; i--; ) { + sel = selections[i]; + var pixelPos = this.getPixelPosition(sel.cursor, true); + + var style = (this.cursors[cursorIndex++] || this.addCursor()).style; + + style.left = pixelPos.left + "px"; + style.top = pixelPos.top + "px"; + style.width = config.characterWidth + "px"; + style.height = config.lineHeight + "px"; + } + if (cursorIndex > 1) + while (this.cursors.length > cursorIndex) + this.removeCursor(); + } else { + var pixelPos = this.getPixelPosition(null, true); + var style = this.cursor.style; + style.left = pixelPos.left + "px"; + style.top = pixelPos.top + "px"; + style.width = config.characterWidth + "px"; + style.height = config.lineHeight + "px"; + + while (this.cursors.length > 1) + this.removeCursor(); + } + + var overwrite = this.session.getOverwrite(); + if (overwrite != this.overwrite) + this.$setOverite(overwrite); + + // cache for textarea and gutter highlight + this.$pixelPos = pixelPos; + + this.restartTimer(); + }; + + this.$setOverite = function(overwrite) { + this.overwrite = overwrite; + for (var i = this.cursors.length; i--; ) { + if (overwrite) + dom.addCssClass(this.cursors[i], "ace_overwrite"); + else + dom.removeCssClass(this.cursors[i], "ace_overwrite"); + } + }; + + this.destroy = function() { + clearInterval(this.blinkId); + } + +}).call(Cursor.prototype); + +exports.Cursor = Cursor; + +}); + +define('ace/scrollbar', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/event', 'ace/lib/event_emitter'], function(require, exports, module) { + + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var event = require("./lib/event"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +/** + * new ScrollBar(parent) + * - parent (DOMElement): A DOM element + * + * Creates a new `ScrollBar`. `parent` is the owner of the scroll bar. + * + **/ +var ScrollBar = function(parent) { + this.element = dom.createElement("div"); + this.element.className = "ace_sb"; + + this.inner = dom.createElement("div"); + this.element.appendChild(this.inner); + + parent.appendChild(this.element); + + // in OSX lion the scrollbars appear to have no width. In this case resize + // the to show the scrollbar but still pretend that the scrollbar has a width + // of 0px + // in Firefox 6+ scrollbar is hidden if element has the same width as scrollbar + // make element a little bit wider to retain scrollbar when page is zoomed + this.width = dom.scrollbarWidth(parent.ownerDocument); + this.element.style.width = (this.width || 15) + 5 + "px"; + + event.addListener(this.element, "scroll", this.onScroll.bind(this)); +}; + +(function() { + oop.implement(this, EventEmitter); + this.onScroll = function() { + this._emit("scroll", {data: this.element.scrollTop}); + }; + this.getWidth = function() { + return this.width; + }; + this.setHeight = function(height) { + this.element.style.height = height + "px"; + }; + this.setInnerHeight = function(height) { + this.inner.style.height = height + "px"; + }; + // TODO: on chrome 17+ after for small zoom levels after this function + // this.element.scrollTop != scrollTop which makes page to scroll up. + this.setScrollTop = function(scrollTop) { + this.element.scrollTop = scrollTop; + }; + +}).call(ScrollBar.prototype); + +exports.ScrollBar = ScrollBar; +}); + +define('ace/renderloop', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) { + + +var event = require("./lib/event"); + +/** internal, hide + * new RenderLoop(onRender, win) + * + * + * +**/ +var RenderLoop = function(onRender, win) { + this.onRender = onRender; + this.pending = false; + this.changes = 0; + this.window = win || window; +}; + +(function() { + + /** internal, hide + * RenderLoop.schedule(change) + * - change (Array): + * + * + **/ + this.schedule = function(change) { + //this.onRender(change); + //return; + this.changes = this.changes | change; + if (!this.pending) { + this.pending = true; + var _self = this; + event.nextTick(function() { + _self.pending = false; + var changes; + while (changes = _self.changes) { + _self.changes = 0; + _self.onRender(changes); + } + }, this.window); + } + }; + +}).call(RenderLoop.prototype); + +exports.RenderLoop = RenderLoop; +}); +define("text!ace/css/editor.css", [], "\n" + + ".ace_editor {\n" + + " position: absolute;\n" + + " overflow: hidden;\n" + + " font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n" + + " font-size: 12px;\n" + + "}\n" + + "\n" + + ".ace_scroller {\n" + + " position: absolute;\n" + + " overflow: hidden;\n" + + "}\n" + + "\n" + + ".ace_content {\n" + + " position: absolute;\n" + + " box-sizing: border-box;\n" + + " -moz-box-sizing: border-box;\n" + + " -webkit-box-sizing: border-box;\n" + + " cursor: text;\n" + + "}\n" + + "\n" + + ".ace_composition {\n" + + " position: absolute;\n" + + " background: #555;\n" + + " color: #DDD;\n" + + " z-index: 4;\n" + + "}\n" + + "\n" + + ".ace_gutter {\n" + + " position: absolute;\n" + + " overflow : hidden;\n" + + " height: 100%;\n" + + " width: auto;\n" + + " cursor: default;\n" + + " z-index: 4;\n" + + "}\n" + + "\n" + + ".ace_gutter_active_line {\n" + + " position: absolute;\n" + + " right: 0;\n" + + " width: 100%;\n" + + "}\n" + + "\n" + + ".ace_scroller.horscroll {\n" + + " box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n" + + "}\n" + + "\n" + + ".ace_gutter-cell {\n" + + " padding-left: 19px;\n" + + " padding-right: 6px;\n" + + "}\n" + + "\n" + + ".ace_gutter-cell.ace_error {\n" + + " background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\");\n" + + " background-repeat: no-repeat;\n" + + " background-position: 2px center;\n" + + "}\n" + + "\n" + + ".ace_gutter-cell.ace_warning {\n" + + " background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\");\n" + + " background-repeat: no-repeat;\n" + + " background-position: 2px center;\n" + + "}\n" + + "\n" + + ".ace_gutter-cell.ace_info {\n" + + " background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n" + + " background-repeat: no-repeat;\n" + + " background-position: 2px center;\n" + + "}\n" + + "\n" + + ".ace_editor .ace_sb {\n" + + " position: absolute;\n" + + " overflow-x: hidden;\n" + + " overflow-y: scroll;\n" + + " right: 0;\n" + + "}\n" + + "\n" + + ".ace_editor .ace_sb div {\n" + + " position: absolute;\n" + + " width: 1px;\n" + + " left: 0;\n" + + "}\n" + + "\n" + + ".ace_editor .ace_print_margin_layer {\n" + + " z-index: 0;\n" + + " position: absolute;\n" + + " overflow: hidden;\n" + + " margin: 0;\n" + + " left: 0;\n" + + " height: 100%;\n" + + " width: 100%;\n" + + "}\n" + + "\n" + + ".ace_editor .ace_print_margin {\n" + + " position: absolute;\n" + + " height: 100%;\n" + + "}\n" + + "\n" + + ".ace_editor textarea {\n" + + " position: fixed;\n" + + " z-index: 0;\n" + + " width: 0.5em;\n" + + " height: 1em;\n" + + " opacity: 0;\n" + + " background: transparent;\n" + + " appearance: none;\n" + + " -moz-appearance: none;\n" + + " border: none;\n" + + " resize: none;\n" + + " outline: none;\n" + + " overflow: hidden;\n" + + "}\n" + + "\n" + + ".ace_layer {\n" + + " z-index: 1;\n" + + " position: absolute;\n" + + " overflow: hidden;\n" + + " white-space: nowrap;\n" + + " height: 100%;\n" + + " width: 100%;\n" + + " box-sizing: border-box;\n" + + " -moz-box-sizing: border-box;\n" + + " -webkit-box-sizing: border-box;\n" + + " /* setting pointer-events: auto; on node under the mouse, which changes\n" + + " during scroll, will break mouse wheel scrolling in Safari */\n" + + " pointer-events: none;\n" + + "}\n" + + "\n" + + ".ace_gutter .ace_layer {\n" + + " position: relative;\n" + + " min-width: 40px;\n" + + " text-align: right;\n" + + " pointer-events: auto;\n" + + "}\n" + + "\n" + + ".ace_text-layer {\n" + + " color: black;\n" + + " font: inherit !important;\n" + + "}\n" + + "\n" + + ".ace_cjk {\n" + + " display: inline-block;\n" + + " text-align: center;\n" + + "}\n" + + "\n" + + ".ace_cursor-layer {\n" + + " z-index: 4;\n" + + "}\n" + + "\n" + + ".ace_cursor {\n" + + " z-index: 4;\n" + + " position: absolute;\n" + + "}\n" + + "\n" + + ".ace_cursor.ace_hidden {\n" + + " opacity: 0.2;\n" + + "}\n" + + "\n" + + ".ace_editor.multiselect .ace_cursor {\n" + + " border-left-width: 1px;\n" + + "}\n" + + "\n" + + ".ace_line {\n" + + " white-space: nowrap;\n" + + "}\n" + + "\n" + + ".ace_marker-layer .ace_step {\n" + + " position: absolute;\n" + + " z-index: 3;\n" + + "}\n" + + "\n" + + ".ace_marker-layer .ace_selection {\n" + + " position: absolute;\n" + + " z-index: 5;\n" + + "}\n" + + "\n" + + ".ace_marker-layer .ace_bracket {\n" + + " position: absolute;\n" + + " z-index: 6;\n" + + "}\n" + + "\n" + + ".ace_marker-layer .ace_active_line {\n" + + " position: absolute;\n" + + " z-index: 2;\n" + + "}\n" + + "\n" + + ".ace_marker-layer .ace_selected_word {\n" + + " position: absolute;\n" + + " z-index: 4;\n" + + " box-sizing: border-box;\n" + + " -moz-box-sizing: border-box;\n" + + " -webkit-box-sizing: border-box;\n" + + "}\n" + + "\n" + + ".ace_line .ace_fold {\n" + + " box-sizing: border-box;\n" + + " -moz-box-sizing: border-box;\n" + + " -webkit-box-sizing: border-box;\n" + + " \n" + + " display: inline-block;\n" + + " height: 11px;\n" + + " margin-top: -2px;\n" + + " vertical-align: middle;\n" + + "\n" + + " background-image: \n" + + " url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n" + + " url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n" + + " background-repeat: no-repeat, repeat-x;\n" + + " background-position: center center, top left;\n" + + " color: transparent;\n" + + "\n" + + " border: 1px solid black;\n" + + " -moz-border-radius: 2px;\n" + + " -webkit-border-radius: 2px;\n" + + " border-radius: 2px;\n" + + " \n" + + " cursor: pointer;\n" + + " pointer-events: auto;\n" + + "}\n" + + "\n" + + ".ace_dark .ace_fold {\n" + + "}\n" + + "\n" + + ".ace_fold:hover{\n" + + " background-image: \n" + + " url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n" + + " url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n" + + " background-repeat: no-repeat, repeat-x;\n" + + " background-position: center center, top left;\n" + + "}\n" + + "\n" + + ".ace_dragging .ace_content {\n" + + " cursor: move;\n" + + "}\n" + + "\n" + + ".ace_folding-enabled > .ace_gutter-cell {\n" + + " padding-right: 13px;\n" + + "}\n" + + "\n" + + ".ace_fold-widget {\n" + + " box-sizing: border-box;\n" + + " -moz-box-sizing: border-box;\n" + + " -webkit-box-sizing: border-box;\n" + + "\n" + + " margin: 0 -12px 1px 1px;\n" + + " display: inline-block;\n" + + " height: 14px;\n" + + " width: 11px;\n" + + " vertical-align: text-bottom;\n" + + " \n" + + " background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n" + + " background-repeat: no-repeat;\n" + + " background-position: center 5px;\n" + + "\n" + + " border-radius: 3px;\n" + + "}\n" + + "\n" + + ".ace_fold-widget.end {\n" + + " background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n" + + "}\n" + + "\n" + + ".ace_fold-widget.closed {\n" + + " background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n" + + "}\n" + + "\n" + + ".ace_fold-widget:hover {\n" + + " border: 1px solid rgba(0, 0, 0, 0.3);\n" + + " background-color: rgba(255, 255, 255, 0.2);\n" + + " -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n" + + " -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n" + + " -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n" + + " -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n" + + " box-shadow:inset 0 1px 1px rgba(255, 255, 255, 0.7);\n" + + " box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n" + + " background-position: center 4px;\n" + + "}\n" + + "\n" + + ".ace_fold-widget:active {\n" + + " border: 1px solid rgba(0, 0, 0, 0.4);\n" + + " background-color: rgba(0, 0, 0, 0.05);\n" + + " -moz-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n" + + " -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n" + + " -webkit-box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n" + + " -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n" + + " box-shadow:inset 0 1px 1px rgba(255, 255, 255);\n" + + " box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n" + + "}\n" + + "\n" + + ".ace_fold-widget.invalid {\n" + + " background-color: #FFB4B4;\n" + + " border-color: #DE5555;\n" + + "}\n" + + "\n" + + ".ace_fade-fold-widgets .ace_fold-widget {\n" + + " -moz-transition: 0.5s opacity;\n" + + " -webkit-transition: 0.5s opacity;\n" + + " -o-transition: 0.5s opacity;\n" + + " -ms-transition: 0.5s opacity;\n" + + " transition: 0.5s opacity;\n" + + " opacity: 0;\n" + + "}\n" + + ".ace_fade-fold-widgets:hover .ace_fold-widget {\n" + + " -moz-transition-duration: 0.05s;\n" + + " -webkit-transition-duration: 0.05s;\n" + + " -o-transition-duration: 0.05s;\n" + + " -ms-transition-duration: 0.05s;\n" + + " transition-duration: 0.05s;\n" + + " -moz-transition-delay: 0.2s;\n" + + " -webkit-transition-delay: 0.2s;\n" + + " -o-transition-delay: 0.2s;\n" + + " -ms-transition-delay: 0.2s;\n" + + " transition-delay: 0.2s; \n" + + " opacity:1;\n" + + "}\n" + + ""); + +define('ace/multi_select', ['require', 'exports', 'module' , 'ace/range_list', 'ace/range', 'ace/selection', 'ace/mouse/multi_select_handler', 'ace/lib/event', 'ace/commands/multi_select_commands', 'ace/search', 'ace/edit_session', 'ace/editor'], function(require, exports, module) { + +var RangeList = require("./range_list").RangeList; +var Range = require("./range").Range; +var Selection = require("./selection").Selection; +var onMouseDown = require("./mouse/multi_select_handler").onMouseDown; +var event = require("./lib/event"); +exports.commands = require("./commands/multi_select_commands"); + +// Todo: session.find or editor.findVolatile that returns range +var Search = require("./search").Search; +var search = new Search(); + +function find(session, needle, dir) { + search.$options.wrap = true; + search.$options.needle = needle; + search.$options.backwards = dir == -1; + return search.find(session); +} + +// extend EditSession +var EditSession = require("./edit_session").EditSession; +(function() { + this.getSelectionMarkers = function() { + return this.$selectionMarkers; + }; +}).call(EditSession.prototype); + +// extend Selection +(function() { + // list of ranges in reverse addition order + this.ranges = null; + + // automatically sorted list of ranges + this.rangeList = null; + this.addRange = function(range, $blockChangeEvents) { + if (!range) + return; + + if (!this.inMultiSelectMode && this.rangeCount == 0) { + var oldRange = this.toOrientedRange(); + if (range.intersects(oldRange)) + return $blockChangeEvents || this.fromOrientedRange(range); + + this.rangeList.add(oldRange); + this.$onAddRange(oldRange); + } + + if (!range.cursor) + range.cursor = range.end; + + var removed = this.rangeList.add(range); + + this.$onAddRange(range); + + if (removed.length) + this.$onRemoveRange(removed); + + if (this.rangeCount > 1 && !this.inMultiSelectMode) { + this._emit("multiSelect"); + this.inMultiSelectMode = true; + this.session.$undoSelect = false; + this.rangeList.attach(this.session); + } + + return $blockChangeEvents || this.fromOrientedRange(range); + }; + + this.toSingleRange = function(range) { + range = range || this.ranges[0]; + var removed = this.rangeList.removeAll(); + if (removed.length) + this.$onRemoveRange(removed); + + range && this.fromOrientedRange(range); + }; + this.substractPoint = function(pos) { + var removed = this.rangeList.substractPoint(pos); + if (removed) { + this.$onRemoveRange(removed); + return removed[0]; + } + }; + this.mergeOverlappingRanges = function() { + var removed = this.rangeList.merge(); + if (removed.length) + this.$onRemoveRange(removed); + else if(this.ranges[0]) + this.fromOrientedRange(this.ranges[0]); + }; + + this.$onAddRange = function(range) { + this.rangeCount = this.rangeList.ranges.length; + this.ranges.unshift(range); + this._emit("addRange", {range: range}); + }; + + this.$onRemoveRange = function(removed) { + this.rangeCount = this.rangeList.ranges.length; + if (this.rangeCount == 1 && this.inMultiSelectMode) { + var lastRange = this.rangeList.ranges.pop(); + removed.push(lastRange); + this.rangeCount = 0; + } + + for (var i = removed.length; i--; ) { + var index = this.ranges.indexOf(removed[i]); + this.ranges.splice(index, 1); + } + + this._emit("removeRange", {ranges: removed}); + + if (this.rangeCount == 0 && this.inMultiSelectMode) { + this.inMultiSelectMode = false; + this._emit("singleSelect"); + this.session.$undoSelect = true; + this.rangeList.detach(this.session); + } + + lastRange = lastRange || this.ranges[0]; + if (lastRange && !lastRange.isEqual(this.getRange())) + this.fromOrientedRange(lastRange); + }; + + // adds multicursor support to selection + this.$initRangeList = function() { + if (this.rangeList) + return; + + this.rangeList = new RangeList(); + this.ranges = []; + this.rangeCount = 0; + }; + + this.getAllRanges = function() { + return this.rangeList.ranges.concat(); + }; + + this.splitIntoLines = function () { + if (this.rangeCount > 1) { + var ranges = this.rangeList.ranges; + var lastRange = ranges[ranges.length - 1]; + var range = Range.fromPoints(ranges[0].start, lastRange.end); + + this.toSingleRange(); + this.setSelectionRange(range, lastRange.cursor == lastRange.start); + } else { + var range = this.getRange(); + var startRow = range.start.row; + var endRow = range.end.row; + if (startRow == endRow) + return; + + var rectSel = []; + var r = this.getLineRange(startRow, true); + r.start.column = range.start.column; + rectSel.push(r); + + for (var i = startRow + 1; i < endRow; i++) + rectSel.push(this.getLineRange(i, true)); + + r = this.getLineRange(endRow, true); + r.end.column = range.end.column; + rectSel.push(r); + + rectSel.forEach(this.addRange, this); + } + }; + + this.toggleBlockSelection = function () { + if (this.rangeCount > 1) { + var ranges = this.rangeList.ranges; + var lastRange = ranges[ranges.length - 1]; + var range = Range.fromPoints(ranges[0].start, lastRange.end); + + this.toSingleRange(); + this.setSelectionRange(range, lastRange.cursor == lastRange.start); + } else { + var cursor = this.session.documentToScreenPosition(this.selectionLead); + var anchor = this.session.documentToScreenPosition(this.selectionAnchor); + + var rectSel = this.rectangularRangeBlock(cursor, anchor); + rectSel.forEach(this.addRange, this); + } + }; + this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) { + var rectSel = []; + + var xBackwards = screenCursor.column < screenAnchor.column; + if (xBackwards) { + var startColumn = screenCursor.column; + var endColumn = screenAnchor.column; + } else { + var startColumn = screenAnchor.column; + var endColumn = screenCursor.column; + } + + var yBackwards = screenCursor.row < screenAnchor.row; + if (yBackwards) { + var startRow = screenCursor.row; + var endRow = screenAnchor.row; + } else { + var startRow = screenAnchor.row; + var endRow = screenCursor.row; + } + + if (startColumn < 0) + startColumn = 0; + if (startRow < 0) + startRow = 0; + + if (startRow == endRow) + includeEmptyLines = true; + + for (var row = startRow; row <= endRow; row++) { + var range = Range.fromPoints( + this.session.screenToDocumentPosition(row, startColumn), + this.session.screenToDocumentPosition(row, endColumn) + ); + if (range.isEmpty()) { + if (docEnd && isSamePoint(range.end, docEnd)) + break; + var docEnd = range.end; + } + range.cursor = xBackwards ? range.start : range.end; + rectSel.push(range); + } + + if (yBackwards) + rectSel.reverse(); + + if (!includeEmptyLines) { + var end = rectSel.length - 1; + while (rectSel[end].isEmpty() && end > 0) + end--; + if (end > 0) { + var start = 0; + while (rectSel[start].isEmpty()) + start++; + } + for (var i = end; i >= start; i--) { + if (rectSel[i].isEmpty()) + rectSel.splice(i, 1); + } + } + + return rectSel; + }; +}).call(Selection.prototype); + +// extend Editor +var Editor = require("./editor").Editor; +(function() { + + /** extension + * Editor.updateSelectionMarkers() + * + * Updates the cursor and marker layers. + **/ + this.updateSelectionMarkers = function() { + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + this.addSelectionMarker = function(orientedRange) { + if (!orientedRange.cursor) + orientedRange.cursor = orientedRange.end; + + var style = this.getSelectionStyle(); + orientedRange.marker = this.session.addMarker(orientedRange, "ace_selection", style); + + this.session.$selectionMarkers.push(orientedRange); + this.session.selectionMarkerCount = this.session.$selectionMarkers.length; + return orientedRange; + }; + this.removeSelectionMarker = function(range) { + if (!range.marker) + return; + this.session.removeMarker(range.marker); + var index = this.session.$selectionMarkers.indexOf(range); + if (index != -1) + this.session.$selectionMarkers.splice(index, 1); + this.session.selectionMarkerCount = this.session.$selectionMarkers.length; + }; + + this.removeSelectionMarkers = function(ranges) { + var markerList = this.session.$selectionMarkers; + for (var i = ranges.length; i--; ) { + var range = ranges[i]; + if (!range.marker) + continue; + this.session.removeMarker(range.marker); + var index = markerList.indexOf(range); + if (index != -1) + markerList.splice(index, 1); + } + this.session.selectionMarkerCount = markerList.length; + }; + + this.$onAddRange = function(e) { + this.addSelectionMarker(e.range); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onRemoveRange = function(e) { + this.removeSelectionMarkers(e.ranges); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onMultiSelect = function(e) { + if (this.inMultiSelectMode) + return; + this.inMultiSelectMode = true; + + this.setStyle("multiselect"); + this.keyBinding.addKeyboardHandler(exports.commands.keyboardHandler); + this.commands.on("exec", this.$onMultiSelectExec); + + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onSingleSelect = function(e) { + if (this.session.multiSelect.inVirtualMode) + return; + this.inMultiSelectMode = false; + + this.unsetStyle("multiselect"); + this.keyBinding.removeKeyboardHandler(exports.commands.keyboardHandler); + + this.commands.removeEventListener("exec", this.$onMultiSelectExec); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onMultiSelectExec = function(e) { + var command = e.command; + var editor = e.editor; + if (!command.multiSelectAction) { + command.exec(editor, e.args || {}); + editor.multiSelect.addRange(editor.multiSelect.toOrientedRange()); + editor.multiSelect.mergeOverlappingRanges(); + } else if (command.multiSelectAction == "forEach") { + editor.forEachSelection(command, e.args); + } else if (command.multiSelectAction == "single") { + editor.exitMultiSelectMode(); + command.exec(editor, e.args || {}); + } else { + command.multiSelectAction(editor, e.args || {}); + } + e.preventDefault(); + }; + this.forEachSelection = function(cmd, args) { + if (this.inVirtualSelectionMode) + return; + + var session = this.session; + var selection = this.selection; + var rangeList = selection.rangeList; + + var reg = selection._eventRegistry; + selection._eventRegistry = {}; + + var tmpSel = new Selection(session); + this.inVirtualSelectionMode = true; + for (var i = rangeList.ranges.length; i--;) { + tmpSel.fromOrientedRange(rangeList.ranges[i]); + this.selection = session.selection = tmpSel; + cmd.exec(this, args || {}); + tmpSel.toOrientedRange(rangeList.ranges[i]); + } + tmpSel.detach(); + + this.selection = session.selection = selection; + this.inVirtualSelectionMode = false; + selection._eventRegistry = reg; + selection.mergeOverlappingRanges(); + + this.onCursorChange(); + this.onSelectionChange(); + }; + this.exitMultiSelectMode = function() { + if (this.inVirtualSelectionMode) + return; + this.multiSelect.toSingleRange(); + }; + + this.getCopyText = function() { + var text = ""; + if (this.inMultiSelectMode) { + var ranges = this.multiSelect.rangeList.ranges; + text = []; + for (var i = 0; i < ranges.length; i++) { + text.push(this.session.getTextRange(ranges[i])); + } + text = text.join(this.session.getDocument().getNewLineCharacter()); + } else if (!this.selection.isEmpty()) { + text = this.session.getTextRange(this.getSelectionRange()); + } + + return text; + }; + + this.onPaste = function(text) { + this._emit("paste", text); + if (!this.inMultiSelectMode) + return this.insert(text); + + var lines = text.split(/\r\n|\r|\n/); + var ranges = this.selection.rangeList.ranges; + + if (lines.length > ranges.length || (lines.length <= 2 || !lines[1])) + return this.commands.exec("insertstring", this, text); + + for (var i = ranges.length; i--; ) { + var range = ranges[i]; + if (!range.isEmpty()) + this.session.remove(range); + + this.session.insert(range.start, lines[i]); + } + }; + this.findAll = function(needle, options, additive) { + options = options || {}; + options.needle = needle || options.needle; + this.$search.set(options); + + var ranges = this.$search.findAll(this.session); + if (!ranges.length) + return 0; + + this.$blockScrolling += 1; + var selection = this.multiSelect; + + if (!additive) + selection.toSingleRange(ranges[0]); + + for (var i = ranges.length; i--; ) + selection.addRange(ranges[i], true); + + this.$blockScrolling -= 1; + + return ranges.length; + }; + + // commands + /** extension + * Editor.selectMoreLines(dir, skip) + * - dir (Number): The direction of lines to select: -1 for up, 1 for down + * - skip (Boolean): If `true`, removes the active selection range + * + * Adds a cursor above or below the active cursor. + **/ + this.selectMoreLines = function(dir, skip) { + var range = this.selection.toOrientedRange(); + var isBackwards = range.cursor == range.end; + + var screenLead = this.session.documentToScreenPosition(range.cursor); + if (this.selection.$desiredColumn) + screenLead.column = this.selection.$desiredColumn; + + var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column); + + if (!range.isEmpty()) { + var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start); + var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column); + } else { + var anchor = lead; + } + + if (isBackwards) { + var newRange = Range.fromPoints(lead, anchor); + newRange.cursor = newRange.start; + } else { + var newRange = Range.fromPoints(anchor, lead); + newRange.cursor = newRange.end; + } + + newRange.desiredColumn = screenLead.column; + if (!this.selection.inMultiSelectMode) { + this.selection.addRange(range); + } else { + if (skip) + var toRemove = range.cursor; + } + + this.selection.addRange(newRange); + if (toRemove) + this.selection.substractPoint(toRemove); + }; + this.transposeSelections = function(dir) { + var session = this.session; + var sel = session.multiSelect; + var all = sel.ranges; + + for (var i = all.length; i--; ) { + var range = all[i]; + if (range.isEmpty()) { + var tmp = session.getWordRange(range.start.row, range.start.column); + range.start.row = tmp.start.row; + range.start.column = tmp.start.column; + range.end.row = tmp.end.row; + range.end.column = tmp.end.column; + } + } + sel.mergeOverlappingRanges(); + + var words = []; + for (var i = all.length; i--; ) { + var range = all[i]; + words.unshift(session.getTextRange(range)); + } + + if (dir < 0) + words.unshift(words.pop()); + else + words.push(words.shift()); + + for (var i = all.length; i--; ) { + var range = all[i]; + var tmp = range.clone(); + session.replace(range, words[i]); + range.start.row = tmp.start.row; + range.start.column = tmp.start.column; + } + } + + /** extension + * Editor.selectMore(dir, skip) + * - dir (Number): The direction of lines to select: -1 for up, 1 for down + * - skip (Boolean): If `true`, removes the active selection range + * + * Finds the next occurence of text in an active selection and adds it to the selections. + **/ + this.selectMore = function (dir, skip) { + var session = this.session; + var sel = session.multiSelect; + + var range = sel.toOrientedRange(); + if (range.isEmpty()) { + var range = session.getWordRange(range.start.row, range.start.column); + range.cursor = range.end; + this.multiSelect.addRange(range); + } + var needle = session.getTextRange(range); + + var newRange = find(session, needle, dir); + if (newRange) { + newRange.cursor = dir == -1 ? newRange.start : newRange.end; + this.multiSelect.addRange(newRange); + } + if (skip) + this.multiSelect.substractPoint(range.cursor); + }; +}).call(Editor.prototype); + + +function isSamePoint(p1, p2) { + return p1.row == p2.row && p1.column == p2.column; +} + +// patch +// adds multicursor support to a session +exports.onSessionChange = function(e) { + var session = e.session; + if (!session.multiSelect) { + session.$selectionMarkers = []; + session.selection.$initRangeList(); + session.multiSelect = session.selection; + } + this.multiSelect = session.multiSelect; + + var oldSession = e.oldSession; + if (oldSession) { + // todo use events + if (oldSession.multiSelect && oldSession.multiSelect.editor == this) + oldSession.multiSelect.editor = null; + + session.multiSelect.removeEventListener("addRange", this.$onAddRange); + session.multiSelect.removeEventListener("removeRange", this.$onRemoveRange); + session.multiSelect.removeEventListener("multiSelect", this.$onMultiSelect); + session.multiSelect.removeEventListener("singleSelect", this.$onSingleSelect); + } + + session.multiSelect.on("addRange", this.$onAddRange); + session.multiSelect.on("removeRange", this.$onRemoveRange); + session.multiSelect.on("multiSelect", this.$onMultiSelect); + session.multiSelect.on("singleSelect", this.$onSingleSelect); + + // this.$onSelectionChange = this.onSelectionChange.bind(this); + + if (this.inMultiSelectMode != session.selection.inMultiSelectMode) { + if (session.selection.inMultiSelectMode) + this.$onMultiSelect(); + else + this.$onSingleSelect(); + } +}; + +// MultiSelect(editor) +// adds multiple selection support to the editor +// (note: should be called only once for each editor instance) +function MultiSelect(editor) { + editor.$onAddRange = editor.$onAddRange.bind(editor); + editor.$onRemoveRange = editor.$onRemoveRange.bind(editor); + editor.$onMultiSelect = editor.$onMultiSelect.bind(editor); + editor.$onSingleSelect = editor.$onSingleSelect.bind(editor); + + exports.onSessionChange.call(editor, editor); + editor.on("changeSession", exports.onSessionChange.bind(editor)); + + editor.on("mousedown", onMouseDown); + editor.commands.addCommands(exports.commands.defaultCommands); + + addAltCursorListeners(editor); +} + +function addAltCursorListeners(editor){ + var el = editor.textInput.getElement(); + var altCursor = false; + var contentEl = editor.renderer.content; + event.addListener(el, "keydown", function(e) { + if (e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey)) { + if (!altCursor) { + contentEl.style.cursor = "crosshair"; + altCursor = true; + } + } else if (altCursor) { + contentEl.style.cursor = ""; + } + }); + + event.addListener(el, "keyup", reset); + event.addListener(el, "blur", reset); + function reset() { + if (altCursor) { + contentEl.style.cursor = ""; + altCursor = false; + } + } +} + +exports.MultiSelect = MultiSelect; + +}); + +define('ace/range_list', ['require', 'exports', 'module' ], function(require, exports, module) { + + + +var RangeList = function() { + this.ranges = []; +}; + +(function() { + this.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; + }; + + this.pointIndex = function(pos, startIndex) { + var list = this.ranges; + + for (var i = startIndex || 0; i < list.length; i++) { + var range = list[i]; + var cmp = this.comparePoints(pos, range.end); + + if (cmp > 0) + continue; + if (cmp == 0) + return i; + cmp = this.comparePoints(pos, range.start); + if (cmp >= 0) + return i; + + return -i-1; + } + return -i - 1; + }; + + this.add = function(range) { + var startIndex = this.pointIndex(range.start); + if (startIndex < 0) + startIndex = -startIndex - 1; + + var endIndex = this.pointIndex(range.end, startIndex); + + if (endIndex < 0) + endIndex = -endIndex - 1; + else + endIndex++; + + return this.ranges.splice(startIndex, endIndex - startIndex, range); + }; + + this.addList = function(list) { + var removed = []; + for (var i = list.length; i--; ) { + removed.push.call(removed, this.add(list[i])); + } + return removed; + }; + + this.substractPoint = function(pos) { + var i = this.pointIndex(pos); + + if (i >= 0) + return this.ranges.splice(i, 1); + }; + + // merge overlapping ranges + this.merge = function() { + var removed = []; + var list = this.ranges; + var next = list[0], range; + for (var i = 1; i < list.length; i++) { + range = next; + next = list[i]; + var cmp = this.comparePoints(range.end, next.start); + if (cmp < 0) + continue; + + if (cmp == 0 && !(range.isEmpty() || next.isEmpty())) + continue; + + if (this.comparePoints(range.end, next.end) < 0) { + range.end.row = next.end.row; + range.end.column = next.end.column; + } + + list.splice(i, 1); + removed.push(next); + next = range; + i--; + } + + return removed; + }; + + this.contains = function(row, column) { + return this.pointIndex({row: row, column: column}) >= 0; + }; + + this.containsPoint = function(pos) { + return this.pointIndex(pos) >= 0; + }; + + this.rangeAtPoint = function(pos) { + var i = this.pointIndex(pos); + if (i >= 0) + return this.ranges[i]; + }; + + + this.clipRows = function(startRow, endRow) { + var list = this.ranges; + if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow) + return []; + + var startIndex = this.pointIndex({row: startRow, column: 0}); + if (startIndex < 0) + startIndex = -startIndex - 1; + var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex); + if (endIndex < 0) + endIndex = -endIndex - 1; + + var clipped = []; + for (var i = startIndex; i < endIndex; i++) { + clipped.push(list[i]); + } + return clipped; + }; + + this.removeAll = function() { + return this.ranges.splice(0, this.ranges.length); + }; + + this.attach = function(session) { + if (this.session) + this.detach(); + + this.session = session; + this.onChange = this.$onChange.bind(this); + + this.session.on('change', this.onChange); + }; + + this.detach = function() { + if (!this.session) + return; + this.session.removeListener('change', this.onChange); + this.session = null; + }; + + this.$onChange = function(e) { + var changeRange = e.data.range; + if (e.data.action[0] == "i"){ + var start = changeRange.start; + var end = changeRange.end; + } else { + var end = changeRange.start; + var start = changeRange.end; + } + var startRow = start.row; + var endRow = end.row; + var lineDif = endRow - startRow; + + var colDiff = -start.column + end.column; + + var ranges = this.ranges; + + for (var i=0, n = ranges.length; i < n; i++) { + var r = ranges[i]; + if (r.end.row < startRow) + continue; + if (r.start.row > startRow) + break; + + if (r.start.row == startRow && r.start.column >= start.column ) { + r.start.column += colDiff; + r.start.row += lineDif; + } + if (r.end.row == startRow && r.end.column >= start.column) { + r.end.column += colDiff; + r.end.row += lineDif; + } + } + + if (lineDif != 0 && i < n) { + for (; i < n; i++) { + var r = ranges[i]; + r.start.row += lineDif; + r.end.row += lineDif; + } + } + }; + +}).call(RangeList.prototype); + +exports.RangeList = RangeList; +}); + +define('ace/mouse/multi_select_handler', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) { + +var event = require("../lib/event"); + + +// mouse +function isSamePoint(p1, p2) { + return p1.row == p2.row && p1.column == p2.column; +} + +function onMouseDown(e) { + var ev = e.domEvent; + var alt = ev.altKey; + var shift = ev.shiftKey; + var ctrl = e.getAccelKey(); + var button = e.getButton(); + + if (!ctrl && !alt) { + if (e.editor.inMultiSelectMode) { + if (button == 0) { + e.editor.exitMultiSelectMode(); + } else if (button == 2) { + var editor = e.editor; + var selectionEmpty = editor.selection.isEmpty(); + editor.textInput.onContextMenu({x: e.clientX, y: e.clientY}, selectionEmpty); + event.capture(editor.container, function(){}, editor.textInput.onContextMenuClose); + e.stop(); + } + } + return; + } + + var editor = e.editor; + var selection = editor.selection; + var isMultiSelect = editor.inMultiSelectMode; + var pos = e.getDocumentPosition(); + var cursor = selection.getCursor(); + var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor)); + + + var mouseX = e.x, mouseY = e.y; + var onMouseSelection = function(e) { + mouseX = e.clientX; + mouseY = e.clientY; + }; + + var blockSelect = function() { + var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY); + var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column); + + if (isSamePoint(screenCursor, newCursor) + && isSamePoint(cursor, selection.selectionLead)) + return; + screenCursor = newCursor; + + editor.selection.moveCursorToPosition(cursor); + editor.selection.clearSelection(); + editor.renderer.scrollCursorIntoView(); + + editor.removeSelectionMarkers(rectSel); + rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor); + rectSel.forEach(editor.addSelectionMarker, editor); + editor.updateSelectionMarkers(); + }; + + var session = editor.session; + var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY); + var screenCursor = screenAnchor; + + + + if (ctrl && !shift && !alt && button == 0) { + if (!isMultiSelect && inSelection) + return; // dragging + + if (!isMultiSelect) { + var range = selection.toOrientedRange(); + editor.addSelectionMarker(range); + } + + var oldRange = selection.rangeList.rangeAtPoint(pos); + + event.capture(editor.container, function(){}, function() { + var tmpSel = selection.toOrientedRange(); + + if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor)) + selection.substractPoint(tmpSel.cursor); + else { + if (range) { + editor.removeSelectionMarker(range); + selection.addRange(range); + } + selection.addRange(tmpSel); + } + }); + + } else if (!shift && alt && button == 0) { + e.stop(); + + if (isMultiSelect && !ctrl) + selection.toSingleRange(); + else if (!isMultiSelect && ctrl) + selection.addRange(); + + selection.moveCursorToPosition(pos); + selection.clearSelection(); + + var rectSel = []; + + var onMouseSelectionEnd = function(e) { + clearInterval(timerId); + editor.removeSelectionMarkers(rectSel); + for (var i = 0; i < rectSel.length; i++) + selection.addRange(rectSel[i]); + }; + + var onSelectionInterval = blockSelect; + + event.capture(editor.container, onMouseSelection, onMouseSelectionEnd); + var timerId = setInterval(function() {onSelectionInterval();}, 20); + + return e.preventDefault(); + } +} + + +exports.onMouseDown = onMouseDown; + +}); + +define('ace/commands/multi_select_commands', ['require', 'exports', 'module' , 'ace/keyboard/hash_handler'], function(require, exports, module) { + +// commands to enter multiselect mode +exports.defaultCommands = [{ + name: "addCursorAbove", + exec: function(editor) { editor.selectMoreLines(-1); }, + bindKey: {win: "Ctrl-Alt-Up", mac: "Ctrl-Alt-Up"}, + readonly: true +}, { + name: "addCursorBelow", + exec: function(editor) { editor.selectMoreLines(1); }, + bindKey: {win: "Ctrl-Alt-Down", mac: "Ctrl-Alt-Down"}, + readonly: true +}, { + name: "addCursorAboveSkipCurrent", + exec: function(editor) { editor.selectMoreLines(-1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Up", mac: "Ctrl-Alt-Shift-Up"}, + readonly: true +}, { + name: "addCursorBelowSkipCurrent", + exec: function(editor) { editor.selectMoreLines(1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Down", mac: "Ctrl-Alt-Shift-Down"}, + readonly: true +}, { + name: "selectMoreBefore", + exec: function(editor) { editor.selectMore(-1); }, + bindKey: {win: "Ctrl-Alt-Left", mac: "Ctrl-Alt-Left"}, + readonly: true +}, { + name: "selectMoreAfter", + exec: function(editor) { editor.selectMore(1); }, + bindKey: {win: "Ctrl-Alt-Right", mac: "Ctrl-Alt-Right"}, + readonly: true +}, { + name: "selectNextBefore", + exec: function(editor) { editor.selectMore(-1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Left", mac: "Ctrl-Alt-Shift-Left"}, + readonly: true +}, { + name: "selectNextAfter", + exec: function(editor) { editor.selectMore(1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Right", mac: "Ctrl-Alt-Shift-Right"}, + readonly: true +}, { + name: "splitIntoLines", + exec: function(editor) { editor.multiSelect.splitIntoLines(); }, + bindKey: {win: "Ctrl-Shift-L", mac: "Ctrl-Shift-L"}, + readonly: true +}, { + name: "singleSelection", + bindKey: "esc", + exec: function(editor) { editor.exitMultiSelectMode(); }, + readonly: true, + isAvailable: function(editor) {return editor.inMultiSelectMode} +}]; + +// commands active in multiselect mode +exports.multiEditCommands = {"singleSelection": "esc"}; + +var HashHandler = require("../keyboard/hash_handler").HashHandler; +exports.keyboardHandler = new HashHandler(exports.multiEditCommands); + +}); + +define('ace/worker/worker_client', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/config'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; +var config = require("../config"); + +var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { + + this.changeListener = this.changeListener.bind(this); + + if (config.get("packaged")) { + this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); + } + else { + var workerUrl; + if (typeof require.supports !== "undefined" && require.supports.indexOf("ucjs2-pinf-0") >= 0) { + // We are running in the sourcemint loader. + workerUrl = require.nameToUrl("ace/worker/worker_sourcemint"); + } else { + // We are running in RequireJS. + workerUrl = this.$normalizePath(require.nameToUrl("ace/worker/worker", null, "_")); + } + this.$worker = new Worker(workerUrl); + + var tlns = {}; + for (var i=0; i= this.pos.column && range.start.column <= this.pos.column + this.length + 1) { + var distanceFromStart = range.start.column - this.pos.column; + this.length += lengthDiff; + if(!this.session.$fromUndo) { + if(delta.action === "insertText") { + for (var i = this.others.length - 1; i >= 0; i--) { + var otherPos = this.others[i]; + var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart}; + if(otherPos.row === range.start.row && range.start.column < otherPos.column) + newPos.column += lengthDiff; + this.doc.insert(newPos, delta.text); + } + } else if(delta.action === "removeText") { + for (var i = this.others.length - 1; i >= 0; i--) { + var otherPos = this.others[i]; + var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart}; + if(otherPos.row === range.start.row && range.start.column < otherPos.column) + newPos.column += lengthDiff; + this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff)); + } + } + // Special case: insert in beginning + if(range.start.column === this.pos.column && delta.action === "insertText") { + setTimeout(function() { + this.pos.setPosition(this.pos.row, this.pos.column - lengthDiff); + for (var i = 0; i < this.others.length; i++) { + var other = this.others[i]; + var newPos = {row: other.row, column: other.column - lengthDiff}; + if(other.row === range.start.row && range.start.column < other.column) + newPos.column += lengthDiff; + other.setPosition(newPos.row, newPos.column); + } + }.bind(this), 0); + } + else if(range.start.column === this.pos.column && delta.action === "removeText") { + setTimeout(function() { + for (var i = 0; i < this.others.length; i++) { + var other = this.others[i]; + if(other.row === range.start.row && range.start.column < other.column) { + other.setPosition(other.row, other.column - lengthDiff); + } + } + }.bind(this), 0); + } + } + this.pos._emit("change", {value: this.pos}); + for (var i = 0; i < this.others.length; i++) { + this.others[i]._emit("change", {value: this.others[i]}); + } + } + this.$updating = false; + }; + + this.onCursorChange = function(event) { + if (this.$updating) return; + var pos = this.session.selection.getCursor(); + if(pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) { + this.showOtherMarkers(); + this._emit("cursorEnter", event); + } else { + this.hideOtherMarkers(); + this._emit("cursorLeave", event); + } + }; + this.detach = function() { + this.session.removeMarker(this.markerId); + this.hideOtherMarkers(); + this.doc.removeEventListener("change", this.$onUpdate); + this.session.selection.removeEventListener("changeCursor", this.$onCursorChange); + this.pos.detach(); + for (var i = 0; i < this.others.length; i++) { + this.others[i].detach(); + } + this.session.setUndoSelect(true); + }; + this.cancel = function() { + if(this.$undoStackDepth === -1) + throw Error("Canceling placeholders only supported with undo manager attached to session."); + var undoManager = this.session.getUndoManager(); + var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth; + for (var i = 0; i < undosRequired; i++) { + undoManager.undo(true); + } + }; +}).call(PlaceHolder.prototype); + + +exports.PlaceHolder = PlaceHolder; +}); + +define('ace/theme/textmate', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + + +exports.isDark = false; +exports.cssClass = "ace-tm"; +exports.cssText = ".ace-tm .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-tm .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-tm .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-tm .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-tm .ace_fold {\ + background-color: #6B72E6;\ +}\ +\ +.ace-tm .ace_text-layer {\ + cursor: text;\ +}\ +\ +.ace-tm .ace_cursor {\ + border-left: 2px solid black;\ +}\ +\ +.ace-tm .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid black;\ +}\ + \ +.ace-tm .ace_line .ace_invisible {\ + color: rgb(191, 191, 191);\ +}\ +\ +.ace-tm .ace_line .ace_storage,\ +.ace-tm .ace_line .ace_keyword {\ + color: blue;\ +}\ +\ +.ace-tm .ace_line .ace_constant {\ + color: rgb(197, 6, 11);\ +}\ +\ +.ace-tm .ace_line .ace_constant.ace_buildin {\ + color: rgb(88, 72, 246);\ +}\ +\ +.ace-tm .ace_line .ace_constant.ace_language {\ + color: rgb(88, 92, 246);\ +}\ +\ +.ace-tm .ace_line .ace_constant.ace_library {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-tm .ace_line .ace_invalid {\ + background-color: rgba(255, 0, 0, 0.1);\ + color: red;\ +}\ +\ +.ace-tm .ace_line .ace_support.ace_function {\ + color: rgb(60, 76, 114);\ +}\ +\ +.ace-tm .ace_line .ace_support.ace_constant {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-tm .ace_line .ace_support.ace_type,\ +.ace-tm .ace_line .ace_support.ace_class {\ + color: rgb(109, 121, 222);\ +}\ +\ +.ace-tm .ace_line .ace_keyword.ace_operator {\ + color: rgb(104, 118, 135);\ +}\ +\ +.ace-tm .ace_line .ace_string {\ + color: rgb(3, 106, 7);\ +}\ +\ +.ace-tm .ace_line .ace_comment {\ + color: rgb(76, 136, 107);\ +}\ +\ +.ace-tm .ace_line .ace_comment.ace_doc {\ + color: rgb(0, 102, 255);\ +}\ +\ +.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\ + color: rgb(128, 159, 191);\ +}\ +\ +.ace-tm .ace_line .ace_constant.ace_numeric {\ + color: rgb(0, 0, 205);\ +}\ +\ +.ace-tm .ace_line .ace_variable {\ + color: rgb(49, 132, 149);\ +}\ +\ +.ace-tm .ace_line .ace_xml_pe {\ + color: rgb(104, 104, 91);\ +}\ +\ +.ace-tm .ace_entity.ace_name.ace_function {\ + color: #0000A2;\ +}\ +\ +.ace-tm .ace_markup.ace_markupine {\ + text-decoration:underline;\ +}\ +\ +.ace-tm .ace_markup.ace_heading {\ + color: rgb(12, 7, 255);\ +}\ +\ +.ace-tm .ace_markup.ace_list {\ + color:rgb(185, 6, 144);\ +}\ +\ +.ace-tm .ace_marker-layer .ace_selection {\ + background: rgb(181, 213, 255);\ +}\ +.ace-tm.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px white;\ + border-radius: 2px;\ +}\ +.ace-tm .ace_marker-layer .ace_step {\ + background: rgb(252, 255, 0);\ +}\ +\ +.ace-tm .ace_marker-layer .ace_stack {\ + background: rgb(164, 229, 101);\ +}\ +\ +.ace-tm .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgb(192, 192, 192);\ +}\ +\ +.ace-tm .ace_marker-layer .ace_active_line {\ + background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-tm .ace_gutter_active_line{\ + background-color : #dcdcdc;\ +}\ +\ +.ace-tm .ace_marker-layer .ace_selected_word {\ + background: rgb(250, 250, 255);\ + border: 1px solid rgb(200, 200, 250);\ +}\ +\ +.ace-tm .ace_meta.ace_tag {\ + color:rgb(0, 50, 198);\ +}\ +\ +.ace-tm .ace_string.ace_regex {\ + color: rgb(255, 0, 0)\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); +; (function() { window.require(["ace/ace"], function(a) { + a.config.init(); if (!window.ace) window.ace = {}; for (var key in a) if (a.hasOwnProperty(key)) diff --git a/build/src/keybinding-emacs.js b/build/src/keybinding-emacs.js index f2eb354a..62bc4558 100644 --- a/build/src/keybinding-emacs.js +++ b/build/src/keybinding-emacs.js @@ -1 +1,367 @@ -define("ace/keyboard/keybinding/emacs",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){"use strict";var d=a("../state_handler").StateHandler,e=a("../state_handler").matchCharacterOnly,f={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:e,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:e,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]};b.Emacs=new d(f)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Skywriter. + * + * The Initial Developer of the Original Code is + * Mozilla. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Julian Viereck (julian.viereck@gmail.com) + * Harutyun Amirjanyan (harutyun@c9.io) + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/keyboard/emacs', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/keyboard/hash_handler', 'ace/lib/keys'], function(require, exports, module) { + + +var dom = require("../lib/dom"); + +var screenToTextBlockCoordinates = function(pageX, pageY) { + var canvasPos = this.scroller.getBoundingClientRect(); + + var col = Math.floor( + (pageX + this.scrollLeft - canvasPos.left - this.$padding - dom.getPageScrollLeft()) / this.characterWidth + ); + var row = Math.floor( + (pageY + this.scrollTop - canvasPos.top - dom.getPageScrollTop()) / this.lineHeight + ); + + return this.session.screenToDocumentPosition(row, col); +}; + +var HashHandler = require("./hash_handler").HashHandler; +exports.handler = new HashHandler(); + +var initialized = false; +exports.handler.attach = function(editor) { + if (!initialized) { + initialized = true; + dom.importCssString('\ + .emacs-mode .ace_cursor{\ + border: 2px rgba(50,250,50,0.8) solid!important;\ + -moz-box-sizing: border-box!important;\ + box-sizing: border-box!important;\ + background-color: rgba(0,250,0,0.9);\ + opacity: 0.5;\ + }\ + .emacs-mode .ace_cursor.ace_hidden{\ + opacity: 1;\ + background-color: transparent;\ + }\ + .emacs-mode .ace_cursor.ace_overwrite {\ + opacity: 1;\ + background-color: transparent;\ + border-width: 0 0 2px 2px !important;\ + }\ + .emacs-mode .ace_text-layer {\ + z-index: 4\ + }\ + .emacs-mode .ace_cursor-layer {\ + z-index: 2\ + }', 'emacsMode' + ); + } + + editor.renderer.screenToTextCoordinates = screenToTextBlockCoordinates; + editor.setStyle("emacs-mode"); +}; + +exports.handler.detach = function(editor) { + delete editor.renderer.screenToTextCoordinates; + editor.unsetStyle("emacs-mode"); +}; + + +var keys = require("../lib/keys").KEY_MODS; +var eMods = { + C: "ctrl", S: "shift", M: "alt" +}; +["S-C-M", "S-C", "S-M", "C-M", "S", "C", "M"].forEach(function(c) { + var hashId = 0; + c.split("-").forEach(function(c){ + hashId = hashId | keys[eMods[c]]; + }); + eMods[hashId] = c.toLowerCase() + "-"; +}); + +exports.handler.bindKey = function(key, command) { + if (!key) + return; + + var ckb = this.commmandKeyBinding; + key.split("|").forEach(function(keyPart) { + keyPart = keyPart.toLowerCase(); + ckb[keyPart] = command; + keyPart = keyPart.split(" ")[0]; + if (!ckb[keyPart]) + ckb[keyPart] = "null"; + }, this); +}; + + +exports.handler.handleKeyboard = function(data, hashId, key, keyCode) { + if (hashId == -1) { + if (data.count) { + var str = Array(data.count + 1).join(key); + data.count = null; + return {command: "insertstring", args: str}; + } + } + + if (key == "\x00") + return; + + var modifier = eMods[hashId]; + if (modifier == "c-" || data.universalArgument) { + var count = parseInt(key[key.length - 1]); + if (count) { + data.count = count; + return {command: "null"}; + } + } + data.universalArgument = false; + + if (modifier) + key = modifier + key; + + if (data.keyChain) + key = data.keyChain += " " + key; + + var command = this.commmandKeyBinding[key]; + data.keyChain = command == "null" ? key : ""; + + if (!command) + return; + + if (command == "null") + return {command: "null"}; + + if (command == "universalArgument") { + data.universalArgument = true; + return {command: "null"}; + } + + if (typeof command != "string") { + var args = command.args; + command = command.command; + } + + if (typeof command == "string") { + command = this.commands[command] || data.editor.commands.commands[command]; + } + + if (!command.readonly && !command.isYank) + data.lastCommand = null; + + if (data.count) { + var count = data.count; + data.count = 0; + return { + args: args, + command: { + exec: function(editor, args) { + for (var i = 0; i < count; i++) + command.exec(editor, args); + } + } + }; + } + + return {command: command, args: args}; +}; + +exports.emacsKeys = { + // movement + "Up|C-p" : "golineup", + "Down|C-n" : "golinedown", + "Left|C-b" : "gotoleft", + "Right|C-f" : "gotoright", + "C-Left|M-b" : "gotowordleft", + "C-Right|M-f" : "gotowordright", + "Home|C-a" : "gotolinestart", + "End|C-e" : "gotolineend", + "C-Home|S-M-,": "gotostart", + "C-End|S-M-." : "gotoend", + + // selection + "S-Up|S-C-p" : "selectup", + "S-Down|S-C-n" : "selectdown", + "S-Left|S-C-b" : "selectleft", + "S-Right|S-C-f" : "selectright", + "S-C-Left|S-M-b" : "selectwordleft", + "S-C-Right|S-M-f" : "selectwordright", + "S-Home|S-C-a" : "selecttolinestart", + "S-End|S-C-e" : "selecttolineend", + "S-C-Home" : "selecttostart", + "S-C-End" : "selecttoend", + + "C-l|M-s" : "centerselection", + "M-g": "gotoline", + "C-x C-p": "selectall", + + // todo fix these + "C-Down": "gotopagedown", + "C-Up": "gotopageup", + "PageDown|C-v": "gotopagedown", + "PageUp|M-v": "gotopageup", + "S-C-Down": "selectpagedown", + "S-C-Up": "selectpageup", + "C-s": "findnext", + "C-r": "findprevious", + "M-C-s": "findnext", + "M-C-r": "findprevious", + "S-M-5": "replace", + + // basic editing + "Backspace": "backspace", + "Delete|C-d": "del", + "Return|C-m": {command: "insertstring", args: "\n"}, // "newline" + "C-o": "splitline", + + "M-d|C-Delete": {command: "killWord", args: "right"}, + "C-Backspace|M-Backspace|M-Delete": {command: "killWord", args: "left"}, + "C-k": "killLine", + + "C-y|S-Delete": "yank", + "M-y": "yankRotate", + "C-g": "keyboardQuit", + + "C-w": "killRegion", + "M-w": "killRingSave", + + "C-Space": "setMark", + "C-x C-x": "exchangePointAndMark", + + "C-t": "transposeletters", + + "M-u": "touppercase", + "M-l": "tolowercase", + "M-/": "autocomplete", + "C-u": "universalArgument", + "M-;": "togglecomment", + + "C-/|C-x u|S-C--|C-z": "undo", + "S-C-/|S-C-x u|C--|S-C-z": "redo", //infinite undo? + // vertical editing + "C-x r": "selectRectangularRegion" + + // todo + // "M-x" "C-x C-t" "M-t" "M-c" "F11" "C-M- "M-q" +}; + + +exports.handler.bindKeys(exports.emacsKeys); + +exports.handler.addCommands({ + selectRectangularRegion: function(editor) { + editor.multiSelect.toggleBlockSelection(); + }, + setMark: function() { + }, + exchangePointAndMark: { + exec: function(editor) { + var range = editor.selection.getRange(); + editor.selection.setSelectionRange(range, !editor.selection.isBackwards()); + }, + readonly: true, + multiselectAction: "forEach" + }, + killWord: { + exec: function(editor, dir) { + editor.clearSelection(); + if (dir == "left") + editor.selection.selectWordLeft(); + else + editor.selection.selectWordRight(); + + var range = editor.getSelectionRange(); + var text = editor.session.getTextRange(range); + exports.killRing.add(text); + + editor.session.remove(range); + editor.clearSelection(); + }, + multiselectAction: "forEach" + }, + killLine: function(editor) { + editor.selection.selectLine(); + var range = editor.getSelectionRange(); + var text = editor.session.getTextRange(range); + exports.killRing.add(text); + + editor.session.remove(range); + editor.clearSelection(); + }, + yank: function(editor) { + editor.onPaste(exports.killRing.get()); + editor.keyBinding.$data.lastCommand = "yank"; + }, + yankRotate: function(editor) { + if (editor.keyBinding.$data.lastCommand != "yank") + return; + + editor.undo(); + editor.onPaste(exports.killRing.rotate()); + editor.keyBinding.$data.lastCommand = "yank"; + }, + killRegion: function(editor) { + exports.killRing.add(editor.getCopyText()); + editor.cut(); + }, + killRingSave: function(editor) { + exports.killRing.add(editor.getCopyText()); + } +}); + +var commands = exports.handler.commands; +commands.yank.isYank = true; +commands.yankRotate.isYank = true; + +exports.killRing = { + $data: [], + add: function(str) { + str && this.$data.push(str); + if (this.$data.length > 30) + this.$data.shift(); + }, + get: function() { + return this.$data[this.$data.length - 1] || ""; + }, + pop: function() { + if (this.$data.length > 1) + this.$data.pop(); + return this.get(); + }, + rotate: function() { + this.$data.unshift(this.$data.pop()); + return this.get(); + } +}; + + +}); diff --git a/build/src/keybinding-vim.js b/build/src/keybinding-vim.js index 124607d8..ca4fbd9b 100644 --- a/build/src/keybinding-vim.js +++ b/build/src/keybinding-vim.js @@ -1 +1,1593 @@ -define("ace/keyboard/keybinding/vim",["require","exports","module","ace/keyboard/state_handler"],function(a,b,c){"use strict";var d=a("../state_handler").StateHandler,e=a("../state_handler").matchCharacterOnly,f=function(a,b,c){return{regex:["([0-9]*)",a],exec:b,params:[{name:"times",match:1,type:"number",defaultValue:1}],then:c}},g={start:[{key:"i",then:"insertMode"},{key:"d",then:"deleteMode"},{key:"a",exec:"gotoright",then:"insertMode"},{key:"shift-i",exec:"gotolinestart",then:"insertMode"},{key:"shift-a",exec:"gotolineend",then:"insertMode"},{key:"shift-c",exec:"removetolineend",then:"insertMode"},{key:"shift-r",exec:"overwrite",then:"replaceMode"},f("(k|up)","golineup"),f("(j|down)","golinedown"),f("(l|right)","gotoright"),f("(h|left)","gotoleft"),{key:"shift-g",exec:"gotoend"},f("b","gotowordleft"),f("e","gotowordright"),f("x","del"),f("shift-x","backspace"),f("shift-d","removetolineend"),f("u","undo"),{comment:"Catch some keyboard input to stop it here",match:e}],insertMode:[{key:"esc",then:"start"}],replaceMode:[{key:"esc",exec:"overwrite",then:"start"}],deleteMode:[{key:"d",exec:"removeline",then:"start"}]};b.Vim=new d(g)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Sergi Mansilla + * Harutyun Amirjanyan + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/keyboard/vim', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/keyboard/vim/commands', 'ace/keyboard/vim/maps/util'], function(require, exports, module) { + + +var keyUtil = require("../lib/keys"); +var cmds = require("./vim/commands"); +var coreCommands = cmds.coreCommands; +var util = require("./vim/maps/util"); + +var startCommands = { + "i": { + command: coreCommands.start + }, + "I": { + command: coreCommands.startBeginning + }, + "a": { + command: coreCommands.append + }, + "A": { + command: coreCommands.appendEnd + }, + "ctrl-f": { + command: "gotopagedown" + }, + "ctrl-b": { + command: "gotopageup" + }, +}; + +exports.handler = { + handleKeyboard: function(data, hashId, key, keyCode, e) { + // ignore command keys (shift, ctrl etc.) + if (hashId != 0 && (key == "" || key == "\x00")) + return null; + + if (hashId == 1) + key = "ctrl-" + key; + + if (data.state == "start") { + if (hashId == -1 || hashId == 1) { + if (cmds.inputBuffer.idle && startCommands[key]) + return startCommands[key]; + + return { command: { + exec: function(editor) {cmds.inputBuffer.push(editor, key);} + } }; + } // wait for input + else if (key.length == 1 && (hashId == 0 || hashId == 4)) { //no modifier || shift + return {command: "null", passEvent: true}; + } else if (key == "esc") { + return {command: coreCommands.stop}; + } + } else { + if (key == "esc" || key == "ctrl-[") { + data.state = "start"; + return {command: coreCommands.stop}; + } else if (key == "ctrl-w") { + return {command: "removewordleft"}; + } + } + }, + + attach: function(editor) { + editor.on("click", exports.onCursorMove); + if (util.currentMode !== "insert") + cmds.coreCommands.stop.exec(editor); + }, + + detach: function(editor) { + editor.removeListener("click", exports.onCursorMove); + util.noMode(editor); + util.currentMode = "normal"; + } +}; + + +exports.onCursorMove = function(e) { + cmds.onCursorMove(e.editor, e); + exports.onCursorMove.scheduled = false; +}; + +}); + +define('ace/keyboard/vim/commands', ['require', 'exports', 'module' , 'ace/keyboard/vim/maps/util', 'ace/keyboard/vim/maps/motions', 'ace/keyboard/vim/maps/operators', 'ace/keyboard/vim/maps/aliases', 'ace/keyboard/vim/registers'], function(require, exports, module) { + +"never use strict"; + +var util = require("./maps/util"); +var motions = require("./maps/motions"); +var operators = require("./maps/operators"); +var alias = require("./maps/aliases"); +var registers = require("./registers"); + +var NUMBER = 1; +var OPERATOR = 2; +var MOTION = 3; +var ACTION = 4; +var HMARGIN = 8; // Minimum amount of line separation between margins; + +exports.searchStore = { + current: "", + options: { + needle: "", + backwards: false, + wrap: true, + caseSensitive: false, + wholeWord: false, + regExp: false + } +}; + +var repeat = function repeat(fn, count, args) { + while (0 < count--) + fn.apply(this, args); +}; + +var ensureScrollMargin = function(editor) { + var renderer = editor.renderer; + var pos = renderer.$cursorLayer.getPixelPosition(); + + var top = pos.top; + + var margin = HMARGIN * renderer.layerConfig.lineHeight; + if (2 * margin > renderer.$size.scrollerHeight) + margin = renderer.$size.scrollerHeight / 2; + + if (renderer.scrollTop > top - margin) { + renderer.session.setScrollTop(top - margin); + } + + if (renderer.scrollTop + renderer.$size.scrollerHeight < top + margin + renderer.lineHeight) { + renderer.session.setScrollTop(top + margin + renderer.lineHeight - renderer.$size.scrollerHeight); + } +}; + +var actions = { + "z": { + param: true, + fn: function(editor, range, count, param) { + switch (param) { + case "z": + editor.alignCursor(null, 0.5); + break; + case "t": + editor.alignCursor(null, 0); + break; + case "b": + editor.alignCursor(null, 1); + break; + } + } + }, + "r": { + param: true, + fn: function(editor, range, count, param) { + if (param && param.length) { + repeat(function() { editor.insert(param); }, count || 1); + editor.navigateLeft(); + } + } + }, + "R": { + fn: function(editor, range, count, param) { + util.insertMode(editor); + editor.setOverwrite(true); + } + }, + "~": { + fn: function(editor, range, count) { + repeat(function() { + var range = editor.selection.getRange(); + if (range.isEmpty()) + range.end.column++; + var text = editor.session.getTextRange(range); + var toggled = text.toUpperCase(); + if (toggled == text) + editor.navigateRight(); + else + editor.session.replace(range, toggled); + }, count || 1); + } + }, + "*": { + fn: function(editor, range, count, param) { + editor.selection.selectWord(); + editor.findNext(); + ensureScrollMargin(editor); + var r = editor.selection.getRange(); + editor.selection.setSelectionRange(r, true); + } + }, + "#": { + fn: function(editor, range, count, param) { + editor.selection.selectWord(); + editor.findPrevious(); + ensureScrollMargin(editor); + var r = editor.selection.getRange(); + editor.selection.setSelectionRange(r, true); + } + }, + "n": { + fn: function(editor, range, count, param) { + var options = editor.getLastSearchOptions(); + options.backwards = false; + + editor.selection.moveCursorRight(); + editor.selection.clearSelection(); + editor.findNext(options); + + ensureScrollMargin(editor); + var r = editor.selection.getRange(); + r.end.row = r.start.row; + r.end.column = r.start.column; + editor.selection.setSelectionRange(r, true); + } + }, + "N": { + fn: function(editor, range, count, param) { + var options = editor.getLastSearchOptions(); + options.backwards = true; + + editor.findPrevious(options); + ensureScrollMargin(editor); + var r = editor.selection.getRange(); + r.end.row = r.start.row; + r.end.column = r.start.column; + editor.selection.setSelectionRange(r, true); + } + }, + "v": { + fn: function(editor, range, count, param) { + editor.selection.selectRight(); + util.visualMode(editor, false); + }, + acceptsMotion: true + }, + "V": { + fn: function(editor, range, count, param) { + //editor.selection.selectLine(); + //editor.selection.selectLeft(); + var row = editor.getCursorPosition().row; + editor.selection.clearSelection(); + editor.selection.moveCursorTo(row, 0); + editor.selection.selectLineEnd(); + editor.selection.visualLineStart = row; + + util.visualMode(editor, true); + }, + acceptsMotion: true + }, + "Y": { + fn: function(editor, range, count, param) { + util.copyLine(editor); + } + }, + "p": { + fn: function(editor, range, count, param) { + var defaultReg = registers._default; + + editor.setOverwrite(false); + if (defaultReg.isLine) { + var pos = editor.getCursorPosition(); + var lines = defaultReg.text.split("\n"); + editor.session.getDocument().insertLines(pos.row + 1, lines); + editor.moveCursorTo(pos.row + 1, 0); + } + else { + editor.navigateRight(); + editor.insert(defaultReg.text); + editor.navigateLeft(); + } + editor.setOverwrite(true); + editor.selection.clearSelection(); + } + }, + "P": { + fn: function(editor, range, count, param) { + var defaultReg = registers._default; + editor.setOverwrite(false); + + if (defaultReg.isLine) { + var pos = editor.getCursorPosition(); + var lines = defaultReg.text.split("\n"); + editor.session.getDocument().insertLines(pos.row, lines); + editor.moveCursorTo(pos.row, 0); + } + else { + editor.insert(defaultReg.text); + } + editor.setOverwrite(true); + editor.selection.clearSelection(); + } + }, + "J": { + fn: function(editor, range, count, param) { + var session = editor.session; + range = editor.getSelectionRange(); + var pos = {row: range.start.row, column: range.start.column}; + count = count || range.end.row - range.start.row; + var maxRow = Math.min(pos.row + (count || 1), session.getLength() - 1); + + range.start.column = session.getLine(pos.row).length; + range.end.column = session.getLine(maxRow).length; + range.end.row = maxRow; + + var text = ""; + for (var i = pos.row; i < maxRow; i++) { + var nextLine = session.getLine(i + 1); + text += " " + /^\s*(.*)$/.exec(nextLine)[1] || ""; + } + + session.replace(range, text); + editor.moveCursorTo(pos.row, pos.column); + } + }, + "u": { + fn: function(editor, range, count, param) { + count = parseInt(count || 1, 10); + for (var i = 0; i < count; i++) { + editor.undo(); + } + editor.selection.clearSelection(); + } + }, + "ctrl-r": { + fn: function(editor, range, count, param) { + count = parseInt(count || 1, 10); + for (var i = 0; i < count; i++) { + editor.redo(); + } + editor.selection.clearSelection(); + } + }, + ":": { + fn: function(editor, range, count, param) { + editor.blur(); + txtConsoleInput.focus(); + txtConsoleInput.setValue(":"); + } + }, + "/": { + fn: function(editor, range, count, param) { + editor.blur(); + txtConsoleInput.focus(); + txtConsoleInput.setValue("/"); + } + }, + ".": { + fn: function(editor, range, count, param) { + util.onInsertReplaySequence = inputBuffer.lastInsertCommands; + var previous = inputBuffer.previous; + if (previous) // If there is a previous action + inputBuffer.exec(editor, previous.action, previous.param); + } + } +}; + +var inputBuffer = exports.inputBuffer = { + accepting: [NUMBER, OPERATOR, MOTION, ACTION], + currentCmd: null, + //currentMode: 0, + currentCount: "", + + // Types + operator: null, + motion: null, + + lastInsertCommands: [], + + push: function(editor, char, keyId) { + this.idle = false; + var wObj = this.waitingForParam; + if (wObj) { + this.exec(editor, wObj, char); + } + // If input is a number (that doesn't start with 0) + else if (!(char === "0" && !this.currentCount.length) && + (char.match(/^\d+$/) && this.isAccepting(NUMBER))) { + // Assuming that char is always of type String, and not Number + this.currentCount += char; + this.currentCmd = NUMBER; + this.accepting = [NUMBER, OPERATOR, MOTION, ACTION]; + } + else if (!this.operator && this.isAccepting(OPERATOR) && operators[char]) { + this.operator = { + char: char, + count: this.getCount() + }; + this.currentCmd = OPERATOR; + this.accepting = [NUMBER, MOTION, ACTION]; + this.exec(editor, { operator: this.operator }); + } + else if (motions[char] && this.isAccepting(MOTION)) { + this.currentCmd = MOTION; + + var ctx = { + operator: this.operator, + motion: { + char: char, + count: this.getCount() + } + }; + + if (motions[char].param) + this.waitForParam(ctx); + else + this.exec(editor, ctx); + } + else if (alias[char] && this.isAccepting(MOTION)) { + alias[char].operator.count = this.getCount(); + this.exec(editor, alias[char]); + } + else if (actions[char] && this.isAccepting(ACTION)) { + var actionObj = { + action: { + fn: actions[char].fn, + count: this.getCount() + } + }; + + if (actions[char].param) { + this.waitForParam(actionObj); + } + else { + this.exec(editor, actionObj); + } + + if (actions[char].acceptsMotion) + this.idle = false; + } + else if (this.operator) { + this.exec(editor, { operator: this.operator }, char); + } + else { + this.reset(); + } + }, + + waitForParam: function(cmd) { + this.waitingForParam = cmd; + }, + + getCount: function() { + var count = this.currentCount; + this.currentCount = ""; + return count && parseInt(count, 10); + }, + + exec: function(editor, action, param) { + var m = action.motion; + var o = action.operator; + var a = action.action; + + if (!param) + param = action.param; + + if (o) { + this.previous = { + action: action, + param: param + }; + } + + if (o && !editor.selection.isEmpty()) { + if (operators[o.char].selFn) { + operators[o.char].selFn(editor, editor.getSelectionRange(), o.count, param); + this.reset(); + } + return; + } + + // There is an operator, but no motion or action. We try to pass the + // current char to the operator to see if it responds to it (an example + // of this is the 'dd' operator). + else if (!m && !a && o && param) { + operators[o.char].fn(editor, null, o.count, param); + this.reset(); + } + else if (m) { + var run = function(fn) { + if (fn && typeof fn === "function") { // There should always be a motion + if (m.count && !motionObj.handlesCount) + repeat(fn, m.count, [editor, null, m.count, param]); + else + fn(editor, null, m.count, param); + } + }; + + var motionObj = motions[m.char]; + var selectable = motionObj.sel; + + if (!o) { + if ((util.onVisualMode || util.onVisualLineMode) && selectable) + run(motionObj.sel); + else + run(motionObj.nav); + } + else if (selectable) { + repeat(function() { + run(motionObj.sel); + operators[o.char].fn(editor, editor.getSelectionRange(), o.count, param); + }, o.count || 1); + } + this.reset(); + } + else if (a) { + a.fn(editor, editor.getSelectionRange(), a.count, param); + this.reset(); + } + handleCursorMove(editor); + }, + + isAccepting: function(type) { + return this.accepting.indexOf(type) !== -1; + }, + + reset: function() { + this.operator = null; + this.motion = null; + this.currentCount = ""; + this.accepting = [NUMBER, OPERATOR, MOTION, ACTION]; + this.idle = true; + this.waitingForParam = null; + } +}; + +function setPreviousCommand(fn) { + inputBuffer.previous = { action: { action: { fn: fn } } }; +} + +exports.coreCommands = { + start: { + exec: function start(editor) { + util.insertMode(editor); + setPreviousCommand(start); + } + }, + startBeginning: { + exec: function startBeginning(editor) { + editor.navigateLineStart(); + util.insertMode(editor); + setPreviousCommand(startBeginning); + } + }, + // Stop Insert mode as soon as possible. Works like typing in + // insert mode. + stop: { + exec: function stop(editor) { + inputBuffer.reset(); + util.onVisualMode = false; + util.onVisualLineMode = false; + inputBuffer.lastInsertCommands = util.normalMode(editor); + } + }, + append: { + exec: function append(editor) { + var pos = editor.getCursorPosition(); + var lineLen = editor.session.getLine(pos.row).length; + if (lineLen) + editor.navigateRight(); + util.insertMode(editor); + setPreviousCommand(append); + } + }, + appendEnd: { + exec: function appendEnd(editor) { + editor.navigateLineEnd(); + util.insertMode(editor); + setPreviousCommand(appendEnd); + } + } +}; + +var handleCursorMove = exports.onCursorMove = function(editor, e) { + if (util.currentMode === 'insert' || handleCursorMove.running) + return; + else if(!editor.selection.isEmpty()) { + handleCursorMove.running = true; + if (util.onVisualLineMode) { + var originRow = editor.selection.visualLineStart; + var cursorRow = editor.getCursorPosition().row; + if(originRow <= cursorRow) { + var endLine = editor.session.getLine(cursorRow); + editor.selection.clearSelection(); + editor.selection.moveCursorTo(originRow, 0); + editor.selection.selectTo(cursorRow, endLine.length); + } else { + var endLine = editor.session.getLine(originRow); + editor.selection.clearSelection(); + editor.selection.moveCursorTo(originRow, endLine.length); + editor.selection.selectTo(cursorRow, 0); + } + } + handleCursorMove.running = false; + return; + } + else { + if (e && (util.onVisualLineMode || util.onVisualMode)) { + editor.selection.clearSelection(); + util.normalMode(editor); + } + + handleCursorMove.running = true; + var pos = editor.getCursorPosition(); + var lineLen = editor.session.getLine(pos.row).length; + + if (lineLen && pos.column === lineLen) + editor.navigateLeft(); + handleCursorMove.running = false; + } +}; +}); +define('ace/keyboard/vim/maps/util', ['require', 'exports', 'module' , 'ace/keyboard/vim/registers', 'ace/lib/dom'], function(require, exports, module) { +var registers = require("../registers"); + +var dom = require("../../../lib/dom"); +dom.importCssString('.insert-mode. ace_cursor{\ + border-left: 2px solid #333333;\ +}\ +.ace_dark.insert-mode .ace_cursor{\ + border-left: 2px solid #eeeeee;\ +}\ +.normal-mode .ace_cursor{\ + border: 0!important;\ + background-color: red;\ + opacity: 0.5;\ +}', 'vimMode'); + +module.exports = { + onVisualMode: false, + onVisualLineMode: false, + currentMode: 'normal', + noMode: function(editor) { + editor.unsetStyle('insert-mode'); + editor.unsetStyle('normal-mode'); + if (editor.commands.recording) + editor.commands.toggleRecording(); + editor.setOverwrite(false); + }, + insertMode: function(editor) { + this.currentMode = 'insert'; + // Switch editor to insert mode + editor.setStyle('insert-mode'); + editor.unsetStyle('normal-mode'); + + editor.setOverwrite(false); + editor.keyBinding.$data.buffer = ""; + editor.keyBinding.$data.state = "insertMode"; + this.onVisualMode = false; + this.onVisualLineMode = false; + if(this.onInsertReplaySequence) { + // Ok, we're apparently replaying ("."), so let's do it + editor.commands.macro = this.onInsertReplaySequence; + editor.commands.replay(editor); + this.onInsertReplaySequence = null; + this.normalMode(editor); + } else { + editor._emit("vimMode", "insert"); + // Record any movements, insertions in insert mode + if(!editor.commands.recording) + editor.commands.toggleRecording(); + } + }, + normalMode: function(editor) { + // Switch editor to normal mode + this.currentMode = 'normal'; + + editor.unsetStyle('insert-mode'); + editor.setStyle('normal-mode'); + editor.clearSelection(); + + var pos; + if (!editor.getOverwrite()) { + pos = editor.getCursorPosition(); + if (pos.column > 0) + editor.navigateLeft(); + } + + editor.setOverwrite(true); + editor.keyBinding.$data.buffer = ""; + editor.keyBinding.$data.state = "start"; + this.onVisualMode = false; + this.onVisualLineMode = false; + editor._emit("changeVimMode", "normal"); + // Save recorded keystrokes + if (editor.commands.recording) { + editor.commands.toggleRecording(); + return editor.commands.macro; + } + else { + return []; + } + }, + visualMode: function(editor, lineMode) { + if ( + (this.onVisualLineMode && lineMode) + || (this.onVisualMode && !lineMode) + ) { + this.normalMode(editor); + return; + } + + editor.setStyle('insert-mode'); + editor.unsetStyle('normal-mode'); + + editor._emit("changeVimMode", "visual"); + if (lineMode) { + this.onVisualLineMode = true; + } else { + this.onVisualMode = true; + this.onVisualLineMode = false; + } + }, + getRightNthChar: function(editor, cursor, char, n) { + var line = editor.getSession().getLine(cursor.row); + var matches = line.substr(cursor.column + 1).split(char); + + return n < matches.length ? matches.slice(0, n).join(char).length : null; + }, + getLeftNthChar: function(editor, cursor, char, n) { + var line = editor.getSession().getLine(cursor.row); + var matches = line.substr(0, cursor.column).split(char); + + return n < matches.length ? matches.slice(-1 * n).join(char).length : null; + }, + toRealChar: function(char) { + if (char.length === 1) + return char; + + if (/^shift-./.test(char)) + return char[char.length - 1].toUpperCase(); + else + return ""; + }, + copyLine: function(editor) { + var pos = editor.getCursorPosition(); + editor.selection.clearSelection(); + editor.moveCursorTo(pos.row, pos.column); + editor.selection.selectLine(); + registers._default.isLine = true; + registers._default.text = editor.getCopyText().replace(/\n$/, ""); + editor.selection.clearSelection(); + editor.moveCursorTo(pos.row, pos.column); + } +}; +}); + +define('ace/keyboard/vim/registers', ['require', 'exports', 'module' ], function(require, exports, module) { + +"never use strict"; + +module.exports = { + _default: { + text: "", + isLine: false + } +}; + +}); + +"use strict" + +define('ace/keyboard/vim/maps/motions', ['require', 'exports', 'module' , 'ace/keyboard/vim/maps/util', 'ace/search', 'ace/range'], function(require, exports, module) { + +var util = require("./util"); + +var keepScrollPosition = function(editor, fn) { + var scrollTopRow = editor.renderer.getScrollTopRow(); + var initialRow = editor.getCursorPosition().row; + var diff = initialRow - scrollTopRow; + fn && fn.call(editor); + editor.renderer.scrollToRow(editor.getCursorPosition().row - diff); +}; + +function Motion(getRange, type){ + if (type == 'extend') + var extend = true; + else + var reverse = type; + + this.nav = function(editor) { + var r = getRange(editor); + if (!r) + return; + if (!r.end) + var a = r; + else if (reverse) + var a = r.start; + else + var a = r.end; + + editor.clearSelection(); + editor.moveCursorTo(a.row, a.column); + } + this.sel = function(editor){ + var r = getRange(editor); + if (!r) + return; + if (extend) + return editor.selection.setSelectionRange(r); + + if (!r.end) + var a = r; + else if (reverse) + var a = r.start; + else + var a = r.end; + + editor.selection.selectTo(a.row, a.column); + } +} + +var nonWordRe = /[\s.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/; +var wordSeparatorRe = /[.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/; +var whiteRe = /\s/; +var StringStream = function(editor, cursor) { + var sel = editor.selection; + this.range = sel.getRange(); + cursor = cursor || sel.selectionLead; + this.row = cursor.row; + this.col = cursor.column; + var line = editor.session.getLine(this.row); + var maxRow = editor.session.getLength() + this.ch = line[this.col] || '\n' + this.skippedLines = 0; + + this.next = function() { + this.ch = line[++this.col] || this.handleNewLine(1); + //this.debug() + return this.ch; + } + this.prev = function() { + this.ch = line[--this.col] || this.handleNewLine(-1); + //this.debug() + return this.ch; + } + this.peek = function(dir) { + var ch = line[this.col + dir]; + if (ch) + return ch; + if (dir == -1) + return '\n'; + if (this.col == line.length - 1) + return '\n'; + return editor.session.getLine(this.row + 1)[0] || '\n'; + } + + this.handleNewLine = function(dir) { + if (dir == 1){ + if (this.col == line.length) + return '\n'; + if (this.row == maxRow - 1) + return ''; + this.col = 0; + this.row ++; + line = editor.session.getLine(this.row); + this.skippedLines++; + return line[0] || '\n'; + } + if (dir == -1) { + if (this.row == 0) + return ''; + this.row --; + line = editor.session.getLine(this.row); + this.col = line.length; + this.skippedLines--; + return '\n'; + } + } + this.debug = function() { + console.log(line.substring(0, this.col)+'|'+this.ch+'\''+this.col+'\''+line.substr(this.col+1)); + } +} + +var Search = require("ace/search").Search; +var search = new Search(); + +function find(editor, needle, dir) { + search.$options.needle = needle; + search.$options.backwards = dir == -1; + return search.find(editor.session); +} + +var Range = require("ace/range").Range; + +module.exports = { + "w": new Motion(function(editor) { + var str = new StringStream(editor); + + if (str.ch && wordSeparatorRe.test(str.ch)) { + while (str.ch && wordSeparatorRe.test(str.ch)) + str.next(); + } else { + while (str.ch && !nonWordRe.test(str.ch)) + str.next(); + } + while (str.ch && whiteRe.test(str.ch) && str.skippedLines < 2) + str.next(); + + str.skippedLines == 2 && str.prev(); + return {column: str.col, row: str.row}; + }), + "W": new Motion(function(editor) { + var str = new StringStream(editor); + while(str.ch && !(whiteRe.test(str.ch) && !whiteRe.test(str.peek(1))) && str.skippedLines < 2) + str.next(); + if (str.skippedLines == 2) + str.prev(); + else + str.next(); + + return {column: str.col, row: str.row} + }), + "b": new Motion(function(editor) { + var str = new StringStream(editor); + + str.prev(); + while (str.ch && whiteRe.test(str.ch) && str.skippedLines > -2) + str.prev(); + + if (str.ch && wordSeparatorRe.test(str.ch)) { + while (str.ch && wordSeparatorRe.test(str.ch)) + str.prev(); + } else { + while (str.ch && !nonWordRe.test(str.ch)) + str.prev(); + } + str.ch && str.next(); + return {column: str.col, row: str.row}; + }), + "B": new Motion(function(editor) { + var str = new StringStream(editor) + str.prev(); + while(str.ch && !(!whiteRe.test(str.ch) && whiteRe.test(str.peek(-1))) && str.skippedLines > -2) + str.prev(); + + if (str.skippedLines == -2) + str.next(); + + return {column: str.col, row: str.row}; + }, true), + "e": new Motion(function(editor) { + var str = new StringStream(editor); + + str.next(); + while (str.ch && whiteRe.test(str.ch)) + str.next(); + + if (str.ch && wordSeparatorRe.test(str.ch)) { + while (str.ch && wordSeparatorRe.test(str.ch)) + str.next(); + } else { + while (str.ch && !nonWordRe.test(str.ch)) + str.next(); + } + str.ch && str.prev(); + return {column: str.col, row: str.row}; + }), + "E": new Motion(function(editor) { + var str = new StringStream(editor); + str.next(); + while(str.ch && !(!whiteRe.test(str.ch) && whiteRe.test(str.peek(1)))) + str.next(); + + return {column: str.col, row: str.row}; + }), + + "l": { + nav: function(editor) { + editor.navigateRight(); + }, + sel: function(editor) { + var pos = editor.getCursorPosition(); + var col = pos.column; + var lineLen = editor.session.getLine(pos.row).length; + + // Solving the behavior at the end of the line due to the + // different 0 index-based colum positions in ACE. + if (lineLen && col !== lineLen) //In selection mode you can select the newline + editor.selection.selectRight(); + } + }, + "h": { + nav: function(editor) { + var pos = editor.getCursorPosition(); + if (pos.column > 0) + editor.navigateLeft(); + }, + sel: function(editor) { + var pos = editor.getCursorPosition(); + if (pos.column > 0) + editor.selection.selectLeft(); + } + }, + "k": { + nav: function(editor) { + editor.navigateUp(); + }, + sel: function(editor) { + editor.selection.selectUp(); + } + }, + "j": { + nav: function(editor) { + editor.navigateDown(); + }, + sel: function(editor) { + editor.selection.selectDown(); + } + }, + + "i": { + param: true, + sel: function(editor, range, count, param) { + switch (param) { + case "w": + editor.selection.selectWord(); + break; + case "W": + editor.selection.selectAWord(); + break; + case "(": + case "{": + case "[": + var cursor = editor.getCursorPosition() + var end = editor.session.$findClosingBracket(param, cursor, /paren/) + if (!end) + return; + var start = editor.session.$findOpeningBracket(editor.session.$brackets[param], cursor, /paren/) + if (!start) + return; + start.column ++; + editor.selection.setSelectionRange(Range.fromPoints(start, end)) + break + case "'": + case "\"": + case "/": + var end = find(editor, param, 1) + if (!end) + return; + var start = find(editor, param, -1) + if (!start) + return; + editor.selection.setSelectionRange(Range.fromPoints(start.end, end.start)) + break + } + } + }, + "a": { + param: true, + sel: function(editor, range, count, param) { + switch (param) { + case "w": + editor.selection.selectAWord(); + break; + case "W": + editor.selection.selectAWord(); + break; + case "(": + case "{": + case "[": + var cursor = editor.getCursorPosition(); + var end = editor.session.$findClosingBracket(param, cursor, /paren/); + if (!end) + return; + var start = editor.session.$findOpeningBracket(editor.session.$brackets[param], cursor, /paren/); + if (!start) + return; + end.column ++; + editor.selection.setSelectionRange(Range.fromPoints(start, end)); + break; + case "'": + case "\"": + case "/": + var end = find(editor, param, 1); + if (!end) + return; + var start = find(editor, param, -1); + if (!start) + return; + end.column ++; + editor.selection.setSelectionRange(Range.fromPoints(start.start, end.end)); + break; + } + } + }, + + "f": { + param: true, + handlesCount: true, + nav: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getRightNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.selection.clearSelection(); // Why does it select in the first place? + ed.moveCursorTo(cursor.row, column + cursor.column + 1); + } + }, + sel: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getRightNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.moveCursorTo(cursor.row, column + cursor.column + 1); + } + } + }, + "F": { + param: true, + handlesCount: true, + nav: function(editor, range, count, param) { + count = parseInt(count, 10) || 1; + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getLeftNthChar(editor, cursor, param, count); + + if (typeof column === "number") { + ed.selection.clearSelection(); // Why does it select in the first place? + ed.moveCursorTo(cursor.row, cursor.column - column - 1); + } + }, + sel: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getLeftNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.moveCursorTo(cursor.row, cursor.column - column - 1); + } + } + }, + "t": { + param: true, + handlesCount: true, + nav: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getRightNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.selection.clearSelection(); // Why does it select in the first place? + ed.moveCursorTo(cursor.row, column + cursor.column); + } + }, + sel: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getRightNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.moveCursorTo(cursor.row, column + cursor.column); + } + } + }, + "T": { + param: true, + handlesCount: true, + nav: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getLeftNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.selection.clearSelection(); // Why does it select in the first place? + ed.moveCursorTo(cursor.row, -column + cursor.column); + } + }, + sel: function(editor, range, count, param) { + var ed = editor; + var cursor = ed.getCursorPosition(); + var column = util.getLeftNthChar(editor, cursor, param, count || 1); + + if (typeof column === "number") { + ed.moveCursorTo(cursor.row, -column + cursor.column); + } + } + }, + + "^": { + nav: function(editor) { + editor.navigateLineStart(); + }, + sel: function(editor) { + editor.selection.selectLineStart(); + } + }, + "$": { + nav: function(editor) { + editor.navigateLineEnd(); + }, + sel: function(editor) { + editor.selection.selectLineEnd(); + } + }, + "0": { + nav: function(editor) { + var ed = editor; + ed.navigateTo(ed.selection.selectionLead.row, 0); + }, + sel: function(editor) { + var ed = editor; + ed.selectTo(ed.selection.selectionLead.row, 0); + } + }, + "G": { + nav: function(editor, range, count, param) { + if (!count && count !== 0) { // Stupid JS + count = editor.session.getLength(); + } + editor.gotoLine(count); + }, + sel: function(editor, range, count, param) { + if (!count && count !== 0) { // Stupid JS + count = editor.session.getLength(); + } + editor.selection.selectTo(count, 0); + } + }, + "g": { + param: true, + nav: function(editor, range, count, param) { + switch(param) { + case "m": + console.log("Middle line"); + break; + case "e": + console.log("End of prev word"); + break; + case "g": + editor.gotoLine(count || 0); + case "u": + editor.gotoLine(count || 0); + case "U": + editor.gotoLine(count || 0); + } + }, + sel: function(editor, range, count, param) { + switch(param) { + case "m": + console.log("Middle line"); + break; + case "e": + console.log("End of prev word"); + break; + case "g": + editor.selection.selectTo(count || 0, 0); + } + } + }, + "o": { + nav: function(editor, range, count, param) { + count = count || 1; + var content = ""; + while (0 < count--) + content += "\n"; + + if (content.length) { + editor.navigateLineEnd() + editor.insert(content); + util.insertMode(editor); + } + } + }, + "O": { + nav: function(editor, range, count, param) { + var row = editor.getCursorPosition().row; + count = count || 1; + var content = ""; + while (0 < count--) + content += "\n"; + + if (content.length) { + if(row > 0) { + editor.navigateUp(); + editor.navigateLineEnd() + editor.insert(content); + } else { + editor.session.insert({row: 0, column: 0}, content); + editor.navigateUp(); + } + util.insertMode(editor); + } + } + }, + "%": new Motion(function(editor){ + var brRe = /[\[\]{}()]/g; + var cursor = editor.getCursorPosition(); + var ch = editor.session.getLine(cursor.row)[cursor.column]; + if (!brRe.test(ch)) { + var range = find(editor, brRe); + if (!range) + return; + cursor = range.start; + } + var match = editor.session.findMatchingBracket({ + row: cursor.row, + column: cursor.column + 1 + }); + + return match; + }), + "ctrl-d": { + nav: function(editor, range, count, param) { + editor.selection.clearSelection(); + keepScrollPosition(editor, editor.gotoPageDown); + }, + sel: function(editor, range, count, param) { + keepScrollPosition(editor, editor.selectPageDown); + } + }, + "ctrl-u": { + nav: function(editor, range, count, param) { + editor.selection.clearSelection(); + keepScrollPosition(editor, editor.gotoPageUp); + + }, + sel: function(editor, range, count, param) { + keepScrollPosition(editor, editor.selectPageUp); + } + }, +}; + +module.exports.backspace = module.exports.left = module.exports.h; +module.exports.right = module.exports.l; +module.exports.up = module.exports.k; +module.exports.down = module.exports.j; +module.exports.pagedown = module.exports["ctrl-d"]; +module.exports.pageup = module.exports["ctrl-u"]; + +}); + +define('ace/keyboard/vim/maps/operators', ['require', 'exports', 'module' , 'ace/keyboard/vim/maps/util', 'ace/keyboard/vim/registers'], function(require, exports, module) { + +"never use strict"; + +var util = require("./util"); +var registers = require("../registers"); + +module.exports = { + "d": { + selFn: function(editor, range, count, param) { + registers._default.text = editor.getCopyText(); + registers._default.isLine = util.onVisualLineMode; + if(util.onVisualLineMode) + editor.removeLines(); + else + editor.session.remove(range); + util.normalMode(editor); + }, + fn: function(editor, range, count, param) { + count = count || 1; + switch (param) { + case "d": + registers._default.text = ""; + registers._default.isLine = true; + for (var i = 0; i < count; i++) { + editor.selection.selectLine(); + registers._default.text += editor.getCopyText(); + var selRange = editor.getSelectionRange(); + editor.session.remove(selRange); + editor.selection.clearSelection(); + } + registers._default.text = registers._default.text.replace(/\n$/, ""); + break; + default: + if (range) { + editor.selection.setSelectionRange(range); + registers._default.text = editor.getCopyText(); + registers._default.isLine = false; + editor.session.remove(range); + editor.selection.clearSelection(); + } + } + } + }, + "c": { + selFn: function(editor, range, count, param) { + editor.session.remove(range); + util.insertMode(editor); + }, + fn: function(editor, range, count, param) { + count = count || 1; + switch (param) { + case "c": + for (var i = 0; i < count; i++) { + editor.removeLines(); + util.insertMode(editor); + } + + break; + default: + if (range) { + + // range.end.column ++; + editor.session.remove(range); + util.insertMode(editor); + } + } + } + }, + "y": { + selFn: function(editor, range, count, param) { + registers._default.text = editor.getCopyText(); + registers._default.isLine = util.onVisualLineMode; + editor.selection.clearSelection(); + util.normalMode(editor); + }, + fn: function(editor, range, count, param) { + count = count || 1; + switch (param) { + case "y": + var pos = editor.getCursorPosition(); + editor.selection.selectLine(); + for (var i = 0; i < count - 1; i++) { + editor.selection.moveCursorDown(); + } + registers._default.text = editor.getCopyText().replace(/\n$/, ""); + editor.selection.clearSelection(); + registers._default.isLine = true; + editor.moveCursorToPosition(pos); + break; + default: + if (range) { + var pos = editor.getCursorPosition(); + editor.selection.setSelectionRange(range); + registers._default.text = editor.getCopyText(); + registers._default.isLine = false; + editor.selection.clearSelection(); + editor.moveCursorTo(pos.row, pos.column); + } + } + } + }, + ">": { + selFn: function(editor, range, count, param) { + count = count || 1; + for (var i = 0; i < count; i++) { + editor.indent(); + } + util.normalMode(editor); + }, + fn: function(editor, range, count, param) { + count = parseInt(count || 1, 10); + switch (param) { + case ">": + var pos = editor.getCursorPosition(); + editor.selection.selectLine(); + for (var i = 0; i < count - 1; i++) { + editor.selection.moveCursorDown(); + } + editor.indent(); + editor.selection.clearSelection(); + editor.moveCursorToPosition(pos); + editor.navigateLineEnd(); + editor.navigateLineStart(); + break; + } + } + }, + "<": { + selFn: function(editor, range, count, param) { + count = count || 1; + for (var i = 0; i < count; i++) { + editor.blockOutdent(); + } + util.normalMode(editor); + }, + fn: function(editor, range, count, param) { + count = count || 1; + switch (param) { + case "<": + var pos = editor.getCursorPosition(); + editor.selection.selectLine(); + for (var i = 0; i < count - 1; i++) { + editor.selection.moveCursorDown(); + } + editor.blockOutdent(); + editor.selection.clearSelection(); + editor.moveCursorToPosition(pos); + editor.navigateLineEnd(); + editor.navigateLineStart(); + break; + } + } + } +}; +}); + +"use strict" + +define('ace/keyboard/vim/maps/aliases', ['require', 'exports', 'module' ], function(require, exports, module) { +module.exports = { + "x": { + operator: { + char: "d", + count: 1 + }, + motion: { + char: "l", + count: 1 + } + }, + "X": { + operator: { + char: "d", + count: 1 + }, + motion: { + char: "h", + count: 1 + } + }, + "D": { + operator: { + char: "d", + count: 1 + }, + motion: { + char: "$", + count: 1 + } + }, + "C": { + operator: { + char: "c", + count: 1 + }, + motion: { + char: "$", + count: 1 + } + }, + "s": { + operator: { + char: "c", + count: 1 + }, + motion: { + char: "l", + count: 1 + } + }, + "S": { + operator: { + char: "c", + count: 1 + }, + param: "c" + } +}; +}); + diff --git a/build/src/mode-c_cpp.js b/build/src/mode-c_cpp.js index 8c9aca5c..ef4fe0cc 100644 --- a/build/src/mode-c_cpp.js +++ b/build/src/mode-c_cpp.js @@ -1 +1,699 @@ -define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./c_cpp_highlight_rules").c_cppHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("./behaviour/cstyle").CstyleBehaviour,k=a("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j,this.foldingRules=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(l.prototype),b.Mode=l}),define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|typeid|bitor|extern|protected|typename|bool|false|public|union|break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|friend|return|virtual|char|goto|short|void|class|if|signed|volatile|compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|switch|delete|new|template|do|not|this|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.c_cppHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Gastón Kleiman + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/c_cpp', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/c_cpp_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new c_cppHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/c_cpp_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var c_cppHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("and|double|not_eq|throw|and_eq|dynamic_cast|operator|true|" + + "asm|else|or|try|auto|enum|or_eq|typedef|bitand|explicit|private|" + + "typeid|bitor|extern|protected|typename|bool|false|public|union|" + + "break|float|register|unsigned|case|fro|reinterpret-cast|using|catch|" + + "friend|return|virtual|char|goto|short|void|class|if|signed|volatile|" + + "compl|inline|sizeof|wchar_t|const|int|static|while|const-cast|long|" + + "static_cast|xor|continue|mutable|struct|xor_eq|default|namespace|" + + "switch|delete|new|template|do|not|this|for").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("NULL").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant", // + regex : "<[a-zA-Z0-9.]+>" + }, { + token : "keyword", // pre-compiler directivs + regex : "(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-clojure.js b/build/src/mode-clojure.js index 3afd7673..08b9900b 100644 --- a/build/src/mode-clojure.js +++ b/build/src/mode-clojure.js @@ -1 +1,348 @@ -define("ace/mode/clojure",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./clojure_highlight_rules").ClojureHighlightRules,h=a("./matching_parens_outdent").MatchingParensOutdent,i=a("../range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,";")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/[\(\[]/);g&&(d+=" "),g=b.match(/[\)]/),g&&(d="")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/clojure_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = == > > >= >= accessor aclone add-classpath add-watch agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq zero? zipmap ".split(" ")),b=e.arrayToMap("def do fn if let loop monitor-enter monitor-exit new quote recur set! throw try var".split(" ")),c=e.arrayToMap("true false nil".split(" "));this.$rules={start:[{token:"comment",regex:";.*$"},{token:"comment",regex:"^=begin$",next:"comment"},{token:"keyword",regex:"[\\(|\\)]"},{token:"keyword",regex:"[\\'\\(]"},{token:"keyword",regex:"[\\[|\\]]"},{token:"keyword",regex:"[\\{|\\}|\\#\\{|\\#\\}]"},{token:"keyword",regex:"[\\&]"},{token:"keyword",regex:"[\\#\\^\\{]"},{token:"keyword",regex:"[\\%]"},{token:"keyword",regex:"[@]"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]"},{token:function(d){return b.hasOwnProperty(d)?"keyword":c.hasOwnProperty(d)?"constant.language":a.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"[:](?:[a-zA-Z]|\\d)+"},{token:"string.regexp",regex:'/#"(?:\\.|(?:\\")|[^""\n])*"/g'}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ClojureHighlightRules=g}),define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\)/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\))/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingParensOutdent=e}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Shlomo Zalman Heigh + * Carin Meier + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/clojure', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/clojure_highlight_rules', 'ace/mode/matching_parens_outdent', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var ClojureHighlightRules = require("./clojure_highlight_rules").ClojureHighlightRules; +var MatchingParensOutdent = require("./matching_parens_outdent").MatchingParensOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new ClojureHighlightRules().getRules()); + this.$outdent = new MatchingParensOutdent(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, ";"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/[\(\[]/); + if (match) { + indent += " "; + } + match = line.match(/[\)]/); + if (match) { + indent = ""; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/clojure_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + + +var ClojureHighlightRules = function() { + + var builtinFunctions = lang.arrayToMap( + ('* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* ' + + '*command-line-args* *compile-files* *compile-path* *e *err* *file* ' + + '*flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* ' + + '*print-dup* *print-length* *print-level* *print-meta* *print-readably* ' + + '*read-eval* *source-path* *use-context-classloader* ' + + '*warn-on-reflection* + - -> -> ->> ->> .. / < < <= <= = ' + + '== > > >= >= accessor aclone ' + + 'add-classpath add-watch agent agent-errors aget alength alias all-ns ' + + 'alter alter-meta! alter-var-root amap ancestors and apply areduce ' + + 'array-map aset aset-boolean aset-byte aset-char aset-double aset-float ' + + 'aset-int aset-long aset-short assert assoc assoc! assoc-in associative? ' + + 'atom await await-for await1 bases bean bigdec bigint binding bit-and ' + + 'bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left ' + + 'bit-shift-right bit-test bit-xor boolean boolean-array booleans ' + + 'bound-fn bound-fn* butlast byte byte-array bytes cast char char-array ' + + 'char-escape-string char-name-string char? chars chunk chunk-append ' + + 'chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? ' + + 'class class? clear-agent-errors clojure-version coll? comment commute ' + + 'comp comparator compare compare-and-set! compile complement concat cond ' + + 'condp conj conj! cons constantly construct-proxy contains? count ' + + 'counted? create-ns create-struct cycle dec decimal? declare definline ' + + 'defmacro defmethod defmulti defn defn- defonce defstruct delay delay? ' + + 'deliver deref derive descendants destructure disj disj! dissoc dissoc! ' + + 'distinct distinct? doall doc dorun doseq dosync dotimes doto double ' + + 'double-array doubles drop drop-last drop-while empty empty? ensure ' + + 'enumeration-seq eval even? every? false? ffirst file-seq filter find ' + + 'find-doc find-ns find-var first float float-array float? floats flush ' + + 'fn fn? fnext for force format future future-call future-cancel ' + + 'future-cancelled? future-done? future? gen-class gen-interface gensym ' + + 'get get-in get-method get-proxy-class get-thread-bindings get-validator ' + + 'hash hash-map hash-set identical? identity if-let if-not ifn? import ' + + 'in-ns inc init-proxy instance? int int-array integer? interleave intern ' + + 'interpose into into-array ints io! isa? iterate iterator-seq juxt key ' + + 'keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list ' + + 'list* list? load load-file load-reader load-string loaded-libs locking ' + + 'long long-array longs loop macroexpand macroexpand-1 make-array ' + + 'make-hierarchy map map? mapcat max max-key memfn memoize merge ' + + 'merge-with meta method-sig methods min min-key mod name namespace neg? ' + + 'newline next nfirst nil? nnext not not-any? not-empty not-every? not= ' + + 'ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ' + + 'ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? ' + + 'or parents partial partition pcalls peek persistent! pmap pop pop! ' + + 'pop-thread-bindings pos? pr pr-str prefer-method prefers ' + + 'primitives-classnames print print-ctor print-doc print-dup print-method ' + + 'print-namespace-doc print-simple print-special-doc print-str printf ' + + 'println println-str prn prn-str promise proxy proxy-call-with-super ' + + 'proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot ' + + 'rand rand-int range ratio? rational? rationalize re-find re-groups ' + + 're-matcher re-matches re-pattern re-seq read read-line read-string ' + + 'reduce ref ref-history-count ref-max-history ref-min-history ref-set ' + + 'refer refer-clojure release-pending-sends rem remove remove-method ' + + 'remove-ns remove-watch repeat repeatedly replace replicate require ' + + 'reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq ' + + 'rsubseq second select-keys send send-off seq seq? seque sequence ' + + 'sequential? set set-validator! set? short short-array shorts ' + + 'shutdown-agents slurp some sort sort-by sorted-map sorted-map-by ' + + 'sorted-set sorted-set-by sorted? special-form-anchor special-symbol? ' + + 'split-at split-with str stream? string? struct struct-map subs subseq ' + + 'subvec supers swap! symbol symbol? sync syntax-symbol-anchor take ' + + 'take-last take-nth take-while test the-ns time to-array to-array-2d ' + + 'trampoline transient tree-seq true? type unchecked-add unchecked-dec ' + + 'unchecked-divide unchecked-inc unchecked-multiply unchecked-negate ' + + 'unchecked-remainder unchecked-subtract underive unquote ' + + 'unquote-splicing update-in update-proxy use val vals var-get var-set ' + + 'var? vary-meta vec vector vector? when when-first when-let when-not ' + + 'while with-bindings with-bindings* with-in-str with-loading-context ' + + 'with-local-vars with-meta with-open with-out-str with-precision xml-seq ' + + 'zero? zipmap ').split(" ") + ); + + var keywords = lang.arrayToMap( + ('def do fn if let loop monitor-enter monitor-exit new quote recur set! ' + + 'throw try var').split(" ") + ); + + var buildinConstants = lang.arrayToMap( + ("true false nil").split(" ") + ); + + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : ";.*$" + }, { + token : "comment", // multi line comment + regex : "^=begin$", + next : "comment" + }, { + token : "keyword", //parens + regex : "[\\(|\\)]" + }, { + token : "keyword", //lists + regex : "[\\'\\(]" + }, { + token : "keyword", //vectors + regex : "[\\[|\\]]" + }, { + token : "keyword", //sets and maps + regex : "[\\{|\\}|\\#\\{|\\#\\}]" + }, { + token : "keyword", // ampersands + regex : '[\\&]' + }, { + token : "keyword", // metadata + regex : '[\\#\\^\\{]' + }, { + token : "keyword", // anonymous fn syntactic sugar + regex : '[\\%]' + }, { + token : "keyword", // deref reader macro + regex : '[@]' + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language", + regex : '[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]' + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // symbol + regex : "[:](?:[a-zA-Z]|\\d)+" + }, { + token : "string.regexp", //Regular Expressions + regex : '/#"(?:\\.|(?:\\\")|[^\""\n])*"/g' + } + + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "^=end$", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; +}; + +oop.inherits(ClojureHighlightRules, TextHighlightRules); + +exports.ClojureHighlightRules = ClojureHighlightRules; +}); + +define('ace/mode/matching_parens_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingParensOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\)/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\))/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingParensOutdent.prototype); + +exports.MatchingParensOutdent = MatchingParensOutdent; +}); diff --git a/build/src/mode-coffee.js b/build/src/mode-coffee.js index f8a9d637..13017eeb 100644 --- a/build/src/mode-coffee.js +++ b/build/src/mode-coffee.js @@ -1 +1,463 @@ -define("ace/mode/coffee",["require","exports","module","ace/tokenizer","ace/mode/coffee_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/pythonic","ace/range","ace/mode/text","ace/worker/worker_client","ace/lib/oop"],function(a,b,c){function l(){this.$tokenizer=new d((new e).getRules()),this.$outdent=new f,this.foldingRules=new g("=|=>|->|\\s*class [^#]*")}"use strict";var d=a("../tokenizer").Tokenizer,e=a("./coffee_highlight_rules").CoffeeHighlightRules,f=a("./matching_brace_outdent").MatchingBraceOutdent,g=a("./folding/pythonic").FoldMode,h=a("../range").Range,i=a("./text").Mode,j=a("../worker/worker_client").WorkerClient,k=a("../lib/oop");k.inherits(l,i),function(){var a=/(?:[({[=:]|[-=]>|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/,b=/^(\s*)#/,c=/^\s*###(?!#)/,d=/^\s*/;this.getNextLineIndent=function(b,c,d){var e=this.$getIndent(c),f=this.$tokenizer.getLineTokens(c,b).tokens;return(!f.length||f[f.length-1].type!=="comment")&&b==="start"&&a.test(c)&&(e+=d),e},this.toggleCommentLines=function(a,e,f,g){console.log("toggle");var i=new h(0,0,0,0);for(var j=f;j<=g;++j){var k=e.getLine(j);if(c.test(k))continue;b.test(k)?k=k.replace(b,"$1"):k=k.replace(d,"$&#"),i.end.row=i.start.row=j,i.end.column=k.length+1,e.replace(i,k)}},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-coffee.js","ace/mode/coffee_worker","Worker");return b.attachToDocument(a.getDocument()),b.on("error",function(b){a.setAnnotations([b.data])}),b.on("ok",function(b){a.clearAnnotations()}),b}}.call(l.prototype),b.Mode=l}),define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){function g(){var a="[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*",b={token:"string",merge:!0,regex:".+"},c=d.arrayToMap("this|throw|then|try|typeof|super|switch|return|break|by)|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes".split("|")),e=d.arrayToMap("true|false|null|undefined".split("|")),f=d.arrayToMap("case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|extends|slice|bind|indexOf".split("|")),g=d.arrayToMap("Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|RangeError|String|SyntaxError|Error|EvalError|TypeError|URIError".split("|")),h=d.arrayToMap("Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|RangeError|String|SyntaxError|Error|EvalError|TypeError|URIError".split("|"));this.$rules={start:[{token:"identifier",regex:"(?:(?:\\.|::)\\s*)"+a},{token:"variable",regex:"@(?:"+a+")?"},{token:function(a){return c.hasOwnProperty(a)?"keyword":e.hasOwnProperty(a)?"constant.language":f.hasOwnProperty(a)?"invalid.illegal":g.hasOwnProperty(a)?"language.support.class":h.hasOwnProperty(a)?"language.support.function":"identifier"},regex:a},{token:"constant.numeric",regex:"(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)"},{token:"string",merge:!0,regex:"'''",next:"qdoc"},{token:"string",merge:!0,regex:'"""',next:"qqdoc"},{token:"string",merge:!0,regex:"'",next:"qstring"},{token:"string",merge:!0,regex:'"',next:"qqstring"},{token:"string",merge:!0,regex:"`",next:"js"},{token:"string.regex",merge:!0,regex:"///",next:"heregex"},{token:"string.regex",regex:"/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)"},{token:"comment",merge:!0,regex:"###(?!#)",next:"comment"},{token:"comment",regex:"#.*"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\."},{token:"keyword.operator",regex:"(?:[\\-=]>|[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|\\!)"},{token:"paren.lparen",regex:"[({[]"},{token:"paren.rparen",regex:"[\\]})]"},{token:"text",regex:"\\s+"}],qdoc:[{token:"string",regex:".*?'''",next:"start"},b],qqdoc:[{token:"string",regex:'.*?"""',next:"start"},b],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",merge:!0,next:"start"},b],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',merge:!0,next:"start"},b],js:[{token:"string",merge:!0,regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"start"},b],heregex:[{token:"string.regex",regex:".*?///[imgy]{0,4}",next:"start"},{token:"comment.regex",regex:"\\s+(?:#.*)?"},{token:"string.regex",merge:!0,regex:"\\S+"}],comment:[{token:"comment",regex:".*?###",next:"start"},{token:"comment",merge:!0,regex:".+"}]}}"use strict";var d=a("../lib/lang"),e=a("../lib/oop"),f=a("./text_highlight_rules").TextHighlightRules;e.inherits(g,f),b.CoffeeHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./fold_mode").FoldMode,f=b.FoldMode=function(a){this.foldingStartMarker=new RegExp("(?:([\\[{])|("+a+"))(?:\\s*)(?:#.*)?$")};d.inherits(f,e),function(){this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),e=d.match(this.foldingStartMarker);if(e)return e[1]?this.openingBracketBlock(a,e[1],c,e.index):e[2]?this.indentationBlock(a,c,e.index+e[2].length):this.indentationBlock(a,c)}}.call(f.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Satoshi Murakami + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/coffee', ['require', 'exports', 'module' , 'ace/tokenizer', 'ace/mode/coffee_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/folding/pythonic', 'ace/range', 'ace/mode/text', 'ace/worker/worker_client', 'ace/lib/oop'], function(require, exports, module) { + + +var Tokenizer = require("../tokenizer").Tokenizer; +var Rules = require("./coffee_highlight_rules").CoffeeHighlightRules; +var Outdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var PythonFoldMode = require("./folding/pythonic").FoldMode; +var Range = require("../range").Range; +var TextMode = require("./text").Mode; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var oop = require("../lib/oop"); + +function Mode() { + this.$tokenizer = new Tokenizer(new Rules().getRules()); + this.$outdent = new Outdent(); + this.foldingRules = new PythonFoldMode("=|=>|->|\\s*class [^#]*"); +} + +oop.inherits(Mode, TextMode); + +(function() { + + var indenter = /(?:[({[=:]|[-=]>|\b(?:else|switch|try|catch(?:\s*[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$/; + var commentLine = /^(\s*)#/; + var hereComment = /^\s*###(?!#)/; + var indentation = /^\s*/; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + + if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') && + state === 'start' && indenter.test(line)) + indent += tab; + return indent; + }; + + this.toggleCommentLines = function(state, doc, startRow, endRow){ + console.log("toggle"); + var range = new Range(0, 0, 0, 0); + for (var i = startRow; i <= endRow; ++i) { + var line = doc.getLine(i); + if (hereComment.test(line)) + continue; + + if (commentLine.test(line)) + line = line.replace(commentLine, '$1'); + else + line = line.replace(indentation, '$&#'); + + range.end.row = range.start.row = i; + range.end.column = line.length + 1; + doc.replace(range, line); + } + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-coffee.js", "ace/mode/coffee_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + return worker; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/coffee_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + + var lang = require("../lib/lang"); + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + oop.inherits(CoffeeHighlightRules, TextHighlightRules); + + function CoffeeHighlightRules() { + var identifier = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; + var stringfill = { + token : "string", + merge : true, + regex : ".+" + }; + + var keywords = lang.arrayToMap(( + "this|throw|then|try|typeof|super|switch|return|break|by)|continue|" + + "catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|" + + "finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|" + + "or|on|unless|until|and|yes").split("|") + ); + + var langConstant = lang.arrayToMap(( + "true|false|null|undefined").split("|") + ); + + var illegal = lang.arrayToMap(( + "case|const|default|function|var|void|with|enum|export|implements|" + + "interface|let|package|private|protected|public|static|yield|" + + "__hasProp|extends|slice|bind|indexOf").split("|") + ); + + var supportClass = lang.arrayToMap(( + "Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|" + + "RangeError|String|SyntaxError|Error|EvalError|TypeError|URIError").split("|") + ); + + var supportFunction = lang.arrayToMap(( + "Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|" + + "encodeURIComponent|decodeURI|decodeURIComponent|RangeError|String|" + + "SyntaxError|Error|EvalError|TypeError|URIError").split("|") + ); + + this.$rules = { + start : [ + { + token : "identifier", + regex : "(?:(?:\\.|::)\\s*)" + identifier + }, { + token : "variable", + regex : "@(?:" + identifier + ")?" + }, { + token: function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (langConstant.hasOwnProperty(value)) + return "constant.language"; + else if (illegal.hasOwnProperty(value)) + return "invalid.illegal"; + else if (supportClass.hasOwnProperty(value)) + return "language.support.class"; + else if (supportFunction.hasOwnProperty(value)) + return "language.support.function"; + else + return "identifier"; + }, + regex : identifier + }, { + token : "constant.numeric", + regex : "(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)" + }, { + token : "string", + merge : true, + regex : "'''", + next : "qdoc" + }, { + token : "string", + merge : true, + regex : '"""', + next : "qqdoc" + }, { + token : "string", + merge : true, + regex : "'", + next : "qstring" + }, { + token : "string", + merge : true, + regex : '"', + next : "qqstring" + }, { + token : "string", + merge : true, + regex : "`", + next : "js" + }, { + token : "string.regex", + merge : true, + regex : "///", + next : "heregex" + }, { + token : "string.regex", + regex : "/(?!\\s)[^[/\\n\\\\]*(?: (?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[/\\n\\\\]*)*/[imgy]{0,4}(?!\\w)" + }, { + token : "comment", + merge : true, + regex : "###(?!#)", + next : "comment" + }, { + token : "comment", + regex : "#.*" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\." + }, { + token : "keyword.operator", + regex : "(?:[\\-=]>|[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|\\!)" + }, { + token : "paren.lparen", + regex : "[({[]" + }, { + token : "paren.rparen", + regex : "[\\]})]" + }, { + token : "text", + regex : "\\s+" + }], + + qdoc : [{ + token : "string", + regex : ".*?'''", + next : "start" + }, stringfill], + + qqdoc : [{ + token : "string", + regex : '.*?"""', + next : "start" + }, stringfill], + + qstring : [{ + token : "string", + regex : "[^\\\\']*(?:\\\\.[^\\\\']*)*'", + merge : true, + next : "start" + }, stringfill], + + qqstring : [{ + token : "string", + regex : '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"', + merge : true, + next : "start" + }, stringfill], + + js : [{ + token : "string", + merge : true, + regex : "[^\\\\`]*(?:\\\\.[^\\\\`]*)*`", + next : "start" + }, stringfill], + + heregex : [{ + token : "string.regex", + regex : '.*?///[imgy]{0,4}', + next : "start" + }, { + token : "comment.regex", + regex : "\\s+(?:#.*)?" + }, { + token : "string.regex", + merge : true, + regex : "\\S+" + }], + + comment : [{ + token : "comment", + regex : '.*?###', + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + }] + }; + } + + exports.CoffeeHighlightRules = CoffeeHighlightRules; +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/pythonic', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(markers) { + this.foldingStartMarker = new RegExp("(?:([\\[{])|(" + markers + "))(?:\\s*)(?:#.*)?$"); +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + if (match[1]) + return this.openingBracketBlock(session, match[1], row, match.index); + if (match[2]) + return this.indentationBlock(session, row, match.index + match[2].length); + return this.indentationBlock(session, row); + } + } + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-coldfusion.js b/build/src/mode-coldfusion.js index bd52fd01..570c2d8d 100644 --- a/build/src/mode-coldfusion.js +++ b/build/src/mode-coldfusion.js @@ -1 +1,1911 @@ -define("ace/mode/coldfusion",["require","exports","module","ace/lib/oop","ace/mode/xml","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/coldfusion_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./xml").Mode,f=a("./javascript").Mode,g=a("./css").Mode,h=a("../tokenizer").Tokenizer,i=a("./coldfusion_highlight_rules").ColdfusionHighlightRules,j=function(){e.call(this);var a=new i;this.$tokenizer=new h(a.getRules()),this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g})};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(j.prototype),b.Mode=j}),define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./xml_highlight_rules").XmlHighlightRules,h=a("./behaviour/xml").XmlBehaviour,i=a("./folding/xml").FoldMode,j=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h,this.foldingRules=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(j.prototype),b.Mode=j}),define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./xml_util"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"xml_pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},e.tag(this.$rules,"tag","start")};d.inherits(g,f),b.XmlHighlightRules=g}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="g.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../lib/lang"),f=a("../../range").Range,g=a("./fold_mode").FoldMode,h=a("../../token_iterator").TokenIterator,i=b.FoldMode=function(a){g.call(this),this.voidElements=a||{}};d.inherits(i,g),function(){this.getFoldWidget=function(a,b,c){var d=this._getFirstTagInLine(a,c);return d.closing?b=="markbeginend"?"end":"":!d.tagName||this.voidElements[d.tagName.toLowerCase()]?"":d.selfClosing?"":d.value.indexOf("/"+d.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(a,b){var c=a.getTokens(b,b)[0].tokens,d="";for(var f=0;f?)/,this._parseTag=function(a){var b=this.tagRe.exec(a),c=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:a,match:b?b[2]:"",closing:b?!!b[3]:!1,selfClosing:b?!!b[5]||b[2]=="/>":!1,tagName:b?b[4]:"",column:b[1]?c+b[1].length:c}},this._readTagForward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){if(!d)var d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()};c+=b.value;if(c.indexOf(">")!==-1){var e=this._parseTag(c);return e.start=d,e.end={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length},a.stepForward(),e}}while(b=a.stepForward());return null},this._readTagBackward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){d||(d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length}),c=b.value+c;if(c.indexOf("<")!==-1){var e=this._parseTag(c);return e.end=d,e.start={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()},a.stepBackward(),e}}while(b=a.stepBackward());return null},this._pop=function(a,b){while(a.length){var c=a[a.length-1];if(!b||c.tagName==b.tagName)return a.pop();if(this.voidElements[b.tagName])return;if(this.voidElements[c.tagName]){a.pop();continue}return null}},this.getFoldWidgetRange=function(a,b,c){var d=this._getFirstTagInLine(a,c);if(!d.match)return null;var e=d.closing||d.selfClosing,g=[],i;if(!e){var j=new h(a,c,d.column),k={row:c,column:d.column+d.tagName.length+2};while(i=this._readTagForward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(i.closing){this._pop(g,i);if(g.length==0)return f.fromPoints(k,i.start)}else g.push(i)}}else{var j=new h(a,c,d.column+d.match.length),l={row:c,column:d.column};while(i=this._readTagBackward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(!i.closing){this._pop(g,i);if(g.length==0)return i.start.column+=i.tagName.length+2,f.fromPoints(i.start,l)}else g.push(i)}}}}.call(i.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./css_highlight_rules").CssHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../worker/worker_client").WorkerClient,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new i(["ace"],"worker-css.js","ace/mode/css_worker","Worker");return b.attachToDocument(a.getDocument()),b.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)}),b}}.call(k.prototype),b.Mode=k}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f=e.arrayToMap("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace".split("|")),g="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",i="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",j=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+g+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:["constant.numeric"],regex:"([0-9]+)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:i},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":f.hasOwnProperty(e.toLowerCase())?"support.constant.fonts":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],k=e.copyArray(j);k.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var l=e.copyArray(j);l.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var m=[{token:"comment",merge:!0,regex:".+"}],n=e.copyArray(m);n.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var o=e.copyArray(m);o.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var p=e.copyArray(m);p.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:n,ruleset:k,ruleset_comment:p,media_ruleset:l,media_comment:o}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/coldfusion_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/text_highlight_rules","ace/mode/xml_util"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./css_highlight_rules").CssHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=a("./xml_util"),i=function(){this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"meta.tag",regex:"<(?=s*script)",next:"script"},{token:"meta.tag",regex:"<(?=s*style)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},h.tag(this.$rules,"tag","start"),h.tag(this.$rules,"style","css-start"),h.tag(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(i,g),b.ColdfusionHighlightRules=i}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/coldfusion', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/xml', 'ace/mode/javascript', 'ace/mode/css', 'ace/tokenizer', 'ace/mode/coldfusion_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var XmlMode = require("./xml").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var ColdfusionHighlightRules = require("./coldfusion_highlight_rules").ColdfusionHighlightRules; + +var Mode = function() { + XmlMode.call(this); + + var highlighter = new ColdfusionHighlightRules(); + this.$tokenizer = new Tokenizer(highlighter.getRules()); + + this.$embeds = highlighter.getEmbeds(); + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); +}; +oop.inherits(Mode, XmlMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xml_highlight_rules', 'ace/mode/behaviour/xml', 'ace/mode/folding/xml'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new XmlHighlightRules().getRules()); + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/xml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + this.$rules = { + start : [{ + token : "text", + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "xml_pe", + regex : "<\\!.*?>" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "constant.character.entity", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, { + token : "text", + regex : "[^<]+" + }], + + cdata : [{ + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "(?:[^\\]]|\\](?!\\]>))+" + }], + + comment : [{ + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + }] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); +}; + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +define('ace/mode/xml_util', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") +); + +var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") +); + +function string(state) { + return [{ + token : "string", + regex : '".*?"' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*', + next : state + "_qqstring" + }, { + token : "string", + regex : "'.*?'" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*", + next : state + "_qstring" + }]; +} + +function multiLineString(quote, state) { + return [{ + token : "string", + merge : true, + regex : ".*?" + quote, + next : state + }, { + token : "string", + merge : true, + regex : '.+' + }]; +} + +exports.tag = function(states, name, nextState) { + states[name] = [{ + token : "text", + regex : "\\s+" + }, { + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, + merge : true, + regex : "[-_a-zA-Z0-9:]+", + next : name + "_embed_attribute_list" + }, { + token: "empty", + regex: "", + next : name + "_embed_attribute_list" + }]; + + states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list"); + states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list"); + + states[name + "_embed_attribute_list"] = [{ + token : "meta.tag", + merge : true, + regex : "\/?>", + next : nextState + }, { + token : "keyword.operator", + regex : "=" + }, { + token : "entity.other.attribute-name", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "text", + regex : "\\s+" + }].concat(string(name)); +}; + +}); + +define('ace/mode/behaviour/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; + +var XmlBehaviour = function () { + + this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour + + this.add("brackets", "insertion", function (state, action, editor, session, text) { + if (text == '<') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return false; + } else { + return { + text: '<>', + selection: [1, 1] + } + } + } else if (text == '>') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '>') { // need some kind of matching check here + return { + text: '', + selection: [1, 1] + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChars = line.substring(cursor.column, cursor.column + 2); + if (rightChars == ' selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/range', 'ace/mode/folding/fold_mode', 'ace/token_iterator'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var lang = require("../../lib/lang"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var FoldMode = exports.FoldMode = function(voidElements) { + BaseFoldMode.call(this); + this.voidElements = voidElements || {}; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (tag.closing) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || this.voidElements[tag.tagName.toLowerCase()]) + return ""; + + if (tag.selfClosing) + return ""; + + if (tag.value.indexOf("/" + tag.tagName) !== -1) + return ""; + + return "start"; + }; + + this._getFirstTagInLine = function(session, row) { + var tokens = session.getTokens(row, row)[0].tokens; + var value = ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token.type.indexOf("meta.tag") === 0) + value += token.value; + else + value += lang.stringRepeat(" ", token.value.length); + } + + return this._parseTag(value); + }; + + this.tagRe = /^(\s*)(?)/; + this._parseTag = function(tag) { + + var match = this.tagRe.exec(tag); + var column = this.tagRe.lastIndex || 0; + this.tagRe.lastIndex = 0; + + return { + value: tag, + match: match ? match[2] : "", + closing: match ? !!match[3] : false, + selfClosing: match ? !!match[5] || match[2] == "/>" : false, + tagName: match ? match[4] : "", + column: match[1] ? column + match[1].length : column + }; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var start; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!start) { + var start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + } + value += token.value; + if (value.indexOf(">") !== -1) { + var tag = this._parseTag(value); + tag.start = start; + tag.end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + iterator.stepForward(); + return tag; + } + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var end; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!end) { + end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + } + value = token.value + value; + if (value.indexOf("<") !== -1) { + var tag = this._parseTag(value); + tag.end = end; + tag.start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + iterator.stepBackward(); + return tag; + } + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.voidElements[tag.tagName]) { + return; + } + else if (this.voidElements[top.tagName]) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag.match) + return null; + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.column); + var start = { + row: row, + column: firstTag.column + firstTag.tagName.length + 2 + }; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag) + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length); + var end = { + row: row, + column: firstTag.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag) + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/css', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/css_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/worker/worker_client', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new CssHighlightRules().getRules(), "i"); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + // ignore braces in comments + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-css.js", "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("csslint", function(e) { + var errors = []; + e.data.forEach(function(message) { + errors.push({ + row: message.line - 1, + column: message.col - 1, + text: message.message, + type: message.type, + lint: message + }); + }); + + session.setAnnotations(errors); + }); + return worker; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CssHighlightRules = function() { + + var properties = lang.arrayToMap( + ("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index").split("|") + ); + + var functions = lang.arrayToMap( + ("rgb|rgba|url|attr|counter|counters").split("|") + ); + + var constants = lang.arrayToMap( + ("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero").split("|") + ); + + var colors = lang.arrayToMap( + ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" + + "purple|red|silver|teal|white|yellow").split("|") + ); + + var fonts = lang.arrayToMap( + ("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|" + + "symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|" + + "serif|monospace").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + var pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; + var pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + + var base_ruleset = [ + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "ruleset_comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : ["constant.numeric"], + regex : "([0-9]+)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) { + return "support.type"; + } + else if (functions.hasOwnProperty(value.toLowerCase())) { + return "support.function"; + } + else if (constants.hasOwnProperty(value.toLowerCase())) { + return "support.constant"; + } + else if (colors.hasOwnProperty(value.toLowerCase())) { + return "support.constant.color"; + } + else if (fonts.hasOwnProperty(value.toLowerCase())) { + return "support.constant.fonts"; + } + else { + return "text"; + } + }, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ]; + + var ruleset = lang.copyArray(base_ruleset); + ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "start" + }); + + var media_ruleset = lang.copyArray( base_ruleset ); + media_ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "media" + }); + + var base_comment = [{ + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + }]; + + var comment = lang.copyArray(base_comment); + comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }); + + var media_comment = lang.copyArray(base_comment); + media_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "media" + }); + + var ruleset_comment = lang.copyArray(base_comment); + ruleset_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "ruleset" + }); + + this.$rules = { + "start" : [{ + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "string", + regex: "@.*?{", + next: "media" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "media" : [ { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "media_comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "media_ruleset" + },{ + token: "string", + regex: "\\}", + next: "start" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "comment" : comment, + + "ruleset" : ruleset, + "ruleset_comment" : ruleset_comment, + + "media_ruleset" : media_ruleset, + "media_comment" : media_comment + }; +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +define('ace/mode/coldfusion_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/css_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/mode/text_highlight_rules', 'ace/mode/xml_util'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var xml_util = require("./xml_util"); + +var ColdfusionHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + + this.$rules = { + start : [ { + token : "text", + merge : true, + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "meta.tag", + regex : "<(?=\s*script)", + next : "script" + }, { + token : "meta.tag", + regex : "<(?=\s*style)", + next : "style" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "[^<]+" + } ], + + cdata : [ { + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + merge : true, + regex : "\\s+" + }, { + token : "text", + merge : true, + regex : ".+" + } ], + + comment : [ { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + } ] + }; + + xml_util.tag(this.$rules, "tag", "start"); + xml_util.tag(this.$rules, "style", "css-start"); + xml_util.tag(this.$rules, "script", "js-start"); + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token: "comment", + regex: "\\/\\/.*(?=<\\/script>)", + next: "tag" + }, { + token: "meta.tag", + regex: "<\\/(?=script)", + next: "tag" + }]); + + this.embedRules(CssHighlightRules, "css-", [{ + token: "meta.tag", + regex: "<\\/(?=style)", + next: "tag" + }]); +}; + +oop.inherits(ColdfusionHighlightRules, TextHighlightRules); + +exports.ColdfusionHighlightRules = ColdfusionHighlightRules; +}); diff --git a/build/src/mode-csharp.js b/build/src/mode-csharp.js index 8ab070f6..8b24aaa1 100644 --- a/build/src/mode-csharp.js +++ b/build/src/mode-csharp.js @@ -1 +1,588 @@ -define("ace/mode/csharp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/csharp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./csharp_highlight_rules").CSharpHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./behaviour/cstyle").CstyleBehaviour,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i,this.foldingRules=new j};d.inherits(k,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[]\s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){return null}}.call(k.prototype),b.Mode=k}),define("ace/mode/csharp_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic".split("|")),b=e.arrayToMap("null|true|false".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},(new f).getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",merge:!0,next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[(new f).getEndRule("start")])};d.inherits(h,g),b.CSharpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +define('ace/mode/csharp', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/csharp_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var CSharpHighlightRules = require("./csharp_highlight_rules").CSharpHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new CSharpHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + + this.createWorker = function(session) { + return null; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); +define('ace/mode/csharp_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CSharpHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("null|true|false").split("|") + ); + + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + new DocCommentHighlightRules().getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + merge : true, + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ new DocCommentHighlightRules().getEndRule("start") ]); +}; + +oop.inherits(CSharpHighlightRules, TextHighlightRules); + +exports.CSharpHighlightRules = CSharpHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-css.js b/build/src/mode-css.js index 16e48251..3212c596 100644 --- a/build/src/mode-css.js +++ b/build/src/mode-css.js @@ -1 +1,497 @@ -define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./css_highlight_rules").CssHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../worker/worker_client").WorkerClient,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new i(["ace"],"worker-css.js","ace/mode/css_worker","Worker");return b.attachToDocument(a.getDocument()),b.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)}),b}}.call(k.prototype),b.Mode=k}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f=e.arrayToMap("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace".split("|")),g="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",i="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",j=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+g+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:["constant.numeric"],regex:"([0-9]+)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:i},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":f.hasOwnProperty(e.toLowerCase())?"support.constant.fonts":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],k=e.copyArray(j);k.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var l=e.copyArray(j);l.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var m=[{token:"comment",merge:!0,regex:".+"}],n=e.copyArray(m);n.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var o=e.copyArray(m);o.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var p=e.copyArray(m);p.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:n,ruleset:k,ruleset_comment:p,media_ruleset:l,media_comment:o}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/css', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/css_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/worker/worker_client', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new CssHighlightRules().getRules(), "i"); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + // ignore braces in comments + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-css.js", "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("csslint", function(e) { + var errors = []; + e.data.forEach(function(message) { + errors.push({ + row: message.line - 1, + column: message.col - 1, + text: message.message, + type: message.type, + lint: message + }); + }); + + session.setAnnotations(errors); + }); + return worker; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CssHighlightRules = function() { + + var properties = lang.arrayToMap( + ("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index").split("|") + ); + + var functions = lang.arrayToMap( + ("rgb|rgba|url|attr|counter|counters").split("|") + ); + + var constants = lang.arrayToMap( + ("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero").split("|") + ); + + var colors = lang.arrayToMap( + ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" + + "purple|red|silver|teal|white|yellow").split("|") + ); + + var fonts = lang.arrayToMap( + ("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|" + + "symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|" + + "serif|monospace").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + var pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; + var pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + + var base_ruleset = [ + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "ruleset_comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : ["constant.numeric"], + regex : "([0-9]+)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) { + return "support.type"; + } + else if (functions.hasOwnProperty(value.toLowerCase())) { + return "support.function"; + } + else if (constants.hasOwnProperty(value.toLowerCase())) { + return "support.constant"; + } + else if (colors.hasOwnProperty(value.toLowerCase())) { + return "support.constant.color"; + } + else if (fonts.hasOwnProperty(value.toLowerCase())) { + return "support.constant.fonts"; + } + else { + return "text"; + } + }, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ]; + + var ruleset = lang.copyArray(base_ruleset); + ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "start" + }); + + var media_ruleset = lang.copyArray( base_ruleset ); + media_ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "media" + }); + + var base_comment = [{ + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + }]; + + var comment = lang.copyArray(base_comment); + comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }); + + var media_comment = lang.copyArray(base_comment); + media_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "media" + }); + + var ruleset_comment = lang.copyArray(base_comment); + ruleset_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "ruleset" + }); + + this.$rules = { + "start" : [{ + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "string", + regex: "@.*?{", + next: "media" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "media" : [ { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "media_comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "media_ruleset" + },{ + token: "string", + regex: "\\}", + next: "start" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "comment" : comment, + + "ruleset" : ruleset, + "ruleset_comment" : ruleset_comment, + + "media_ruleset" : media_ruleset, + "media_comment" : media_comment + }; +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-golang.js b/build/src/mode-golang.js index a2ead221..248f15cc 100644 --- a/build/src/mode-golang.js +++ b/build/src/mode-golang.js @@ -1 +1,306 @@ -define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent"],function(a,b,c){var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./golang_highlight_rules").GolangHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)\/\//;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var i=new Range(0,0,0,0);for(var h=c;h<=d;h++){var j=b.getLine(h),k=j.match(g);i.start.row=h,i.end.row=h,i.end.column=k[0].length,b.replace(i,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(i.prototype),b.Mode=i}),define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("true|else|false|break|case|return|goto|if|const|continue|struct|default|switch|for|func|import|package|chan|defer|fallthrough|go|interface|map|rangeselect|type|var".split("|")),b=e.arrayToMap("nit|true|false|iota".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(h,g),b.GolangHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) \ No newline at end of file +define('ace/mode/golang', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/golang_highlight_rules', 'ace/mode/matching_brace_outdent'], function(require, exports, module) { + + var oop = require("../lib/oop"); + var TextMode = require("./text").Mode; + var Tokenizer = require("../tokenizer").Tokenizer; + var GolangHighlightRules = require("./golang_highlight_rules").GolangHighlightRules; + var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + + var Mode = function() { + this.$tokenizer = new Tokenizer(new GolangHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + }; + oop.inherits(Mode, TextMode); + + (function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var outentedRows = []; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + };//end getNextLineIndent + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + }).call(Mode.prototype); + + exports.Mode = Mode; +}); +define('ace/mode/golang_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + var oop = require("../lib/oop"); + var lang = require("../lib/lang"); + var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + var GolangHighlightRules = function() { + var keywords = lang.arrayToMap( + ("true|else|false|break|case|return|goto|if|const|" + + "continue|struct|default|switch|for|" + + "func|import|package|chan|defer|fallthrough|go|interface|map|range" + + "select|type|var").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("nit|true|false|iota").split("|") + ); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant", // + regex : "<[a-zA-Z0-9.]+>" + }, { + token : "keyword", // pre-compiler directivs + regex : "(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; + } + oop.inherits(GolangHighlightRules, TextHighlightRules); + + exports.GolangHighlightRules = GolangHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); diff --git a/build/src/mode-groovy.js b/build/src/mode-groovy.js index 601da8b5..17a04bdd 100644 --- a/build/src/mode-groovy.js +++ b/build/src/mode-groovy.js @@ -1 +1,1139 @@ -define("ace/mode/groovy",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/groovy_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./javascript").Mode,f=a("../tokenizer").Tokenizer,g=a("./groovy_highlight_rules").GroovyHighlightRules,h=function(){e.call(this),this.$tokenizer=new f((new g).getRules())};d.inherits(h,e),function(){this.createWorker=function(a){return null}}.call(h.prototype),b.Mode=h}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/groovy_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("assert|with|abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|def|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.GroovyHighlightRules=h}) \ No newline at end of file +define('ace/mode/groovy', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/javascript', 'ace/tokenizer', 'ace/mode/groovy_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var GroovyHighlightRules = require("./groovy_highlight_rules").GroovyHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.$tokenizer = new Tokenizer(new GroovyHighlightRules().getRules()); +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); +define('ace/mode/groovy_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var GroovyHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("assert|with|abstract|continue|for|new|switch|" + + "assert|default|goto|package|synchronized|" + + "boolean|do|if|private|this|" + + "break|double|implements|protected|throw|" + + "byte|else|import|public|throws|" + + "case|enum|instanceof|return|transient|" + + "catch|extends|int|short|try|" + + "char|final|interface|static|void|" + + "class|finally|long|strictfp|volatile|" + + "def|float|native|super|while").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("null|Infinity|NaN|undefined").split("|") + ); + + var langClasses = lang.arrayToMap( + ("AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object").split("|") + ); + + var importClasses = lang.arrayToMap( + ("").split("|") + ); + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (langClasses.hasOwnProperty(value)) + return "support.function"; + else if (importClasses.hasOwnProperty(value)) + return "support.function"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(GroovyHighlightRules, TextHighlightRules); + +exports.GroovyHighlightRules = GroovyHighlightRules; +}); diff --git a/build/src/mode-haxe.js b/build/src/mode-haxe.js index 327137dc..0867c274 100644 --- a/build/src/mode-haxe.js +++ b/build/src/mode-haxe.js @@ -1 +1,588 @@ -define("ace/mode/haxe",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/haxe_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./haxe_highlight_rules").HaxeHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./behaviour/cstyle").CstyleBehaviour,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i,this.foldingRules=new j};d.inherits(k,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[]\s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){return null}}.call(k.prototype),b.Mode=k}),define("ace/mode/haxe_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std".split("|")),b=e.arrayToMap("null|true|false".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",merge:!0,next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"punctuation.operator",regex:"\\?|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[({<]"},{token:"paren.rparen",regex:"[\\])}>]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.HaxeHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +define('ace/mode/haxe', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/haxe_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var HaxeHighlightRules = require("./haxe_highlight_rules").HaxeHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new HaxeHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + + this.createWorker = function(session) { + return null; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); +define('ace/mode/haxe_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var HaxeHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("null|true|false").split("|") + ); + + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + merge : true, + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({<]" + }, { + token : "paren.rparen", + regex : "[\\])}>]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(HaxeHighlightRules, TextHighlightRules); + +exports.HaxeHighlightRules = HaxeHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-html.js b/build/src/mode-html.js index 835a95ae..3d9c4f42 100644 --- a/build/src/mode-html.js +++ b/build/src/mode-html.js @@ -1 +1,1928 @@ -define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("./javascript").Mode,g=a("./css").Mode,h=a("../tokenizer").Tokenizer,i=a("./html_highlight_rules").HtmlHighlightRules,j=a("./behaviour/xml").XmlBehaviour,k=a("./folding/html").FoldMode,l=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g}),this.foldingRules=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(l.prototype),b.Mode=l}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./css_highlight_rules").CssHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../worker/worker_client").WorkerClient,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new i(["ace"],"worker-css.js","ace/mode/css_worker","Worker");return b.attachToDocument(a.getDocument()),b.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)}),b}}.call(k.prototype),b.Mode=k}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f=e.arrayToMap("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace".split("|")),g="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",i="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",j=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+g+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:["constant.numeric"],regex:"([0-9]+)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:i},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":f.hasOwnProperty(e.toLowerCase())?"support.constant.fonts":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],k=e.copyArray(j);k.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var l=e.copyArray(j);l.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var m=[{token:"comment",merge:!0,regex:".+"}],n=e.copyArray(m);n.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var o=e.copyArray(m);o.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var p=e.copyArray(m);p.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:n,ruleset:k,ruleset_comment:p,media_ruleset:l,media_comment:o}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./css_highlight_rules").CssHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("./xml_util"),h=a("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"xml_pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=s*script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=s*style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},g.tag(this.$rules,"tag","start"),g.tag(this.$rules,"style","css-start"),g.tag(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(i,h),b.HtmlHighlightRules=i}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="?)/,this._parseTag=function(a){var b=this.tagRe.exec(a),c=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:a,match:b?b[2]:"",closing:b?!!b[3]:!1,selfClosing:b?!!b[5]||b[2]=="/>":!1,tagName:b?b[4]:"",column:b[1]?c+b[1].length:c}},this._readTagForward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){if(!d)var d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()};c+=b.value;if(c.indexOf(">")!==-1){var e=this._parseTag(c);return e.start=d,e.end={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length},a.stepForward(),e}}while(b=a.stepForward());return null},this._readTagBackward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){d||(d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length}),c=b.value+c;if(c.indexOf("<")!==-1){var e=this._parseTag(c);return e.end=d,e.start={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()},a.stepBackward(),e}}while(b=a.stepBackward());return null},this._pop=function(a,b){while(a.length){var c=a[a.length-1];if(!b||c.tagName==b.tagName)return a.pop();if(this.voidElements[b.tagName])return;if(this.voidElements[c.tagName]){a.pop();continue}return null}},this.getFoldWidgetRange=function(a,b,c){var d=this._getFirstTagInLine(a,c);if(!d.match)return null;var e=d.closing||d.selfClosing,g=[],i;if(!e){var j=new h(a,c,d.column),k={row:c,column:d.column+d.tagName.length+2};while(i=this._readTagForward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(i.closing){this._pop(g,i);if(g.length==0)return f.fromPoints(k,i.start)}else g.push(i)}}else{var j=new h(a,c,d.column+d.match.length),l={row:c,column:d.column};while(i=this._readTagBackward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(!i.closing){this._pop(g,i);if(g.length==0)return i.start.column+=i.tagName.length+2,f.fromPoints(i.start,l)}else g.push(i)}}}}.call(i.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/mode/javascript', 'ace/mode/css', 'ace/tokenizer', 'ace/mode/html_highlight_rules', 'ace/mode/behaviour/xml', 'ace/mode/folding/html'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; + +var Mode = function() { + var highlighter = new HtmlHighlightRules(); + this.$tokenizer = new Tokenizer(highlighter.getRules()); + this.$behaviour = new XmlBehaviour(); + + this.$embeds = highlighter.getEmbeds(); + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + return 0; + }; + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/css', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/css_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/worker/worker_client', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new CssHighlightRules().getRules(), "i"); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + // ignore braces in comments + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-css.js", "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("csslint", function(e) { + var errors = []; + e.data.forEach(function(message) { + errors.push({ + row: message.line - 1, + column: message.col - 1, + text: message.message, + type: message.type, + lint: message + }); + }); + + session.setAnnotations(errors); + }); + return worker; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CssHighlightRules = function() { + + var properties = lang.arrayToMap( + ("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index").split("|") + ); + + var functions = lang.arrayToMap( + ("rgb|rgba|url|attr|counter|counters").split("|") + ); + + var constants = lang.arrayToMap( + ("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero").split("|") + ); + + var colors = lang.arrayToMap( + ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" + + "purple|red|silver|teal|white|yellow").split("|") + ); + + var fonts = lang.arrayToMap( + ("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|" + + "symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|" + + "serif|monospace").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + var pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; + var pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + + var base_ruleset = [ + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "ruleset_comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : ["constant.numeric"], + regex : "([0-9]+)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) { + return "support.type"; + } + else if (functions.hasOwnProperty(value.toLowerCase())) { + return "support.function"; + } + else if (constants.hasOwnProperty(value.toLowerCase())) { + return "support.constant"; + } + else if (colors.hasOwnProperty(value.toLowerCase())) { + return "support.constant.color"; + } + else if (fonts.hasOwnProperty(value.toLowerCase())) { + return "support.constant.fonts"; + } + else { + return "text"; + } + }, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ]; + + var ruleset = lang.copyArray(base_ruleset); + ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "start" + }); + + var media_ruleset = lang.copyArray( base_ruleset ); + media_ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "media" + }); + + var base_comment = [{ + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + }]; + + var comment = lang.copyArray(base_comment); + comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }); + + var media_comment = lang.copyArray(base_comment); + media_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "media" + }); + + var ruleset_comment = lang.copyArray(base_comment); + ruleset_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "ruleset" + }); + + this.$rules = { + "start" : [{ + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "string", + regex: "@.*?{", + next: "media" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "media" : [ { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "media_comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "media_ruleset" + },{ + token: "string", + regex: "\\}", + next: "start" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "comment" : comment, + + "ruleset" : ruleset, + "ruleset_comment" : ruleset_comment, + + "media_ruleset" : media_ruleset, + "media_comment" : media_comment + }; +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +define('ace/mode/html_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/css_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var HtmlHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + this.$rules = { + start : [{ + token : "text", + merge : true, + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "xml_pe", + regex : "<\\!.*?>" + }, { + token : "meta.tag", + regex : "<(?=\s*script\\b)", + next : "script" + }, { + token : "meta.tag", + regex : "<(?=\s*style\\b)", + next : "style" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "constant.character.entity", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, { + token : "text", + regex : "[^<]+" + } ], + + cdata : [ { + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + merge : true, + regex : "\\s+" + }, { + token : "text", + merge : true, + regex : ".+" + } ], + + comment : [ { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + } ] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); + xmlUtil.tag(this.$rules, "style", "css-start"); + xmlUtil.tag(this.$rules, "script", "js-start"); + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token: "comment", + regex: "\\/\\/.*(?=<\\/script>)", + next: "tag" + }, { + token: "meta.tag", + regex: "<\\/(?=script)", + next: "tag" + }]); + + this.embedRules(CssHighlightRules, "css-", [{ + token: "meta.tag", + regex: "<\\/(?=style)", + next: "tag" + }]); +}; + +oop.inherits(HtmlHighlightRules, TextHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +define('ace/mode/xml_util', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") +); + +var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") +); + +function string(state) { + return [{ + token : "string", + regex : '".*?"' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*', + next : state + "_qqstring" + }, { + token : "string", + regex : "'.*?'" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*", + next : state + "_qstring" + }]; +} + +function multiLineString(quote, state) { + return [{ + token : "string", + merge : true, + regex : ".*?" + quote, + next : state + }, { + token : "string", + merge : true, + regex : '.+' + }]; +} + +exports.tag = function(states, name, nextState) { + states[name] = [{ + token : "text", + regex : "\\s+" + }, { + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, + merge : true, + regex : "[-_a-zA-Z0-9:]+", + next : name + "_embed_attribute_list" + }, { + token: "empty", + regex: "", + next : name + "_embed_attribute_list" + }]; + + states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list"); + states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list"); + + states[name + "_embed_attribute_list"] = [{ + token : "meta.tag", + merge : true, + regex : "\/?>", + next : nextState + }, { + token : "keyword.operator", + regex : "=" + }, { + token : "entity.other.attribute-name", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "text", + regex : "\\s+" + }].concat(string(name)); +}; + +}); + +define('ace/mode/behaviour/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; + +var XmlBehaviour = function () { + + this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour + + this.add("brackets", "insertion", function (state, action, editor, session, text) { + if (text == '<') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return false; + } else { + return { + text: '<>', + selection: [1, 1] + } + } + } else if (text == '>') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '>') { // need some kind of matching check here + return { + text: '', + selection: [1, 1] + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChars = line.substring(cursor.column, cursor.column + 2); + if (rightChars == '?)/; + this._parseTag = function(tag) { + + var match = this.tagRe.exec(tag); + var column = this.tagRe.lastIndex || 0; + this.tagRe.lastIndex = 0; + + return { + value: tag, + match: match ? match[2] : "", + closing: match ? !!match[3] : false, + selfClosing: match ? !!match[5] || match[2] == "/>" : false, + tagName: match ? match[4] : "", + column: match[1] ? column + match[1].length : column + }; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var start; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!start) { + var start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + } + value += token.value; + if (value.indexOf(">") !== -1) { + var tag = this._parseTag(value); + tag.start = start; + tag.end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + iterator.stepForward(); + return tag; + } + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var end; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!end) { + end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + } + value = token.value + value; + if (value.indexOf("<") !== -1) { + var tag = this._parseTag(value); + tag.end = end; + tag.start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + iterator.stepBackward(); + return tag; + } + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.voidElements[tag.tagName]) { + return; + } + else if (this.voidElements[top.tagName]) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag.match) + return null; + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.column); + var start = { + row: row, + column: firstTag.column + firstTag.tagName.length + 2 + }; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag) + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length); + var end = { + row: row, + column: firstTag.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag) + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-java.js b/build/src/mode-java.js index a47f6789..3c85947f 100644 --- a/build/src/mode-java.js +++ b/build/src/mode-java.js @@ -1 +1,1141 @@ -define("ace/mode/java",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/java_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./javascript").Mode,f=a("../tokenizer").Tokenizer,g=a("./java_highlight_rules").JavaHighlightRules,h=function(){e.call(this),this.$tokenizer=new f((new g).getRules())};d.inherits(h,e),function(){this.createWorker=function(a){return null}}.call(h.prototype),b.Mode=h}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while".split("|")),b=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.JavaHighlightRules=h}) \ No newline at end of file +define('ace/mode/java', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/javascript', 'ace/tokenizer', 'ace/mode/java_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + + this.$tokenizer = new Tokenizer(new JavaHighlightRules().getRules()); +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); +define('ace/mode/java_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JavaHighlightRules = function() { + + // taken from http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html + var keywords = lang.arrayToMap( + ("abstract|continue|for|new|switch|" + + "assert|default|goto|package|synchronized|" + + "boolean|do|if|private|this|" + + "break|double|implements|protected|throw|" + + "byte|else|import|public|throws|" + + "case|enum|instanceof|return|transient|" + + "catch|extends|int|short|try|" + + "char|final|interface|static|void|" + + "class|finally|long|strictfp|volatile|" + + "const|float|native|super|while").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("null|Infinity|NaN|undefined").split("|") + ); + + var langClasses = lang.arrayToMap( + ("AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object").split("|") + ); + + var importClasses = lang.arrayToMap( + ("").split("|") + ); + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (langClasses.hasOwnProperty(value)) + return "support.function"; + else if (importClasses.hasOwnProperty(value)) + return "support.function"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaHighlightRules, TextHighlightRules); + +exports.JavaHighlightRules = JavaHighlightRules; +}); diff --git a/build/src/mode-javascript.js b/build/src/mode-javascript.js index 72adfdd0..64066661 100644 --- a/build/src/mode-javascript.js +++ b/build/src/mode-javascript.js @@ -1 +1,1008 @@ -define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-json.js b/build/src/mode-json.js index 05729db5..4e449082 100644 --- a/build/src/mode-json.js +++ b/build/src/mode-json.js @@ -1 +1,519 @@ -define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./json_highlight_rules").JsonHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./behaviour/cstyle").CstyleBehaviour,j=a("./folding/cstyle").FoldMode,k=a("../worker/worker_client").WorkerClient,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i,this.foldingRules=new j};d.inherits(l,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b);if(a=="start"){var e=b.match(/^.*[\{\(\[]\s*$/);e&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new k(["ace"],"worker-json.js","ace/mode/json_worker","JsonWorker");return b.attachToDocument(a.getDocument()),b.on("error",function(b){a.setAnnotations([b.data])}),b.on("ok",function(){a.clearAnnotations()}),b}}.call(l.prototype),b.Mode=l}),define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]}};d.inherits(f,e),b.JsonHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/json', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/json_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle', 'ace/worker/worker_client'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var HighlightRules = require("./json_highlight_rules").JsonHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new HighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-json.js", "ace/mode/json_worker", "JsonWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/json_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JsonHighlightRules = function() { + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + this.$rules = { + "start" : [ + { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : "invalid.illegal", // single quoted strings are not allowed + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "invalid.illegal", // comments are not allowed + regex : "\\/\\/.*$" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ] + }; + +}; + +oop.inherits(JsonHighlightRules, TextHighlightRules); + +exports.JsonHighlightRules = JsonHighlightRules; +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-latex.js b/build/src/mode-latex.js index e6cfb7cc..82e5f0e9 100644 --- a/build/src/mode-latex.js +++ b/build/src/mode-latex.js @@ -1 +1,95 @@ -define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/latex_highlight_rules","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./latex_highlight_rules").LatexHighlightRules,h=a("../range").Range,i=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\%/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var i=new h(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);i.start.row=g,i.end.row=g,i.end.column=k[0].length,b.replace(i,k[1])}}else b.indentRows(c,d,"%")},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),define("ace/mode/latex_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"keyword",regex:"\\\\(?:[^a-zA-Z]|[a-zA-Z]+)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"string",regex:"\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$"},{token:"comment",regex:"%.*$"}]}};d.inherits(f,e),b.LatexHighlightRules=f}) \ No newline at end of file +define('ace/mode/latex', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/latex_highlight_rules', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var LatexHighlightRules = require("./latex_highlight_rules").LatexHighlightRules; +var Range = require("../range").Range; + +var Mode = function() +{ + this.$tokenizer = new Tokenizer(new LatexHighlightRules().getRules()); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.toggleCommentLines = function(state, doc, startRow, endRow) { + // This code is adapted from ruby.js + var outdent = true; + + // LaTeX comments begin with % and go to the end of the line + var commentRegEx = /^(\s*)\%/; + + for (var i = startRow; i <= endRow; i++) { + if (!commentRegEx.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i = startRow; i <= endRow; i++) { + var line = doc.getLine(i); + var m = line.match(commentRegEx); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "%"); + } + }; + + // There is no universally accepted way of indenting a tex document + // so just maintain the indentation of the previous line + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); +define('ace/mode/latex_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LatexHighlightRules = function() { + this.$rules = { + "start" : [{ + // A tex command e.g. \foo + token : "keyword", + regex : "\\\\(?:[^a-zA-Z]|[a-zA-Z]+)", + }, { + // Curly and square braces + token : "lparen", + regex : "[[({]" + }, { + // Curly and square braces + token : "rparen", + regex : "[\\])}]" + }, { + // Inline math between two $ symbols + token : "string", + regex : "\\$(?:(?:\\\\.)|(?:[^\\$\\\\]))*?\\$" + }, { + // A comment. Tex comments start with % and go to + // the end of the line + token : "comment", + regex : "%.*$" + }] + }; +}; + +oop.inherits(LatexHighlightRules, TextHighlightRules); + +exports.LatexHighlightRules = LatexHighlightRules; + +}); diff --git a/build/src/mode-less.js b/build/src/mode-less.js index 8ecd9aad..660ac4cd 100644 --- a/build/src/mode-less.js +++ b/build/src/mode-less.js @@ -1 +1,510 @@ -define("ace/mode/less",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/less_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./less_highlight_rules").LessHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./folding/cstyle").FoldMode,j=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap(function(){var a="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),b="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),c="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),d=[];for(var e=0,f=a.length;e|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.LessHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * John Roepke + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/less', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/less_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var LessHighlightRules = require("./less_highlight_rules").LessHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new LessHighlightRules().getRules(), "i"); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + // ignore braces in comments + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/less_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LessHighlightRules = function() { + + var properties = lang.arrayToMap( (function () { + + var browserPrefix = ("-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-").split("|"); + + var prefixProperties = ("appearance|background-clip|background-inline-policy|background-origin|" + + "background-size|binding|border-bottom-colors|border-left-colors|" + + "border-right-colors|border-top-colors|border-end|border-end-color|" + + "border-end-style|border-end-width|border-image|border-start|" + + "border-start-color|border-start-style|border-start-width|box-align|" + + "box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|" + + "box-pack|box-sizing|column-count|column-gap|column-width|column-rule|" + + "column-rule-width|column-rule-style|column-rule-color|float-edge|" + + "font-feature-settings|font-language-override|force-broken-image-icon|" + + "image-region|margin-end|margin-start|opacity|outline|outline-color|" + + "outline-offset|outline-radius|outline-radius-bottomleft|" + + "outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|" + + "outline-style|outline-width|padding-end|padding-start|stack-sizing|" + + "tab-size|text-blink|text-decoration-color|text-decoration-line|" + + "text-decoration-style|transform|transform-origin|transition|" + + "transition-delay|transition-duration|transition-property|" + + "transition-timing-function|user-focus|user-input|user-modify|user-select|" + + "window-shadow|border-radius").split("|"); + + var properties = ("azimuth|background-attachment|background-color|background-image|" + + "background-position|background-repeat|background|border-bottom-color|" + + "border-bottom-style|border-bottom-width|border-bottom|border-collapse|" + + "border-color|border-left-color|border-left-style|border-left-width|" + + "border-left|border-right-color|border-right-style|border-right-width|" + + "border-right|border-spacing|border-style|border-top-color|" + + "border-top-style|border-top-width|border-top|border-width|border|" + + "bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|" + + "counter-reset|cue-after|cue-before|cue|cursor|direction|display|" + + "elevation|empty-cells|float|font-family|font-size-adjust|font-size|" + + "font-stretch|font-style|font-variant|font-weight|font|height|left|" + + "letter-spacing|line-height|list-style-image|list-style-position|" + + "list-style-type|list-style|margin-bottom|margin-left|margin-right|" + + "margin-top|marker-offset|margin|marks|max-height|max-width|min-height|" + + "min-width|opacity|orphans|outline-color|" + + "outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|" + + "padding-left|padding-right|padding-top|padding|page-break-after|" + + "page-break-before|page-break-inside|page|pause-after|pause-before|" + + "pause|pitch-range|pitch|play-during|position|quotes|richness|right|" + + "size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|" + + "stress|table-layout|text-align|text-decoration|text-indent|" + + "text-shadow|text-transform|top|unicode-bidi|vertical-align|" + + "visibility|voice-family|volume|white-space|widows|width|word-spacing|" + + "z-index").split("|"); + + //The return array + var ret = []; + + //All prefixProperties will get the browserPrefix in + //the begning by join the prefixProperties array with the value of browserPrefix + for (var i=0, ln=browserPrefix.length; i the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", + regex : numRe + "(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else + return "variable"; + }, + regex : "@[a-z0-9_\\-@]*\\b" + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) + return "support.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (constants.hasOwnProperty(value)) + return "constant.language"; + else if (functions.hasOwnProperty(value)) + return "support.function"; + else if (colors.hasOwnProperty(value.toLowerCase())) + return "support.constant.color"; + else if (tags.hasOwnProperty(value.toLowerCase())) + return "variable.language"; + else + return "text"; + }, + regex : "\\-?[@a-z_][@a-z0-9_\\-]*" + }, { + token: "variable.language", + regex: "#[a-z0-9-_]+" + }, { + token: "variable.language", + regex: "\\.[a-z0-9-_]+" + }, { + token: "variable.language", + regex: ":[a-z0-9-_]+" + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + token : "keyword.operator", + regex : "<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; +}; + +oop.inherits(LessHighlightRules, TextHighlightRules); + +exports.LessHighlightRules = LessHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-liquid.js b/build/src/mode-liquid.js index 7615c774..97eef7fa 100644 --- a/build/src/mode-liquid.js +++ b/build/src/mode-liquid.js @@ -1 +1,1136 @@ -define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./liquid_highlight_rules").LiquidHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)#/;for(var h=c;h<=d;h++)if(!g.test(b.getLine(h))){e=!1;break}if(e){var j=new i(0,0,0,0);for(var h=c;h<=d;h++){var k=b.getLine(h),l=k.match(g);j.start.row=h,j.end.row=h,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/liquid_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/lib/lang","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./css_highlight_rules").CssHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("../lib/lang"),h=a("./xml_util"),i=a("./text_highlight_rules").TextHighlightRules,j=function(){var a=g.arrayToMap("date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split".split("|")),b=g.arrayToMap("capture|endcapture|case|endcase|when|comment|endcomment|cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow".split("|")),c=g.arrayToMap(["forloop"]),d=g.arrayToMap("assign".split("|"));this.$rules={start:[{token:"variable",regex:"{%",next:"liquid_start"},{token:"variable",regex:"{{",next:"liquid_start"},{token:"meta.tag",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"meta.tag",regex:"<(?=\\s*script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=\\s*style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}],liquid_start:[{token:"variable",regex:"}}",next:"start"},{token:"variable",regex:"%}",next:"start"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return a.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"variable.language":d.hasOwnProperty(e)?"keyword.definition":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"/|\\*|\\-|\\+|=|!=|\\?\\:"},{token:"paren.lparen",regex:/[\[\({]/},{token:"paren.rparen",regex:/[\])}]/},{token:"text",regex:"\\s+"}]},h.tag(this.$rules,"tag","start"),h.tag(this.$rules,"style","css-start"),h.tag(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(j,i),b.LiquidHighlightRules=j}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f=e.arrayToMap("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace".split("|")),g="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",i="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",j=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+g+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:["constant.numeric"],regex:"([0-9]+)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:i},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":f.hasOwnProperty(e.toLowerCase())?"support.constant.fonts":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],k=e.copyArray(j);k.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var l=e.copyArray(j);l.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var m=[{token:"comment",merge:!0,regex:".+"}],n=e.copyArray(m);n.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var o=e.copyArray(m);o.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var p=e.copyArray(m);p.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:n,ruleset:k,ruleset_comment:p,media_ruleset:l,media_comment:o}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/unicode","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("../unicode"),g=a("./doc_comment_highlight_rules").DocCommentHighlightRules,h=a("./text_highlight_rules").TextHighlightRules,i=function(){var a=e.arrayToMap("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document".split("|")),b=e.arrayToMap("break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|const|yield|import|get|set".split("|")),c="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield",d=e.arrayToMap("__parent__|__count__|escape|unescape|with|__proto__".split("|")),h=e.arrayToMap("const|let|var|function".split("|")),i=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),j=e.arrayToMap("class|enum|extends|super|export|implements|private|public|interface|package|protected|static".split("|")),k="["+f.packages.L+"\\$_]["+f.packages.L+f.packages.Mn+f.packages.Mc+f.packages.Nd+f.packages.Pc+"\\$_]*\\b",l="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\.)(prototype)(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator","text"],regex:"("+k+")(\\.)(prototype)(\\.)("+k+")(\\s*)(=)(\\s*)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+k+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+c+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:function(c){return a.hasOwnProperty(c)?"variable.language":d.hasOwnProperty(c)?"invalid.deprecated":h.hasOwnProperty(c)?"storage.type":b.hasOwnProperty(c)?"keyword":i.hasOwnProperty(c)?"constant.language":j.hasOwnProperty(c)?"invalid.illegal":c=="debugger"?"invalid.deprecated":"identifier"},regex:k},{token:"keyword.operator",regex:/!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/liquid', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/liquid_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range'], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var LiquidHighlightRules = require("./liquid_highlight_rules").LiquidHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new LiquidHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var outentedRows = []; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "#"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/liquid_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/css_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/lib/lang', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var lang = require("../lib/lang"); +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LiquidHighlightRules = function() { + + // see: https://developer.mozilla.org/en/Liquid/Reference/Global_Objects + var functions = lang.arrayToMap( + // Standard Filters + ("date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|" + + "escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|" + + "truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split" + ).split("|") + ); + + var keywords = lang.arrayToMap( + // Standard Tags + ("capture|endcapture|case|endcase|when|comment|endcomment|" + + "cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|" + + // Commonly used tags + "style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow").split("|") + ); + + var builtinVariables = lang.arrayToMap( + ['forloop'] + // ("forloop\\.(length|index|index0|rindex|rindex0|first|last)|limit|offset|range" + + // "tablerowloop\\.(length|index|index0|rindex|rindex0|first|last|col|col0|"+ + // "col_first|col_last)").split("|") + ); + + var definitions = lang.arrayToMap(("assign").split("|")); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + start : [{ + token : "variable", + regex : "{%", + next : "liquid_start" + }, { + token : "variable", + regex : "{{", + next : "liquid_start" + }, { + token : "meta.tag", + merge : true, + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "meta.tag", + regex : "<(?=\\s*script\\b)", + next : "script" + }, { + token : "meta.tag", + regex : "<(?=\\s*style\\b)", + next : "style" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "[^<]+" + } ], + + cdata : [ { + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + merge : true, + regex : "\\s+" + }, { + token : "text", + merge : true, + regex : ".+" + } ], + + comment : [ { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + } ] , + + liquid_start : [{ + token: "variable", + regex: "}}", + next: "start" + }, { + token: "variable", + regex: "%}", + next: "start" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (functions.hasOwnProperty(value)) + return "support.function"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinVariables.hasOwnProperty(value)) + return "variable.language"; + else if (definitions.hasOwnProperty(value)) + return "keyword.definition"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\/|\\*|\\-|\\+|=|!=|\\?\\:" + }, { + token : "paren.lparen", + regex : /[\[\({]/ + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "text", + regex : "\\s+" + }] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); + xmlUtil.tag(this.$rules, "style", "css-start"); + xmlUtil.tag(this.$rules, "script", "js-start"); + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token: "comment", + regex: "\\/\\/.*(?=<\\/script>)", + next: "tag" + }, { + token: "meta.tag", + regex: "<\\/(?=script)", + next: "tag" + }]); + + this.embedRules(CssHighlightRules, "css-", [{ + token: "meta.tag", + regex: "<\\/(?=style)", + next: "tag" + }]); +}; +oop.inherits(LiquidHighlightRules, TextHighlightRules); + +exports.LiquidHighlightRules = LiquidHighlightRules; +}); + +define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CssHighlightRules = function() { + + var properties = lang.arrayToMap( + ("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index").split("|") + ); + + var functions = lang.arrayToMap( + ("rgb|rgba|url|attr|counter|counters").split("|") + ); + + var constants = lang.arrayToMap( + ("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero").split("|") + ); + + var colors = lang.arrayToMap( + ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" + + "purple|red|silver|teal|white|yellow").split("|") + ); + + var fonts = lang.arrayToMap( + ("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|" + + "symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|" + + "serif|monospace").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + var pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; + var pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + + var base_ruleset = [ + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "ruleset_comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : ["constant.numeric"], + regex : "([0-9]+)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) { + return "support.type"; + } + else if (functions.hasOwnProperty(value.toLowerCase())) { + return "support.function"; + } + else if (constants.hasOwnProperty(value.toLowerCase())) { + return "support.constant"; + } + else if (colors.hasOwnProperty(value.toLowerCase())) { + return "support.constant.color"; + } + else if (fonts.hasOwnProperty(value.toLowerCase())) { + return "support.constant.fonts"; + } + else { + return "text"; + } + }, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ]; + + var ruleset = lang.copyArray(base_ruleset); + ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "start" + }); + + var media_ruleset = lang.copyArray( base_ruleset ); + media_ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "media" + }); + + var base_comment = [{ + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + }]; + + var comment = lang.copyArray(base_comment); + comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }); + + var media_comment = lang.copyArray(base_comment); + media_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "media" + }); + + var ruleset_comment = lang.copyArray(base_comment); + ruleset_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "ruleset" + }); + + this.$rules = { + "start" : [{ + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "string", + regex: "@.*?{", + next: "media" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "media" : [ { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "media_comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "media_ruleset" + },{ + token: "string", + regex: "\\}", + next: "start" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "comment" : comment, + + "ruleset" : ruleset, + "ruleset_comment" : ruleset_comment, + + "media_ruleset" : media_ruleset, + "media_comment" : media_comment + }; +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +define('ace/mode/javascript_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/unicode', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var unicode = require("../unicode"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JavaScriptHighlightRules = function() { + + // see: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects + var globals = lang.arrayToMap( + // Constructors + ("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + + // E4X + "Namespace|QName|XML|XMLList|" + + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + // Errors + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + + "SyntaxError|TypeError|URIError|" + + // Non-constructor functions + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + + "isNaN|parseFloat|parseInt|" + + // Other + "JSON|Math|" + + // Pseudo + "this|arguments|prototype|window|document" + ).split("|") + ); + + var keywords = lang.arrayToMap( + ("break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|" + + "const|yield|import|get|set").split("|") + ); + + // keywords which can be followed by regular expressions + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield"; + + var deprecated = lang.arrayToMap( + ("__parent__|__count__|escape|unescape|with|__proto__").split("|") + ); + + var definitions = lang.arrayToMap(("const|let|var|function").split("|")); + + var buildinConstants = lang.arrayToMap( + ("null|Infinity|NaN|undefined").split("|") + ); + + var futureReserved = lang.arrayToMap( + ("class|enum|extends|super|export|implements|private|" + + "public|interface|package|protected|static").split("|") + ); + + // TODO: Unicode escape sequences + var identifierRe = "[" + unicode.packages.L + "\\$_][" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "\\$_]*\\b"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-6][0-7]?|" + // oct + "37[0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/xml_util', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") +); + +var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") +); + +function string(state) { + return [{ + token : "string", + regex : '".*?"' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*', + next : state + "_qqstring" + }, { + token : "string", + regex : "'.*?'" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*", + next : state + "_qstring" + }]; +} + +function multiLineString(quote, state) { + return [{ + token : "string", + merge : true, + regex : ".*?" + quote, + next : state + }, { + token : "string", + merge : true, + regex : '.+' + }]; +} + +exports.tag = function(states, name, nextState) { + states[name] = [{ + token : "text", + regex : "\\s+" + }, { + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, + merge : true, + regex : "[-_a-zA-Z0-9:]+", + next : name + "_embed_attribute_list" + }, { + token: "empty", + regex: "", + next : name + "_embed_attribute_list" + }]; + + states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list"); + states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list"); + + states[name + "_embed_attribute_list"] = [{ + token : "meta.tag", + merge : true, + regex : "\/?>", + next : nextState + }, { + token : "keyword.operator", + regex : "=" + }, { + token : "entity.other.attribute-name", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "text", + regex : "\\s+" + }].concat(string(name)); +}; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); diff --git a/build/src/mode-lua.js b/build/src/mode-lua.js index 8f7471e7..eb41826f 100644 --- a/build/src/mode-lua.js +++ b/build/src/mode-lua.js @@ -1 +1,483 @@ -define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lua_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./lua_highlight_rules").LuaHighlightRules,h=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(h,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=["function","then","do","repeat"];if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);if(h)d+=c;else for(var i in f){var j=f[i];if(j.type!="keyword")continue;var k=g.indexOf(j.value);if(k!=-1){d+=c;break}}}return d}}.call(h.prototype),b.Mode=h}),define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not".split("|")),b=e.arrayToMap("true|false|nil|_G|_VERSION".split("|")),c=e.arrayToMap("string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|log|max|acos|huge|ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running".split("|")),d=e.arrayToMap("string|package|os|io|math|debug|table|coroutine".split("|")),f=e.arrayToMap("__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber".split("|")),g=e.arrayToMap("".split("|")),h=e.arrayToMap("setn|foreach|foreachi|gcinfo|log10|maxn".split("|")),i="",j="(?:(?:[1-9]\\d*)|(?:0))",k="(?:0[xX][\\dA-Fa-f]+)",l="(?:"+j+"|"+k+")",m="(?:\\.\\d+)",n="(?:\\d+)",o="(?:(?:"+n+"?"+m+")|(?:"+n+"\\.))",p="(?:"+o+")",q=[];this.$rules={start:[{token:"comment",regex:i+"\\-\\-\\[\\[.*\\]\\]"},{token:"comment",regex:i+"\\-\\-\\[\\=\\[.*\\]\\=\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={2}\\[.*\\]\\={2}\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={3}\\[.*\\]\\={3}\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={4}\\[.*\\]\\={4}\\]"},{token:"comment",regex:i+"\\-\\-\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]"},{token:"comment",regex:i+"\\-\\-\\[\\[.*$",merge:!0,next:"qcomment"},{token:"comment",regex:i+"\\-\\-\\[\\=\\[.*$",merge:!0,next:"qcomment1"},{token:"comment",regex:i+"\\-\\-\\[\\={2}\\[.*$",merge:!0,next:"qcomment2"},{token:"comment",regex:i+"\\-\\-\\[\\={3}\\[.*$",merge:!0,next:"qcomment3"},{token:"comment",regex:i+"\\-\\-\\[\\={4}\\[.*$",merge:!0,next:"qcomment4"},{token:function(a){var b=/\-\-\[(\=+)\[/,c;return(c=b.exec(a))!=null&&(c=c[1])!=undefined&&q.push(c.length),"comment"},regex:i+"\\-\\-\\[\\={5}\\=*\\[.*$",merge:!0,next:"qcomment5"},{token:"comment",regex:"\\-\\-.*$"},{token:"string",regex:i+"\\[\\[.*\\]\\]"},{token:"string",regex:i+"\\[\\=\\[.*\\]\\=\\]"},{token:"string",regex:i+"\\[\\={2}\\[.*\\]\\={2}\\]"},{token:"string",regex:i+"\\[\\={3}\\[.*\\]\\={3}\\]"},{token:"string",regex:i+"\\[\\={4}\\[.*\\]\\={4}\\]"},{token:"string",regex:i+"\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]"},{token:"string",regex:i+"\\[\\[.*$",merge:!0,next:"qstring"},{token:"string",regex:i+"\\[\\=\\[.*$",merge:!0,next:"qstring1"},{token:"string",regex:i+"\\[\\={2}\\[.*$",merge:!0,next:"qstring2"},{token:"string",regex:i+"\\[\\={3}\\[.*$",merge:!0,next:"qstring3"},{token:"string",regex:i+"\\[\\={4}\\[.*$",merge:!0,next:"qstring4"},{token:function(a){var b=/\[(\=+)\[/,c;return(c=b.exec(a))!=null&&(c=c[1])!=undefined&&q.push(c.length),"string"},regex:i+"\\[\\={5}\\=*\\[.*$",merge:!0,next:"qstring5"},{token:"string",regex:i+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:i+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:p},{token:"constant.numeric",regex:l+"\\b"},{token:function(e){return a.hasOwnProperty(e)?"keyword":b.hasOwnProperty(e)?"constant.language":g.hasOwnProperty(e)?"invalid.illegal":d.hasOwnProperty(e)?"constant.library":h.hasOwnProperty(e)?"invalid.deprecated":c.hasOwnProperty(e)?"support.function":f.hasOwnProperty(e)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qcomment:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment1:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment2:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment3:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment4:[{token:"comment",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qcomment5:[{token:function(a){var b=/\](\=+)\]/,c=this.rules.qcomment5[0],d;c.next="start";if((d=b.exec(a))!=null&&(d=d[1])!=undefined){var e=d.length,f;(f=q.pop())!=e&&(q.push(f),c.next="qcomment5")}return"comment"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring1:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\=\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring2:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring3:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring4:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]",next:"start"},{token:"string",merge:!0,regex:".+"}],qstring5:[{token:function(a){var b=/\](\=+)\]/,c=this.rules.qstring5[0],d;c.next="start";if((d=b.exec(a))!=null&&(d=d[1])!=undefined){var e=d.length,f;(f=q.pop())!=e&&(q.push(f),c.next="qstring5")}return"string"},regex:"(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.LuaHighlightRules=g}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is Ajax.org Code Editor (ACE). +* +* The Initial Developer of the Original Code is +* Ajax.org B.V. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Fabian Jakobs +* Colin Gourlay +* Lee Gao +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +define('ace/mode/lua', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/lua_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new LuaHighlightRules().getRules()); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + var chunks = ["function", "then", "do", "repeat"]; + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } else { + for (var i in tokens){ + var token = tokens[i]; + if (token.type != "keyword") continue; + var chunk_i = chunks.indexOf(token.value); + if (chunk_i != -1){ + indent += tab; + break; + } + } + } + } + + return indent; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/lua_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LuaHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("break|do|else|elseif|end|for|function|if|in|local|repeat|"+ + "return|then|until|while|or|and|not").split("|") + ); + + var builtinConstants = lang.arrayToMap( + ("true|false|nil|_G|_VERSION").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("string|xpcall|package|tostring|print|os|unpack|require|"+ + "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+ + "collectgarbage|getmetatable|module|rawset|math|debug|"+ + "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+ + "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+ + "load|error|loadfile|"+ + + "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+ + "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+ + "loaders|cpath|config|path|seeall|exit|setlocale|date|"+ + "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+ + "lines|write|close|flush|open|output|type|read|stderr|"+ + "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+ + "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+ + "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+ + "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+ + "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+ + "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+ + "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+ + "status|wrap|create|running").split("|") + ); + + var stdLibaries = lang.arrayToMap( + ("string|package|os|io|math|debug|table|coroutine").split("|") + ); + + var metatableMethods = lang.arrayToMap( + ("__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+ + "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber").split("|") + ); + + var futureReserved = lang.arrayToMap( + ("").split("|") + ); + + var deprecatedIn5152 = lang.arrayToMap( + ("setn|foreach|foreachi|gcinfo|log10|maxn").split("|") + ); + + var strPre = ""; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var integer = "(?:" + decimalInteger + "|" + hexInteger + ")"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var floatNumber = "(?:" + pointFloat + ")"; + + var comment_stack = []; + + this.$rules = { + "start" : + + + // bracketed comments + [{ + token : "comment", // --[[ comment + regex : strPre + '\\-\\-\\[\\[.*\\]\\]' + }, { + token : "comment", // --[=[ comment + regex : strPre + '\\-\\-\\[\\=\\[.*\\]\\=\\]' + }, { + token : "comment", // --[==[ comment + regex : strPre + '\\-\\-\\[\\={2}\\[.*\\]\\={2}\\]' + }, { + token : "comment", // --[===[ comment + regex : strPre + '\\-\\-\\[\\={3}\\[.*\\]\\={3}\\]' + }, { + token : "comment", // --[====[ comment + regex : strPre + '\\-\\-\\[\\={4}\\[.*\\]\\={4}\\]' + }, { + token : "comment", // --[====+[ comment + regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]' + }, + + // multiline bracketed comments + { + token : "comment", // --[[ comment + regex : strPre + '\\-\\-\\[\\[.*$', + merge : true, + next : "qcomment" + }, { + token : "comment", // --[=[ comment + regex : strPre + '\\-\\-\\[\\=\\[.*$', + merge : true, + next : "qcomment1" + }, { + token : "comment", // --[==[ comment + regex : strPre + '\\-\\-\\[\\={2}\\[.*$', + merge : true, + next : "qcomment2" + }, { + token : "comment", // --[===[ comment + regex : strPre + '\\-\\-\\[\\={3}\\[.*$', + merge : true, + next : "qcomment3" + }, { + token : "comment", // --[====[ comment + regex : strPre + '\\-\\-\\[\\={4}\\[.*$', + merge : true, + next : "qcomment4" + }, { + token : function(value){ // --[====+[ comment + // WARNING: EXTREMELY SLOW, but this is the only way to circumvent the + // limits imposed by the current automaton. + // I've never personally seen any practical code where 5 or more '='s are + // used for string or commenting, so this will rarely be invoked. + var pattern = /\-\-\[(\=+)\[/, match; + // you can never be too paranoid ;) + if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined) + comment_stack.push(match.length); + + return "comment"; + }, + regex : strPre + '\\-\\-\\[\\={5}\\=*\\[.*$', + merge : true, + next : "qcomment5" + }, + + // single line comments + { + token : "comment", + regex : "\\-\\-.*$" + }, + + // bracketed strings + { + token : "string", // [[ string + regex : strPre + '\\[\\[.*\\]\\]' + }, { + token : "string", // [=[ string + regex : strPre + '\\[\\=\\[.*\\]\\=\\]' + }, { + token : "string", // [==[ string + regex : strPre + '\\[\\={2}\\[.*\\]\\={2}\\]' + }, { + token : "string", // [===[ string + regex : strPre + '\\[\\={3}\\[.*\\]\\={3}\\]' + }, { + token : "string", // [====[ string + regex : strPre + '\\[\\={4}\\[.*\\]\\={4}\\]' + }, { + token : "string", // [====+[ string + regex : strPre + '\\[\\={5}\\=*\\[.*\\]\\={5}\\=*\\]' + }, + + // multiline bracketed strings + { + token : "string", // [[ string + regex : strPre + '\\[\\[.*$', + merge : true, + next : "qstring" + }, { + token : "string", // [=[ string + regex : strPre + '\\[\\=\\[.*$', + merge : true, + next : "qstring1" + }, { + token : "string", // [==[ string + regex : strPre + '\\[\\={2}\\[.*$', + merge : true, + next : "qstring2" + }, { + token : "string", // [===[ string + regex : strPre + '\\[\\={3}\\[.*$', + merge : true, + next : "qstring3" + }, { + token : "string", // [====[ string + regex : strPre + '\\[\\={4}\\[.*$', + merge : true, + next : "qstring4" + }, { + token : function(value){ // --[====+[ string + // WARNING: EXTREMELY SLOW, see above. + var pattern = /\[(\=+)\[/, match; + if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined) + comment_stack.push(match.length); + + return "string"; + }, + regex : strPre + '\\[\\={5}\\=*\\[.*$', + merge : true, + next : "qstring5" + }, + + { + token : "string", // " string + regex : strPre + '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "string", // ' string + regex : strPre + "'(?:[^\\\\]|\\\\.)*?'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (stdLibaries.hasOwnProperty(value)) + return "constant.library"; + else if (deprecatedIn5152.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else if (metatableMethods.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\." + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ], + + "qcomment": [ { + token : "comment", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\]", + next : "start" + }, { + token : "comment", + merge : true, + regex : '.+' + } ], + "qcomment1": [ { + token : "comment", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]", + next : "start" + }, { + token : "comment", + merge : true, + regex : '.+' + } ], + "qcomment2": [ { + token : "comment", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]", + next : "start" + }, { + token : "comment", + merge : true, + regex : '.+' + } ], + "qcomment3": [ { + token : "comment", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]", + next : "start" + }, { + token : "comment", + merge : true, + regex : '.+' + } ], + "qcomment4": [ { + token : "comment", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]", + next : "start" + }, { + token : "comment", + merge : true, + regex : '.+' + } ], + "qcomment5": [ { + token : function(value){ + // very hackish, mutates the qcomment5 field on the fly. + var pattern = /\](\=+)\]/, rule = this.rules.qcomment5[0], match; + rule.next = "start"; + if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){ + var found = match.length, expected; + if ((expected = comment_stack.pop()) != found){ + comment_stack.push(expected); + rule.next = "qcomment5"; + } + } + + return "comment"; + }, + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]", + next : "start" + }, { + token : "comment", + merge : true, + regex : '.+' + } ], + + "qstring": [ { + token : "string", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\]", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring1": [ { + token : "string", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\=\\]", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring2": [ { + token : "string", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={2}\\]", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring3": [ { + token : "string", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={3}\\]", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring4": [ { + token : "string", + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={4}\\]", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring5": [ { + token : function(value){ + // very hackish, mutates the qstring5 field on the fly. + var pattern = /\](\=+)\]/, rule = this.rules.qstring5[0], match; + rule.next = "start"; + if ((match = pattern.exec(value)) != null && (match = match[1]) != undefined){ + var found = match.length, expected; + if ((expected = comment_stack.pop()) != found){ + comment_stack.push(expected); + rule.next = "qstring5"; + } + } + + return "string"; + }, + regex : "(?:[^\\\\]|\\\\.)*?\\]\\={5}\\=*\\]", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ] + + }; + +} + +oop.inherits(LuaHighlightRules, TextHighlightRules); + +exports.LuaHighlightRules = LuaHighlightRules; +}); diff --git a/build/src/mode-markdown.js b/build/src/mode-markdown.js index 54475d27..a0857620 100644 --- a/build/src/mode-markdown.js +++ b/build/src/mode-markdown.js @@ -1 +1,2233 @@ -define("ace/mode/markdown",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/xml","ace/mode/html","ace/tokenizer","ace/mode/markdown_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("./javascript").Mode,g=a("./xml").Mode,h=a("./html").Mode,i=a("../tokenizer").Tokenizer,j=a("./markdown_highlight_rules").MarkdownHighlightRules,k=function(){var a=new j;this.$tokenizer=new i(a.getRules()),this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"xml-":g,"html-":h})};d.inherits(k,e),function(){this.getNextLineIndent=function(a,b,c){if(a=="listblock"){var d=/^((?:.+)?)([-+*][ ]+)/.exec(b);return d?(new Array(d[1].length+1)).join(" ")+d[2]:""}return this.$getIndent(b)}}.call(k.prototype),b.Mode=k}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./xml_highlight_rules").XmlHighlightRules,h=a("./behaviour/xml").XmlBehaviour,i=a("./folding/xml").FoldMode,j=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h,this.foldingRules=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(j.prototype),b.Mode=j}),define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./xml_util"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"xml_pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},e.tag(this.$rules,"tag","start")};d.inherits(g,f),b.XmlHighlightRules=g}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="?)/,this._parseTag=function(a){var b=this.tagRe.exec(a),c=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:a,match:b?b[2]:"",closing:b?!!b[3]:!1,selfClosing:b?!!b[5]||b[2]=="/>":!1,tagName:b?b[4]:"",column:b[1]?c+b[1].length:c}},this._readTagForward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){if(!d)var d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()};c+=b.value;if(c.indexOf(">")!==-1){var e=this._parseTag(c);return e.start=d,e.end={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length},a.stepForward(),e}}while(b=a.stepForward());return null},this._readTagBackward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){d||(d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length}),c=b.value+c;if(c.indexOf("<")!==-1){var e=this._parseTag(c);return e.end=d,e.start={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()},a.stepBackward(),e}}while(b=a.stepBackward());return null},this._pop=function(a,b){while(a.length){var c=a[a.length-1];if(!b||c.tagName==b.tagName)return a.pop();if(this.voidElements[b.tagName])return;if(this.voidElements[c.tagName]){a.pop();continue}return null}},this.getFoldWidgetRange=function(a,b,c){var d=this._getFirstTagInLine(a,c);if(!d.match)return null;var e=d.closing||d.selfClosing,g=[],i;if(!e){var j=new h(a,c,d.column),k={row:c,column:d.column+d.tagName.length+2};while(i=this._readTagForward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(i.closing){this._pop(g,i);if(g.length==0)return f.fromPoints(k,i.start)}else g.push(i)}}else{var j=new h(a,c,d.column+d.match.length),l={row:c,column:d.column};while(i=this._readTagBackward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(!i.closing){this._pop(g,i);if(g.length==0)return i.start.column+=i.tagName.length+2,f.fromPoints(i.start,l)}else g.push(i)}}}}.call(i.prototype)}),define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/tokenizer","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("./javascript").Mode,g=a("./css").Mode,h=a("../tokenizer").Tokenizer,i=a("./html_highlight_rules").HtmlHighlightRules,j=a("./behaviour/xml").XmlBehaviour,k=a("./folding/html").FoldMode,l=function(){var a=new i;this.$tokenizer=new h(a.getRules()),this.$behaviour=new j,this.$embeds=a.getEmbeds(),this.createModeDelegates({"js-":f,"css-":g}),this.foldingRules=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){return 0},this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)},this.checkOutdent=function(a,b,c){return!1}}.call(l.prototype),b.Mode=l}),define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./css_highlight_rules").CssHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../worker/worker_client").WorkerClient,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.foldingRules="cStyle",this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new i(["ace"],"worker-css.js","ace/mode/css_worker","Worker");return b.attachToDocument(a.getDocument()),b.on("csslint",function(b){var c=[];b.data.forEach(function(a){c.push({row:a.line-1,column:a.col-1,text:a.message,type:a.type,lint:a})}),a.setAnnotations(c)}),b}}.call(k.prototype),b.Mode=k}),define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index".split("|")),b=e.arrayToMap("rgb|rgba|url|attr|counter|counters".split("|")),c=e.arrayToMap("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero".split("|")),d=e.arrayToMap("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow".split("|")),f=e.arrayToMap("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace".split("|")),g="\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))",h="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",i="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",j=[{token:"comment",merge:!0,regex:"\\/\\*",next:"ruleset_comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:["constant.numeric","keyword"],regex:"("+g+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"},{token:["constant.numeric"],regex:"([0-9]+)"},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:h},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:i},{token:function(e){return a.hasOwnProperty(e.toLowerCase())?"support.type":b.hasOwnProperty(e.toLowerCase())?"support.function":c.hasOwnProperty(e.toLowerCase())?"support.constant":d.hasOwnProperty(e.toLowerCase())?"support.constant.color":f.hasOwnProperty(e.toLowerCase())?"support.constant.fonts":"text"},regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"}],k=e.copyArray(j);k.unshift({token:"paren.rparen",regex:"\\}",next:"start"});var l=e.copyArray(j);l.unshift({token:"paren.rparen",regex:"\\}",next:"media"});var m=[{token:"comment",merge:!0,regex:".+"}],n=e.copyArray(m);n.unshift({token:"comment",regex:".*?\\*\\/",next:"start"});var o=e.copyArray(m);o.unshift({token:"comment",regex:".*?\\*\\/",next:"media"});var p=e.copyArray(m);p.unshift({token:"comment",regex:".*?\\*\\/",next:"ruleset"}),this.$rules={start:[{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"string",regex:"@.*?{",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],media:[{token:"comment",merge:!0,regex:"\\/\\*",next:"media_comment"},{token:"paren.lparen",regex:"\\{",next:"media_ruleset"},{token:"string",regex:"\\}",next:"start"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant",regex:"[a-z0-9-_]+"}],comment:n,ruleset:k,ruleset_comment:p,media_ruleset:l,media_comment:o}};d.inherits(g,f),b.CssHighlightRules=g}),define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./css_highlight_rules").CssHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("./xml_util"),h=a("./text_highlight_rules").TextHighlightRules,i=function(){this.$rules={start:[{token:"text",merge:!0,regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"xml_pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<(?=s*script\\b)",next:"script"},{token:"meta.tag",regex:"<(?=s*style\\b)",next:"style"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",merge:!0,regex:"\\s+"},{token:"text",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},g.tag(this.$rules,"tag","start"),g.tag(this.$rules,"style","css-start"),g.tag(this.$rules,"script","js-start"),this.embedRules(f,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}]),this.embedRules(e,"css-",[{token:"meta.tag",regex:"<\\/(?=style)",next:"tag"}])};d.inherits(i,h),b.HtmlHighlightRules=i}),define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./mixed").FoldMode,f=a("./xml").FoldMode,g=a("./cstyle").FoldMode,h=b.FoldMode=function(){e.call(this,new f({area:1,base:1,br:1,col:1,command:1,embed:1,hr:1,img:1,input:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1,li:1,dt:1,dd:1,p:1,rt:1,rp:1,optgroup:1,option:1,colgroup:1,td:1,th:1}),{"js-":new g,"css-":new g})};d.inherits(h,e)}),define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./fold_mode").FoldMode,f=b.FoldMode=function(a,b){this.defaultMode=a,this.subModes=b};d.inherits(f,e),function(){this.$getMode=function(a){for(var b in this.subModes)if(a.indexOf(b)===0)return this.subModes[b];return null},this.$tryMode=function(a,b,c,d){var e=this.$getMode(a);return e?e.getFoldWidget(b,c,d):""},this.getFoldWidget=function(a,b,c){return this.$tryMode(a.getState(c-1),a,b,c)||this.$tryMode(a.getState(c),a,b,c)||this.defaultMode.getFoldWidget(a,b,c)},this.getFoldWidgetRange=function(a,b,c){var d=this.$getMode(a.getState(c-1));if(!d||!d.getFoldWidget(a,b,c))d=this.$getMode(a.getState(c));if(!d||!d.getFoldWidget(a,b,c))d=this.defaultMode;return d.getFoldWidgetRange(a,b,c)}}.call(f.prototype)}),define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"],function(a,b,c){function j(a,b){return{token:"support.function",regex:"^```"+a+"\\s*$",next:b+"start"}}"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=a("./javascript_highlight_rules").JavaScriptHighlightRules,g=a("./xml_highlight_rules").XmlHighlightRules,h=a("./html_highlight_rules").HtmlHighlightRules,i=a("./css_highlight_rules").CssHighlightRules,k=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:["support.function","support.function","support.function"],regex:"(`+)([^\\r]*?[^`])(\\1)"},{token:"support.function",regex:"^[ ]{4}.+"},{token:"markup.heading.1",regex:"^=+(?=\\s*$)"},{token:"markup.heading.1",regex:"^\\-+(?=\\s*$)"},{token:function(a){return"markup.heading."+a.length},regex:"^#{1,6}"},j("javascript","js-"),j("xml","xml-"),j("html","html-"),j("css","css-"),{token:"support.function",regex:"^```[a-zA-Z]+\\s*$",next:"githubblock"},{token:"string",regex:"^>[ ].+$",next:"blockquote"},{token:["text","constant","text","url","string","text"],regex:'^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$'},{token:["text","string","text","constant","text"],regex:"(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"},{token:["text","string","text","markup.underline","string","text"],regex:'(\\[)(\\[[^\\]]*\\]|[^\\[\\]]*)(\\]\\([ \\t]*)(?)((?:[ ]*"(?:.*?)"[ \\t]*)?)(\\))'},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\*[ ]?){3,}\\s*$"},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\-[ ]?){3,}\\s*$"},{token:"constant",regex:"^[ ]{0,2}(?:[ ]?\\_[ ]?){3,}\\s*$"},{token:"markup.list",regex:"^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",next:"listblock"},{token:["string","string","string"],regex:"([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)"},{token:["string","string","string"],regex:"([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)"},{token:["text","url","text"],regex:"(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)"},{token:"text",regex:"[^\\*_%$`\\[#<>]+"}],listblock:[{token:"empty_line",regex:"^$",next:"start"},{token:"markup.list",regex:".+"}],blockquote:[{token:"empty_line",regex:"^\\s*$",next:"start"},{token:"string",regex:".+"}],githubblock:[{token:"support.function",regex:"^```",next:"start"},{token:"support.function",regex:".+"}]},this.embedRules(f,"js-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(h,"html-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(i,"css-",[{token:"support.function",regex:"^```",next:"start"}]),this.embedRules(g,"xml-",[{token:"support.function",regex:"^```",next:"start"}])};d.inherits(k,e),b.MarkdownHighlightRules=k}) \ No newline at end of file +/* vim:ts=4:sts=4:sw=4: + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Mihai Sucan + * Chris Spencer + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/markdown', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/mode/javascript', 'ace/mode/xml', 'ace/mode/html', 'ace/tokenizer', 'ace/mode/markdown_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var XmlMode = require("./xml").Mode; +var HtmlMode = require("./html").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var MarkdownHighlightRules = require("./markdown_highlight_rules").MarkdownHighlightRules; + +var Mode = function() { + var highlighter = new MarkdownHighlightRules(); + + this.$tokenizer = new Tokenizer(highlighter.getRules()); + this.$embeds = highlighter.getEmbeds(); + this.createModeDelegates({ + "js-": JavaScriptMode, + "xml-": XmlMode, + "html-": HtmlMode + }); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.getNextLineIndent = function(state, line, tab) { + if (state == "listblock") { + var match = /^((?:.+)?)([-+*][ ]+)/.exec(line); + if (match) { + return new Array(match[1].length + 1).join(" ") + match[2]; + } else { + return ""; + } + } else { + return this.$getIndent(line); + } + }; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xml_highlight_rules', 'ace/mode/behaviour/xml', 'ace/mode/folding/xml'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new XmlHighlightRules().getRules()); + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/xml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + this.$rules = { + start : [{ + token : "text", + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "xml_pe", + regex : "<\\!.*?>" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "constant.character.entity", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, { + token : "text", + regex : "[^<]+" + }], + + cdata : [{ + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "(?:[^\\]]|\\](?!\\]>))+" + }], + + comment : [{ + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + }] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); +}; + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +define('ace/mode/xml_util', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") +); + +var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") +); + +function string(state) { + return [{ + token : "string", + regex : '".*?"' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*', + next : state + "_qqstring" + }, { + token : "string", + regex : "'.*?'" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*", + next : state + "_qstring" + }]; +} + +function multiLineString(quote, state) { + return [{ + token : "string", + merge : true, + regex : ".*?" + quote, + next : state + }, { + token : "string", + merge : true, + regex : '.+' + }]; +} + +exports.tag = function(states, name, nextState) { + states[name] = [{ + token : "text", + regex : "\\s+" + }, { + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, + merge : true, + regex : "[-_a-zA-Z0-9:]+", + next : name + "_embed_attribute_list" + }, { + token: "empty", + regex: "", + next : name + "_embed_attribute_list" + }]; + + states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list"); + states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list"); + + states[name + "_embed_attribute_list"] = [{ + token : "meta.tag", + merge : true, + regex : "\/?>", + next : nextState + }, { + token : "keyword.operator", + regex : "=" + }, { + token : "entity.other.attribute-name", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "text", + regex : "\\s+" + }].concat(string(name)); +}; + +}); + +define('ace/mode/behaviour/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; + +var XmlBehaviour = function () { + + this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour + + this.add("brackets", "insertion", function (state, action, editor, session, text) { + if (text == '<') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return false; + } else { + return { + text: '<>', + selection: [1, 1] + } + } + } else if (text == '>') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '>') { // need some kind of matching check here + return { + text: '', + selection: [1, 1] + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChars = line.substring(cursor.column, cursor.column + 2); + if (rightChars == '?)/; + this._parseTag = function(tag) { + + var match = this.tagRe.exec(tag); + var column = this.tagRe.lastIndex || 0; + this.tagRe.lastIndex = 0; + + return { + value: tag, + match: match ? match[2] : "", + closing: match ? !!match[3] : false, + selfClosing: match ? !!match[5] || match[2] == "/>" : false, + tagName: match ? match[4] : "", + column: match[1] ? column + match[1].length : column + }; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var start; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!start) { + var start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + } + value += token.value; + if (value.indexOf(">") !== -1) { + var tag = this._parseTag(value); + tag.start = start; + tag.end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + iterator.stepForward(); + return tag; + } + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var end; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!end) { + end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + } + value = token.value + value; + if (value.indexOf("<") !== -1) { + var tag = this._parseTag(value); + tag.end = end; + tag.start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + iterator.stepBackward(); + return tag; + } + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.voidElements[tag.tagName]) { + return; + } + else if (this.voidElements[top.tagName]) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag.match) + return null; + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.column); + var start = { + row: row, + column: firstTag.column + firstTag.tagName.length + 2 + }; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag) + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length); + var end = { + row: row, + column: firstTag.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag) + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/mode/javascript', 'ace/mode/css', 'ace/tokenizer', 'ace/mode/html_highlight_rules', 'ace/mode/behaviour/xml', 'ace/mode/folding/html'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; + +var Mode = function() { + var highlighter = new HtmlHighlightRules(); + this.$tokenizer = new Tokenizer(highlighter.getRules()); + this.$behaviour = new XmlBehaviour(); + + this.$embeds = highlighter.getEmbeds(); + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + return 0; + }; + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/css', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/css_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/worker/worker_client', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new CssHighlightRules().getRules(), "i"); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + // ignore braces in comments + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-css.js", "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("csslint", function(e) { + var errors = []; + e.data.forEach(function(message) { + errors.push({ + row: message.line - 1, + column: message.col - 1, + text: message.message, + type: message.type, + lint: message + }); + }); + + session.setAnnotations(errors); + }); + return worker; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/css_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CssHighlightRules = function() { + + var properties = lang.arrayToMap( + ("animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index").split("|") + ); + + var functions = lang.arrayToMap( + ("rgb|rgba|url|attr|counter|counters").split("|") + ); + + var constants = lang.arrayToMap( + ("absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|font-size|font|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero").split("|") + ); + + var colors = lang.arrayToMap( + ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" + + "purple|red|silver|teal|white|yellow").split("|") + ); + + var fonts = lang.arrayToMap( + ("arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|" + + "symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|" + + "serif|monospace").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + var pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; + var pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + + var base_ruleset = [ + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "ruleset_comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : ["constant.numeric"], + regex : "([0-9]+)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) { + return "support.type"; + } + else if (functions.hasOwnProperty(value.toLowerCase())) { + return "support.function"; + } + else if (constants.hasOwnProperty(value.toLowerCase())) { + return "support.constant"; + } + else if (colors.hasOwnProperty(value.toLowerCase())) { + return "support.constant.color"; + } + else if (fonts.hasOwnProperty(value.toLowerCase())) { + return "support.constant.fonts"; + } + else { + return "text"; + } + }, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ]; + + var ruleset = lang.copyArray(base_ruleset); + ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "start" + }); + + var media_ruleset = lang.copyArray( base_ruleset ); + media_ruleset.unshift({ + token : "paren.rparen", + regex : "\\}", + next: "media" + }); + + var base_comment = [{ + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + }]; + + var comment = lang.copyArray(base_comment); + comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }); + + var media_comment = lang.copyArray(base_comment); + media_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "media" + }); + + var ruleset_comment = lang.copyArray(base_comment); + ruleset_comment.unshift({ + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "ruleset" + }); + + this.$rules = { + "start" : [{ + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "string", + regex: "@.*?{", + next: "media" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "media" : [ { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "media_comment" + }, { + token: "paren.lparen", + regex: "\\{", + next: "media_ruleset" + },{ + token: "string", + regex: "\\}", + next: "start" + },{ + token: "keyword", + regex: "#[a-z0-9-_]+" + },{ + token: "variable", + regex: "\\.[a-z0-9-_]+" + },{ + token: "string", + regex: ":[a-z0-9-_]+" + },{ + token: "constant", + regex: "[a-z0-9-_]+" + }], + + "comment" : comment, + + "ruleset" : ruleset, + "ruleset_comment" : ruleset_comment, + + "media_ruleset" : media_ruleset, + "media_comment" : media_comment + }; +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +define('ace/mode/html_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/css_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var HtmlHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + this.$rules = { + start : [{ + token : "text", + merge : true, + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "xml_pe", + regex : "<\\!.*?>" + }, { + token : "meta.tag", + regex : "<(?=\s*script\\b)", + next : "script" + }, { + token : "meta.tag", + regex : "<(?=\s*style\\b)", + next : "style" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "constant.character.entity", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, { + token : "text", + regex : "[^<]+" + } ], + + cdata : [ { + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + merge : true, + regex : "\\s+" + }, { + token : "text", + merge : true, + regex : ".+" + } ], + + comment : [ { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + } ] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); + xmlUtil.tag(this.$rules, "style", "css-start"); + xmlUtil.tag(this.$rules, "script", "js-start"); + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token: "comment", + regex: "\\/\\/.*(?=<\\/script>)", + next: "tag" + }, { + token: "meta.tag", + regex: "<\\/(?=script)", + next: "tag" + }]); + + this.embedRules(CssHighlightRules, "css-", [{ + token: "meta.tag", + regex: "<\\/(?=style)", + next: "tag" + }]); +}; + +oop.inherits(HtmlHighlightRules, TextHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +define('ace/mode/folding/html', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/mixed', 'ace/mode/folding/xml', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function() { + MixedFoldMode.call(this, new XmlFoldMode({ + // void elements + "area": 1, + "base": 1, + "br": 1, + "col": 1, + "command": 1, + "embed": 1, + "hr": 1, + "img": 1, + "input": 1, + "keygen": 1, + "link": 1, + "meta": 1, + "param": 1, + "source": 1, + "track": 1, + "wbr": 1, + + // optional tags + "li": 1, + "dt": 1, + "dd": 1, + "p": 1, + "rt": 1, + "rp": 1, + "optgroup": 1, + "option": 1, + "colgroup": 1, + "td": 1, + "th": 1 + }), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +define('ace/mode/folding/mixed', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(defaultMode, subModes) { + this.defaultMode = defaultMode; + this.subModes = subModes; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + + this.$getMode = function(state) { + for (var key in this.subModes) { + if (state.indexOf(key) === 0) + return this.subModes[key]; + } + return null; + }; + + this.$tryMode = function(state, session, foldStyle, row) { + var mode = this.$getMode(state); + return (mode ? mode.getFoldWidget(session, foldStyle, row) : ""); + }; + + this.getFoldWidget = function(session, foldStyle, row) { + return ( + this.$tryMode(session.getState(row-1), session, foldStyle, row) || + this.$tryMode(session.getState(row), session, foldStyle, row) || + this.defaultMode.getFoldWidget(session, foldStyle, row) + ); + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var mode = this.$getMode(session.getState(row-1)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.$getMode(session.getState(row)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.defaultMode; + + return mode.getFoldWidgetRange(session, foldStyle, row); + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/markdown_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules', 'ace/mode/javascript_highlight_rules', 'ace/mode/xml_highlight_rules', 'ace/mode/html_highlight_rules', 'ace/mode/css_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; + +function github_embed(tag, prefix) { + return { // Github style block + token : "support.function", + regex : "^```" + tag + "\\s*$", + next : prefix + "start" + }; +} + +var MarkdownHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ { + token : "empty_line", + regex : '^$' + }, { // code span ` + token : ["support.function", "support.function", "support.function"], + regex : "(`+)([^\\r]*?[^`])(\\1)" + }, { // code block + token : "support.function", + regex : "^[ ]{4}.+" + }, { // h1 + token: "markup.heading.1", + regex: "^=+(?=\\s*$)" + }, { // h2 + token: "markup.heading.1", + regex: "^\\-+(?=\\s*$)" + }, { // header + token : function(value) { + return "markup.heading." + value.length; + }, + regex : "^#{1,6}" + }, github_embed("javascript", "js-"), + github_embed("xml", "xml-"), + github_embed("html", "html-"), + github_embed("css", "css-"), + { // Github style block + token : "support.function", + regex : "^```[a-zA-Z]+\\s*$", + next : "githubblock" + }, { // block quote + token : "string", + regex : "^>[ ].+$", + next : "blockquote" + }, { // reference + token : ["text", "constant", "text", "url", "string", "text"], + regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$" + }, { // link by reference + token : ["text", "string", "text", "constant", "text"], + regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])" + }, { // link by url + token : ["text", "string", "text", "markup.underline", "string", "text"], + regex : "(\\[)"+ + "(\\[[^\\]]*\\]|[^\\[\\]]*)"+ + "(\\]\\([ \\t]*)"+ + "(?)"+ + "((?:[ \t]*\"(?:.*?)\"[ \\t]*)?)"+ + "(\\))" + }, { // HR * + token : "constant", + regex : "^[ ]{0,2}(?:[ ]?\\*[ ]?){3,}\\s*$" + }, { // HR - + token : "constant", + regex : "^[ ]{0,2}(?:[ ]?\\-[ ]?){3,}\\s*$" + }, { // HR _ + token : "constant", + regex : "^[ ]{0,2}(?:[ ]?\\_[ ]?){3,}\\s*$" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock" + }, { // strong ** __ + token : ["string", "string", "string"], + regex : "([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)" + }, { // emphasis * _ + token : ["string", "string", "string"], + regex : "([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)" + }, { // + token : ["text", "url", "text"], + regex : "(<)("+ + "(?:https?|ftp|dict):[^'\">\\s]+"+ + "|"+ + "(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+"+ + ")(>)" + }, { + token : "text", + regex : "[^\\*_%$`\\[#<>]+" + } ], + + "listblock" : [ { // Lists only escape on completely blank lines. + token : "empty_line", + regex : "^$", + next : "start" + }, { + token : "markup.list", + regex : ".+" + } ], + + "blockquote" : [ { // BLockquotes only escape on blank lines. + token : "empty_line", + regex : "^\\s*$", + next : "start" + }, { + token : "string", + regex : ".+" + } ], + + "githubblock" : [ { + token : "support.function", + regex : "^```", + next : "start" + }, { + token : "support.function", + regex : ".+" + } ] + }; + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token : "support.function", + regex : "^```", + next : "start" + }]); + + this.embedRules(HtmlHighlightRules, "html-", [{ + token : "support.function", + regex : "^```", + next : "start" + }]); + + this.embedRules(CssHighlightRules, "css-", [{ + token : "support.function", + regex : "^```", + next : "start" + }]); + + this.embedRules(XmlHighlightRules, "xml-", [{ + token : "support.function", + regex : "^```", + next : "start" + }]); +}; +oop.inherits(MarkdownHighlightRules, TextHighlightRules); + +exports.MarkdownHighlightRules = MarkdownHighlightRules; +}); diff --git a/build/src/mode-ocaml.js b/build/src/mode-ocaml.js index 622f817e..47e648d4 100644 --- a/build/src/mode-ocaml.js +++ b/build/src/mode-ocaml.js @@ -1 +1,464 @@ -define("ace/mode/ocaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./ocaml_highlight_rules").OcamlHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e);var k=/(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/;(function(){this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(\*(.*)\*\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(*"+f+"*)")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;return(!e.length||e[e.length-1].type!=="comment")&&a==="start"&&k.test(b)&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(j.prototype),b.Mode=j}),define("ace/mode/ocaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|or|private|rec|sig|struct|then|to|try|type|val|virtual|when|while|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|add_available_units|add_big_int|add_buffer|add_channel|add_char|add_initializer|add_int_big_int|add_interfaces|add_num|add_string|add_substitute|add_substring|alarm|allocated_bytes|allow_only|allow_unsafe_modules|always|append|appname_get|appname_set|approx_num_exp|approx_num_fix|arg|argv|arith_status|array|array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|chown|chr|chroot|classify_float|clear|clear_available_units|clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|close_out|close_out_noerr|close_process|close_process|close_process_full|close_process_in|close_process_out|close_subwindow|close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|combine|combine|command|compact|compare|compare_big_int|compare_num|complex32|complex64|concat|conj|connect|contains|contains_from|contents|copy|cos|cosh|count|count|counters|create|create_alarm|create_image|create_matrix|create_matrix|create_matrix|create_object|create_object_and_run_initializers|create_object_opt|create_process|create_process|create_process_env|create_process_env|create_table|current|current_dir_name|current_point|current_x|current_y|curveto|custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|error_message|escaped|establish_server|executable_name|execv|execve|execvp|execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|float|float32|float64|float_of_big_int|float_of_bits|float_of_int|float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|for_all|for_all2|force|force_newline|force_val|foreground|fork|format_of_string|formatter_of_buffer|formatter_of_out_channel|fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|genarray_of_array1|genarray_of_array2|genarray_of_array3|get|get_all_formatter_output_functions|get_approx_printing|get_copy|get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|get_formatter_output_functions|get_formatter_tag_functions|get_image|get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|global_replace|global_substitute|gmtime|green|grid|group_beginning|group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|marshal|match_beginning|match_end|matched_group|matched_string|max|max_array_length|max_big_int|max_elt|max_float|max_int|max_num|max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|output_char|output_string|output_value|over_max_boxes|pack|params|parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|power_big_int_positive_big_int|power_big_int_positive_int|power_int_positive_big_int|power_int_positive_int|power_num|pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|pp_get_all_formatter_output_functions|pp_get_ellipsis_text|pp_get_formatter_output_functions|pp_get_formatter_tag_functions|pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|pp_set_all_formatter_output_functions|pp_set_ellipsis_text|pp_set_formatter_out_channel|pp_set_formatter_output_functions|pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|print_bool|print_break|print_char|print_cut|print_endline|print_float|print_flush|print_if_newline|print_int|print_newline|print_space|print_stat|print_string|print_tab|print_tbreak|printf|prohibit|public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|regexp_string_case_fold|register|register_exception|rem|remember_mode|remove|remove_assoc|remove_assq|rename|replace|replace_first|replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|run_initializers|run_initializers_opt|scanf|search_backward|search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|set_all_formatter_output_functions|set_approx_printing|set_binary_mode_in|set_binary_mode_out|set_close_on_exec|set_close_on_exec|set_color|set_ellipsis_text|set_error_when_null_denominator|set_field|set_floating_precision|set_font|set_formatter_out_channel|set_formatter_output_functions|set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|str_formatter|string|string_after|string_before|string_match|string_of_big_int|string_of_bool|string_of_float|string_of_format|string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|sub_right|subset|subset|substitute_first|substring|succ|succ|succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|temp_file|text_size|time|time|time|timed_read|timed_write|times|times|tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|wait_timed_read|wait_timed_write|wait_write|waitpid|white|widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak".split("|")),d="(?:(?:[1-9]\\d*)|(?:0))",f="(?:0[oO]?[0-7]+)",g="(?:0[xX][\\dA-Fa-f]+)",h="(?:0[bB][01]+)",i="(?:"+d+"|"+f+"|"+g+"|"+h+")",j="(?:[eE][+-]?\\d+)",k="(?:\\.\\d+)",l="(?:\\d+)",m="(?:(?:"+l+"?"+k+")|(?:"+l+"\\.))",n="(?:(?:"+m+"|"+l+")"+j+")",o="(?:"+n+"|"+m+")";this.$rules={start:[{token:"comment",regex:"\\(\\*.*?\\*\\)\\s*?$"},{token:"comment",merge:!0,regex:"\\(\\*.*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"'.'"},{token:"string",merge:!0,regex:'"',next:"qstring"},{token:"constant.numeric",regex:"(?:"+o+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:o},{token:"constant.numeric",regex:i+"\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|="},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\)",next:"start"},{token:"comment",merge:!0,regex:".+"}],qstring:[{token:"string",regex:'"',next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.OcamlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Sergi Mansilla + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/ocaml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/ocaml_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var OcamlHighlightRules = require("./ocaml_highlight_rules").OcamlHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new OcamlHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, TextMode); + +var indenter = /(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/; + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var i, line; + var outdent = true; + var re = /^\s*\(\*(.*)\*\)/; + + for (i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + var range = new Range(0, 0, 0, 0); + for (i=startRow; i<= endRow; i++) { + line = doc.getLine(i); + range.start.row = i; + range.end.row = i; + range.end.column = line.length; + + doc.replace(range, outdent ? line.match(re)[1] : "(*" + line + "*)"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + + if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') && + state === 'start' && indenter.test(line)) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/ocaml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var OcamlHighlightRules = function() { + + var keywords = lang.arrayToMap(( + "and|as|assert|begin|class|constraint|do|done|downto|else|end|" + + "exception|external|for|fun|function|functor|if|in|include|" + + "inherit|initializer|lazy|let|match|method|module|mutable|new|" + + "object|of|open|or|private|rec|sig|struct|then|to|try|type|val|" + + "virtual|when|while|with").split("|") + ); + + var builtinConstants = lang.arrayToMap( + ("true|false").split("|") + ); + + var builtinFunctions = lang.arrayToMap(( + "abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|" + + "add_available_units|add_big_int|add_buffer|add_channel|add_char|" + + "add_initializer|add_int_big_int|add_interfaces|add_num|add_string|" + + "add_substitute|add_substring|alarm|allocated_bytes|allow_only|" + + "allow_unsafe_modules|always|append|appname_get|appname_set|" + + "approx_num_exp|approx_num_fix|arg|argv|arith_status|array|" + + "array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|" + + "assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|" + + "beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|" + + "bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|" + + "bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|" + + "bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|" + + "cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|" + + "chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|" + + "chown|chr|chroot|classify_float|clear|clear_available_units|" + + "clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|" + + "close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|" + + "close_out|close_out_noerr|close_process|close_process|" + + "close_process_full|close_process_in|close_process_out|close_subwindow|" + + "close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|" + + "combine|combine|command|compact|compare|compare_big_int|compare_num|" + + "complex32|complex64|concat|conj|connect|contains|contains_from|contents|" + + "copy|cos|cosh|count|count|counters|create|create_alarm|create_image|" + + "create_matrix|create_matrix|create_matrix|create_object|" + + "create_object_and_run_initializers|create_object_opt|create_process|" + + "create_process|create_process_env|create_process_env|create_table|" + + "current|current_dir_name|current_point|current_x|current_y|curveto|" + + "custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|" + + "delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|" + + "dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|" + + "double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|" + + "draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|" + + "dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|" + + "environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|" + + "error_message|escaped|establish_server|executable_name|execv|execve|execvp|" + + "execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|" + + "file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|" + + "filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|" + + "float|float32|float64|float_of_big_int|float_of_bits|float_of_int|" + + "float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|" + + "flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|" + + "for_all|for_all2|force|force_newline|force_val|foreground|fork|" + + "format_of_string|formatter_of_buffer|formatter_of_out_channel|" + + "fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|" + + "from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|" + + "full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|" + + "genarray_of_array1|genarray_of_array2|genarray_of_array3|get|" + + "get_all_formatter_output_functions|get_approx_printing|get_copy|" + + "get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|" + + "get_formatter_output_functions|get_formatter_tag_functions|get_image|" + + "get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|" + + "get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|" + + "get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|" + + "getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|" + + "getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|" + + "getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|" + + "getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|" + + "getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|" + + "global_replace|global_substitute|gmtime|green|grid|group_beginning|" + + "group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|" + + "hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|" + + "incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|" + + "infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|" + + "input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|" + + "int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|" + + "int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|" + + "is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|" + + "is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|" + + "kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|" + + "lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|" + + "lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|" + + "loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|" + + "logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|" + + "lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|" + + "make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|" + + "marshal|match_beginning|match_end|matched_group|matched_string|max|" + + "max_array_length|max_big_int|max_elt|max_float|max_int|max_num|" + + "max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|" + + "min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|" + + "minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|" + + "mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|" + + "nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|" + + "new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|" + + "nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|" + + "num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|" + + "of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|" + + "of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|" + + "open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|" + + "open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|" + + "open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|" + + "open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|" + + "out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|" + + "output_char|output_string|output_value|over_max_boxes|pack|params|" + + "parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|" + + "place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|" + + "power_big_int_positive_big_int|power_big_int_positive_int|" + + "power_int_positive_big_int|power_int_positive_int|power_num|" + + "pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|" + + "pp_get_all_formatter_output_functions|pp_get_ellipsis_text|" + + "pp_get_formatter_output_functions|pp_get_formatter_tag_functions|" + + "pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|" + + "pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|" + + "pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|" + + "pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|" + + "pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|" + + "pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|" + + "pp_set_all_formatter_output_functions|pp_set_ellipsis_text|" + + "pp_set_formatter_out_channel|pp_set_formatter_output_functions|" + + "pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|" + + "pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|" + + "pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|" + + "prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|" + + "print_bool|print_break|print_char|print_cut|print_endline|print_float|" + + "print_flush|print_if_newline|print_int|print_newline|print_space|" + + "print_stat|print_string|print_tab|print_tbreak|printf|prohibit|" + + "public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|" + + "raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|" + + "read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|" + + "recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|" + + "regexp_string_case_fold|register|register_exception|rem|remember_mode|" + + "remove|remove_assoc|remove_assq|rename|replace|replace_first|" + + "replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|" + + "rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|" + + "rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|" + + "run_initializers|run_initializers_opt|scanf|search_backward|" + + "search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|" + + "set_all_formatter_output_functions|set_approx_printing|" + + "set_binary_mode_in|set_binary_mode_out|set_close_on_exec|" + + "set_close_on_exec|set_color|set_ellipsis_text|" + + "set_error_when_null_denominator|set_field|set_floating_precision|" + + "set_font|set_formatter_out_channel|set_formatter_output_functions|" + + "set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|" + + "set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|" + + "set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|" + + "set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|" + + "set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|" + + "setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|" + + "setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|" + + "shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|" + + "shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|" + + "shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|" + + "sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|" + + "sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|" + + "sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|" + + "sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|" + + "sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|" + + "slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|" + + "slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|" + + "split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|" + + "square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|" + + "stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|" + + "stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|" + + "str_formatter|string|string_after|string_before|string_match|" + + "string_of_big_int|string_of_bool|string_of_float|string_of_format|" + + "string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|" + + "string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|" + + "sub_right|subset|subset|substitute_first|substring|succ|succ|" + + "succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|" + + "symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|" + + "tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|" + + "tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|" + + "temp_file|text_size|time|time|time|timed_read|timed_write|times|times|" + + "tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|" + + "to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|" + + "to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|" + + "truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|" + + "uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|" + + "unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|" + + "update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|" + + "wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|" + + "wait_timed_read|wait_timed_write|wait_write|waitpid|white|" + + "widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|" + + + "Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|" + + "Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|" + + "Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|" + + "Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|" + + "MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|" + + "Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|" + + "Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak" + ).split("|")); + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : '\\(\\*.*?\\*\\)\\s*?$' + }, + { + token : "comment", + merge : true, + regex : '\\(\\*.*', + next : "comment" + }, + { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, + { + token : "string", // single char + regex : "'.'" + }, + { + token : "string", // " string + merge : true, + regex : '"', + next : "qstring" + }, + { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, + { + token : "constant.numeric", // float + regex : floatNumber + }, + { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, + { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, + { + token : "keyword.operator", + regex : "\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|=" + }, + { + token : "paren.lparen", + regex : "[[({]" + }, + { + token : "paren.rparen", + regex : "[\\])}]" + }, + { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\)", + next : "start" + }, + { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + + "qstring" : [ + { + token : "string", + regex : '"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; +}; + +oop.inherits(OcamlHighlightRules, TextHighlightRules); + +exports.OcamlHighlightRules = OcamlHighlightRules; +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); diff --git a/build/src/mode-perl.js b/build/src/mode-perl.js index 90978141..3a12f577 100644 --- a/build/src/mode-perl.js +++ b/build/src/mode-perl.js @@ -1 +1,430 @@ -define("ace/mode/perl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./perl_highlight_rules").PerlHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[\:]\s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),b=e.arrayToMap("ARGV|ENV|INC|SIG".split("|")),c=e.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Panagiotis Astithas + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/perl', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/perl_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new PerlHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "#"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[\:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/perl_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PerlHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|" + + "no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("ARGV|ENV|INC|SIG").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|" + + "gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|" + + "getpeername|setpriority|getprotoent|setprotoent|getpriority|" + + "endprotoent|getservent|setservent|endservent|sethostent|socketpair|" + + "getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|" + + "localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|" + + "closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|" + + "shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|" + + "dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|" + + "setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|" + + "lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|" + + "waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|" + + "chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|" + + "unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|" + + "length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|" + + "undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|" + + "sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|" + + "BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|" + + "join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|" + + "keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|" + + "eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|" + + "map|die|uc|lc|do").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0x[0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; +}; + +oop.inherits(PerlHighlightRules, TextHighlightRules); + +exports.PerlHighlightRules = PerlHighlightRules; +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-pgsql.js b/build/src/mode-pgsql.js index 30fd0ec8..ee311b3f 100644 --- a/build/src/mode-pgsql.js +++ b/build/src/mode-pgsql.js @@ -1 +1,970 @@ -define("ace/mode/pgsql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/pgsql_highlight_rules","ace/range"],function(a,b,c){var d=a("ace/lib/oop"),e=a("ace/mode/text").Mode,f=a("ace/tokenizer").Tokenizer,g=a("ace/mode/pgsql_highlight_rules").PgsqlHighlightRules,h=a("ace/range").Range,i=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)--/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var i=new h(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);i.start.row=g,i.end.row=g,i.end.column=k[0].length,b.replace(i,k[1])}}else b.indentRows(c,d,"--")},this.getNextLineIndent=function(a,b,c){return a=="start"||a=="keyword.statementEnd"?"":this.$getIndent(b)}}.call(i.prototype),b.Mode=i}),define("ace/mode/pgsql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/perl_highlight_rules","ace/mode/python_highlight_rules"],function(a,b,c){var d=a("ace/lib/oop"),e=a("ace/lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=a("./perl_highlight_rules").PerlHighlightRules,i=a("./python_highlight_rules").PythonHighlightRules,j=function(){var a=e.arrayToMap("abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|array|as|asc|assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|create|cross|cstring|csv|current|current_catalog|current_date|current_role|current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|date|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|int4|int8|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|key|label|language|language_handler|large|last|lc_collate|lc_ctype|leading|least|left|level|like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|match|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|procedural|procedure|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|references|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|simple|smallint|smgr|some|stable|standalone|start|statement|statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsvector|txid_snapshot|type|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone".split("|")),b=e.arrayToMap("RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_send|array_smaller|array_to_string|array_upper|arraycontained|arraycontains|arrayoverlap|ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|btfloat84cmp|btfloat8cmp|btgetbitmap|btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint42cmp|btint48cmp|btint4cmp|btint82cmp|btint84cmp|btint8cmp|btmarkpos|btnamecmp|btoidcmp|btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|date_trunc|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|dsynonym_lexize|dtrunc|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|euc_tw_to_utf8|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|has_function_privilege|has_language_privilege|has_schema_privilege|has_sequence_privilege|has_server_privilege|has_table_privilege|has_tablespace_privilege|hash_aclitem|hash_array|hash_numeric|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4recv|int4send|int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isfinite|ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|justify_days|justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|lo_open|lo_tell|lo_truncate|lo_unlink|log|loread|lower|lowrite|lpad|lseg|lseg_center|lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|pg_available_extension_versions|pg_available_extensions|pg_backend_pid|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_is_visible|pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_indexes_size|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|pg_stat_get_buf_written_backend|pg_stat_get_db_blocks_fetched|pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|pg_stat_get_db_conflict_tablespace|pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|pg_stat_get_db_tuples_deleted|pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|pg_stat_get_function_calls|pg_stat_get_function_self_time|pg_stat_get_function_time|pg_stat_get_last_analyze_time|pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_time|pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|pg_tablespace_databases|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|pg_try_advisory_lock|pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|rank|record_eq|record_ge|record_gt|record_in|record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|rpad|rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|smgrout|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|time_smaller|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsvector_cmp|tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|upper|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|varbit_recv|varbit_send|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|varbitlt|varbitne|varbittypmodin|varbittypmodout|varcharin|varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists".split("|")),c=[{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"variable.language",regex:'".*?"'},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(c){return c=c.toLowerCase(),a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"support.function":"identifier"},regex:"[a-zA-Z_][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|~=|~>=~|~>~|~~|~~\\*"},{token:"lparen.paren",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}];this.$rules={start:[{token:"comment",regex:"--.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"keyword.statementBegin",regex:"^[a-zA-Z]+",next:"statement"},{token:"support.buildin",regex:"^\\\\[\\S]+.*$"}],statement:[{token:"comment",regex:"--.*$"},{token:"comment",merge:!0,regex:"\\/\\*",next:"commentStatement"},{token:"statementEnd",regex:";",next:"start"},{token:"string",regex:"\\$perl\\$",next:"perl-start"},{token:"string",regex:"\\$python\\$",next:"python-start"},{token:"string",regex:"\\$[\\w_0-9]*\\$$",next:"dollarSql"},{token:"string",regex:"\\$[\\w_0-9]*\\$",next:"dollarStatementString"}].concat(c),dollarSql:[{token:"comment",regex:"--.*$"},{token:"comment",merge:!0,regex:"\\/\\*",next:"commentDollarSql"},{token:"string",regex:"^\\$[\\w_0-9]*\\$",next:"statement"},{token:"string",regex:"\\$[\\w_0-9]*\\$",next:"dollarSqlString"}].concat(c),comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],commentStatement:[{token:"comment",regex:".*?\\*\\/",next:"statement"},{token:"comment",merge:!0,regex:".+"}],commentDollarSql:[{token:"comment",regex:".*?\\*\\/",next:"dollarSql"},{token:"comment",merge:!0,regex:".+"}],dollarStatementString:[{token:"string",regex:".*?\\$[\\w_0-9]*\\$",next:"statement"},{token:"string",merge:!0,regex:".+"}],dollarSqlString:[{token:"string",regex:".*?\\$[\\w_0-9]*\\$",next:"dollarSql"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")]),this.embedRules(h,"perl-",[{token:"string",regex:"\\$perl\\$",next:"statement"}]),this.embedRules(i,"python-",[{token:"string",regex:"\\$python\\$",next:"statement"}])};d.inherits(j,g),b.PgsqlHighlightRules=j}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars".split("|")),b=e.arrayToMap("ARGV|ENV|INC|SIG".split("|")),c=e.arrayToMap("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",merge:!0,regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",merge:!0,regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0x[0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")),b=e.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")),c=e.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),d=e.arrayToMap("".split("|")),f="(?:r|u|ur|R|U|UR|Ur|uR)?",g="(?:(?:[1-9]\\d*)|(?:0))",h="(?:0[oO]?[0-7]+)",i="(?:0[xX][\\dA-Fa-f]+)",j="(?:0[bB][01]+)",k="(?:"+g+"|"+h+"|"+i+"|"+j+")",l="(?:[eE][+-]?\\d+)",m="(?:\\.\\d+)",n="(?:\\d+)",o="(?:(?:"+n+"?"+m+")|(?:"+n+"\\.))",p="(?:(?:"+o+"|"+n+")"+l+")",q="(?:"+p+"|"+o+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:f+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",merge:!0,regex:f+'"{3}.*$',next:"qqstring"},{token:"string",regex:f+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:f+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",merge:!0,regex:f+"'{3}.*$",next:"qstring"},{token:"string",regex:f+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+q+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:q},{token:"constant.numeric",regex:k+"[lL]\\b"},{token:"constant.numeric",regex:k+"\\b"},{token:function(e){return a.hasOwnProperty(e)?"keyword":b.hasOwnProperty(e)?"constant.language":d.hasOwnProperty(e)?"invalid.illegal":c.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen.paren",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PythonHighlightRules=g}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** +* The Original Code is Ajax.org Code Editor (ACE). +* +* Contributor(s): +* Jonathan Camile +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +define('ace/mode/pgsql', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/pgsql_highlight_rules', 'ace/range'], function(require, exports, module) { + + var oop = require("ace/lib/oop"); + var TextMode = require("ace/mode/text").Mode; + var Tokenizer = require("ace/tokenizer").Tokenizer; + var PgsqlHighlightRules = require("ace/mode/pgsql_highlight_rules").PgsqlHighlightRules; + var Range = require("ace/range").Range; + // var EditSession = require("ace/edit_session").EditSession; + + var Mode = function() { + this.$tokenizer = new Tokenizer(new PgsqlHighlightRules().getRules()); + }; + oop.inherits(Mode, TextMode); + + (function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + // var outentedRows = []; + var re = /^(\s*)--/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "--"); + } + }; + + + this.getNextLineIndent = function(state, line, tab) { + if (state == "start" || state == "keyword.statementEnd") { + return ""; + } else { + return this.$getIndent(line); // Keep whatever indent the previous line has + } + } + + }).call(Mode.prototype); + + exports.Mode = Mode; +}); + + +define('ace/mode/pgsql_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules', 'ace/mode/perl_highlight_rules', 'ace/mode/python_highlight_rules'], function(require, exports, module) { + +var oop = require("ace/lib/oop"); +var lang = require("ace/lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +// Supporting perl and python for now -- both in pg core and ace +var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules; +var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules; + +var PgsqlHighlightRules = function() { + + // Keywords, functions, operators last updated for pg 9.1. + var keywords = lang.arrayToMap( + ("abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|" + + "analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|array|as|asc|assertion|" + + "assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|" + + "binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|" + + "catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|" + + "cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|" + + "configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|" + + "create|cross|cstring|csv|current|current_catalog|current_date|current_role|" + + "current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|" + + "date|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|" + + "delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|" + + "drop|each|else|enable|encoding|encrypted|end|enum|escape|except|exclude|excluding|exclusive|" + + "execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|" + + "float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|" + + "global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|" + + "ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|" + + "inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|" + + "int4|int8|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|key|label|" + + "language|language_handler|large|last|lc_collate|lc_ctype|leading|least|left|level|like|" + + "limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|" + + "match|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|" + + "none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|object|of|off|offset|oid|oids|" + + "oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|" + + "owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|" + + "pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|" + + "position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|" + + "procedural|procedure|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|" + + "references|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|" + + "regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|" + + "restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|" + + "search|second|security|select|sequence|sequences|serializable|server|session|session_user|" + + "set|setof|share|show|similar|simple|smallint|smgr|some|stable|standalone|start|statement|" + + "statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|" + + "tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|" + + "tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsvector|" + + "txid_snapshot|type|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|" + + "unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|" + + "varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|" + + "with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|" + + "xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone").split("|") + ); + + + var builtinFunctions = lang.arrayToMap( + ("RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|" + + "RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|" + + "RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|" + + "RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|" + + "abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|aclexplode|aclinsert|" + + "aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|" + + "anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|" + + "anynonarray_in|anynonarray_out|anytextcat|area|areajoinsel|areasel|array_agg|" + + "array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|" + + "array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|" + + "array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_send|" + + "array_smaller|array_to_string|array_upper|arraycontained|arraycontains|arrayoverlap|" + + "ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|" + + "big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|" + + "bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|" + + "bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|" + + "boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|" + + "box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|" + + "box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|" + + "box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|" + + "box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|" + + "bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|" + + "bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|" + + "bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|" + + "bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|" + + "bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|" + + "btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcharcmp|btcostestimate|" + + "btendscan|btfloat48cmp|btfloat4cmp|btfloat84cmp|btfloat8cmp|btgetbitmap|btgettuple|" + + "btinsert|btint24cmp|btint28cmp|btint2cmp|btint42cmp|btint48cmp|btint4cmp|btint82cmp|" + + "btint84cmp|btint8cmp|btmarkpos|btnamecmp|btoidcmp|btoidvectorcmp|btoptions|btrecordcmp|" + + "btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|" + + "bttintervalcmp|btvacuumcleanup|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|" + + "bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|" + + "cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|" + + "cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|" + + "cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|" + + "center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|" + + "charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|" + + "cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|" + + "circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|" + + "circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|" + + "circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|" + + "circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|" + + "clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|" + + "close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|" + + "convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|" + + "cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|" + + "current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|" + + "cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|" + + "database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|" + + "date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|" + + "date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|" + + "date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|" + + "date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|" + + "date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|" + + "date_trunc|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|" + + "diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|" + + "dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|" + + "dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|" + + "dsynonym_lexize|dtrunc|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|" + + "enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|" + + "enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|" + + "euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|" + + "euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|" + + "euc_tw_to_utf8|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|" + + "float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|" + + "float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|" + + "float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|" + + "float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|" + + "float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|" + + "float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|" + + "float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|" + + "float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|" + + "float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|" + + "float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|" + + "float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|" + + "flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|" + + "fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|" + + "generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|" + + "getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|" + + "gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|" + + "ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|" + + "gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|" + + "ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|" + + "gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|" + + "gist_circle_compress|gist_circle_consistent|gist_point_compress|" + + "gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|" + + "gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|" + + "gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|" + + "gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|" + + "gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|" + + "gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|" + + "gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|" + + "has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|" + + "has_function_privilege|has_language_privilege|has_schema_privilege|" + + "has_sequence_privilege|has_server_privilege|has_table_privilege|" + + "has_tablespace_privilege|hash_aclitem|hash_array|hash_numeric|hashbeginscan|" + + "hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|" + + "hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|" + + "hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|" + + "hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|" + + "hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|" + + "icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|" + + "inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|" + + "inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|" + + "int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|" + + "int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|" + + "int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|" + + "int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|" + + "int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|" + + "int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|" + + "int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|" + + "int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|" + + "int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|" + + "int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4recv|int4send|" + + "int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|" + + "int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|" + + "int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|" + + "int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|" + + "int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|" + + "int8or|int8out|int8pl|int8pl_inet|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|" + + "int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|" + + "interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|" + + "interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|" + + "interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|" + + "interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|" + + "interval_recv|interval_send|interval_smaller|interval_um|intervaltypmodin|" + + "intervaltypmodout|intinterval|isclosed|isfinite|ishorizontal|iso8859_1_to_utf8|" + + "iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|" + + "isperp|isvertical|johab_to_utf8|justify_days|justify_hours|justify_interval|" + + "koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|" + + "koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|" + + "latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|" + + "length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|" + + "line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|" + + "line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|" + + "lo_open|lo_tell|lo_truncate|lo_unlink|log|loread|lower|lowrite|lpad|lseg|lseg_center|" + + "lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|" + + "lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|" + + "lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|" + + "macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_out|macaddr_recv|macaddr_send|" + + "makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|" + + "mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|" + + "mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|" + + "min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|" + + "nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|" + + "namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|" + + "network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|" + + "network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|" + + "npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|" + + "numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|" + + "numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|" + + "numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|" + + "numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|" + + "numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_uminus|numeric_uplus|" + + "numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|" + + "obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|" + + "oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|" + + "oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|" + + "on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|" + + "path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|" + + "path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|" + + "path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|" + + "pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|" + + "pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|" + + "pg_available_extension_versions|pg_available_extensions|pg_backend_pid|" + + "pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_is_visible|" + + "pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|" + + "pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|" + + "pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|" + + "pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|" + + "pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|" + + "pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|" + + "pg_get_indexdef|pg_get_keywords|pg_get_ruledef|pg_get_serial_sequence|" + + "pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_indexes_size|" + + "pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|" + + "pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|" + + "pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|" + + "pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|" + + "pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|" + + "pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|" + + "pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|" + + "pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|" + + "pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|" + + "pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|" + + "pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|" + + "pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|" + + "pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|" + + "pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|" + + "pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|" + + "pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|" + + "pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|" + + "pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|" + + "pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|" + + "pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|" + + "pg_stat_get_buf_written_backend|pg_stat_get_db_blocks_fetched|" + + "pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|" + + "pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|" + + "pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|" + + "pg_stat_get_db_conflict_tablespace|pg_stat_get_db_numbackends|" + + "pg_stat_get_db_stat_reset_time|pg_stat_get_db_tuples_deleted|" + + "pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|" + + "pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|" + + "pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|" + + "pg_stat_get_function_calls|pg_stat_get_function_self_time|" + + "pg_stat_get_function_time|pg_stat_get_last_analyze_time|" + + "pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|" + + "pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|" + + "pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|" + + "pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|" + + "pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|" + + "pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|" + + "pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|" + + "pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_time|" + + "pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|" + + "pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|" + + "pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|" + + "pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|" + + "pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|" + + "pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|" + + "pg_tablespace_databases|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|" + + "pg_timezone_names|pg_total_relation_size|pg_try_advisory_lock|" + + "pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|" + + "pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|" + + "pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|" + + "pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|" + + "pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|" + + "point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|" + + "point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|" + + "point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|" + + "poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|" + + "poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|" + + "poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|" + + "postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|" + + "prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|" + + "query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|" + + "quote_nullable|radians|radius|random|rank|record_eq|record_ge|record_gt|record_in|" + + "record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|" + + "regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|" + + "regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|" + + "regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|" + + "regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|" + + "regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|" + + "regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|" + + "regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|" + + "regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|" + + "reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|" + + "reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|rpad|rtrim|" + + "scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|" + + "schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|" + + "set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|" + + "shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|" + + "similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|" + + "smgrout|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|" + + "string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|" + + "suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|" + + "table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|" + + "text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|" + + "texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|" + + "textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|" + + "thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|" + + "tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|" + + "time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|" + + "time_smaller|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|" + + "timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|" + + "timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|" + + "timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|" + + "timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|" + + "timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|" + + "timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|" + + "timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|" + + "timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|" + + "timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|" + + "timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|" + + "timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|" + + "timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|" + + "timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|" + + "timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|" + + "timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|" + + "timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|" + + "timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|" + + "timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|" + + "timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|" + + "timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|" + + "tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|" + + "tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|" + + "tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|" + + "tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|" + + "to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|" + + "trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|" + + "ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|" + + "ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|" + + "tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|" + + "tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsvector_cmp|" + + "tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|" + + "tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|" + + "tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|" + + "txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|" + + "txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|" + + "uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|" + + "upper|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|" + + "utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|" + + "utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|" + + "utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|" + + "uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|" + + "varbit_out|varbit_recv|varbit_send|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|" + + "varbitlt|varbitne|varbittypmodin|varbittypmodout|varcharin|varcharout|varcharrecv|" + + "varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|" + + "void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|" + + "win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|" + + "win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|" + + "xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|" + + "xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|" + + "xpath_exists").split("|") + ); + + var sqlRules = [ + { + token : "string", // single line string -- assume dollar strings if multi-line for now + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "variable.language", // pg identifier + regex : '".*?"' + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : function(value) { + value = value.toLowerCase(); + if (keywords.hasOwnProperty(value)) { + return "keyword"; + } else if (builtinFunctions.hasOwnProperty(value)) { + return "support.function"; + } else { + return "identifier"; + } + }, + regex : "[a-zA-Z_][a-zA-Z0-9_$]*\\b" // TODO - Unicode in identifiers + }, { + token : "keyword.operator", + regex : "!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|" + + "\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||" + + "\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|" + + "~=|~>=~|~>~|~~|~~\\*" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } + ]; + + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "--.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi-line comment + merge : true, + regex : "\\/\\*", + next : "comment" + },{ + token : "keyword.statementBegin", + regex : "^[a-zA-Z]+", // Could enumerate starting keywords but this allows things to work when new statements are added. + next : "statement" + },{ + token : "support.buildin", // psql directive + regex : "^\\\\[\\S]+.*$" + } + ], + + "statement" : [ + { + token : "comment", + regex : "--.*$" + }, { + token : "comment", // multi-line comment + merge : true, + regex : "\\/\\*", + next : "commentStatement" + }, { + token : "statementEnd", + regex : ";", + next : "start" + }, { + token : "string", // perl, python, tcl are in the pg default dist (no tcl highlighter) + regex : "\\$perl\\$", + next : "perl-start" + }, { + token : "string", + regex : "\\$python\\$", + next : "python-start" + },{ + token : "string", + regex : "\\$[\\w_0-9]*\\$$", // dollar quote at the end of a line + next : "dollarSql" + }, { + token : "string", + regex : "\\$[\\w_0-9]*\\$", + next : "dollarStatementString" + } + ].concat(sqlRules), + + "dollarSql" : [ + { + token : "comment", + regex : "--.*$" + }, { + token : "comment", // multi-line comment + merge : true, + regex : "\\/\\*", + next : "commentDollarSql" + }, { + token : "string", // end quoting with dollar at the start of a line + regex : "^\\$[\\w_0-9]*\\$", + next : "statement" + }, { + token : "string", + regex : "\\$[\\w_0-9]*\\$", + next : "dollarSqlString" + } + ].concat(sqlRules), + + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + + "commentStatement" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "statement" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + + "commentDollarSql" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "dollarSql" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + + "dollarStatementString" : [ + { + token : "string", // closing dollarstring + regex : ".*?\\$[\\w_0-9]*\\$", + next : "statement" + }, { + token : "string", // dollarstring spanning whole line + merge : true, + regex : ".+" + } + ], + + "dollarSqlString" : [ + { + token : "string", // closing dollarstring + regex : ".*?\\$[\\w_0-9]*\\$", + next : "dollarSql" + }, { + token : "string", // dollarstring spanning whole line + merge : true, + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("start") ]); + this.embedRules(PerlHighlightRules, "perl-", [{token : "string", regex : "\\$perl\\$", next : "statement"}]); + this.embedRules(PythonHighlightRules, "python-", [{token : "string", regex : "\\$python\\$", next : "statement"}]); +}; + +oop.inherits(PgsqlHighlightRules, TextHighlightRules); + +exports.PgsqlHighlightRules = PgsqlHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/perl_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PerlHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|" + + "no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("ARGV|ENV|INC|SIG").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|" + + "gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|" + + "getpeername|setpriority|getprotoent|setprotoent|getpriority|" + + "endprotoent|getservent|setservent|endservent|sethostent|socketpair|" + + "getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|" + + "localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|" + + "closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|" + + "shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|" + + "dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|" + + "setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|" + + "lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|" + + "waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|" + + "chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|" + + "unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|" + + "length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|" + + "undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|" + + "sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|" + + "BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|" + + "join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|" + + "keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|" + + "eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|" + + "map|die|uc|lc|do").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0x[0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; +}; + +oop.inherits(PerlHighlightRules, TextHighlightRules); + +exports.PerlHighlightRules = PerlHighlightRules; +}); + +define('ace/mode/python_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PythonHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("and|as|assert|break|class|continue|def|del|elif|else|except|exec|" + + "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" + + "raise|return|try|while|with|yield").split("|") + ); + + var builtinConstants = lang.arrayToMap( + ("True|False|None|NotImplemented|Ellipsis|__debug__").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" + + "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" + + "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" + + "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" + + "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" + + "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" + + "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" + + "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern").split("|") + ); + + var futureReserved = lang.arrayToMap( + ("").split("|") + ); + + var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?"; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + this.$rules = { + "start" : [ { + token : "comment", + regex : "#.*$" + }, { + token : "string", // """ string + regex : strPre + '"{3}(?:[^\\\\]|\\\\.)*?"{3}' + }, { + token : "string", // multi line """ string start + merge : true, + regex : strPre + '"{3}.*$', + next : "qqstring" + }, { + token : "string", // " string + regex : strPre + '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "string", // ''' string + regex : strPre + "'{3}(?:[^\\\\]|\\\\.)*?'{3}" + }, { + token : "string", // multi line ''' string start + merge : true, + regex : strPre + "'{3}.*$", + next : "qstring" + }, { + token : "string", // ' string + regex : strPre + "'(?:[^\\\\]|\\\\.)*?'" + }, { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // long integer + regex : integer + "[lL]\\b" + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ], + "qqstring" : [ { + token : "string", // multi line """ string end + regex : '(?:[^\\\\]|\\\\.)*?"{3}', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring" : [ { + token : "string", // multi line ''' string end + regex : "(?:[^\\\\]|\\\\.)*?'{3}", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ] + }; +}; + +oop.inherits(PythonHighlightRules, TextHighlightRules); + +exports.PythonHighlightRules = PythonHighlightRules; +}); diff --git a/build/src/mode-php.js b/build/src/mode-php.js index d2e4b4b9..86f5dcc2 100644 --- a/build/src/mode-php.js +++ b/build/src/mode-php.js @@ -1 +1,1667 @@ -define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./php_highlight_rules").PhpHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("./behaviour/cstyle").CstyleBehaviour,k=a("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j,this.foldingRules=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[\:]\s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(l.prototype),b.Mode=l}),define("ace/mode/php_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=f,b=e.arrayToMap("abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|m_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|m_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|m_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|m_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type".split("|")),c=e.arrayToMap("abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|public|static|switch|throw|try|use|var|while|xor".split("|")),d=e.arrayToMap("die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset".split("|")),g=e.arrayToMap("true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__".split("|")),h=e.arrayToMap("$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|$http_response_header|$argc|$argv".split("|")),i=e.arrayToMap("key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregisterset_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|sql_regcase".split("|")),j=e.arrayToMap("cfunction|old_function".split("|")),k=e.arrayToMap([]);this.$rules={start:[{token:"support.php_tag",regex:"<\\?(?:php|\\=)"},{token:"support.php_tag",regex:"\\?>"},{token:"comment",regex:"<\\!--",next:"htmlcomment"},{token:"meta.tag",regex:""},{token:"comment",regex:"\\/\\/.*$"},{token:"comment",regex:"#.*$"},a.getStartRule("doc-start"),{token:"comment",regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["][\\s\\S]*',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['][\\s\\S]+",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language",regex:"\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|VERSION))|__COMPILER_HALT_OFFSET__)\\b"},{token:"constant.language",regex:"\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b"},{token:function(a){return c.hasOwnProperty(a)?"keyword":g.hasOwnProperty(a)?"constant.language":h.hasOwnProperty(a)?"variable.language":k.hasOwnProperty(a)?"invalid.illegal":b.hasOwnProperty(a)?"support.function":a=="debugger"?"invalid.deprecated":a.match(/^(\$[a-zA-Z][a-zA-Z0-9_]*|self|parent)$/)?"variable":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",regex:".+"}],qqstring:[{token:"string",regex:'"',next:"start"},{token:"string",regex:'[^"]+'}],qstring:[{token:"string",regex:"'",next:"start"},{token:"string",regex:"[^']+"}],htmlcomment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".+"}],htmltag:[{token:"meta.tag",regex:">",next:"start"},{token:"text",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],css:[{token:"meta.tag",regex:"",next:"htmltag"},{token:"meta.tag",regex:">"},{token:"text",regex:"(?:media|type|href)"},{token:"string",regex:'=".*?"'},{token:"paren.lparen",regex:"{",next:"cssdeclaration"},{token:"keyword",regex:"#[A-Za-z0-9-_.]+"},{token:"variable",regex:"\\.[A-Za-z0-9-_.]+"},{token:"constant",regex:"[A-Za-z0-9]+"}],cssdeclaration:[{token:"support.type",regex:"[-a-zA-Z]+",next:"cssvalue"},{token:"paren.rparen",regex:"}",next:"css"}],cssvalue:[{token:"text",regex:":"},{token:"constant",regex:"#[0-9a-zA-Z]+"},{token:"text",regex:"[-_0-9a-zA-Z\"' ,%]+"},{token:"text",regex:";",next:"cssdeclaration"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.PhpHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is Ajax.org Code Editor (ACE). +* +* The Initial Developer of the Original Code is +* Ajax.org B.V. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* André Fiedler +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +define('ace/mode/php', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/php_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var PhpHighlightRules = require("./php_highlight_rules").PhpHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new PhpHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "#"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[\:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/php_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PhpHighlightRules = function() { + var docComment = DocCommentHighlightRules; + // http://php.net/quickref.php + var builtinFunctions = lang.arrayToMap( + ('abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|' + + 'aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|' + + 'apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|' + + 'apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|' + + 'apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|' + + 'apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|' + + 'apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|' + + 'apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|' + + 'array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|' + + 'array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|' + + 'array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|' + + 'array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|' + + 'array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|' + + 'array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|' + + 'atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|' + + 'bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|' + + 'bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|' + + 'bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|' + + 'bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|' + + 'bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|' + + 'cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|' + + 'cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|' + + 'cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|' + + 'cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|' + + 'cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|' + + 'cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|' + + 'cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|' + + 'cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|' + + 'cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|' + + 'cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|' + + 'cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|' + + 'cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|' + + 'cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|' + + 'cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|' + + 'cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|' + + 'cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|' + + 'cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|' + + 'cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|' + + 'cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|' + + 'cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|' + + 'cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|' + + 'cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|' + + 'cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|' + + 'cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|' + + 'cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|' + + 'cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|' + + 'cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|' + + 'cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|' + + 'chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|' + + 'class_parents|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|' + + 'classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|' + + 'com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|' + + 'com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|' + + 'convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|' + + 'counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|' + + 'crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|' + + 'ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|' + + 'cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|' + + 'cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|' + + 'cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|' + + 'cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|' + + 'cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|' + + 'cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|' + + 'cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|' + + 'cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|' + + 'cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|' + + 'cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|' + + 'cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|' + + 'curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|' + + 'curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|' + + 'curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|' + + 'date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|' + + 'date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|' + + 'date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|' + + 'dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|' + + 'db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|' + + 'db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|' + + 'db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|' + + 'db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|' + + 'db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|' + + 'db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|' + + 'dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|' + + 'dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|' + + 'dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|' + + 'dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|' + + 'dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|' + + 'dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|' + + 'dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|' + + 'dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|' + + 'dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|' + + 'define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|' + + 'dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|' + + 'dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|' + + 'domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|' + + 'domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|' + + 'domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|' + + 'domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|' + + 'domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|' + + 'domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|' + + 'domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|' + + 'domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|' + + 'domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|' + + 'domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|' + + 'domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|' + + 'domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|' + + 'domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|' + + 'domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|' + + 'domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|' + + 'domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|' + + 'domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|' + + 'enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|' + + 'enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|' + + 'enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|' + + 'enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|' + + 'eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|' + + 'event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|' + + 'event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|' + + 'event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|' + + 'event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|' + + 'expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|' + + 'fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|' + + 'fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|' + + 'fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|' + + 'fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|' + + 'fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|' + + 'fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|' + + 'fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|' + + 'fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|' + + 'fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|' + + 'fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|' + + 'fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|' + + 'fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|' + + 'fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|' + + 'file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|' + + 'filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|' + + 'filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|' + + 'finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|' + + 'forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|' + + 'ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|' + + 'ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|' + + 'ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|' + + 'func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|' + + 'gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|' + + 'geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|' + + 'geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|' + + 'get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|' + + 'get_declared_interfaces|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|' + + 'get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|' + + 'get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|' + + 'getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|' + + 'gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|' + + 'getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|' + + 'getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|' + + 'gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|' + + 'gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|' + + 'gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|' + + 'gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|' + + 'gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|' + + 'gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|' + + 'gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|' + + 'grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|' + + 'gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|' + + 'gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|' + + 'gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|' + + 'gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|' + + 'gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|' + + 'gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|' + + 'gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|' + + 'gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|' + + 'gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|' + + 'gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|' + + 'halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|' + + 'haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|' + + 'harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|' + + 'harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|' + + 'harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|' + + 'harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|' + + 'harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|' + + 'harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|' + + 'harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|' + + 'harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|' + + 'haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|' + + 'harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|' + + 'harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|' + + 'haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|' + + 'haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|' + + 'harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|' + + 'harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|' + + 'harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|' + + 'harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|' + + 'harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|' + + 'harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|' + + 'harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|' + + 'harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|' + + 'harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|' + + 'harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|' + + 'harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|' + + 'harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|' + + 'harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|' + + 'harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|' + + 'hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|' + + 'header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|' + + 'html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|' + + 'http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|' + + 'http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|' + + 'http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|' + + 'http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|' + + 'http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|' + + 'http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|' + + 'http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|' + + 'http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|' + + 'httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|' + + 'httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|' + + 'httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|' + + 'httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|' + + 'httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|' + + 'httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|' + + 'httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|' + + 'httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|' + + 'httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|' + + 'httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|' + + 'httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|' + + 'httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|' + + 'httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|' + + 'httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|' + + 'httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|' + + 'httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|' + + 'httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|' + + 'httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|' + + 'httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|' + + 'httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|' + + 'httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|' + + 'httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|' + + 'httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|' + + 'httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|' + + 'httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|' + + 'httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|' + + 'httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|' + + 'httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|' + + 'httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|' + + 'hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|' + + 'hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|' + + 'hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|' + + 'hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|' + + 'hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|' + + 'hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|' + + 'hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|' + + 'hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|' + + 'hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|' + + 'hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|' + + 'hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|' + + 'hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|' + + 'hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|' + + 'hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|' + + 'ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|' + + 'ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|' + + 'ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|' + + 'ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|' + + 'ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|' + + 'ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|' + + 'ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|' + + 'iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|' + + 'id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|' + + 'idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|' + + 'ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|' + + 'ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|' + + 'ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|' + + 'ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|' + + 'iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|' + + 'iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|' + + 'iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|' + + 'imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|' + + 'imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|' + + 'imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|' + + 'imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|' + + 'imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|' + + 'imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|' + + 'imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|' + + 'imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|' + + 'imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|' + + 'imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|' + + 'imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|' + + 'imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|' + + 'imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|' + + 'imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|' + + 'imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|' + + 'imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|' + + 'imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|' + + 'imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|' + + 'imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|' + + 'imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|' + + 'imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|' + + 'imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|' + + 'imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|' + + 'imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|' + + 'imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|' + + 'imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|' + + 'imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|' + + 'imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|' + + 'imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|' + + 'imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|' + + 'imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|' + + 'imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|' + + 'imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|' + + 'imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|' + + 'imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|' + + 'imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|' + + 'imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|' + + 'imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|' + + 'imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|' + + 'imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|' + + 'imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|' + + 'imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|' + + 'imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|' + + 'imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|' + + 'imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|' + + 'imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|' + + 'imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|' + + 'imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|' + + 'imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|' + + 'imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|' + + 'imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|' + + 'imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|' + + 'imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|' + + 'imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|' + + 'imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|' + + 'imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|' + + 'imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|' + + 'imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|' + + 'imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|' + + 'imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|' + + 'imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|' + + 'imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|' + + 'imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|' + + 'imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|' + + 'imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|' + + 'imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|' + + 'imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|' + + 'imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|' + + 'imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|' + + 'imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|' + + 'imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|' + + 'imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|' + + 'imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|' + + 'imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|' + + 'imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|' + + 'imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|' + + 'imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|' + + 'imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|' + + 'imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|' + + 'imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|' + + 'imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|' + + 'imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|' + + 'imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|' + + 'imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|' + + 'imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|' + + 'imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|' + + 'imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|' + + 'imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|' + + 'imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|' + + 'imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|' + + 'imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|' + + 'imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|' + + 'imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|' + + 'imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|' + + 'imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|' + + 'imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|' + + 'imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|' + + 'imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|' + + 'imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|' + + 'imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|' + + 'imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|' + + 'imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|' + + 'imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|' + + 'imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|' + + 'imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|' + + 'imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|' + + 'imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|' + + 'imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|' + + 'imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|' + + 'imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|' + + 'include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|' + + 'ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|' + + 'ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|' + + 'ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|' + + 'ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|' + + 'ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|' + + 'inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|' + + 'intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|' + + 'is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|' + + 'is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|' + + 'iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|' + + 'iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|' + + 'jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|' + + 'json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|' + + 'kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|' + + 'kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|' + + 'ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|' + + 'ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|' + + 'ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|' + + 'ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|' + + 'ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|' + + 'libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|' + + 'limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|' + + 'lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|' + + 'm_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|' + + 'm_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|' + + 'm_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|' + + 'm_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|' + + 'mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|' + + 'mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|' + + 'mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|' + + 'maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|' + + 'maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|' + + 'maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|' + + 'maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|' + + 'maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|' + + 'maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|' + + 'maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|' + + 'maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|' + + 'maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|' + + 'maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|' + + 'maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|' + + 'maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|' + + 'maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|' + + 'maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|' + + 'maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|' + + 'mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|' + + 'mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|' + + 'mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|' + + 'mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|' + + 'mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|' + + 'mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|' + + 'mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|' + + 'mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|' + + 'mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|' + + 'mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|' + + 'mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|' + + 'mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|' + + 'mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|' + + 'mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|' + + 'mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|' + + 'ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|' + + 'mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|' + + 'mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|' + + 'mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|' + + 'mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|' + + 'mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|' + + 'msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|' + + 'msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|' + + 'msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|' + + 'msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|' + + 'msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|' + + 'msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|' + + 'msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|' + + 'mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|' + + 'mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|' + + 'mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|' + + 'mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|' + + 'mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|' + + 'mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|' + + 'mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|' + + 'mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|' + + 'mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|' + + 'mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|' + + 'mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_bind_param|' + + 'mysqli_bind_result|mysqli_client_encoding|mysqli_connect|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|' + + 'mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_escape_string|mysqli_execute|mysqli_fetch|mysqli_get_metadata|' + + 'mysqli_master_query|mysqli_param_count|mysqli_report|mysqli_result|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|' + + 'mysqli_send_long_data|mysqli_send_query|mysqli_set_opt|mysqli_slave_query|mysqli_stmt|mysqli_warning|mysqlnd_ms_get_stats|' + + 'mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|' + + 'mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|' + + 'ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|' + + 'ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|' + + 'ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|' + + 'ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|' + + 'ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|' + + 'ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|' + + 'ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|' + + 'ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|' + + 'ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|' + + 'ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|' + + 'ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|' + + 'ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|' + + 'ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|' + + 'ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|' + + 'ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|' + + 'ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|' + + 'ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|' + + 'ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|' + + 'ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|' + + 'ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|' + + 'ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|' + + 'ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|' + + 'newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|' + + 'newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|' + + 'newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|' + + 'newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|' + + 'newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|' + + 'newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|' + + 'newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|' + + 'newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|' + + 'newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|' + + 'newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|' + + 'newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|' + + 'newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|' + + 'newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|' + + 'newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|' + + 'newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|' + + 'newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|' + + 'newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|' + + 'newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|' + + 'newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|' + + 'notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|' + + 'notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|' + + 'numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|' + + 'ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|' + + 'ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|' + + 'oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|' + + 'oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|' + + 'oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|' + + 'oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|' + + 'oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|' + + 'oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|' + + 'oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|' + + 'oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|' + + 'oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|' + + 'ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|' + + 'ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|' + + 'ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|' + + 'ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|' + + 'ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|' + + 'octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|' + + 'odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|' + + 'odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|' + + 'odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|' + + 'odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|' + + 'odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|' + + 'openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|' + + 'openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|' + + 'openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|' + + 'openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|' + + 'openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|' + + 'openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|' + + 'openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|' + + 'openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|' + + 'openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|' + + 'openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|' + + 'openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|' + + 'outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|' + + 'ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|' + + 'ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|' + + 'ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|' + + 'parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|' + + 'pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|' + + 'pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|' + + 'pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|' + + 'pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|' + + 'pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|' + + 'pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|' + + 'pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|' + + 'pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|' + + 'pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|' + + 'pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|' + + 'pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|' + + 'pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|' + + 'pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|' + + 'pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|' + + 'pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|' + + 'pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|' + + 'pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|' + + 'pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|' + + 'pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|' + + 'pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|' + + 'pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|' + + 'pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|' + + 'pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|' + + 'pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|' + + 'pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|' + + 'pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|' + + 'pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|' + + 'pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|' + + 'pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|' + + 'pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|' + + 'pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|' + + 'pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|' + + 'pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|' + + 'pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|' + + 'pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|' + + 'php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|' + + 'png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|' + + 'posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|' + + 'posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|' + + 'posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|' + + 'preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|' + + 'printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|' + + 'printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|' + + 'printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|' + + 'printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|' + + 'printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|' + + 'ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|' + + 'ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|' + + 'ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|' + + 'ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|' + + 'ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|' + + 'ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|' + + 'ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|' + + 'ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|' + + 'ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|' + + 'pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|' + + 'pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|' + + 'pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|' + + 'px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|' + + 'px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|' + + 'px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|' + + 'radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|' + + 'radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|' + + 'radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|' + + 'radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|' + + 'rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|' + + 'readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|' + + 'readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|' + + 'readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|' + + 'recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|' + + 'recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|' + + 'reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|' + + 'regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|' + + 'resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|' + + 'rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|' + + 'rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|' + + 'runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|' + + 'runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|' + + 'runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|' + + 'runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|' + + 'samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|' + + 'samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|' + + 'sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|' + + 'sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|' + + 'sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|' + + 'sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|' + + 'sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|' + + 'sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|' + + 'sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|' + + 'sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|' + + 'sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|' + + 'sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|' + + 'sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|' + + 'sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|' + + 'sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|' + + 'sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|' + + 'sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|' + + 'sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|' + + 'sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|' + + 'sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|' + + 'sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|' + + 'sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|' + + 'session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|' + + 'session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|' + + 'session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|' + + 'session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|' + + 'set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|' + + 'setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|' + + 'shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|' + + 'similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|' + + 'snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|' + + 'snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|' + + 'snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|' + + 'soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|' + + 'socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|' + + 'socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|' + + 'socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|' + + 'solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|' + + 'solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|' + + 'solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|' + + 'spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|' + + 'splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|' + + 'splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|' + + 'sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|' + + 'sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|' + + 'sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|' + + 'sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|' + + 'sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|' + + 'sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|' + + 'ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|' + + 'ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|' + + 'ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|' + + 'ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|' + + 'stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|' + + 'stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|' + + 'stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|' + + 'stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|' + + 'stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|' + + 'stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|' + + 'stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|' + + 'stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|' + + 'stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|' + + 'stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|' + + 'stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|' + + 'stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|' + + 'str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|' + + 'stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|' + + 'stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|' + + 'stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|' + + 'stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|' + + 'stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|' + + 'stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|' + + 'stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|' + + 'stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|' + + 'stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|' + + 'strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|' + + 'svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|' + + 'svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|' + + 'svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|' + + 'svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|' + + 'svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|' + + 'svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|' + + 'swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|' + + 'swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|' + + 'swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|' + + 'swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|' + + 'swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|' + + 'swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|' + + 'swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|' + + 'swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|' + + 'swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|' + + 'swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|' + + 'swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|' + + 'swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|' + + 'swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|' + + 'sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|' + + 'sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|' + + 'sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|' + + 'sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|' + + 'tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|' + + 'tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|' + + 'time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|' + + 'timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|' + + 'tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|transliterator|traversable|trigger_error|trim|uasort|ucfirst|' + + 'ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|' + + 'udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|' + + 'udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|' + + 'uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|' + + 'urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|' + + 'variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|' + + 'variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|' + + 'variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|' + + 'vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|' + + 'vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|' + + 'vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|' + + 'w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|' + + 'wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|' + + 'win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|' + + 'win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|' + + 'wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|' + + 'wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|' + + 'wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|' + + 'wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|' + + 'xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|' + + 'xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|' + + 'xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|' + + 'xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|' + + 'xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|' + + 'xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|' + + 'xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|' + + 'xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|' + + 'xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|' + + 'xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|' + + 'xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|' + + 'xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|' + + 'xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|' + + 'xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|' + + 'xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|' + + 'xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|' + + 'xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|' + + 'xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|' + + 'xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|' + + 'xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|' + + 'xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|' + + 'xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|' + + 'yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|' + + 'yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|' + + 'yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|' + + 'yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|' + + 'zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|' + + 'ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|' + + 'ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|' + + 'ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|' + + 'ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|' + + 'ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|' + + 'ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type').split('|') + ); + + // http://php.net/manual/en/reserved.keywords.php + var keywords = lang.arrayToMap( + ('abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|' + + 'endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|' + + 'public|static|switch|throw|try|use|var|while|xor').split('|') + ); + + // http://php.net/manual/en/reserved.keywords.php + var languageConstructs = lang.arrayToMap( + ('die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset').split('|') + ); + + var builtinConstants = lang.arrayToMap( + ('true|false|null|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__').split('|') + ); + + var builtinVariables = lang.arrayToMap( + ('$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|' + + '$http_response_header|$argc|$argv').split('|') + ); + + // Discovery done by downloading 'Many HTML files' from: http://php.net/download-docs.php + // Then search for files containing 'deprecated' (case-insensitive) and look at each file that turns up. + var builtinFunctionsDeprecated = lang.arrayToMap( + ('key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|' + + 'com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|' + + 'cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|' + + 'hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|' + + 'maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|' + + 'mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|' + + 'mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|' + + 'mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|' + + 'mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|' + + 'mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|' + + 'mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|' + + 'ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|' + + 'ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|' + + 'ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|' + + 'ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|' + + 'ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|' + + 'PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|' + + 'PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|' + + 'PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|' + + 'PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|' + + 'PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|' + + 'PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|' + + 'PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|' + + 'PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|' + + 'px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregister' + + 'set_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|' + + 'sql_regcase').split('|') + ); + + var keywordsDeprecated = lang.arrayToMap( + ('cfunction|old_function').split('|') + ); + + var futureReserved = lang.arrayToMap([]); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "support.php_tag", // php open tag + regex : "<\\?(?:php|\\=)" + }, + { + token : "support.php_tag", // php close tag + regex : "\\?>" + }, + { + token : "comment", + regex : "<\\!--", + next : "htmlcomment" + }, + { + token : "meta.tag", + regex : "' + }, + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", + regex : "#.*$" + }, + docComment.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + regex : '["][\\s\\S]*', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + regex : "['][\\s\\S]+", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language", // constants + regex : "\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|" + + "ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|" + + "HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|" + + "L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|" + + "VERSION))|__COMPILER_HALT_OFFSET__)\\b" + }, { + token : "constant.language", // constants + regex : "\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|" + + "SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|" + + "O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|" + + "R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|" + + "YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|" + + "ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|" + + "T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|" + + "HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|" + + "I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|" + + "O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|" + + "L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|" + + "M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|" + + "OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|" + + "P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|" + + "RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|" + + "T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinVariables.hasOwnProperty(value)) + return "variable.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + if(value.match(/^(\$[a-zA-Z][a-zA-Z0-9_]*|self|parent)$/)) + return "variable"; + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '"', + next : "start" + }, { + token : "string", + regex : '[^"]+' + } + ], + "qstring" : [ + { + token : "string", + regex : "'", + next : "start" + }, { + token : "string", + regex : "[^']+" + } + ], + "htmlcomment" : [ + { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + regex : ".+" + } + ], + "htmltag" : [ + { + token : "meta.tag", + regex : ">", + next : "start" + }, { + token : "text", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "text", + regex : "\\s+" + }, { + token : "string", + regex : '".*?"' + }, { + token : "string", + regex : "'.*?'" + } + ], + "css" : [ + { + token : "meta.tag", + regex : "<\/style>", + next : "htmltag" + }, { + token : "meta.tag", + regex : ">" + }, { + token : 'text', + regex : "(?:media|type|href)" + }, { + token : 'string', + regex : '=".*?"' + }, { + token : "paren.lparen", + regex : "\{", + next : "cssdeclaration" + }, { + token : "keyword", + regex : "#[A-Za-z0-9\-\_\.]+" + }, { + token : "variable", + regex : "\\.[A-Za-z0-9\-\_\.]+" + }, { + token : "constant", + regex : "[A-Za-z0-9]+" + } + ], + "cssdeclaration" : [ + { + token : "support.type", + regex : "[\-a-zA-Z]+", + next : "cssvalue" + }, + { + token : "paren.rparen", + regex : '\}', + next : "css" + } + ], + "cssvalue" : [ + { + token : "text", + regex : "\:" + }, + { + token : "constant", + regex : "#[0-9a-zA-Z]+" + }, + { + token : "text", + regex : "[\-\_0-9a-zA-Z\"' ,%]+" + }, + { + token : "text", + regex : ";", + next : "cssdeclaration" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(PhpHighlightRules, TextHighlightRules); + +exports.PhpHighlightRules = PhpHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-powershell.js b/build/src/mode-powershell.js index 6ebaeae5..25e93a84 100644 --- a/build/src/mode-powershell.js +++ b/build/src/mode-powershell.js @@ -1 +1,565 @@ -define("ace/mode/powershell",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/powershell_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./powershell_highlight_rules").PowershellHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./behaviour/cstyle").CstyleBehaviour,j=a("./folding/cstyle").FoldMode,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new i,this.foldingRules=new j};d.inherits(k,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[]\s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){return null}}.call(k.prototype),b.Mode=k}),define("ace/mode/powershell_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("function|if|else|elseif|switch|while|default|for|do|until|break|continue|foreach|return|filter|in|trap|throw|param|begin|process|end".split("|")),b=e.arrayToMap("Get-Alias|Import-Alias|New-Alias|Set-Alias|Get-AuthenticodeSignature|Set-AuthenticodeSignature|Set-Location|Get-ChildItem|Clear-Item|Get-Command|Measure-Command|Trace-Command|Add-Computer|Checkpoint-Computer|Remove-Computer|Restart-Computer|Restore-Computer|Stop-Computer|Reset-ComputerMachinePassword|Test-ComputerSecureChannel|Add-Content|Get-Content|Set-Content|Clear-Content|Get-Command|Invoke-Command|Enable-ComputerRestore|Disable-ComputerRestore|Get-ComputerRestorePoint|Test-Connection|ConvertFrom-CSV|ConvertTo-CSV|ConvertTo-Html|ConvertTo-Xml|ConvertFrom-SecureString|ConvertTo-SecureString|Copy-Item|Export-Counter|Get-Counter|Import-Counter|Get-Credential|Get-Culture|Get-ChildItem|Get-Date|Set-Date|Remove-Item|Compare-Object|Get-Event|Get-WinEvent|New-Event|Remove-Event|Unregister-Event|Wait-Event|Clear-EventLog|Get-Eventlog|Limit-EventLog|New-Eventlog|Remove-EventLog|Show-EventLog|Write-EventLog|Get-EventSubscriber|Register-EngineEvent|Register-ObjectEvent|Register-WmiEvent|Get-ExecutionPolicy|Set-ExecutionPolicy|Export-Alias|Export-Clixml|Export-Console|Export-Csv|ForEach-Object|Format-Custom|Format-List|Format-Table|Format-Wide|Export-FormatData|Get-FormatData|Get-Item|Get-ChildItem|Get-Help|Add-History|Clear-History|Get-History|Invoke-History|Get-Host|Read-Host|Write-Host|Get-HotFix|Import-Clixml|Import-Csv|Invoke-Command|Invoke-Expression|Get-Item|Invoke-Item|New-Item|Remove-Item|Set-Item|Clear-ItemProperty|Copy-ItemProperty|Get-ItemProperty|Move-ItemProperty|New-ItemProperty|Remove-ItemProperty|Rename-ItemProperty|Set-ItemProperty|Get-Job|Receive-Job|Remove-Job|Start-Job|Stop-Job|Wait-Job|Stop-Process|Update-List|Get-Location|Pop-Location|Push-Location|Set-Location|Send-MailMessage|Add-Member|Get-Member|Move-Item|Compare-Object|Group-Object|Measure-Object|New-Object|Select-Object|Sort-Object|Where-Object|Out-Default|Out-File|Out-GridView|Out-Host|Out-Null|Out-Printer|Out-String|Convert-Path|Join-Path|Resolve-Path|Split-Path|Test-Path|Get-Pfxcertificate|Pop-Location|Push-Location|Get-Process|Start-Process|Stop-Process|Wait-Process|Enable-PSBreakpoint|Disable-PSBreakpoint|Get-PSBreakpoint|Set-PSBreakpoint|Remove-PSBreakpoint|Get-PSDrive|New-PSDrive|Remove-PSDrive|Get-PSProvider|Set-PSdebug|Enter-PSSession|Exit-PSSession|Export-PSSession|Get-PSSession|Import-PSSession|New-PSSession|Remove-PSSession|Disable-PSSessionConfiguration|Enable-PSSessionConfiguration|Get-PSSessionConfiguration|Register-PSSessionConfiguration|Set-PSSessionConfiguration|Unregister-PSSessionConfiguration|New-PSSessionOption|Add-PsSnapIn|Get-PsSnapin|Remove-PSSnapin|Get-Random|Read-Host|Remove-Item|Rename-Item|Rename-ItemProperty|Select-Object|Select-XML|Send-MailMessage|Get-Service|New-Service|Restart-Service|Resume-Service|Set-Service|Start-Service|Stop-Service|Suspend-Service|Sort-Object|Start-Sleep|ConvertFrom-StringData|Select-String|Tee-Object|New-Timespan|Trace-Command|Get-Tracesource|Set-Tracesource|Start-Transaction|Complete-Transaction|Get-Transaction|Use-Transaction|Undo-Transaction|Start-Transcript|Stop-Transcript|Add-Type|Update-TypeData|Get-Uiculture|Get-Unique|Update-Formatdata|Update-Typedata|Clear-Variable|Get-Variable|New-Variable|Remove-Variable|Set-Variable|New-WebServiceProxy|Where-Object|Write-Debug|Write-Error|Write-Host|Write-Output|Write-Progress|Write-Verbose|Write-Warning|Set-WmiInstance|Invoke-WmiMethod|Get-WmiObject|Remove-WmiObject|Connect-WSMan|Disconnect-WSMan|Test-WSMan|Invoke-WSManAction|Disable-WSManCredSSP|Enable-WSManCredSSP|Get-WSManCredSSP|New-WSManInstance|Get-WSManInstance|Set-WSManInstance|Remove-WSManInstance|Set-WSManQuickConfig|New-WSManSessionOption".split("|")),c="eq|ne|ge|gt|lt|le|like|notlike|match|notmatch|replace|contains|notcontains|ieq|ine|ige|igt|ile|ilt|ilike|inotlike|imatch|inotmatch|ireplace|icontains|inotcontains|is|isnot|as|and|or|band|bor|not";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"[$](?:[Tt]rue|[Ff]alse)\\b"},{token:"constant.language",regex:"[$][Nn]ull\\b"},{token:"variable.instance",regex:"[$][a-zA-Z][a-zA-Z0-9_]*\\b"},{token:function(c){return a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"},{token:"keyword.operator",regex:"\\-(?:"+c+")"},{token:"keyword.operator",regex:"&|\\*|\\+|\\-|\\=|\\+=|\\-="},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PowershellHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +define('ace/mode/powershell', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/powershell_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var PowershellHighlightRules = require("./powershell_highlight_rules").PowershellHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new PowershellHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + + this.createWorker = function(session) { + return null; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); +define('ace/mode/powershell_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PowershellHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("function|if|else|elseif|switch|while|default|for|do|until|break|continue|" + + "foreach|return|filter|in|trap|throw|param|begin|process|end").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("Get-Alias|Import-Alias|New-Alias|Set-Alias|Get-AuthenticodeSignature|Set-AuthenticodeSignature|" + + "Set-Location|Get-ChildItem|Clear-Item|Get-Command|Measure-Command|Trace-Command|" + + "Add-Computer|Checkpoint-Computer|Remove-Computer|Restart-Computer|Restore-Computer|Stop-Computer|" + + "Reset-ComputerMachinePassword|Test-ComputerSecureChannel|Add-Content|Get-Content|Set-Content|Clear-Content|" + + "Get-Command|Invoke-Command|Enable-ComputerRestore|Disable-ComputerRestore|Get-ComputerRestorePoint|Test-Connection|" + + "ConvertFrom-CSV|ConvertTo-CSV|ConvertTo-Html|ConvertTo-Xml|ConvertFrom-SecureString|ConvertTo-SecureString|" + + "Copy-Item|Export-Counter|Get-Counter|Import-Counter|Get-Credential|Get-Culture|" + + "Get-ChildItem|Get-Date|Set-Date|Remove-Item|Compare-Object|Get-Event|" + + "Get-WinEvent|New-Event|Remove-Event|Unregister-Event|Wait-Event|Clear-EventLog|" + + "Get-Eventlog|Limit-EventLog|New-Eventlog|Remove-EventLog|Show-EventLog|Write-EventLog|" + + "Get-EventSubscriber|Register-EngineEvent|Register-ObjectEvent|Register-WmiEvent|Get-ExecutionPolicy|Set-ExecutionPolicy|" + + "Export-Alias|Export-Clixml|Export-Console|Export-Csv|ForEach-Object|Format-Custom|" + + "Format-List|Format-Table|Format-Wide|Export-FormatData|Get-FormatData|Get-Item|" + + "Get-ChildItem|Get-Help|Add-History|Clear-History|Get-History|Invoke-History|" + + "Get-Host|Read-Host|Write-Host|Get-HotFix|Import-Clixml|Import-Csv|" + + "Invoke-Command|Invoke-Expression|Get-Item|Invoke-Item|New-Item|Remove-Item|" + + "Set-Item|Clear-ItemProperty|Copy-ItemProperty|Get-ItemProperty|Move-ItemProperty|New-ItemProperty|" + + "Remove-ItemProperty|Rename-ItemProperty|Set-ItemProperty|Get-Job|Receive-Job|Remove-Job|" + + "Start-Job|Stop-Job|Wait-Job|Stop-Process|Update-List|Get-Location|" + + "Pop-Location|Push-Location|Set-Location|Send-MailMessage|Add-Member|Get-Member|" + + "Move-Item|Compare-Object|Group-Object|Measure-Object|New-Object|Select-Object|" + + "Sort-Object|Where-Object|Out-Default|Out-File|Out-GridView|Out-Host|" + + "Out-Null|Out-Printer|Out-String|Convert-Path|Join-Path|Resolve-Path|" + + "Split-Path|Test-Path|Get-Pfxcertificate|Pop-Location|Push-Location|Get-Process|" + + "Start-Process|Stop-Process|Wait-Process|Enable-PSBreakpoint|Disable-PSBreakpoint|Get-PSBreakpoint|" + + "Set-PSBreakpoint|Remove-PSBreakpoint|Get-PSDrive|New-PSDrive|Remove-PSDrive|Get-PSProvider|" + + "Set-PSdebug|Enter-PSSession|Exit-PSSession|Export-PSSession|Get-PSSession|Import-PSSession|" + + "New-PSSession|Remove-PSSession|Disable-PSSessionConfiguration|Enable-PSSessionConfiguration|Get-PSSessionConfiguration|Register-PSSessionConfiguration|" + + "Set-PSSessionConfiguration|Unregister-PSSessionConfiguration|New-PSSessionOption|Add-PsSnapIn|Get-PsSnapin|Remove-PSSnapin|" + + "Get-Random|Read-Host|Remove-Item|Rename-Item|Rename-ItemProperty|Select-Object|" + + "Select-XML|Send-MailMessage|Get-Service|New-Service|Restart-Service|Resume-Service|" + + "Set-Service|Start-Service|Stop-Service|Suspend-Service|Sort-Object|Start-Sleep|" + + "ConvertFrom-StringData|Select-String|Tee-Object|New-Timespan|Trace-Command|Get-Tracesource|" + + "Set-Tracesource|Start-Transaction|Complete-Transaction|Get-Transaction|Use-Transaction|Undo-Transaction|" + + "Start-Transcript|Stop-Transcript|Add-Type|Update-TypeData|Get-Uiculture|Get-Unique|" + + "Update-Formatdata|Update-Typedata|Clear-Variable|Get-Variable|New-Variable|Remove-Variable|" + + "Set-Variable|New-WebServiceProxy|Where-Object|Write-Debug|Write-Error|Write-Host|" + + "Write-Output|Write-Progress|Write-Verbose|Write-Warning|Set-WmiInstance|Invoke-WmiMethod|" + + "Get-WmiObject|Remove-WmiObject|Connect-WSMan|Disconnect-WSMan|Test-WSMan|Invoke-WSManAction|" + + "Disable-WSManCredSSP|Enable-WSManCredSSP|Get-WSManCredSSP|New-WSManInstance|Get-WSManInstance|Set-WSManInstance|" + + "Remove-WSManInstance|Set-WSManQuickConfig|New-WSManSessionOption").split("|")); + + var binaryOperatorsRe = "eq|ne|ge|gt|lt|le|like|notlike|match|notmatch|replace|contains|notcontains|" + + "ieq|ine|ige|igt|ile|ilt|ilike|inotlike|imatch|inotmatch|ireplace|icontains|inotcontains|" + + "is|isnot|as|" + + "and|or|band|bor|not"; + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "[$](?:[Tt]rue|[Ff]alse)\\b" + }, { + token : "constant.language", + regex : "[$][Nn]ull\\b" + }, { + token : "variable.instance", + regex : "[$][a-zA-Z][a-zA-Z0-9_]*\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b" + }, { + token : "keyword.operator", + regex : "\\-(?:" + binaryOperatorsRe + ")" + }, { + token : "keyword.operator", + regex : "&|\\*|\\+|\\-|\\=|\\+=|\\-=" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; +}; + +oop.inherits(PowershellHighlightRules, TextHighlightRules); + +exports.PowershellHighlightRules = PowershellHighlightRules; +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-python.js b/build/src/mode-python.js index 5401407f..53784f11 100644 --- a/build/src/mode-python.js +++ b/build/src/mode-python.js @@ -1 +1,395 @@ -define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./python_highlight_rules").PythonHighlightRules,h=a("./folding/pythonic").FoldMode,i=a("../range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.foldingRules=new h("\\:")};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[\:]\s*$/);g&&(d+=c)}return d};var a={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(b,c,d){if(d!=="\r\n"&&d!=="\r"&&d!=="\n")return!1;var e=this.$tokenizer.getLineTokens(c.trim(),b).tokens;if(!e)return!1;do var f=e.pop();while(f&&(f.type=="comment"||f.type=="text"&&f.value.match(/^\s+$/)));return f?f.type=="keyword"&&a[f.value]:!1},this.autoOutdent=function(a,b,c){c+=1;var d=this.$getIndent(b.getLine(c)),e=b.getTabString();d.slice(-e.length)==e&&b.remove(new i(c,d.length-e.length,c,d.length))}}.call(j.prototype),b.Mode=j}),define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield".split("|")),b=e.arrayToMap("True|False|None|NotImplemented|Ellipsis|__debug__".split("|")),c=e.arrayToMap("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|set|apply|delattr|help|next|setattr|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern".split("|")),d=e.arrayToMap("".split("|")),f="(?:r|u|ur|R|U|UR|Ur|uR)?",g="(?:(?:[1-9]\\d*)|(?:0))",h="(?:0[oO]?[0-7]+)",i="(?:0[xX][\\dA-Fa-f]+)",j="(?:0[bB][01]+)",k="(?:"+g+"|"+h+"|"+i+"|"+j+")",l="(?:[eE][+-]?\\d+)",m="(?:\\.\\d+)",n="(?:\\d+)",o="(?:(?:"+n+"?"+m+")|(?:"+n+"\\.))",p="(?:(?:"+o+"|"+n+")"+l+")",q="(?:"+p+"|"+o+")";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:f+'"{3}(?:[^\\\\]|\\\\.)*?"{3}'},{token:"string",merge:!0,regex:f+'"{3}.*$',next:"qqstring"},{token:"string",regex:f+'"(?:[^\\\\]|\\\\.)*?"'},{token:"string",regex:f+"'{3}(?:[^\\\\]|\\\\.)*?'{3}"},{token:"string",merge:!0,regex:f+"'{3}.*$",next:"qstring"},{token:"string",regex:f+"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:"(?:"+q+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:q},{token:"constant.numeric",regex:k+"[lL]\\b"},{token:"constant.numeric",regex:k+"\\b"},{token:function(e){return a.hasOwnProperty(e)?"keyword":b.hasOwnProperty(e)?"constant.language":d.hasOwnProperty(e)?"invalid.illegal":c.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen.paren",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],qqstring:[{token:"string",regex:'(?:[^\\\\]|\\\\.)*?"{3}',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:[^\\\\]|\\\\.)*?'{3}",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.PythonHighlightRules=g}),define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./fold_mode").FoldMode,f=b.FoldMode=function(a){this.foldingStartMarker=new RegExp("(?:([\\[{])|("+a+"))(?:\\s*)(?:#.*)?$")};d.inherits(f,e),function(){this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),e=d.match(this.foldingStartMarker);if(e)return e[1]?this.openingBracketBlock(a,e[1],c,e.index):e[2]?this.indentationBlock(a,c,e.index+e[2].length):this.indentationBlock(a,c)}}.call(f.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is Ajax.org Code Editor (ACE). +* +* The Initial Developer of the Original Code is +* Ajax.org B.V. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Fabian Jakobs +* Colin Gourlay +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +define('ace/mode/python', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/python_highlight_rules', 'ace/mode/folding/pythonic', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules; +var PythonFoldMode = require("./folding/pythonic").FoldMode; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new PythonHighlightRules().getRules()); + this.foldingRules = new PythonFoldMode("\\:"); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "#"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[\:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "pass": 1, + "return": 1, + "raise": 1, + "break": 1, + "continue": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + + // ignore trailing comments + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + // outdenting in python is slightly different because it always applies + // to the next line and only of a new line is inserted + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/python_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PythonHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("and|as|assert|break|class|continue|def|del|elif|else|except|exec|" + + "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" + + "raise|return|try|while|with|yield").split("|") + ); + + var builtinConstants = lang.arrayToMap( + ("True|False|None|NotImplemented|Ellipsis|__debug__").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" + + "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" + + "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" + + "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" + + "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" + + "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" + + "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" + + "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern").split("|") + ); + + var futureReserved = lang.arrayToMap( + ("").split("|") + ); + + var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?"; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + this.$rules = { + "start" : [ { + token : "comment", + regex : "#.*$" + }, { + token : "string", // """ string + regex : strPre + '"{3}(?:[^\\\\]|\\\\.)*?"{3}' + }, { + token : "string", // multi line """ string start + merge : true, + regex : strPre + '"{3}.*$', + next : "qqstring" + }, { + token : "string", // " string + regex : strPre + '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "string", // ''' string + regex : strPre + "'{3}(?:[^\\\\]|\\\\.)*?'{3}" + }, { + token : "string", // multi line ''' string start + merge : true, + regex : strPre + "'{3}.*$", + next : "qstring" + }, { + token : "string", // ' string + regex : strPre + "'(?:[^\\\\]|\\\\.)*?'" + }, { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // long integer + regex : integer + "[lL]\\b" + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ], + "qqstring" : [ { + token : "string", // multi line """ string end + regex : '(?:[^\\\\]|\\\\.)*?"{3}', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ], + "qstring" : [ { + token : "string", // multi line ''' string end + regex : "(?:[^\\\\]|\\\\.)*?'{3}", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } ] + }; +}; + +oop.inherits(PythonHighlightRules, TextHighlightRules); + +exports.PythonHighlightRules = PythonHighlightRules; +}); + +define('ace/mode/folding/pythonic', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(markers) { + this.foldingStartMarker = new RegExp("(?:([\\[{])|(" + markers + "))(?:\\s*)(?:#.*)?$"); +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + if (match[1]) + return this.openingBracketBlock(session, match[1], row, match.index); + if (match[2]) + return this.indentationBlock(session, row, match.index + match[2].length); + return this.indentationBlock(session, row); + } + } + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-ruby.js b/build/src/mode-ruby.js index 7b9df321..dc60b962 100644 --- a/build/src/mode-ruby.js +++ b/build/src/mode-ruby.js @@ -1 +1,318 @@ -define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./ruby_highlight_rules").RubyHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(j,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[]\s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|gsub!|get_via_redirect|h|host!|https?|https!|include|Integer|lambda|link_to|link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|validates_inclusion_of|validates_numericality_of|validates_with|validates_each|authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|translate|localize|extract_locale_from_tld|t|l|caches_page|expire_page|caches_action|expire_action|cache|expire_fragment|expire_cache_for|observe|cache_sweeper|has_many|has_one|belongs_to|has_and_belongs_to_many".split("|")),b=e.arrayToMap("alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield".split("|")),c=e.arrayToMap("true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING".split("|")),d=e.arrayToMap("$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|$!|root_url|flash|session|cookies|params|request|response|logger".split("|"));this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"comment",merge:!0,regex:"^=begin$",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]"},{token:"text",regex:"::"},{token:"variable.instancce",regex:"@{1,2}(?:[a-zA-Z_]|d)+"},{token:"variable.class",regex:"[A-Z](?:[a-zA-Z_]|d)+"},{token:"string",regex:"[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b"},{token:"constant.numeric",regex:"[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="self"?"variable.language":b.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"constant.language":d.hasOwnProperty(e)?"variable.language":a.hasOwnProperty(e)?"support.function":e=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:"^=end$",next:"start"},{token:"comment",merge:!0,regex:".+"}]}};d.inherits(g,f),b.RubyHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Shlomo Zalman Heigh + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/ruby', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/ruby_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new RubyHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "#"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/ruby_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var RubyHighlightRules = function() { + + var builtinFunctions = lang.arrayToMap( + ("abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" + + "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" + + "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" + + "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" + + "assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|" + + "assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|" + + "attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|" + + "caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|" + + "exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|" + + "gsub!|get_via_redirect|h|host!|https?|https!|include|Integer|lambda|link_to|" + + "link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|" + + "p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|" + + "raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|" + + "set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|" + + "throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|" + + "render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|" + + "content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|" + + "fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|" + + "time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|" + + "select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|" + + "file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|" + + "protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|" + + "send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|" + + "validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|" + + "validates_inclusion_of|validates_numericality_of|validates_with|validates_each|" + + "authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|" + + "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" + + "translate|localize|extract_locale_from_tld|t|l|caches_page|expire_page|caches_action|expire_action|" + + "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" + + "has_many|has_one|belongs_to|has_and_belongs_to_many").split("|") + ); + + var keywords = lang.arrayToMap( + ("alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" + + "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" + + "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" + + "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING").split("|") + ); + + var builtinVariables = lang.arrayToMap( + ("\$DEBUG|\$defout|\$FILENAME|\$LOAD_PATH|\$SAFE|\$stdin|\$stdout|\$stderr|\$VERBOSE|" + + "$!|root_url|flash|session|cookies|params|request|response|logger").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "comment", // multi line comment + merge : true, + regex : "^\=begin$", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // backtick string + regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]" + }, { + token : "text", // namespaces aren't symbols + regex : "::" + }, { + token : "variable.instancce", // instance variable + regex : "@{1,2}(?:[a-zA-Z_]|\d)+" + }, { + token : "variable.class", // class name + regex : "[A-Z](?:[a-zA-Z_]|\d)+" + }, { + token : "string", // symbol + regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (value == "self") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinVariables.hasOwnProperty(value)) + return "variable.language"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "^\=end$", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; +}; + +oop.inherits(RubyHighlightRules, TextHighlightRules); + +exports.RubyHighlightRules = RubyHighlightRules; +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); diff --git a/build/src/mode-scad.js b/build/src/mode-scad.js index 271c0788..608a49c1 100644 --- a/build/src/mode-scad.js +++ b/build/src/mode-scad.js @@ -1 +1,687 @@ -define("ace/mode/scad",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./scad_highlight_rules").scadHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("./behaviour/cstyle").CstyleBehaviour,k=a("./folding/cstyle").FoldMode,l=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new j,this.foldingRules=new k};d.inherits(l,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var h=b.match(/^.*[\{\(\[]\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(l.prototype),b.Mode=l}),define("ace/mode/scad_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("module|if|else|for".split("|")),b=e.arrayToMap("NULL".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:'["].*\\\\$',next:"qqstring"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"string",regex:"['].*\\\\$",next:"qstring"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant",regex:"<[a-zA-Z0-9.]+>"},{token:"keyword",regex:"(?:use|include)"},{token:function(c){return c=="this"?"variable.language":a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.scadHighlightRules=h}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Gastón Kleiman + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/scad', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/scad_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var scadHighlightRules = require("./scad_highlight_rules").scadHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new scadHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/scad_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var scadHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("module|if|else|for").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("NULL").split("|") + ); + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant", // + regex : "<[a-zA-Z0-9.]+>" + }, { + token : "keyword", // pre-compiler directivs + regex : "(?:use|include)" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(scadHighlightRules, TextHighlightRules); + +exports.scadHighlightRules = scadHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-scala.js b/build/src/mode-scala.js index 096f14be..8760e56b 100644 --- a/build/src/mode-scala.js +++ b/build/src/mode-scala.js @@ -1 +1,1141 @@ -define("ace/mode/scala",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./javascript").Mode,f=a("../tokenizer").Tokenizer,g=a("./scala_highlight_rules").ScalaHighlightRules,h=function(){e.call(this),this.$tokenizer=new f((new g).getRules())};d.inherits(h,e),function(){this.createWorker=function(a){return null}}.call(h.prototype),b.Mode=h}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/scala_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.ScalaHighlightRules=h}) \ No newline at end of file +define('ace/mode/scala', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/javascript', 'ace/tokenizer', 'ace/mode/scala_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var ScalaHighlightRules = require("./scala_highlight_rules").ScalaHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + + this.$tokenizer = new Tokenizer(new ScalaHighlightRules().getRules()); +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); +define('ace/mode/scala_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ScalaHighlightRules = function() { + + // taken from http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html + var keywords = lang.arrayToMap( + ( + "case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|" + + "abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|" + + "override|package|private|protected|sealed|super|this|trait|type|val|var|with" + ).split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("true|false").split("|") + ); + + var langClasses = lang.arrayToMap( + ("AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object|" + + "Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|" + + "Option|Array|Char|Byte|Short|Int|Long|Nothing" + + ).split("|") + ); + + var importClasses = lang.arrayToMap( + ("").split("|") + ); + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (langClasses.hasOwnProperty(value)) + return "support.function"; + else if (importClasses.hasOwnProperty(value)) + return "support.function"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else + return "identifier"; + }, + // TODO: Unicode escape sequences + // TODO: Unicode identifiers + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(ScalaHighlightRules, TextHighlightRules); + +exports.ScalaHighlightRules = ScalaHighlightRules; +}); diff --git a/build/src/mode-scss.js b/build/src/mode-scss.js index 214bfe34..6af76023 100644 --- a/build/src/mode-scss.js +++ b/build/src/mode-scss.js @@ -1 +1,535 @@ -define("ace/mode/scss",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./scss_highlight_rules").ScssHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("./folding/cstyle").FoldMode,j=function(){this.$tokenizer=new f((new g).getRules(),"i"),this.$outdent=new h,this.foldingRules=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a).tokens;if(e.length&&e[e.length-1].type=="comment")return d;var f=b.match(/^.*\{\s*$/);return f&&(d+=c),d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(j.prototype),b.Mode=j}),define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap(function(){var a="-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-".split("|"),b="appearance|background-clip|background-inline-policy|background-origin|background-size|binding|border-bottom-colors|border-left-colors|border-right-colors|border-top-colors|border-end|border-end-color|border-end-style|border-end-width|border-image|border-start|border-start-color|border-start-style|border-start-width|box-align|box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|box-pack|box-sizing|column-count|column-gap|column-width|column-rule|column-rule-width|column-rule-style|column-rule-color|float-edge|font-feature-settings|font-language-override|force-broken-image-icon|image-region|margin-end|margin-start|opacity|outline|outline-color|outline-offset|outline-radius|outline-radius-bottomleft|outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|outline-style|outline-width|padding-end|padding-start|stack-sizing|tab-size|text-blink|text-decoration-color|text-decoration-line|text-decoration-style|transform|transform-origin|transition|transition-delay|transition-duration|transition-property|transition-timing-function|user-focus|user-input|user-modify|user-select|window-shadow|border-radius".split("|"),c="azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-bottom|border-collapse|border-color|border-left-color|border-left-style|border-left-width|border-left|border-right-color|border-right-style|border-right-width|border-right|border-spacing|border-style|border-top-color|border-top-style|border-top-width|border-top|border-width|border|bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size-adjust|font-size|font-stretch|font-style|font-variant|font-weight|font|height|left|letter-spacing|line-height|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|marker-offset|margin|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline-color|outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page|pause-after|pause-before|pause|pitch-range|pitch|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index".split("|"),d=[];for(var e=0,f=a.length;e|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"string",regex:'(?:(?:\\\\.)|(?:[^"\\\\]))*?"',next:"start"},{token:"string",merge:!0,regex:".+"}],qstring:[{token:"string",regex:"(?:(?:\\\\.)|(?:[^'\\\\]))*?'",next:"start"},{token:"string",merge:!0,regex:".+"}]}};d.inherits(g,f),b.ScssHighlightRules=g}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/scss', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/scss_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var ScssHighlightRules = require("./scss_highlight_rules").ScssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new ScssHighlightRules().getRules(), "i"); + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + // ignore braces in comments + var tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/scss_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ScssHighlightRules = function() { + + var properties = lang.arrayToMap( (function () { + + var browserPrefix = ("-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-").split("|"); + + var prefixProperties = ("appearance|background-clip|background-inline-policy|background-origin|" + + "background-size|binding|border-bottom-colors|border-left-colors|" + + "border-right-colors|border-top-colors|border-end|border-end-color|" + + "border-end-style|border-end-width|border-image|border-start|" + + "border-start-color|border-start-style|border-start-width|box-align|" + + "box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|" + + "box-pack|box-sizing|column-count|column-gap|column-width|column-rule|" + + "column-rule-width|column-rule-style|column-rule-color|float-edge|" + + "font-feature-settings|font-language-override|force-broken-image-icon|" + + "image-region|margin-end|margin-start|opacity|outline|outline-color|" + + "outline-offset|outline-radius|outline-radius-bottomleft|" + + "outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|" + + "outline-style|outline-width|padding-end|padding-start|stack-sizing|" + + "tab-size|text-blink|text-decoration-color|text-decoration-line|" + + "text-decoration-style|transform|transform-origin|transition|" + + "transition-delay|transition-duration|transition-property|" + + "transition-timing-function|user-focus|user-input|user-modify|user-select|" + + "window-shadow|border-radius").split("|"); + + var properties = ("azimuth|background-attachment|background-color|background-image|" + + "background-position|background-repeat|background|border-bottom-color|" + + "border-bottom-style|border-bottom-width|border-bottom|border-collapse|" + + "border-color|border-left-color|border-left-style|border-left-width|" + + "border-left|border-right-color|border-right-style|border-right-width|" + + "border-right|border-spacing|border-style|border-top-color|" + + "border-top-style|border-top-width|border-top|border-width|border|" + + "bottom|box-sizing|caption-side|clear|clip|color|content|counter-increment|" + + "counter-reset|cue-after|cue-before|cue|cursor|direction|display|" + + "elevation|empty-cells|float|font-family|font-size-adjust|font-size|" + + "font-stretch|font-style|font-variant|font-weight|font|height|left|" + + "letter-spacing|line-height|list-style-image|list-style-position|" + + "list-style-type|list-style|margin-bottom|margin-left|margin-right|" + + "margin-top|marker-offset|margin|marks|max-height|max-width|min-height|" + + "min-width|opacity|orphans|outline-color|" + + "outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|" + + "padding-left|padding-right|padding-top|padding|page-break-after|" + + "page-break-before|page-break-inside|page|pause-after|pause-before|" + + "pause|pitch-range|pitch|play-during|position|quotes|richness|right|" + + "size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|" + + "stress|table-layout|text-align|text-decoration|text-indent|" + + "text-shadow|text-transform|top|unicode-bidi|vertical-align|" + + "visibility|voice-family|volume|white-space|widows|width|word-spacing|" + + "z-index").split("|"); + + //The return array + var ret = []; + + //All prefixProperties will get the browserPrefix in + //the begning by join the prefixProperties array with the value of browserPrefix + for (var i=0, ln=browserPrefix.length; i the first match is used + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + + // regexp must not have capturing parentheses. Use (?:) instead. + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", + regex : numRe + "(?:em|ex|px|cm|mm|in|pt|pc|deg|rad|grad|ms|s|hz|khz|%)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : function(value) { + if (properties.hasOwnProperty(value.toLowerCase())) + return "support.type"; + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (constants.hasOwnProperty(value)) + return "constant.language"; + else if (functions.hasOwnProperty(value)) + return "support.function"; + else if (colors.hasOwnProperty(value.toLowerCase())) + return "support.constant.color"; + else if (tags.hasOwnProperty(value.toLowerCase())) + return "variable.language"; + else + return "text"; + }, + regex : "\\-?[@a-z_][@a-z0-9_\\-]*" + }, { + token : "variable", + regex : "[a-z_\\-$][a-z0-9_\\-$]*\\b" + }, { + token: "variable.language", + regex: "#[a-z0-9-_]+" + }, { + token: "variable.language", + regex: "\\.[a-z0-9-_]+" + }, { + token: "variable.language", + regex: ":[a-z0-9-_]+" + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + token : "keyword.operator", + regex : "<|>|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + merge : true, + regex : '.+' + } + ] + }; +}; + +oop.inherits(ScssHighlightRules, TextHighlightRules); + +exports.ScssHighlightRules = ScssHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-sh.js b/build/src/mode-sh.js index da216377..e6269830 100644 --- a/build/src/mode-sh.js +++ b/build/src/mode-sh.js @@ -1 +1,250 @@ -define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/sh_highlight_rules","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./sh_highlight_rules").ShHighlightRules,h=a("../range").Range,i=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var i=new h(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);i.start.row=g,i.end.row=g,i.end.column=k[0].length,b.replace(i,k[1])}}else b.indentRows(c,d,"#")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"){var g=b.match(/^.*[\{\(\[\:]\s*$/);g&&(d+=c)}return d};var a={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(b,c,d){if(d!=="\r\n"&&d!=="\r"&&d!=="\n")return!1;var e=this.$tokenizer.getLineTokens(c.trim(),b).tokens;if(!e)return!1;do var f=e.pop();while(f&&(f.type=="comment"||f.type=="text"&&f.value.match(/^\s+$/)));return f?f.type=="keyword"&&a[f.value]:!1},this.autoOutdent=function(a,b,c){c+=1;var d=this.$getIndent(b.getLine(c)),e=b.getTabString();d.slice(-e.length)==e&&b.remove(new h(c,d.length-e.length,c,d.length))}}.call(i.prototype),b.Mode=i}),define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set".split("|")),b=e.arrayToMap("[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait".split("|")),c="(?:(?:[1-9]\\d*)|(?:0))",d="(?:\\.\\d+)",f="(?:\\d+)",g="(?:(?:"+f+"?"+d+")|(?:"+f+"\\.))",h="(?:(?:"+g+"|"+f+")"+")",i="(?:"+h+"|"+g+")",j="(?:&"+f+")",k="[a-zA-Z][a-zA-Z0-9_]*",l="(?:(?:\\$"+k+")|(?:"+k+"=))",m="(?:\\$(?:SHLVL|\\$|\\!|\\?))",n="(?:"+k+"\\s*\\(\\))";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'"(?:[^\\\\]|\\\\.)*?"'},{token:"variable.language",regex:m},{token:"variable",regex:l},{token:"support.function",regex:n},{token:"support.function",regex:j},{token:"string",regex:"'(?:[^\\\\]|\\\\.)*?'"},{token:"constant.numeric",regex:i},{token:"constant.numeric",regex:c+"\\b"},{token:function(c){return a.hasOwnProperty(c)?"keyword":b.hasOwnProperty(c)?"constant.language":c=="debugger"?"invalid.deprecated":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!="},{token:"lparen.paren",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}]}};d.inherits(g,f),b.ShHighlightRules=g}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** +* Version: MPL 1.1/GPL 2.0/LGPL 2.1 +* +* The contents of this file are subject to the Mozilla Public License Version +* 1.1 (the "License"); you may not use this file except in compliance with +* the License. You may obtain a copy of the License at +* http://www.mozilla.org/MPL/ +* +* Software distributed under the License is distributed on an "AS IS" basis, +* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +* for the specific language governing rights and limitations under the +* License. +* +* The Original Code is Ajax.org Code Editor (ACE). +* +* The Initial Developer of the Original Code is +* Ajax.org B.V. +* Portions created by the Initial Developer are Copyright (C) 2010 +* the Initial Developer. All Rights Reserved. +* +* Contributor(s): +* Rich Healey +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +define('ace/mode/sh', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/sh_highlight_rules', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var ShHighlightRules = require("./sh_highlight_rules").ShHighlightRules; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new ShHighlightRules().getRules()); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)#/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "#"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[\:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "pass": 1, + "return": 1, + "raise": 1, + "break": 1, + "continue": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.$tokenizer.getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + + // ignore trailing comments + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + // outdenting in sh is slightly different because it always applies + // to the next line and only of a new line is inserted + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); +define('ace/mode/sh_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ShHighlightRules = function() { + + var reservedKeywords = lang.arrayToMap( + ('!|{|}|case|do|done|elif|else|'+ + 'esac|fi|for|if|in|then|until|while|'+ + '&|;|export|local|read|typeset|unset|'+ + 'elif|select|set' + ).split('|') + ); + + var languageConstructs = lang.arrayToMap( + ('[|]|alias|bg|bind|break|builtin|'+ + 'cd|command|compgen|complete|continue|'+ + 'dirs|disown|echo|enable|eval|exec|'+ + 'exit|fc|fg|getopts|hash|help|history|'+ + 'jobs|kill|let|logout|popd|printf|pushd|'+ + 'pwd|return|set|shift|shopt|source|'+ + 'suspend|test|times|trap|type|ulimit|'+ + 'umask|unalias|wait' + ).split('|') + ); + + var integer = "(?:(?:[1-9]\\d*)|(?:0))"; + // var integer = "(?:" + decimalInteger + ")"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + var fileDescriptor = "(?:&" + intPart + ")"; + + var variableName = "[a-zA-Z][a-zA-Z0-9_]*"; + var variable = "(?:(?:\\$" + variableName + ")|(?:" + variableName + "=))"; + + var builtinVariable = "(?:\\$(?:SHLVL|\\$|\\!|\\?))"; + + var func = "(?:" + variableName + "\\s*\\(\\))"; + + this.$rules = { + "start" : [ { + token : "comment", + regex : "#.*$" + }, { + token : "string", // " string + regex : '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "variable.language", + regex : builtinVariable + }, { + token : "variable", + regex : variable + }, { + token : "support.function", + regex : func, + }, { + token : "support.function", + regex : fileDescriptor + }, { + token : "string", // ' string + regex : "'(?:[^\\\\]|\\\\.)*?'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : function(value) { + if (reservedKeywords.hasOwnProperty(value)) + return "keyword"; + else if (languageConstructs.hasOwnProperty(value)) + return "constant.language"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ] + }; +}; + +oop.inherits(ShHighlightRules, TextHighlightRules); + +exports.ShHighlightRules = ShHighlightRules; +}); diff --git a/build/src/mode-sql.js b/build/src/mode-sql.js index e81fadfb..3beddd20 100644 --- a/build/src/mode-sql.js +++ b/build/src/mode-sql.js @@ -1 +1,140 @@ -define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/sql_highlight_rules","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./sql_highlight_rules").SqlHighlightRules,h=a("../range").Range,i=function(){this.$tokenizer=new f((new g).getRules())};d.inherits(i,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=[],g=/^(\s*)--/;for(var i=c;i<=d;i++)if(!g.test(b.getLine(i))){e=!1;break}if(e){var j=new h(0,0,0,0);for(var i=c;i<=d;i++){var k=b.getLine(i),l=k.match(g);j.start.row=i,j.end.row=i,j.end.column=l[0].length,b.replace(j,l[1])}}else b.indentRows(c,d,"--")}}.call(i.prototype),b.Mode=i}),define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("select|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc".split("|")),b=e.arrayToMap("true|false|null".split("|")),c=e.arrayToMap("count|min|max|avg|sum|rank|now|coalesce".split("|"));this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*"'},{token:"string",regex:"'.*'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:function(d){return d=d.toLowerCase(),a.hasOwnProperty(d)?"keyword":b.hasOwnProperty(d)?"constant.language":c.hasOwnProperty(d)?"support.function":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"lparen.paren",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};d.inherits(g,f),b.SqlHighlightRules=g}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** +* The Original Code is Ajax.org Code Editor (ACE). +* +* Contributor(s): +* Jonathan Camile +* +* Alternatively, the contents of this file may be used under the terms of +* either the GNU General Public License Version 2 or later (the "GPL"), or +* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +* in which case the provisions of the GPL or the LGPL are applicable instead +* of those above. If you wish to allow use of your version of this file only +* under the terms of either the GPL or the LGPL, and not to allow others to +* use your version of this file under the terms of the MPL, indicate your +* decision by deleting the provisions above and replace them with the notice +* and other provisions required by the GPL or the LGPL. If you do not delete +* the provisions above, a recipient may use your version of this file under +* the terms of any one of the MPL, the GPL or the LGPL. +* +* ***** END LICENSE BLOCK ***** */ + +define('ace/mode/sql', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/sql_highlight_rules', 'ace/range'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var SqlHighlightRules = require("./sql_highlight_rules").SqlHighlightRules; +var Range = require("../range").Range; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new SqlHighlightRules().getRules()); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var outentedRows = []; + var re = /^(\s*)--/; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "--"); + } + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/sql_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SqlHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("select|from|where|and|or|group|by|order|limit|offset|having|as|case|" + + "when|else|end|type|left|right|join|on|outer|desc|asc").split("|") + ); + + var builtinConstants = lang.arrayToMap( + ("true|false|null").split("|") + ); + + var builtinFunctions = lang.arrayToMap( + ("count|min|max|avg|sum|rank|now|coalesce").split("|") + ); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "--.*$" + }, { + token : "string", // " string + regex : '".*"' + }, { + token : "string", // ' string + regex : "'.*'" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : function(value) { + value = value.toLowerCase(); + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ] + }; +}; + +oop.inherits(SqlHighlightRules, TextHighlightRules); + +exports.SqlHighlightRules = SqlHighlightRules; +}); + diff --git a/build/src/mode-svg.js b/build/src/mode-svg.js index 952384bf..2b2be95a 100644 --- a/build/src/mode-svg.js +++ b/build/src/mode-svg.js @@ -1 +1,1626 @@ -define("ace/mode/svg",["require","exports","module","ace/lib/oop","ace/mode/xml","ace/mode/javascript","ace/tokenizer","ace/mode/svg_highlight_rules","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./xml").Mode,f=a("./javascript").Mode,g=a("../tokenizer").Tokenizer,h=a("./svg_highlight_rules").SvgHighlightRules,i=a("./folding/mixed").FoldMode,j=a("./folding/xml").FoldMode,k=a("./folding/cstyle").FoldMode,l=function(){e.call(this),this.highlighter=new h,this.$tokenizer=new g(this.highlighter.getRules()),this.$embeds=this.highlighter.getEmbeds(),this.createModeDelegates({"js-":f}),this.foldingRules=new i(new j({}),{"js-":new k})};d.inherits(l,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(l.prototype),b.Mode=l}),define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./xml_highlight_rules").XmlHighlightRules,h=a("./behaviour/xml").XmlBehaviour,i=a("./folding/xml").FoldMode,j=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h,this.foldingRules=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(j.prototype),b.Mode=j}),define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./xml_util"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"xml_pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},e.tag(this.$rules,"tag","start")};d.inherits(g,f),b.XmlHighlightRules=g}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="g.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../lib/lang"),f=a("../../range").Range,g=a("./fold_mode").FoldMode,h=a("../../token_iterator").TokenIterator,i=b.FoldMode=function(a){g.call(this),this.voidElements=a||{}};d.inherits(i,g),function(){this.getFoldWidget=function(a,b,c){var d=this._getFirstTagInLine(a,c);return d.closing?b=="markbeginend"?"end":"":!d.tagName||this.voidElements[d.tagName.toLowerCase()]?"":d.selfClosing?"":d.value.indexOf("/"+d.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(a,b){var c=a.getTokens(b,b)[0].tokens,d="";for(var f=0;f?)/,this._parseTag=function(a){var b=this.tagRe.exec(a),c=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:a,match:b?b[2]:"",closing:b?!!b[3]:!1,selfClosing:b?!!b[5]||b[2]=="/>":!1,tagName:b?b[4]:"",column:b[1]?c+b[1].length:c}},this._readTagForward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){if(!d)var d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()};c+=b.value;if(c.indexOf(">")!==-1){var e=this._parseTag(c);return e.start=d,e.end={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length},a.stepForward(),e}}while(b=a.stepForward());return null},this._readTagBackward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){d||(d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length}),c=b.value+c;if(c.indexOf("<")!==-1){var e=this._parseTag(c);return e.end=d,e.start={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()},a.stepBackward(),e}}while(b=a.stepBackward());return null},this._pop=function(a,b){while(a.length){var c=a[a.length-1];if(!b||c.tagName==b.tagName)return a.pop();if(this.voidElements[b.tagName])return;if(this.voidElements[c.tagName]){a.pop();continue}return null}},this.getFoldWidgetRange=function(a,b,c){var d=this._getFirstTagInLine(a,c);if(!d.match)return null;var e=d.closing||d.selfClosing,g=[],i;if(!e){var j=new h(a,c,d.column),k={row:c,column:d.column+d.tagName.length+2};while(i=this._readTagForward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(i.closing){this._pop(g,i);if(g.length==0)return f.fromPoints(k,i.start)}else g.push(i)}}else{var j=new h(a,c,d.column+d.match.length),l={row:c,column:d.column};while(i=this._readTagBackward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(!i.closing){this._pop(g,i);if(g.length==0)return i.start.column+=i.tagName.length+2,f.fromPoints(i.start,l)}else g.push(i)}}}}.call(i.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"worker-javascript.js","ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),define("ace/mode/svg_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/xml_util"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./javascript_highlight_rules").JavaScriptHighlightRules,f=a("./xml_highlight_rules").XmlHighlightRules,g=a("./xml_util"),h=function(){f.call(this),this.$rules.start.splice(3,0,{token:"meta.tag",regex:"<(?=s*script)",next:"script"}),g.tag(this.$rules,"script","js-start"),this.embedRules(e,"js-",[{token:"comment",regex:"\\/\\/.*(?=<\\/script>)",next:"tag"},{token:"meta.tag",regex:"<\\/(?=script)",next:"tag"}])};d.inherits(h,f),b.SvgHighlightRules=h}),define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("./fold_mode").FoldMode,f=b.FoldMode=function(a,b){this.defaultMode=a,this.subModes=b};d.inherits(f,e),function(){this.$getMode=function(a){for(var b in this.subModes)if(a.indexOf(b)===0)return this.subModes[b];return null},this.$tryMode=function(a,b,c,d){var e=this.$getMode(a);return e?e.getFoldWidget(b,c,d):""},this.getFoldWidget=function(a,b,c){return this.$tryMode(a.getState(c-1),a,b,c)||this.$tryMode(a.getState(c),a,b,c)||this.defaultMode.getFoldWidget(a,b,c)},this.getFoldWidgetRange=function(a,b,c){var d=this.$getMode(a.getState(c-1));if(!d||!d.getFoldWidget(a,b,c))d=this.$getMode(a.getState(c));if(!d||!d.getFoldWidget(a,b,c))d=this.defaultMode;return d.getFoldWidgetRange(a,b,c)}}.call(f.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/svg', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/xml', 'ace/mode/javascript', 'ace/tokenizer', 'ace/mode/svg_highlight_rules', 'ace/mode/folding/mixed', 'ace/mode/folding/xml', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var XmlMode = require("./xml").Mode; +var JavaScriptMode = require("./javascript").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var SvgHighlightRules = require("./svg_highlight_rules").SvgHighlightRules; +var MixedFoldMode = require("./folding/mixed").FoldMode; +var XmlFoldMode = require("./folding/xml").FoldMode; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + XmlMode.call(this); + + this.highlighter = new SvgHighlightRules(); + this.$tokenizer = new Tokenizer(this.highlighter.getRules()); + + this.$embeds = this.highlighter.getEmbeds(); + this.createModeDelegates({ + "js-": JavaScriptMode + }); + + this.foldingRules = new MixedFoldMode(new XmlFoldMode({}), { + "js-": new CStyleFoldMode() + }); +}; + +oop.inherits(Mode, XmlMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xml_highlight_rules', 'ace/mode/behaviour/xml', 'ace/mode/folding/xml'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new XmlHighlightRules().getRules()); + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/xml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + this.$rules = { + start : [{ + token : "text", + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "xml_pe", + regex : "<\\!.*?>" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "constant.character.entity", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, { + token : "text", + regex : "[^<]+" + }], + + cdata : [{ + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "(?:[^\\]]|\\](?!\\]>))+" + }], + + comment : [{ + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + }] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); +}; + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +define('ace/mode/xml_util', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") +); + +var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") +); + +function string(state) { + return [{ + token : "string", + regex : '".*?"' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*', + next : state + "_qqstring" + }, { + token : "string", + regex : "'.*?'" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*", + next : state + "_qstring" + }]; +} + +function multiLineString(quote, state) { + return [{ + token : "string", + merge : true, + regex : ".*?" + quote, + next : state + }, { + token : "string", + merge : true, + regex : '.+' + }]; +} + +exports.tag = function(states, name, nextState) { + states[name] = [{ + token : "text", + regex : "\\s+" + }, { + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, + merge : true, + regex : "[-_a-zA-Z0-9:]+", + next : name + "_embed_attribute_list" + }, { + token: "empty", + regex: "", + next : name + "_embed_attribute_list" + }]; + + states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list"); + states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list"); + + states[name + "_embed_attribute_list"] = [{ + token : "meta.tag", + merge : true, + regex : "\/?>", + next : nextState + }, { + token : "keyword.operator", + regex : "=" + }, { + token : "entity.other.attribute-name", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "text", + regex : "\\s+" + }].concat(string(name)); +}; + +}); + +define('ace/mode/behaviour/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; + +var XmlBehaviour = function () { + + this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour + + this.add("brackets", "insertion", function (state, action, editor, session, text) { + if (text == '<') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return false; + } else { + return { + text: '<>', + selection: [1, 1] + } + } + } else if (text == '>') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '>') { // need some kind of matching check here + return { + text: '', + selection: [1, 1] + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChars = line.substring(cursor.column, cursor.column + 2); + if (rightChars == ' selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/range', 'ace/mode/folding/fold_mode', 'ace/token_iterator'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var lang = require("../../lib/lang"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var FoldMode = exports.FoldMode = function(voidElements) { + BaseFoldMode.call(this); + this.voidElements = voidElements || {}; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (tag.closing) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || this.voidElements[tag.tagName.toLowerCase()]) + return ""; + + if (tag.selfClosing) + return ""; + + if (tag.value.indexOf("/" + tag.tagName) !== -1) + return ""; + + return "start"; + }; + + this._getFirstTagInLine = function(session, row) { + var tokens = session.getTokens(row, row)[0].tokens; + var value = ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token.type.indexOf("meta.tag") === 0) + value += token.value; + else + value += lang.stringRepeat(" ", token.value.length); + } + + return this._parseTag(value); + }; + + this.tagRe = /^(\s*)(?)/; + this._parseTag = function(tag) { + + var match = this.tagRe.exec(tag); + var column = this.tagRe.lastIndex || 0; + this.tagRe.lastIndex = 0; + + return { + value: tag, + match: match ? match[2] : "", + closing: match ? !!match[3] : false, + selfClosing: match ? !!match[5] || match[2] == "/>" : false, + tagName: match ? match[4] : "", + column: match[1] ? column + match[1].length : column + }; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var start; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!start) { + var start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + } + value += token.value; + if (value.indexOf(">") !== -1) { + var tag = this._parseTag(value); + tag.start = start; + tag.end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + iterator.stepForward(); + return tag; + } + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var end; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!end) { + end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + } + value = token.value + value; + if (value.indexOf("<") !== -1) { + var tag = this._parseTag(value); + tag.end = end; + tag.start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + iterator.stepBackward(); + return tag; + } + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.voidElements[tag.tagName]) { + return; + } + else if (this.voidElements[top.tagName]) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag.match) + return null; + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.column); + var start = { + row: row, + column: firstTag.column + firstTag.tagName.length + 2 + }; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag) + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length); + var end = { + row: row, + column: firstTag.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag) + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/javascript', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/javascript_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/range', 'ace/worker/worker_client', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new JavaScriptHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var outdent = true; + var re = /^(\s*)\/\//; + + for (var i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + if (outdent) { + var deleteRange = new Range(0, 0, 0, 0); + for (var i=startRow; i<= endRow; i++) + { + var line = doc.getLine(i); + var m = line.match(re); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = m[0].length; + doc.replace(deleteRange, m[1]); + } + } + else { + doc.indentRows(startRow, endRow, "//"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.$tokenizer.getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "regex_allowed") { + var match = line.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || state == "regex_allowed") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("jslint", function(results) { + var errors = []; + for (var i=0; i the first match is used + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { // match stuff like: Sound.prototype.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: Sound.prototype.play = myfunc + token : [ + "storage.type", + "punctuation.operator", + "support.function", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)", + next: "function_arguments" + }, { // match stuff like: Sound.play = function() { } + token : [ + "storage.type", + "punctuation.operator", + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: play = function() { } + token : [ + "entity.name.function", + "text", + "keyword.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // match regular function like: function myFunc(arg) { } + token : [ + "storage.type", + "text", + "entity.name.function", + "text", + "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { // match stuff like: foobar: function() { } + token : [ + "entity.name.function", + "text", + "punctuation.operator", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { // Attempt to match : function() { } (this is for issues with 'foo': function() { }) + token : [ + "text", + "text", + "storage.type", + "text", + "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "constant.language.boolean", + regex : /(?:true|false)\b/ + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "regex_allowed" + }, { + token : ["punctuation.operator", "support.function"], + regex : /(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : ["punctuation.operator", "support.function.dom"], + regex : /(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : ["punctuation.operator", "support.constant"], + regex : /(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/ + }, { + token : function(value) { + if (globals.hasOwnProperty(value)) + return "variable.language"; + else if (deprecated.hasOwnProperty(value)) + return "invalid.deprecated"; + else if (definitions.hasOwnProperty(value)) + return "storage.type"; + else if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (value == "debugger") + return "invalid.deprecated"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : /!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/, + next : "regex_allowed" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./, + next : "regex_allowed" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "regex_allowed" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "keyword.operator", + regex : /\/=?/, + next : "regex_allowed" + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + // regular expressions are only allowed after certain tokens. This + // makes sure we don't mix up regexps with the divison operator + "regex_allowed": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + merge : true, + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/.*$" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex", + merge: true + }, { + token : "text", + regex : "\\s+" + }, { + // immediately return to the start mode without matching + // anything + token: "empty", + regex: "", + next: "start" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + // flag + token: "string.regexp", + regex: "/\\w*", + next: "start", + merge: true + }, { + token: "string.regexp", + regex: "[^\\\\/\\[]+", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "\\[", + next: "regex_character_class", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "regex_character_class": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp.charachterclass", + regex: "]", + next: "regex", + merge: true + }, { + token: "string.regexp.charachterclass", + regex: "[^\\\\\\]]+", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe, + }, { + token: "punctuation.operator", + regex: "[, ]+", + merge: true + }, { + token: "punctuation.operator", + regex: "$", + merge: true + }, { + token: "empty", + regex: "", + next: "start" + } + ], + "comment_regex_allowed" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "regex_allowed" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + merge : true, + next : "start" + }, { + token : "comment", // comment spanning whole line + merge : true, + regex : ".+" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, { + token : "comment.doc", + merge : true, + regex : "\\s+" + }, { + token : "comment.doc", + merge : true, + regex : "TODO" + }, { + token : "comment.doc", + merge : true, + regex : "[^@\\*]+" + }, { + token : "comment.doc", + merge : true, + regex : "." + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + merge : true, + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + merge : true, + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length); + range.end.column -= 2; + return range; + } + + if (foldStyle !== "markbeginend") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[2]) { + var range = session.getCommentFoldRange(row, i); + range.end.column -= 2; + return range; + } + + var end = {row: row, column: i}; + var start = session.$findOpeningBracket(match[1], end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + } + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/svg_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/javascript_highlight_rules', 'ace/mode/xml_highlight_rules', 'ace/mode/xml_util'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var xmlUtil = require("./xml_util"); + +var SvgHighlightRules = function() { + XmlHighlightRules.call(this); + + this.$rules.start.splice(3, 0, { + token : "meta.tag", + regex : "<(?=\s*script)", + next : "script" + }); + + xmlUtil.tag(this.$rules, "script", "js-start"); + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token: "comment", + regex: "\\/\\/.*(?=<\\/script>)", + next: "tag" + }, { + token: "meta.tag", + regex: "<\\/(?=script)", + next: "tag" + }]); +}; + +oop.inherits(SvgHighlightRules, XmlHighlightRules); + +exports.SvgHighlightRules = SvgHighlightRules; +}); + +define('ace/mode/folding/mixed', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(defaultMode, subModes) { + this.defaultMode = defaultMode; + this.subModes = subModes; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + + this.$getMode = function(state) { + for (var key in this.subModes) { + if (state.indexOf(key) === 0) + return this.subModes[key]; + } + return null; + }; + + this.$tryMode = function(state, session, foldStyle, row) { + var mode = this.$getMode(state); + return (mode ? mode.getFoldWidget(session, foldStyle, row) : ""); + }; + + this.getFoldWidget = function(session, foldStyle, row) { + return ( + this.$tryMode(session.getState(row-1), session, foldStyle, row) || + this.$tryMode(session.getState(row), session, foldStyle, row) || + this.defaultMode.getFoldWidget(session, foldStyle, row) + ); + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var mode = this.$getMode(session.getState(row-1)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.$getMode(session.getState(row)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.defaultMode; + + return mode.getFoldWidgetRange(session, foldStyle, row); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-textile.js b/build/src/mode-textile.js index 3b36437c..7720f5c6 100644 --- a/build/src/mode-textile.js +++ b/build/src/mode-textile.js @@ -1 +1,182 @@ -define("ace/mode/textile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./textile_highlight_rules").TextileHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h};d.inherits(i,e),function(){this.getNextLineIndent=function(a,b,c){return a=="intag"?c:""},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(i.prototype),b.Mode=i}),define("ace/mode/textile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:function(a){return a.match(/^h\d$/)?"markup.heading."+a.charAt(1):"markup.heading"},regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]}};d.inherits(f,e),b.TextileHighlightRules=f}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Kelley van Evert + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/textile', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/textile_highlight_rules', 'ace/mode/matching_brace_outdent'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var TextileHighlightRules = require("./textile_highlight_rules").TextileHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new TextileHighlightRules().getRules()); + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.getNextLineIndent = function(state, line, tab) { + if (state == "intag") + return tab; + + return ""; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +define('ace/mode/textile_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TextileHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : function(value) { + if (value.match(/^h\d$/)) + return "markup.heading." + value.charAt(1); + else + return "markup.heading"; + }, + regex : "h1|h2|h3|h4|h5|h6|bq|p|bc|pre", + next : "blocktag" + }, + { + token : "keyword", + regex : "[\\*]+|[#]+" + }, + { + token : "text", + regex : ".+" + } + ], + "blocktag" : [ + { + token : "keyword", + regex : "\\. ", + next : "start" + }, + { + token : "keyword", + regex : "\\(", + next : "blocktagproperties" + } + ], + "blocktagproperties" : [ + { + token : "keyword", + regex : "\\)", + next : "blocktag" + }, + { + token : "string", + regex : "[a-zA-Z0-9\\-_]+" + }, + { + token : "keyword", + regex : "#" + } + ] + }; +}; + +oop.inherits(TextileHighlightRules, TextHighlightRules); + +exports.TextileHighlightRules = TextileHighlightRules; + +}); + +define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); diff --git a/build/src/mode-xml.js b/build/src/mode-xml.js index 27c038a1..3494ec2f 100644 --- a/build/src/mode-xml.js +++ b/build/src/mode-xml.js @@ -1 +1,790 @@ -define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./xml_highlight_rules").XmlHighlightRules,h=a("./behaviour/xml").XmlBehaviour,i=a("./folding/xml").FoldMode,j=function(){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h,this.foldingRules=new i};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){return this.$getIndent(b)}}.call(j.prototype),b.Mode=j}),define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/xml_util","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./xml_util"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",merge:!0,regex:"<\\!--",next:"comment"},{token:"xml_pe",regex:"<\\!.*?>"},{token:"meta.tag",regex:"<\\/?",next:"tag"},{token:"text",regex:"\\s+"},{token:"constant.character.entity",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"},{token:"text",regex:"[^<]+"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",merge:!0,regex:".+"}]},e.tag(this.$rules,"tag","start")};d.inherits(g,f),b.XmlHighlightRules=g}),define("ace/mode/xml_util",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return[{token:"string",regex:'".*?"'},{token:"string",merge:!0,regex:'["].*',next:a+"_qqstring"},{token:"string",regex:"'.*?'"},{token:"string",merge:!0,regex:"['].*",next:a+"_qstring"}]}function h(a,b){return[{token:"string",merge:!0,regex:".*?"+a,next:b},{token:"string",merge:!0,regex:".+"}]}"use strict";var d=a("../lib/lang"),e=d.arrayToMap("button|form|input|label|select|textarea".split("|")),f=d.arrayToMap("table|tbody|td|tfoot|th|tr".split("|"));b.tag=function(a,b,c){a[b]=[{token:"text",regex:"\\s+"},{token:function(a){return a==="a"?"meta.tag.anchor":a==="img"?"meta.tag.image":a==="script"?"meta.tag.script":a==="style"?"meta.tag.style":e.hasOwnProperty(a.toLowerCase())?"meta.tag.form":f.hasOwnProperty(a.toLowerCase())?"meta.tag.table":"meta.tag"},merge:!0,regex:"[-_a-zA-Z0-9:]+",next:b+"_embed_attribute_list"},{token:"empty",regex:"",next:b+"_embed_attribute_list"}],a[b+"_qstring"]=h("'",b+"_embed_attribute_list"),a[b+"_qqstring"]=h('"',b+"_embed_attribute_list"),a[b+"_embed_attribute_list"]=[{token:"meta.tag",merge:!0,regex:"/?>",next:c},{token:"keyword.operator",regex:"="},{token:"entity.other.attribute-name",regex:"[-_a-zA-Z0-9:]+"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"text",regex:"\\s+"}].concat(g(b))}}),define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(){this.inherit(f,["string_dquotes"]),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="<"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?!1:{text:"<>",selection:[1,1]}}if(e==">"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==">")return{text:"",selection:[1,1]}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),k=i.substring(h.column,h.column+2);if(k=="g.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../../lib/lang"),f=a("../../range").Range,g=a("./fold_mode").FoldMode,h=a("../../token_iterator").TokenIterator,i=b.FoldMode=function(a){g.call(this),this.voidElements=a||{}};d.inherits(i,g),function(){this.getFoldWidget=function(a,b,c){var d=this._getFirstTagInLine(a,c);return d.closing?b=="markbeginend"?"end":"":!d.tagName||this.voidElements[d.tagName.toLowerCase()]?"":d.selfClosing?"":d.value.indexOf("/"+d.tagName)!==-1?"":"start"},this._getFirstTagInLine=function(a,b){var c=a.getTokens(b,b)[0].tokens,d="";for(var f=0;f?)/,this._parseTag=function(a){var b=this.tagRe.exec(a),c=this.tagRe.lastIndex||0;return this.tagRe.lastIndex=0,{value:a,match:b?b[2]:"",closing:b?!!b[3]:!1,selfClosing:b?!!b[5]||b[2]=="/>":!1,tagName:b?b[4]:"",column:b[1]?c+b[1].length:c}},this._readTagForward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){if(!d)var d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()};c+=b.value;if(c.indexOf(">")!==-1){var e=this._parseTag(c);return e.start=d,e.end={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length},a.stepForward(),e}}while(b=a.stepForward());return null},this._readTagBackward=function(a){var b=a.getCurrentToken();if(!b)return null;var c="",d;do if(b.type.indexOf("meta.tag")===0){d||(d={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()+b.value.length}),c=b.value+c;if(c.indexOf("<")!==-1){var e=this._parseTag(c);return e.end=d,e.start={row:a.getCurrentTokenRow(),column:a.getCurrentTokenColumn()},a.stepBackward(),e}}while(b=a.stepBackward());return null},this._pop=function(a,b){while(a.length){var c=a[a.length-1];if(!b||c.tagName==b.tagName)return a.pop();if(this.voidElements[b.tagName])return;if(this.voidElements[c.tagName]){a.pop();continue}return null}},this.getFoldWidgetRange=function(a,b,c){var d=this._getFirstTagInLine(a,c);if(!d.match)return null;var e=d.closing||d.selfClosing,g=[],i;if(!e){var j=new h(a,c,d.column),k={row:c,column:d.column+d.tagName.length+2};while(i=this._readTagForward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(i.closing){this._pop(g,i);if(g.length==0)return f.fromPoints(k,i.start)}else g.push(i)}}else{var j=new h(a,c,d.column+d.match.length),l={row:c,column:d.column};while(i=this._readTagBackward(j)){if(i.selfClosing){if(!g.length)return i.start.column+=i.tagName.length+2,i.end.column-=2,f.fromPoints(i.start,i.end);continue}if(!i.closing){this._pop(g,i);if(g.length==0)return i.start.column+=i.tagName.length+2,f.fromPoints(i.start,l)}else g.push(i)}}}}.call(i.prototype)}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){"use strict";var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^\s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e)[0].length,k=a.getLength();while(++bf){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets[g.row];return h==null&&(h=this.getFoldWidget(a,g.row)),h=="start"&&(g.row--,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xml_highlight_rules', 'ace/mode/behaviour/xml', 'ace/mode/folding/xml'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; + +var Mode = function() { + this.$tokenizer = new Tokenizer(new XmlHighlightRules().getRules()); + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define('ace/mode/xml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/xml_util', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var xmlUtil = require("./xml_util"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + this.$rules = { + start : [{ + token : "text", + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + merge : true, + regex : "<\\!--", + next : "comment" + }, { + token : "xml_pe", + regex : "<\\!.*?>" + }, { + token : "meta.tag", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "text", + regex : "\\s+" + }, { + token : "constant.character.entity", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }, { + token : "text", + regex : "[^<]+" + }], + + cdata : [{ + token : "text", + regex : "\\]\\]>", + next : "start" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "(?:[^\\]]|\\](?!\\]>))+" + }], + + comment : [{ + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token : "comment", + merge : true, + regex : ".+" + }] + }; + + xmlUtil.tag(this.$rules, "tag", "start"); +}; + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +define('ace/mode/xml_util', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { + + +var lang = require("../lib/lang"); + +var formTags = lang.arrayToMap( + ("button|form|input|label|select|textarea").split("|") +); + +var tableTags = lang.arrayToMap( + ("table|tbody|td|tfoot|th|tr").split("|") +); + +function string(state) { + return [{ + token : "string", + regex : '".*?"' + }, { + token : "string", // multi line string start + merge : true, + regex : '["].*', + next : state + "_qqstring" + }, { + token : "string", + regex : "'.*?'" + }, { + token : "string", // multi line string start + merge : true, + regex : "['].*", + next : state + "_qstring" + }]; +} + +function multiLineString(quote, state) { + return [{ + token : "string", + merge : true, + regex : ".*?" + quote, + next : state + }, { + token : "string", + merge : true, + regex : '.+' + }]; +} + +exports.tag = function(states, name, nextState) { + states[name] = [{ + token : "text", + regex : "\\s+" + }, { + //token : "meta.tag", + + token : function(value) { + if ( value==='a' ) { + return "meta.tag.anchor"; + } + else if ( value==='img' ) { + return "meta.tag.image"; + } + else if ( value==='script' ) { + return "meta.tag.script"; + } + else if ( value==='style' ) { + return "meta.tag.style"; + } + else if (formTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.form"; + } + else if (tableTags.hasOwnProperty(value.toLowerCase())) { + return "meta.tag.table"; + } + else { + return "meta.tag"; + } + }, + merge : true, + regex : "[-_a-zA-Z0-9:]+", + next : name + "_embed_attribute_list" + }, { + token: "empty", + regex: "", + next : name + "_embed_attribute_list" + }]; + + states[name + "_qstring"] = multiLineString("'", name + "_embed_attribute_list"); + states[name + "_qqstring"] = multiLineString("\"", name + "_embed_attribute_list"); + + states[name + "_embed_attribute_list"] = [{ + token : "meta.tag", + merge : true, + regex : "\/?>", + next : nextState + }, { + token : "keyword.operator", + regex : "=" + }, { + token : "entity.other.attribute-name", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "text", + regex : "\\s+" + }].concat(string(name)); +}; + +}); + +define('ace/mode/behaviour/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; + +var XmlBehaviour = function () { + + this.inherit(CstyleBehaviour, ["string_dquotes"]); // Get string behaviour + + this.add("brackets", "insertion", function (state, action, editor, session, text) { + if (text == '<') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return false; + } else { + return { + text: '<>', + selection: [1, 1] + } + } + } else if (text == '>') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '>') { // need some kind of matching check here + return { + text: '', + selection: [1, 1] + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChars = line.substring(cursor.column, cursor.column + 2); + if (rightChars == ' selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define('ace/mode/folding/xml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/range', 'ace/mode/folding/fold_mode', 'ace/token_iterator'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var lang = require("../../lib/lang"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var FoldMode = exports.FoldMode = function(voidElements) { + BaseFoldMode.call(this); + this.voidElements = voidElements || {}; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (tag.closing) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || this.voidElements[tag.tagName.toLowerCase()]) + return ""; + + if (tag.selfClosing) + return ""; + + if (tag.value.indexOf("/" + tag.tagName) !== -1) + return ""; + + return "start"; + }; + + this._getFirstTagInLine = function(session, row) { + var tokens = session.getTokens(row, row)[0].tokens; + var value = ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token.type.indexOf("meta.tag") === 0) + value += token.value; + else + value += lang.stringRepeat(" ", token.value.length); + } + + return this._parseTag(value); + }; + + this.tagRe = /^(\s*)(?)/; + this._parseTag = function(tag) { + + var match = this.tagRe.exec(tag); + var column = this.tagRe.lastIndex || 0; + this.tagRe.lastIndex = 0; + + return { + value: tag, + match: match ? match[2] : "", + closing: match ? !!match[3] : false, + selfClosing: match ? !!match[5] || match[2] == "/>" : false, + tagName: match ? match[4] : "", + column: match[1] ? column + match[1].length : column + }; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var start; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!start) { + var start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + } + value += token.value; + if (value.indexOf(">") !== -1) { + var tag = this._parseTag(value); + tag.start = start; + tag.end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + iterator.stepForward(); + return tag; + } + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var value = ""; + var end; + + do { + if (token.type.indexOf("meta.tag") === 0) { + if (!end) { + end = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + token.value.length + }; + } + value = token.value + value; + if (value.indexOf("<") !== -1) { + var tag = this._parseTag(value); + tag.end = end; + tag.start = { + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }; + iterator.stepBackward(); + return tag; + } + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.voidElements[tag.tagName]) { + return; + } + else if (this.voidElements[top.tagName]) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag.match) + return null; + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.column); + var start = { + row: row, + column: firstTag.column + firstTag.tagName.length + 2 + }; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag) + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.column + firstTag.match.length); + var end = { + row: row, + column: firstTag.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag) + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) { + + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + + // must return "" if there's no fold, to enable caching + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /^\s*/; + var startRow = row; + var endRow = row; + var line = session.getLine(row); + var startColumn = column || line.length; + var startLevel = line.match(re)[0].length; + var maxRow = session.getLength() + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.match(re)[0].length; + + if (level == line.length) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe, allowBlankLine) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe, allowBlankLine); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = this.getFoldWidget(session, end.row); + + if (fw == "start") { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + +}).call(FoldMode.prototype); + +}); diff --git a/build/src/mode-xquery-noconflict.js b/build/src/mode-xquery-noconflict.js index bd1ca8ad..95d45f7a 100644 --- a/build/src/mode-xquery-noconflict.js +++ b/build/src/mode-xquery-noconflict.js @@ -1 +1 @@ -ace.define("ace/mode/xquery",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xquery_highlight_rules","ace/mode/behaviour/xquery","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./xquery_highlight_rules").XQueryHighlightRules,h=a("./behaviour/xquery").XQueryBehaviour,i=a("../range").Range,j=function(a){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h(a)};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=b.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);return e&&(d+=c),d},this.checkOutdent=function(a,b,c){return/^\s+$/.test(b)?/^\s*[\}\)]/.test(c):!1},this.autoOutdent=function(a,b,c){var d=b.getLine(c),e=d.match(/^(\s*[\}\)])/);if(!e)return 0;var f=e[1].length,g=b.findMatchingBracket({row:c,column:f});if(!g||g.row==c)return 0;var h=this.$getIndent(b.getLine(g.row));b.replace(new i(c,0,c,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""},this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(:(.*):\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(:"+f+":)")}}.call(j.prototype),b.Mode=j}),ace.define("ace/mode/xquery_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("return|for|let|where|order|by|declare|function|variable|xquery|version|option|namespace|import|module|when|encoding|switch|default|try|catch|group|tumbling|sliding|window|start|end|at|only|using|stemming|while|external|if|then|else|as|and|or|typeswitch|case|ascending|descending|empty|in|count|updating|insert|delete|replace|value|node|attribute|text|element|into|of|with|contains".split("|"));this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"comment",regex:"\\(:",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"constant",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"variable",regex:"\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"text",regex:"\\s+"},{token:"support.function",regex:"\\w[\\w+_\\-:]+(?=\\()"},{token:function(b){return a[b]?"keyword":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\*|=|<|>|\\-|\\+|and|or|eq|ne|lt|gt"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"}],tag:[{token:"text",regex:">",next:"start"},{token:"meta.tag",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".*:\\)",next:"start"},{token:"comment",regex:".+"}]}};d.inherits(g,f),b.XQueryHighlightRules=g}),ace.define("ace/mode/behaviour/xquery",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(a){this.inherit(f,["braces","parens","string_dquotes"]),this.parent=a,this.add("brackets","insertion",function(a,b,c,d,e){if(e=="\n"){var f=c.getCursorPosition(),g=d.doc.getLine(f.row),h=g.substring(f.column,f.column+2);if(h=="0&&h.charAt(g.column-1)=="<"){h=h.substring(0,g.column)+"/"+h.substring(g.column);var i=e.doc.getAllLines();i[g.row]=h,a.exec("closeTag",i.join(e.doc.getNewLineCharacter()),g.row)}}return!1})};d.inherits(g,e),b.XQueryBehaviour=g}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}) \ No newline at end of file +ace.define("ace/mode/xquery",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xquery_highlight_rules","ace/mode/behaviour/xquery","ace/range"],function(a,b,c){"use strict";var d=a("../worker/worker_client").WorkerClient,e=a("../lib/oop"),f=a("./text").Mode,g=a("../tokenizer").Tokenizer,h=a("./xquery_highlight_rules").XQueryHighlightRules,i=a("./behaviour/xquery").XQueryBehaviour,j=a("../range").Range,k=function(a){this.$tokenizer=new g((new h).getRules()),this.$behaviour=new i(a)};e.inherits(k,f),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=b.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);return e&&(d+=c),d},this.checkOutdent=function(a,b,c){return/^\s+$/.test(b)?/^\s*[\}\)]/.test(c):!1},this.autoOutdent=function(a,b,c){var d=b.getLine(c),e=d.match(/^(\s*[\}\)])/);if(!e)return 0;var f=e[1].length,g=b.findMatchingBracket({row:c,column:f});if(!g||g.row==c)return 0;var h=this.$getIndent(b.getLine(g.row));b.replace(new j(c,0,c,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""},this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(:(.*):\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var i=new j(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),i.start.row=e,i.end.row=e,i.end.column=f.length,b.replace(i,g?f.match(h)[1]:"(:"+f+":)")},this.deltas=[],this.createWorker=function(a){var b=new d(["ace"],"worker-xquery.js","ace/mode/xquery_worker","XQueryWorker"),c=this;return a.getDocument().on("change",function(a){c.deltas.push(a.data)}),b.attachToDocument(a.getDocument()),b.on("start",function(a){console.log("start"),c.deltas=[]}),b.on("error",function(b){a.setAnnotations([b.data])}),b.on("ok",function(b){a.clearAnnotations()}),b.on("highlight",function(b){var d=0,e=a.getLength()-1,f=b.data;for(var g in c.deltas){var h=c.deltas[g];if(h.action==="insertLines"){var i=h.range.end.row-h.range.start.row;for(var g=0;g"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"comment",regex:"\\(:",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"constant",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"variable",regex:"\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"text",regex:"\\s+"},{token:"support.function",regex:"\\w[\\w+_\\-:]+(?=\\()"},{token:function(b){return a[b]?"keyword":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\*|=|<|>|\\-|\\+|and|or|eq|ne|lt|gt"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"}],tag:[{token:"text",regex:">",next:"start"},{token:"meta.tag",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".*:\\)",next:"start"},{token:"comment",regex:".+"}]}};d.inherits(g,f),b.XQueryHighlightRules=g}),ace.define("ace/mode/behaviour/xquery",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(a){this.inherit(f,["braces","parens","string_dquotes"]),this.parent=a,this.add("brackets","insertion",function(a,b,c,d,e){if(e=="\n"){var f=c.getCursorPosition(),g=d.doc.getLine(f.row),h=g.substring(f.column,f.column+2);if(h=="0&&h.charAt(g.column-1)=="<"){h=h.substring(0,g.column)+"/"+h.substring(g.column);var i=e.doc.getAllLines();i[g.row]=h,a.exec("closeTag",i.join(e.doc.getNewLineCharacter()),g.row)}}return!1})};d.inherits(g,e),b.XQueryBehaviour=g}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}) \ No newline at end of file diff --git a/build/src/mode-xquery-uncompressed-noconflict.js b/build/src/mode-xquery-uncompressed-noconflict.js index 45965318..6fa08e85 100644 --- a/build/src/mode-xquery-uncompressed-noconflict.js +++ b/build/src/mode-xquery-uncompressed-noconflict.js @@ -1,24 +1,44 @@ -/* - * eXide - web-based XQuery IDE - * - * Copyright (C) 2011 Wolfgang Meier +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -ace.define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Wolfgang Meier + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +ace.define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/worker/worker_client', 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { "use strict"; +var WorkerClient = require("../worker/worker_client").WorkerClient; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; @@ -96,6 +116,78 @@ oop.inherits(Mode, TextMode); doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); } }; + + this.deltas = []; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + session.getDocument().on('change', function(evt){ + that.deltas.push(evt.data); + }); + + worker.attachToDocument(session.getDocument()); + + worker.on("start", function(e) { + console.log("start"); + that.deltas = []; + }); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("highlight", function(tokens) { + var firstRow = 0; + var lastRow = session.getLength() - 1; + + var lines = tokens.data; + + for(var i in that.deltas) + { + var delta = that.deltas[i]; + //console.log(delta); + if (delta.action === "insertLines") + { + var newLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 0, undefined); + } + } + else if (delta.action === "insertText") + { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 0, undefined); + } else { + delete lines[delta.range.start.row]; + } + } else if (delta.action === "removeLines") { + var oldLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 1); + } + } else if (delta.action === "removeText") { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 1); + } + delete lines[delta.range.start.row]; + } + } + + session.bgTokenizer.lines = lines; + session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); + }); + + return worker; + }; + }).call(Mode.prototype); exports.Mode = Mode; @@ -130,8 +222,8 @@ var XQueryHighlightRules = function() { var keywords = lang.arrayToMap( ("return|for|let|where|order|by|declare|function|variable|xquery|version|option|namespace|import|module|when|encoding|" + "switch|default|try|catch|group|tumbling|sliding|window|start|end|at|only|" + - "using|stemming|" + - "while|" + + "using|stemming|collection|schema|" + + "while|validate|on|nodes|index|" + "external|" + "if|then|else|as|and|or|typeswitch|case|ascending|descending|empty|in|count|updating|insert|delete|replace|value|node|attribute|text|element|into|of|with|contains").split("|") ); diff --git a/build/src/mode-xquery-uncompressed.js b/build/src/mode-xquery-uncompressed.js index 1f35638f..6a70306a 100644 --- a/build/src/mode-xquery-uncompressed.js +++ b/build/src/mode-xquery-uncompressed.js @@ -1,24 +1,44 @@ -/* - * eXide - web-based XQuery IDE - * - * Copyright (C) 2011 Wolfgang Meier +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Wolfgang Meier + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/worker/worker_client', 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { "use strict"; +var WorkerClient = require("../worker/worker_client").WorkerClient; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; @@ -96,6 +116,78 @@ oop.inherits(Mode, TextMode); doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); } }; + + this.deltas = []; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + session.getDocument().on('change', function(evt){ + that.deltas.push(evt.data); + }); + + worker.attachToDocument(session.getDocument()); + + worker.on("start", function(e) { + console.log("start"); + that.deltas = []; + }); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("highlight", function(tokens) { + var firstRow = 0; + var lastRow = session.getLength() - 1; + + var lines = tokens.data; + + for(var i in that.deltas) + { + var delta = that.deltas[i]; + //console.log(delta); + if (delta.action === "insertLines") + { + var newLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 0, undefined); + } + } + else if (delta.action === "insertText") + { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 0, undefined); + } else { + delete lines[delta.range.start.row]; + } + } else if (delta.action === "removeLines") { + var oldLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 1); + } + } else if (delta.action === "removeText") { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 1); + } + delete lines[delta.range.start.row]; + } + } + + session.bgTokenizer.lines = lines; + session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); + }); + + return worker; + }; + }).call(Mode.prototype); exports.Mode = Mode; @@ -130,8 +222,8 @@ var XQueryHighlightRules = function() { var keywords = lang.arrayToMap( ("return|for|let|where|order|by|declare|function|variable|xquery|version|option|namespace|import|module|when|encoding|" + "switch|default|try|catch|group|tumbling|sliding|window|start|end|at|only|" + - "using|stemming|" + - "while|" + + "using|stemming|collection|schema|" + + "while|validate|on|nodes|index|" + "external|" + "if|then|else|as|and|or|typeswitch|case|ascending|descending|empty|in|count|updating|insert|delete|replace|value|node|attribute|text|element|into|of|with|contains").split("|") ); diff --git a/build/src/mode-xquery.js b/build/src/mode-xquery.js index cb6fb87c..bc6326b6 100644 --- a/build/src/mode-xquery.js +++ b/build/src/mode-xquery.js @@ -1 +1,553 @@ -define("ace/mode/xquery",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/xquery_highlight_rules","ace/mode/behaviour/xquery","ace/range"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./xquery_highlight_rules").XQueryHighlightRules,h=a("./behaviour/xquery").XQueryBehaviour,i=a("../range").Range,j=function(a){this.$tokenizer=new f((new g).getRules()),this.$behaviour=new h(a)};d.inherits(j,e),function(){this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=b.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);return e&&(d+=c),d},this.checkOutdent=function(a,b,c){return/^\s+$/.test(b)?/^\s*[\}\)]/.test(c):!1},this.autoOutdent=function(a,b,c){var d=b.getLine(c),e=d.match(/^(\s*[\}\)])/);if(!e)return 0;var f=e[1].length,g=b.findMatchingBracket({row:c,column:f});if(!g||g.row==c)return 0;var h=this.$getIndent(b.getLine(g.row));b.replace(new i(c,0,c,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""},this.toggleCommentLines=function(a,b,c,d){var e,f,g=!0,h=/^\s*\(:(.*):\)/;for(e=c;e<=d;e++)if(!h.test(b.getLine(e))){g=!1;break}var j=new i(0,0,0,0);for(e=c;e<=d;e++)f=b.getLine(e),j.start.row=e,j.end.row=e,j.end.column=f.length,b.replace(j,g?f.match(h)[1]:"(:"+f+":)")}}.call(j.prototype),b.Mode=j}),define("ace/mode/xquery_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(a,b,c){"use strict";var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./text_highlight_rules").TextHighlightRules,g=function(){var a=e.arrayToMap("return|for|let|where|order|by|declare|function|variable|xquery|version|option|namespace|import|module|when|encoding|switch|default|try|catch|group|tumbling|sliding|window|start|end|at|only|using|stemming|while|external|if|then|else|as|and|or|typeswitch|case|ascending|descending|empty|in|count|updating|insert|delete|replace|value|node|attribute|text|element|into|of|with|contains".split("|"));this.$rules={start:[{token:"text",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:"xml_pe",regex:"<\\?.*?\\?>"},{token:"comment",regex:"<\\!--",next:"comment"},{token:"comment",regex:"\\(:",next:"comment"},{token:"text",regex:"<\\/?",next:"tag"},{token:"constant",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"variable",regex:"\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"text",regex:"\\s+"},{token:"support.function",regex:"\\w[\\w+_\\-:]+(?=\\()"},{token:function(b){return a[b]?"keyword":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\*|=|<|>|\\-|\\+|and|or|eq|ne|lt|gt"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"}],tag:[{token:"text",regex:">",next:"start"},{token:"meta.tag",regex:"[-_a-zA-Z0-9:]+"},{token:"text",regex:"\\s+"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"}],cdata:[{token:"text",regex:"\\]\\]>",next:"start"},{token:"text",regex:"\\s+"},{token:"text",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment",regex:".*?-->",next:"start"},{token:"comment",regex:".*:\\)",next:"start"},{token:"comment",regex:".+"}]}};d.inherits(g,f),b.XQueryHighlightRules=g}),define("ace/mode/behaviour/xquery",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=a("./cstyle").CstyleBehaviour,g=function(a){this.inherit(f,["braces","parens","string_dquotes"]),this.parent=a,this.add("brackets","insertion",function(a,b,c,d,e){if(e=="\n"){var f=c.getCursorPosition(),g=d.doc.getLine(f.row),h=g.substring(f.column,f.column+2);if(h=="0&&h.charAt(g.column-1)=="<"){h=h.substring(0,g.column)+"/"+h.substring(g.column);var i=e.doc.getAllLines();i[g.row]=h,a.exec("closeTag",i.join(e.doc.getNewLineCharacter()),g.row)}}return!1})};d.inherits(g,e),b.XQueryBehaviour=g}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){"use strict";var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row,g.start.row)[0].tokens,m=0,n,o=-1;for(var p=0;pg.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Wolfgang Meier + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/worker/worker_client', 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { + + +var WorkerClient = require("../worker/worker_client").WorkerClient; +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var XQueryHighlightRules = require("./xquery_highlight_rules").XQueryHighlightRules; +var XQueryBehaviour = require("./behaviour/xquery").XQueryBehaviour; +//var XQueryBackgroundHighlighter = require("./xquery_background_highlighter").XQueryBackgroundHighlighter; +var Range = require("../range").Range; + +var Mode = function(parent) { + this.$tokenizer = new Tokenizer(new XQueryHighlightRules().getRules()); + this.$behaviour = new XQueryBehaviour(parent); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var match = line.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/); + if (match) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*[\}\)]/.test(input); + }; + + this.autoOutdent = function(state, doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*[\}\)])/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var i, line; + var outdent = true; + var re = /^\s*\(:(.*):\)/; + + for (i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + var range = new Range(0, 0, 0, 0); + for (i=startRow; i<= endRow; i++) { + line = doc.getLine(i); + range.start.row = i; + range.end.row = i; + range.end.column = line.length; + + doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); + } + }; + + this.createWorker = function(session) { + this.$deltas = []; + var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + session.getDocument().on('change', function(evt){ + that.$deltas.push(evt.data); + }); + + worker.attachToDocument(session.getDocument()); + + worker.on("start", function(e) { + console.log("start"); + that.$deltas = []; + }); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("highlight", function(tokens) { + var firstRow = 0; + var lastRow = session.getLength() - 1; + + var lines = tokens.data; + + for(var i=0; i < that.$deltas.length; i++) + { + var delta = that.$deltas[i]; + + if (delta.action === "insertLines") + { + var newLineCount = delta.lines.length; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 0, undefined); + } + } + else if (delta.action === "insertText") + { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 0, undefined); + } else { + lines[delta.range.start.row] = undefined; + } + } else if (delta.action === "removeLines") { + var oldLineCount = delta.lines.length; + lines.splice(delta.range.start.row, oldLineCount); + } else if (delta.action === "removeText") { + if (session.getDocument().isNewLine(delta.text)) + { + lines[delta.range.start.row] = undefined; + lines.splice(delta.range.end.row, 1); + } else { + lines[delta.range.start.row] = undefined; + } + } + } + session.bgTokenizer.lines = lines; + session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); + }); + + return worker; + }; + +}).call(Mode.prototype); + +exports.Mode = Mode; +}); +define('ace/mode/xquery_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { + + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XQueryHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning").split("|") + ); + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + + this.$rules = { + start : [ { + token : "text", + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + regex : "<\\!--", + next : "comment" + }, { + token : "comment", + regex : "\\(:", + next : "comment" + }, { + token : "text", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "constant", // number + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "variable", // variable + regex : "\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b" + }, { + token: "string", + regex : '".*?"' + }, { + token: "string", + regex : "'.*?'" + }, { + token : "text", + regex : "\\s+" + }, { + token: "support.function", + regex: "\\w[\\w+_\\-:]+(?=\\()" + }, { + token : function(value) { + if (keywords[value]) + return "keyword"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token: "keyword.operator", + regex: "\\*|=|<|>|\\-|\\+" + }, { + token: "lparen", + regex: "[[({]" + }, { + token: "rparen", + regex: "[\\])}]" + } ], + + tag : [ { + token : "text", + regex : ">", + next : "start" + }, { + token : "meta.tag", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "text", + regex : "\\s+" + }, { + token : "string", + regex : '".*?"' + }, { + token : "string", + regex : "'.*?'" + } ], + + cdata : [ { + token : "comment", + regex : "\\]\\]>", + next : "start" + }, { + token : "comment", + regex : "\\s+" + }, { + token : "comment", + regex : "(?:[^\\]]|\\](?!\\]>))+" + } ], + + comment : [ { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token: "comment", + regex : ".*:\\)", + next : "start" + }, { + token : "comment", + regex : ".+" + } ] + }; +}; + +oop.inherits(XQueryHighlightRules, TextHighlightRules); + +exports.XQueryHighlightRules = XQueryHighlightRules; +}); +define('ace/mode/behaviour/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) { + + + var oop = require("../../lib/oop"); + var Behaviour = require('../behaviour').Behaviour; + var CstyleBehaviour = require('./cstyle').CstyleBehaviour; + + var XQueryBehaviour = function (parent) { + + this.inherit(CstyleBehaviour, ["braces", "parens", "string_dquotes"]); // Get string behaviour + this.parent = parent; + + this.add("brackets", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChars = line.substring(cursor.column, cursor.column + 2); + if (rightChars == ' 0 && line.charAt(cursor.column - 1) == "<") { + line = line.substring(0, cursor.column) + "/" + line.substring(cursor.column); + var lines = session.doc.getAllLines(); + lines[cursor.row] = line; + // call mode helper to close the tag if possible + parent.exec("closeTag", lines.join(session.doc.getNewLineCharacter()), cursor.row); + } + } + return false; + }); + } + oop.inherits(XQueryBehaviour, Behaviour); + + exports.XQueryBehaviour = XQueryBehaviour; +}); + +define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) { + + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; + +var CstyleBehaviour = function () { + + this.add("braces", "insertion", function (state, action, editor, session, text) { + if (text == '{') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '{' + selected + '}', + selection: false + }; + } else { + return { + text: '{}', + selection: [1, 1] + }; + } + } else if (text == '}') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1}); + if (!openBracePos) + return null; + + var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); + var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); + + return { + text: '\n' + indent + '\n' + next_indent, + selection: [1, indent.length, 1, indent.length] + }; + } + } + }); + + this.add("braces", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } + } + }); + + this.add("parens", "insertion", function (state, action, editor, session, text) { + if (text == '(') { + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: '(' + selected + ')', + selection: false + }; + } else { + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "") { + return { + text: quote + selected + quote, + selection: false + }; + } else { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + + // We're escaped. + if (leftChar == '\\') { + return null; + } + + // Find what token we're inside. + var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens; + var col = 0, token; + var quotepos = -1; // Track whether we're inside an open quote. + + for (var x = 0; x < tokens.length; x++) { + token = tokens[x]; + if (token.type == "string") { + quotepos = -1; + } else if (quotepos < 0) { + quotepos = token.value.indexOf(quote); + } + if ((token.value.length + col) > selection.start.column) { + break; + } + col += tokens[x].value.length; + } + + // Try and be smart about when we auto insert. + if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) { + return { + text: quote + quote, + selection: [1,1] + }; + } else if (token && token.type === "string") { + // Ignore input and move right one if we're typing over the closing quote. + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == quote) { + return { + text: '', + selection: [1, 1] + }; + } + } + } + } + }); + + this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == '"') { + range.end.column++; + return range; + } + } + }); + +}; + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); diff --git a/build/src/theme-chrome.js b/build/src/theme-chrome.js index dc0af00d..57700c4b 100644 --- a/build/src/theme-chrome.js +++ b/build/src/theme-chrome.js @@ -1 +1,207 @@ -define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(a,b,c){b.cssClass="ace-chrome",b.cssText=".ace-chrome .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-chrome .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-chrome .ace_gutter { background: #e8e8e8; color: #333; overflow : hidden;}.ace-chrome .ace_gutter-layer { width: 100%; text-align: right;}.ace-chrome .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-chrome .ace_text-layer { cursor: text;}.ace-chrome .ace_cursor { border-left: 2px solid black;}.ace-chrome .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid black;}.ace-chrome .ace_line .ace_invisible { color: rgb(191, 191, 191);}.ace-chrome .ace_line .ace_constant.ace_buildin { color: rgb(88, 72, 246);}.ace-chrome .ace_line .ace_constant.ace_language { color: rgb(88, 92, 246);}.ace-chrome .ace_line .ace_constant.ace_library { color: rgb(6, 150, 14);}.ace-chrome .ace_line .ace_invalid { background-color: rgb(153, 0, 0); color: white;}.ace-chrome .ace_line .ace_fold {}.ace-chrome .ace_line .ace_support.ace_function { color: rgb(60, 76, 114);}.ace-chrome .ace_line .ace_support.ace_constant { color: rgb(6, 150, 14);}.ace-chrome .ace_line .ace_support.ace_type,.ace-chrome .ace_line .ace_support.ace_class { color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter { font-style:italic;color:#FD971F;}.ace-chrome .ace_line .ace_keyword.ace_operator { color: rgb(104, 118, 135);}.ace-chrome .ace_line .ace_comment { color: #236e24;}.ace-chrome .ace_line .ace_comment.ace_doc { color: #236e24;}.ace-chrome .ace_line .ace_comment.ace_doc.ace_tag { color: #236e24;}.ace-chrome .ace_line .ace_constant.ace_numeric { color: rgb(0, 0, 205);}.ace-chrome .ace_line .ace_variable { color: rgb(49, 132, 149);}.ace-chrome .ace_line .ace_xml_pe { color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function { color: #0000A2;}.ace-chrome .ace_markup.ace_markupine { text-decoration:underline;}.ace-chrome .ace_markup.ace_heading { color: rgb(12, 7, 255);}.ace-chrome .ace_markup.ace_list { color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection { background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step { background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack { background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active_line { background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_marker-layer .ace_selected_word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_line .ace_keyword,.ace-chrome .ace_meta.ace_tag { color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex { color: rgb(255, 0, 0)}.ace-chrome .ace_line .ace_string,.ace-chrome .ace_entity.ace_other.ace_attribute-name{ color: #994409;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/chrome', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.cssClass = "ace-chrome"; +exports.cssText = ".ace-chrome .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-chrome .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-chrome .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ + overflow : hidden;\ +}\ +\ +.ace-chrome .ace_gutter-layer {\ + width: 100%;\ + text-align: right;\ +}\ +\ +.ace-chrome .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-chrome .ace_text-layer {\ + cursor: text;\ +}\ +\ +.ace-chrome .ace_cursor {\ + border-left: 2px solid black;\ +}\ +\ +.ace-chrome .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid black;\ +}\ +\ +.ace-chrome .ace_line .ace_invisible {\ + color: rgb(191, 191, 191);\ +}\ +\ +.ace-chrome .ace_line .ace_constant.ace_buildin {\ + color: rgb(88, 72, 246);\ +}\ +\ +.ace-chrome .ace_line .ace_constant.ace_language {\ + color: rgb(88, 92, 246);\ +}\ +\ +.ace-chrome .ace_line .ace_constant.ace_library {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-chrome .ace_line .ace_invalid {\ + background-color: rgb(153, 0, 0);\ + color: white;\ +}\ +\ +.ace-chrome .ace_line .ace_fold {\ +}\ +\ +.ace-chrome .ace_line .ace_support.ace_function {\ + color: rgb(60, 76, 114);\ +}\ +\ +.ace-chrome .ace_line .ace_support.ace_constant {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-chrome .ace_line .ace_support.ace_type,\ +.ace-chrome .ace_line .ace_support.ace_class {\ + color: rgb(109, 121, 222);\ +}\ +\ +.ace-chrome .ace_variable.ace_parameter {\ + font-style:italic;\ +color:#FD971F;\ +}\ +.ace-chrome .ace_line .ace_keyword.ace_operator {\ + color: rgb(104, 118, 135);\ +}\ +\ +.ace-chrome .ace_line .ace_comment {\ + color: #236e24;\ +}\ +\ +.ace-chrome .ace_line .ace_comment.ace_doc {\ + color: #236e24;\ +}\ +\ +.ace-chrome .ace_line .ace_comment.ace_doc.ace_tag {\ + color: #236e24;\ +}\ +\ +.ace-chrome .ace_line .ace_constant.ace_numeric {\ + color: rgb(0, 0, 205);\ +}\ +\ +.ace-chrome .ace_line .ace_variable {\ + color: rgb(49, 132, 149);\ +}\ +\ +.ace-chrome .ace_line .ace_xml_pe {\ + color: rgb(104, 104, 91);\ +}\ +\ +.ace-chrome .ace_entity.ace_name.ace_function {\ + color: #0000A2;\ +}\ +\ +.ace-chrome .ace_markup.ace_markupine {\ + text-decoration:underline;\ +}\ +\ +.ace-chrome .ace_markup.ace_heading {\ + color: rgb(12, 7, 255);\ +}\ +\ +.ace-chrome .ace_markup.ace_list {\ + color:rgb(185, 6, 144);\ +}\ +\ +.ace-chrome .ace_marker-layer .ace_selection {\ + background: rgb(181, 213, 255);\ +}\ +\ +.ace-chrome .ace_marker-layer .ace_step {\ + background: rgb(252, 255, 0);\ +}\ +\ +.ace-chrome .ace_marker-layer .ace_stack {\ + background: rgb(164, 229, 101);\ +}\ +\ +.ace-chrome .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgb(192, 192, 192);\ +}\ +\ +.ace-chrome .ace_marker-layer .ace_active_line {\ + background: rgba(0, 0, 0, 0.07);\ +}\ +\ +.ace-chrome .ace_marker-layer .ace_selected_word {\ + background: rgb(250, 250, 255);\ + border: 1px solid rgb(200, 200, 250);\ +}\ +\ +.ace-chrome .ace_storage,\ +.ace-chrome .ace_line .ace_keyword,\ +.ace-chrome .ace_meta.ace_tag {\ + color: rgb(147, 15, 128);\ +}\ +\ +.ace-chrome .ace_string.ace_regex {\ + color: rgb(255, 0, 0)\ +}\ +\ +.ace-chrome .ace_line .ace_string,\ +.ace-chrome .ace_entity.ace_other.ace_attribute-name{\ + color: #994409;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/build/src/theme-clouds.js b/build/src/theme-clouds.js index efc97056..df3585c3 100644 --- a/build/src/theme-clouds.js +++ b/build/src/theme-clouds.js @@ -1 +1,160 @@ -define("ace/theme/clouds",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssClass="ace-clouds",b.cssText=".ace-clouds .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-clouds .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-clouds .ace_gutter { background: #e8e8e8; color: #333;}.ace-clouds .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-clouds .ace_scroller { background-color: #FFFFFF;}.ace-clouds .ace_text-layer { cursor: text; color: #000000;}.ace-clouds .ace_cursor { border-left: 2px solid #000000;}.ace-clouds .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #000000;}.ace-clouds .ace_marker-layer .ace_selection { background: #BDD5FC;}.ace-clouds.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #FFFFFF; border-radius: 2px;}.ace-clouds .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-clouds .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #BFBFBF;}.ace-clouds .ace_marker-layer .ace_active_line { background: #FFFBD1;}.ace-clouds .ace_marker-layer .ace_selected_word { border: 1px solid #BDD5FC;}.ace-clouds .ace_invisible { color: #BFBFBF;}.ace-clouds .ace_keyword, .ace-clouds .ace_meta { color:#AF956F;}.ace-clouds .ace_keyword.ace_operator { color:#484848;}.ace-clouds .ace_constant.ace_language { color:#39946A;}.ace-clouds .ace_constant.ace_numeric { color:#46A609;}.ace-clouds .ace_invalid { background-color:#FF002A;}.ace-clouds .ace_fold { background-color: #AF956F; border-color: #000000;}.ace-clouds .ace_support.ace_function { color:#C52727;}.ace-clouds .ace_storage { color:#C52727;}.ace-clouds .ace_string { color:#5D90CD;}.ace-clouds .ace_comment { color:#BCC8BA;}.ace-clouds .ace_entity.ace_other.ace_attribute-name { color:#606060;}.ace-clouds .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/clouds', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-clouds"; +exports.cssText = "\ +.ace-clouds .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-clouds .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-clouds .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-clouds .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-clouds .ace_scroller {\ + background-color: #FFFFFF;\ +}\ +\ +.ace-clouds .ace_text-layer {\ + cursor: text;\ + color: #000000;\ +}\ +\ +.ace-clouds .ace_cursor {\ + border-left: 2px solid #000000;\ +}\ +\ +.ace-clouds .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #000000;\ +}\ +\ +.ace-clouds .ace_marker-layer .ace_selection {\ + background: #BDD5FC;\ +}\ +\ +.ace-clouds.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #FFFFFF;\ + border-radius: 2px;\ +}\ +\ +.ace-clouds .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-clouds .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #BFBFBF;\ +}\ +\ +.ace-clouds .ace_marker-layer .ace_active_line {\ + background: #FFFBD1;\ +}\ +\ +.ace-clouds .ace_marker-layer .ace_selected_word {\ + border: 1px solid #BDD5FC;\ +}\ +\ +.ace-clouds .ace_invisible {\ + color: #BFBFBF;\ +}\ +\ +.ace-clouds .ace_keyword, .ace-clouds .ace_meta {\ + color:#AF956F;\ +}\ +\ +.ace-clouds .ace_keyword.ace_operator {\ + color:#484848;\ +}\ +\ +.ace-clouds .ace_constant.ace_language {\ + color:#39946A;\ +}\ +\ +.ace-clouds .ace_constant.ace_numeric {\ + color:#46A609;\ +}\ +\ +.ace-clouds .ace_invalid {\ + background-color:#FF002A;\ +}\ +\ +.ace-clouds .ace_fold {\ + background-color: #AF956F;\ + border-color: #000000;\ +}\ +\ +.ace-clouds .ace_support.ace_function {\ + color:#C52727;\ +}\ +\ +.ace-clouds .ace_storage {\ + color:#C52727;\ +}\ +\ +.ace-clouds .ace_string {\ + color:#5D90CD;\ +}\ +\ +.ace-clouds .ace_comment {\ + color:#BCC8BA;\ +}\ +\ +.ace-clouds .ace_entity.ace_other.ace_attribute-name {\ + color:#606060;\ +}\ +\ +.ace-clouds .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-clouds_midnight.js b/build/src/theme-clouds_midnight.js index 3a9eb7e9..343a683b 100644 --- a/build/src/theme-clouds_midnight.js +++ b/build/src/theme-clouds_midnight.js @@ -1 +1,161 @@ -define("ace/theme/clouds_midnight",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-clouds-midnight",b.cssText=".ace-clouds-midnight .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-clouds-midnight .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-clouds-midnight .ace_gutter { background: #e8e8e8; color: #333;}.ace-clouds-midnight .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-clouds-midnight .ace_scroller { background-color: #191919;}.ace-clouds-midnight .ace_text-layer { cursor: text; color: #929292;}.ace-clouds-midnight .ace_cursor { border-left: 2px solid #7DA5DC;}.ace-clouds-midnight .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #7DA5DC;}.ace-clouds-midnight .ace_marker-layer .ace_selection { background: #000000;}.ace-clouds-midnight.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #191919; border-radius: 2px;}.ace-clouds-midnight .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-clouds-midnight .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #BFBFBF;}.ace-clouds-midnight .ace_marker-layer .ace_active_line { background: rgba(215, 215, 215, 0.031);}.ace-clouds-midnight .ace_marker-layer .ace_selected_word { border: 1px solid #000000;}.ace-clouds-midnight .ace_invisible { color: #BFBFBF;}.ace-clouds-midnight .ace_keyword, .ace-clouds-midnight .ace_meta { color:#927C5D;}.ace-clouds-midnight .ace_keyword.ace_operator { color:#4B4B4B;}.ace-clouds-midnight .ace_constant.ace_language { color:#39946A;}.ace-clouds-midnight .ace_constant.ace_numeric { color:#46A609;}.ace-clouds-midnight .ace_invalid { color:#FFFFFF;background-color:#E92E2E;}.ace-clouds-midnight .ace_fold { background-color: #927C5D; border-color: #929292;}.ace-clouds-midnight .ace_support.ace_function { color:#E92E2E;}.ace-clouds-midnight .ace_storage { color:#E92E2E;}.ace-clouds-midnight .ace_string { color:#5D90CD;}.ace-clouds-midnight .ace_comment { color:#3C403B;}.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name { color:#606060;}.ace-clouds-midnight .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/clouds_midnight', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-clouds-midnight"; +exports.cssText = "\ +.ace-clouds-midnight .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-clouds-midnight .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-clouds-midnight .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-clouds-midnight .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-clouds-midnight .ace_scroller {\ + background-color: #191919;\ +}\ +\ +.ace-clouds-midnight .ace_text-layer {\ + cursor: text;\ + color: #929292;\ +}\ +\ +.ace-clouds-midnight .ace_cursor {\ + border-left: 2px solid #7DA5DC;\ +}\ +\ +.ace-clouds-midnight .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #7DA5DC;\ +}\ +\ +.ace-clouds-midnight .ace_marker-layer .ace_selection {\ + background: #000000;\ +}\ +\ +.ace-clouds-midnight.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #191919;\ + border-radius: 2px;\ +}\ +\ +.ace-clouds-midnight .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-clouds-midnight .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #BFBFBF;\ +}\ +\ +.ace-clouds-midnight .ace_marker-layer .ace_active_line {\ + background: rgba(215, 215, 215, 0.031);\ +}\ +\ +.ace-clouds-midnight .ace_marker-layer .ace_selected_word {\ + border: 1px solid #000000;\ +}\ +\ +.ace-clouds-midnight .ace_invisible {\ + color: #BFBFBF;\ +}\ +\ +.ace-clouds-midnight .ace_keyword, .ace-clouds-midnight .ace_meta {\ + color:#927C5D;\ +}\ +\ +.ace-clouds-midnight .ace_keyword.ace_operator {\ + color:#4B4B4B;\ +}\ +\ +.ace-clouds-midnight .ace_constant.ace_language {\ + color:#39946A;\ +}\ +\ +.ace-clouds-midnight .ace_constant.ace_numeric {\ + color:#46A609;\ +}\ +\ +.ace-clouds-midnight .ace_invalid {\ + color:#FFFFFF;\ +background-color:#E92E2E;\ +}\ +\ +.ace-clouds-midnight .ace_fold {\ + background-color: #927C5D;\ + border-color: #929292;\ +}\ +\ +.ace-clouds-midnight .ace_support.ace_function {\ + color:#E92E2E;\ +}\ +\ +.ace-clouds-midnight .ace_storage {\ + color:#E92E2E;\ +}\ +\ +.ace-clouds-midnight .ace_string {\ + color:#5D90CD;\ +}\ +\ +.ace-clouds-midnight .ace_comment {\ + color:#3C403B;\ +}\ +\ +.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\ + color:#606060;\ +}\ +\ +.ace-clouds-midnight .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-cobalt.js b/build/src/theme-cobalt.js index 09abb0e1..e932be36 100644 --- a/build/src/theme-cobalt.js +++ b/build/src/theme-cobalt.js @@ -1 +1,187 @@ -define("ace/theme/cobalt",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-cobalt",b.cssText=".ace-cobalt .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-cobalt .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-cobalt .ace_gutter { background: #e8e8e8; color: #333;}.ace-cobalt .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-cobalt .ace_scroller { background-color: #002240;}.ace-cobalt .ace_text-layer { cursor: text; color: #FFFFFF;}.ace-cobalt .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-cobalt .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;}.ace-cobalt .ace_marker-layer .ace_selection { background: rgba(179, 101, 57, 0.75);}.ace-cobalt.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #002240; border-radius: 2px;}.ace-cobalt .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-cobalt .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(255, 255, 255, 0.15);}.ace-cobalt .ace_marker-layer .ace_active_line { background: rgba(0, 0, 0, 0.35);}.ace-cobalt .ace_marker-layer .ace_selected_word { border: 1px solid rgba(179, 101, 57, 0.75);}.ace-cobalt .ace_invisible { color: rgba(255, 255, 255, 0.15);}.ace-cobalt .ace_keyword, .ace-cobalt .ace_meta { color:#FF9D00;}.ace-cobalt .ace_constant, .ace-cobalt .ace_constant.ace_other { color:#FF628C;}.ace-cobalt .ace_constant.ace_character, { color:#FF628C;}.ace-cobalt .ace_constant.ace_character.ace_escape, { color:#FF628C;}.ace-cobalt .ace_invalid { color:#F8F8F8;background-color:#800F00;}.ace-cobalt .ace_support { color:#80FFBB;}.ace-cobalt .ace_support.ace_constant { color:#EB939A;}.ace-cobalt .ace_fold { background-color: #FF9D00; border-color: #FFFFFF;}.ace-cobalt .ace_support.ace_function { color:#FFB054;}.ace-cobalt .ace_storage { color:#FFEE80;}.ace-cobalt .ace_string.ace_regexp { color:#80FFC2;}.ace-cobalt .ace_comment { font-style:italic;color:#0088FF;}.ace-cobalt .ace_variable { color:#CCCCCC;}.ace-cobalt .ace_variable.ace_language { color:#FF80E1;}.ace-cobalt .ace_meta.ace_tag { color:#9EFFFF;}.ace-cobalt .ace_markup.ace_underline { text-decoration:underline;}.ace-cobalt .ace_markup.ace_heading { color:#C8E4FD;background-color:#001221;}.ace-cobalt .ace_markup.ace_list { background-color:#130D26;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/cobalt', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-cobalt"; +exports.cssText = "\ +.ace-cobalt .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-cobalt .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-cobalt .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-cobalt .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-cobalt .ace_scroller {\ + background-color: #002240;\ +}\ +\ +.ace-cobalt .ace_text-layer {\ + cursor: text;\ + color: #FFFFFF;\ +}\ +\ +.ace-cobalt .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ +}\ +\ +.ace-cobalt .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ +}\ +\ +.ace-cobalt .ace_marker-layer .ace_selection {\ + background: rgba(179, 101, 57, 0.75);\ +}\ +\ +.ace-cobalt.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #002240;\ + border-radius: 2px;\ +}\ +\ +.ace-cobalt .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-cobalt .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(255, 255, 255, 0.15);\ +}\ +\ +.ace-cobalt .ace_marker-layer .ace_active_line {\ + background: rgba(0, 0, 0, 0.35);\ +}\ +\ +.ace-cobalt .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(179, 101, 57, 0.75);\ +}\ +\ +.ace-cobalt .ace_invisible {\ + color: rgba(255, 255, 255, 0.15);\ +}\ +\ +.ace-cobalt .ace_keyword, .ace-cobalt .ace_meta {\ + color:#FF9D00;\ +}\ +\ +.ace-cobalt .ace_constant, .ace-cobalt .ace_constant.ace_other {\ + color:#FF628C;\ +}\ +\ +.ace-cobalt .ace_constant.ace_character, {\ + color:#FF628C;\ +}\ +\ +.ace-cobalt .ace_constant.ace_character.ace_escape, {\ + color:#FF628C;\ +}\ +\ +.ace-cobalt .ace_invalid {\ + color:#F8F8F8;\ +background-color:#800F00;\ +}\ +\ +.ace-cobalt .ace_support {\ + color:#80FFBB;\ +}\ +\ +.ace-cobalt .ace_support.ace_constant {\ + color:#EB939A;\ +}\ +\ +.ace-cobalt .ace_fold {\ + background-color: #FF9D00;\ + border-color: #FFFFFF;\ +}\ +\ +.ace-cobalt .ace_support.ace_function {\ + color:#FFB054;\ +}\ +\ +.ace-cobalt .ace_storage {\ + color:#FFEE80;\ +}\ +\ +.ace-cobalt .ace_string.ace_regexp {\ + color:#80FFC2;\ +}\ +\ +.ace-cobalt .ace_comment {\ + font-style:italic;\ +color:#0088FF;\ +}\ +\ +.ace-cobalt .ace_variable {\ + color:#CCCCCC;\ +}\ +\ +.ace-cobalt .ace_variable.ace_language {\ + color:#FF80E1;\ +}\ +\ +.ace-cobalt .ace_meta.ace_tag {\ + color:#9EFFFF;\ +}\ +\ +.ace-cobalt .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-cobalt .ace_markup.ace_heading {\ + color:#C8E4FD;\ +background-color:#001221;\ +}\ +\ +.ace-cobalt .ace_markup.ace_list {\ + background-color:#130D26;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-crimson_editor.js b/build/src/theme-crimson_editor.js index e8a4e2a4..40af199c 100644 --- a/build/src/theme-crimson_editor.js +++ b/build/src/theme-crimson_editor.js @@ -1 +1,198 @@ -define("ace/theme/crimson_editor",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssText=".ace-crimson-editor .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-crimson-editor .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-crimson-editor .ace_gutter { width: 50px; background: #e8e8e8; color: #333; overflow : hidden;}.ace-crimson-editor .ace_gutter-layer { width: 100%; text-align: right;}.ace-crimson-editor .ace_gutter-layer .ace_gutter-cell { padding-right: 6px;}.ace-crimson-editor .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-crimson-editor .ace_text-layer { cursor: text; color: rgb(64, 64, 64);}.ace-crimson-editor .ace_cursor { border-left: 2px solid black;}.ace-crimson-editor .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid black;}.ace-crimson-editor .ace_line .ace_invisible { color: rgb(191, 191, 191);}.ace-crimson-editor .ace_line .ace_identifier { color: black;}.ace-crimson-editor .ace_line .ace_keyword { color: blue;}.ace-crimson-editor .ace_line .ace_constant.ace_buildin { color: rgb(88, 72, 246);}.ace-crimson-editor .ace_line .ace_constant.ace_language { color: rgb(255, 156, 0);}.ace-crimson-editor .ace_line .ace_constant.ace_library { color: rgb(6, 150, 14);}.ace-crimson-editor .ace_line .ace_invalid { text-decoration: line-through; color: rgb(224, 0, 0);}.ace-crimson-editor .ace_line .ace_fold {}.ace-crimson-editor .ace_line .ace_support.ace_function { color: rgb(192, 0, 0);}.ace-crimson-editor .ace_line .ace_support.ace_constant { color: rgb(6, 150, 14);}.ace-crimson-editor .ace_line .ace_support.ace_type,.ace-crimson-editor .ace_line .ace_support.ace_class { color: rgb(109, 121, 222);}.ace-crimson-editor .ace_line .ace_keyword.ace_operator { color: rgb(49, 132, 149);}.ace-crimson-editor .ace_line .ace_string { color: rgb(128, 0, 128);}.ace-crimson-editor .ace_line .ace_comment { color: rgb(76, 136, 107);}.ace-crimson-editor .ace_line .ace_comment.ace_doc { color: rgb(0, 102, 255);}.ace-crimson-editor .ace_line .ace_comment.ace_doc.ace_tag { color: rgb(128, 159, 191);}.ace-crimson-editor .ace_line .ace_constant.ace_numeric { color: rgb(0, 0, 64);}.ace-crimson-editor .ace_line .ace_variable { color: rgb(0, 64, 128);}.ace-crimson-editor .ace_line .ace_xml_pe { color: rgb(104, 104, 91);}.ace-crimson-editor .ace_marker-layer .ace_selection { background: rgb(181, 213, 255);}.ace-crimson-editor .ace_marker-layer .ace_step { background: rgb(252, 255, 0);}.ace-crimson-editor .ace_marker-layer .ace_stack { background: rgb(164, 229, 101);}.ace-crimson-editor .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192);}.ace-crimson-editor .ace_marker-layer .ace_active_line { background: rgb(232, 242, 254);}.ace-crimson-editor .ace_meta.ace_tag { color:rgb(28, 2, 255);}.ace-crimson-editor .ace_marker-layer .ace_selected_word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250);}.ace-crimson-editor .ace_string.ace_regex { color: rgb(192, 0, 192);}",b.cssClass="ace-crimson-editor";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/crimson_editor', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { +exports.isDark = false; +exports.cssText = ".ace-crimson-editor .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-crimson-editor .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-crimson-editor .ace_gutter {\ + width: 50px;\ + background: #e8e8e8;\ + color: #333;\ + overflow : hidden;\ +}\ +\ +.ace-crimson-editor .ace_gutter-layer {\ + width: 100%;\ + text-align: right;\ +}\ +\ +.ace-crimson-editor .ace_gutter-layer .ace_gutter-cell {\ + padding-right: 6px;\ +}\ +\ +.ace-crimson-editor .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-crimson-editor .ace_text-layer {\ + cursor: text;\ + color: rgb(64, 64, 64);\ +}\ +\ +.ace-crimson-editor .ace_cursor {\ + border-left: 2px solid black;\ +}\ +\ +.ace-crimson-editor .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid black;\ +}\ +\ +.ace-crimson-editor .ace_line .ace_invisible {\ + color: rgb(191, 191, 191);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_identifier {\ + color: black;\ +}\ +\ +.ace-crimson-editor .ace_line .ace_keyword {\ + color: blue;\ +}\ +\ +.ace-crimson-editor .ace_line .ace_constant.ace_buildin {\ + color: rgb(88, 72, 246);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_constant.ace_language {\ + color: rgb(255, 156, 0);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_constant.ace_library {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_invalid {\ + text-decoration: line-through;\ + color: rgb(224, 0, 0);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_fold {\ +}\ +\ +.ace-crimson-editor .ace_line .ace_support.ace_function {\ + color: rgb(192, 0, 0);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_support.ace_constant {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_support.ace_type,\ +.ace-crimson-editor .ace_line .ace_support.ace_class {\ + color: rgb(109, 121, 222);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_keyword.ace_operator {\ + color: rgb(49, 132, 149);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_string {\ + color: rgb(128, 0, 128);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_comment {\ + color: rgb(76, 136, 107);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_comment.ace_doc {\ + color: rgb(0, 102, 255);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_comment.ace_doc.ace_tag {\ + color: rgb(128, 159, 191);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_constant.ace_numeric {\ + color: rgb(0, 0, 64);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_variable {\ + color: rgb(0, 64, 128);\ +}\ +\ +.ace-crimson-editor .ace_line .ace_xml_pe {\ + color: rgb(104, 104, 91);\ +}\ +\ +.ace-crimson-editor .ace_marker-layer .ace_selection {\ + background: rgb(181, 213, 255);\ +}\ +\ +.ace-crimson-editor .ace_marker-layer .ace_step {\ + background: rgb(252, 255, 0);\ +}\ +\ +.ace-crimson-editor .ace_marker-layer .ace_stack {\ + background: rgb(164, 229, 101);\ +}\ +\ +.ace-crimson-editor .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgb(192, 192, 192);\ +}\ +\ +.ace-crimson-editor .ace_marker-layer .ace_active_line {\ + background: rgb(232, 242, 254);\ +}\ +\ +.ace-crimson-editor .ace_meta.ace_tag {\ + color:rgb(28, 2, 255);\ +}\ +\ +.ace-crimson-editor .ace_marker-layer .ace_selected_word {\ + background: rgb(250, 250, 255);\ + border: 1px solid rgb(200, 200, 250);\ +}\ +\ +.ace-crimson-editor .ace_string.ace_regex {\ + color: rgb(192, 0, 192);\ +}"; + +exports.cssClass = "ace-crimson-editor"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-dawn.js b/build/src/theme-dawn.js index f1eaa7c4..04e17305 100644 --- a/build/src/theme-dawn.js +++ b/build/src/theme-dawn.js @@ -1 +1,191 @@ -define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssClass="ace-dawn",b.cssText=".ace-dawn .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-dawn .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-dawn .ace_gutter { background: #e8e8e8; color: #333;}.ace-dawn .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-dawn .ace_scroller { background-color: #F9F9F9;}.ace-dawn .ace_text-layer { cursor: text; color: #080808;}.ace-dawn .ace_cursor { border-left: 2px solid #000000;}.ace-dawn .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #000000;}.ace-dawn .ace_marker-layer .ace_selection { background: rgba(39, 95, 255, 0.30);}.ace-dawn.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #F9F9F9; border-radius: 2px;}.ace-dawn .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-dawn .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(75, 75, 126, 0.50);}.ace-dawn .ace_marker-layer .ace_active_line { background: rgba(36, 99, 180, 0.12);}.ace-dawn .ace_marker-layer .ace_selected_word { border: 1px solid rgba(39, 95, 255, 0.30);}.ace-dawn .ace_invisible { color: rgba(75, 75, 126, 0.50);}.ace-dawn .ace_keyword, .ace-dawn .ace_meta { color:#794938;}.ace-dawn .ace_constant, .ace-dawn .ace_constant.ace_other { color:#811F24;}.ace-dawn .ace_constant.ace_character, { color:#811F24;}.ace-dawn .ace_constant.ace_character.ace_escape, { color:#811F24;}.ace-dawn .ace_invalid.ace_illegal { text-decoration:underline;font-style:italic;color:#F8F8F8;background-color:#B52A1D;}.ace-dawn .ace_invalid.ace_deprecated { text-decoration:underline;font-style:italic;color:#B52A1D;}.ace-dawn .ace_support { color:#691C97;}.ace-dawn .ace_support.ace_constant { color:#B4371F;}.ace-dawn .ace_fold { background-color: #794938; border-color: #080808;}.ace-dawn .ace_support.ace_function { color:#693A17;}.ace-dawn .ace_storage { font-style:italic;color:#A71D5D;}.ace-dawn .ace_string { color:#0B6125;}.ace-dawn .ace_string.ace_regexp { color:#CF5628;}.ace-dawn .ace_comment { font-style:italic;color:#5A525F;}.ace-dawn .ace_variable { color:#234A97;}.ace-dawn .ace_markup.ace_underline { text-decoration:underline;}.ace-dawn .ace_markup.ace_heading { color:#19356D;}.ace-dawn .ace_markup.ace_list { color:#693A17;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/dawn', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-dawn"; +exports.cssText = "\ +.ace-dawn .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-dawn .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-dawn .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-dawn .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-dawn .ace_scroller {\ + background-color: #F9F9F9;\ +}\ +\ +.ace-dawn .ace_text-layer {\ + cursor: text;\ + color: #080808;\ +}\ +\ +.ace-dawn .ace_cursor {\ + border-left: 2px solid #000000;\ +}\ +\ +.ace-dawn .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #000000;\ +}\ +\ +.ace-dawn .ace_marker-layer .ace_selection {\ + background: rgba(39, 95, 255, 0.30);\ +}\ +\ +.ace-dawn.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #F9F9F9;\ + border-radius: 2px;\ +}\ +\ +.ace-dawn .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-dawn .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(75, 75, 126, 0.50);\ +}\ +\ +.ace-dawn .ace_marker-layer .ace_active_line {\ + background: rgba(36, 99, 180, 0.12);\ +}\ +\ +.ace-dawn .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(39, 95, 255, 0.30);\ +}\ +\ +.ace-dawn .ace_invisible {\ + color: rgba(75, 75, 126, 0.50);\ +}\ +\ +.ace-dawn .ace_keyword, .ace-dawn .ace_meta {\ + color:#794938;\ +}\ +\ +.ace-dawn .ace_constant, .ace-dawn .ace_constant.ace_other {\ + color:#811F24;\ +}\ +\ +.ace-dawn .ace_constant.ace_character, {\ + color:#811F24;\ +}\ +\ +.ace-dawn .ace_constant.ace_character.ace_escape, {\ + color:#811F24;\ +}\ +\ +.ace-dawn .ace_invalid.ace_illegal {\ + text-decoration:underline;\ +font-style:italic;\ +color:#F8F8F8;\ +background-color:#B52A1D;\ +}\ +\ +.ace-dawn .ace_invalid.ace_deprecated {\ + text-decoration:underline;\ +font-style:italic;\ +color:#B52A1D;\ +}\ +\ +.ace-dawn .ace_support {\ + color:#691C97;\ +}\ +\ +.ace-dawn .ace_support.ace_constant {\ + color:#B4371F;\ +}\ +\ +.ace-dawn .ace_fold {\ + background-color: #794938;\ + border-color: #080808;\ +}\ +\ +.ace-dawn .ace_support.ace_function {\ + color:#693A17;\ +}\ +\ +.ace-dawn .ace_storage {\ + font-style:italic;\ +color:#A71D5D;\ +}\ +\ +.ace-dawn .ace_string {\ + color:#0B6125;\ +}\ +\ +.ace-dawn .ace_string.ace_regexp {\ + color:#CF5628;\ +}\ +\ +.ace-dawn .ace_comment {\ + font-style:italic;\ +color:#5A525F;\ +}\ +\ +.ace-dawn .ace_variable {\ + color:#234A97;\ +}\ +\ +.ace-dawn .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-dawn .ace_markup.ace_heading {\ + color:#19356D;\ +}\ +\ +.ace-dawn .ace_markup.ace_list {\ + color:#693A17;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-dreamweaver.js b/build/src/theme-dreamweaver.js index 4bd5e9df..d78ae07d 100644 --- a/build/src/theme-dreamweaver.js +++ b/build/src/theme-dreamweaver.js @@ -1 +1,227 @@ -define("ace/theme/dreamweaver",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssClass="ace-dreamweaver",b.cssText=".ace-dreamweaver .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-dreamweaver .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-dreamweaver .ace_gutter { background: #e8e8e8; color: #333;}.ace-dreamweaver .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-dreamweaver .ace_fold { background-color: #00F;}.ace-dreamweaver .ace_text-layer { cursor: text;}.ace-dreamweaver .ace_cursor { border-left: 2px solid black;}.ace-dreamweaver .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid black;} .ace-dreamweaver .ace_line .ace_invisible { color: rgb(191, 191, 191);}.ace-dreamweaver .ace_line .ace_storage,.ace-dreamweaver .ace_line .ace_keyword { color: blue;}.ace-dreamweaver .ace_line .ace_constant.ace_buildin { color: rgb(88, 72, 246);}.ace-dreamweaver .ace_line .ace_constant.ace_language { color: rgb(88, 92, 246);}.ace-dreamweaver .ace_line .ace_constant.ace_library { color: rgb(6, 150, 14);}.ace-dreamweaver .ace_line .ace_invalid { background-color: rgb(153, 0, 0); color: white;}.ace-dreamweaver .ace_line .ace_support.ace_function { color: rgb(60, 76, 114);}.ace-dreamweaver .ace_line .ace_support.ace_constant { color: rgb(6, 150, 14);}.ace-dreamweaver .ace_line .ace_support.ace_type,.ace-dreamweaver .ace_line .ace_support.ace_class { color: #009;}.ace-dreamweaver .ace_line .ace_support.ace_php_tag { color: #f00;}.ace-dreamweaver .ace_line .ace_keyword.ace_operator { color: rgb(104, 118, 135);}.ace-dreamweaver .ace_line .ace_string { color: #00F;}.ace-dreamweaver .ace_line .ace_comment { color: rgb(76, 136, 107);}.ace-dreamweaver .ace_line .ace_comment.ace_doc { color: rgb(0, 102, 255);}.ace-dreamweaver .ace_line .ace_comment.ace_doc.ace_tag { color: rgb(128, 159, 191);}.ace-dreamweaver .ace_line .ace_constant.ace_numeric { color: rgb(0, 0, 205);}.ace-dreamweaver .ace_line .ace_variable { color: #06F}.ace-dreamweaver .ace_line .ace_xml_pe { color: rgb(104, 104, 91);}.ace-dreamweaver .ace_entity.ace_name.ace_function { color: #00F;}.ace-dreamweaver .ace_markup.ace_markupine { text-decoration:underline;}.ace-dreamweaver .ace_markup.ace_heading { color: rgb(12, 7, 255);}.ace-dreamweaver .ace_markup.ace_list { color:rgb(185, 6, 144);}.ace-dreamweaver .ace_marker-layer .ace_selection { background: rgb(181, 213, 255);}.ace-dreamweaver .ace_marker-layer .ace_step { background: rgb(252, 255, 0);}.ace-dreamweaver .ace_marker-layer .ace_stack { background: rgb(164, 229, 101);}.ace-dreamweaver .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192);}.ace-dreamweaver .ace_marker-layer .ace_active_line { background: rgba(0, 0, 0, 0.07);}.ace-dreamweaver .ace_marker-layer .ace_selected_word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250);}.ace-dreamweaver .ace_meta.ace_tag { color:#009;}.ace-dreamweaver .ace_meta.ace_tag.ace_anchor { color:#060;}.ace-dreamweaver .ace_meta.ace_tag.ace_form { color:#F90;}.ace-dreamweaver .ace_meta.ace_tag.ace_image { color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_script { color:#900;}.ace-dreamweaver .ace_meta.ace_tag.ace_style { color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_table { color:#099;}.ace-dreamweaver .ace_string.ace_regex { color: rgb(255, 0, 0)}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Adam Jimenez + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/dreamweaver', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { +exports.isDark = false; +exports.cssClass = "ace-dreamweaver"; +exports.cssText = ".ace-dreamweaver .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-dreamweaver .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-dreamweaver .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-dreamweaver .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-dreamweaver .ace_fold {\ + background-color: #00F;\ +}\ +\ +.ace-dreamweaver .ace_text-layer {\ + cursor: text;\ +}\ +\ +.ace-dreamweaver .ace_cursor {\ + border-left: 2px solid black;\ +}\ +\ +.ace-dreamweaver .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid black;\ +}\ + \ +.ace-dreamweaver .ace_line .ace_invisible {\ + color: rgb(191, 191, 191);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_storage,\ +.ace-dreamweaver .ace_line .ace_keyword {\ + color: blue;\ +}\ +\ +.ace-dreamweaver .ace_line .ace_constant.ace_buildin {\ + color: rgb(88, 72, 246);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_constant.ace_language {\ + color: rgb(88, 92, 246);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_constant.ace_library {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_invalid {\ + background-color: rgb(153, 0, 0);\ + color: white;\ +}\ +\ +.ace-dreamweaver .ace_line .ace_support.ace_function {\ + color: rgb(60, 76, 114);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_support.ace_constant {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_support.ace_type,\ +.ace-dreamweaver .ace_line .ace_support.ace_class {\ + color: #009;\ +}\ +\ +.ace-dreamweaver .ace_line .ace_support.ace_php_tag {\ + color: #f00;\ +}\ +\ +.ace-dreamweaver .ace_line .ace_keyword.ace_operator {\ + color: rgb(104, 118, 135);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_string {\ + color: #00F;\ +}\ +\ +.ace-dreamweaver .ace_line .ace_comment {\ + color: rgb(76, 136, 107);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_comment.ace_doc {\ + color: rgb(0, 102, 255);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_comment.ace_doc.ace_tag {\ + color: rgb(128, 159, 191);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_constant.ace_numeric {\ + color: rgb(0, 0, 205);\ +}\ +\ +.ace-dreamweaver .ace_line .ace_variable {\ + color: #06F\ +}\ +\ +.ace-dreamweaver .ace_line .ace_xml_pe {\ + color: rgb(104, 104, 91);\ +}\ +\ +.ace-dreamweaver .ace_entity.ace_name.ace_function {\ + color: #00F;\ +}\ +\ +.ace-dreamweaver .ace_markup.ace_markupine {\ + text-decoration:underline;\ +}\ +\ +.ace-dreamweaver .ace_markup.ace_heading {\ + color: rgb(12, 7, 255);\ +}\ +\ +.ace-dreamweaver .ace_markup.ace_list {\ + color:rgb(185, 6, 144);\ +}\ +\ +.ace-dreamweaver .ace_marker-layer .ace_selection {\ + background: rgb(181, 213, 255);\ +}\ +\ +.ace-dreamweaver .ace_marker-layer .ace_step {\ + background: rgb(252, 255, 0);\ +}\ +\ +.ace-dreamweaver .ace_marker-layer .ace_stack {\ + background: rgb(164, 229, 101);\ +}\ +\ +.ace-dreamweaver .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgb(192, 192, 192);\ +}\ +\ +.ace-dreamweaver .ace_marker-layer .ace_active_line {\ + background: rgba(0, 0, 0, 0.07);\ +}\ +\ +.ace-dreamweaver .ace_marker-layer .ace_selected_word {\ + background: rgb(250, 250, 255);\ + border: 1px solid rgb(200, 200, 250);\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag {\ + color:#009;\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {\ + color:#060;\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag.ace_form {\ + color:#F90;\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag.ace_image {\ + color:#909;\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag.ace_script {\ + color:#900;\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag.ace_style {\ + color:#909;\ +}\ +\ +.ace-dreamweaver .ace_meta.ace_tag.ace_table {\ + color:#099;\ +}\ +\ +.ace-dreamweaver .ace_string.ace_regex {\ + color: rgb(255, 0, 0)\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-eclipse.js b/build/src/theme-eclipse.js index e8d7f633..01d0f901 100644 --- a/build/src/theme-eclipse.js +++ b/build/src/theme-eclipse.js @@ -1 +1,147 @@ -define("ace/theme/eclipse",["require","exports","module","ace/lib/dom"],function(a,b,c){"use strict",b.isDark=!1,b.cssText=".ace-eclipse .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-eclipse .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-eclipse .ace_gutter { background: rgb(227, 227, 227); border-right: 1px solid rgb(159, 159, 159); color: rgb(136, 136, 136);}.ace-eclipse .ace_print_margin { width: 1px; background: #b1b4ba;}.ace-eclipse .ace_fold { background-color: rgb(60, 76, 114);}.ace-eclipse .ace_text-layer { cursor: text;}.ace-eclipse .ace_cursor { border-left: 2px solid black;}.ace-eclipse .ace_line .ace_storage,.ace-eclipse .ace_line .ace_keyword,.ace-eclipse .ace_line .ace_variable { color: rgb(127, 0, 85);}.ace-eclipse .ace_line .ace_constant.ace_buildin { color: rgb(88, 72, 246);}.ace-eclipse .ace_line .ace_constant.ace_library { color: rgb(6, 150, 14);}.ace-eclipse .ace_line .ace_function { color: rgb(60, 76, 114);}.ace-eclipse .ace_line .ace_string { color: rgb(42, 0, 255);}.ace-eclipse .ace_line .ace_comment { color: rgb(63, 127, 95);}.ace-eclipse .ace_line .ace_comment.ace_doc { color: rgb(63, 95, 191);}.ace-eclipse .ace_line .ace_comment.ace_doc.ace_tag { color: rgb(127, 159, 191);}.ace-eclipse .ace_line .ace_constant.ace_numeric {}.ace-eclipse .ace_line .ace_tag { color: rgb(63, 127, 127);}.ace-eclipse .ace_line .ace_type { color: rgb(127, 0, 127);}.ace-eclipse .ace_line .ace_xml_pe { color: rgb(104, 104, 91);}.ace-eclipse .ace_marker-layer .ace_selection { background: rgb(181, 213, 255);}.ace-eclipse .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192);}.ace-eclipse .ace_line .ace_meta.ace_tag { color:rgb(63, 127, 127);}.ace-eclipse .ace_entity.ace_other.ace_attribute-name { color:rgb(127, 0, 127);}.ace-eclipse .ace_marker-layer .ace_active_line { background: rgb(232, 242, 254);}",b.cssClass="ace-eclipse";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/eclipse', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + + +exports.isDark = false; +exports.cssText = ".ace-eclipse .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-eclipse .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-eclipse .ace_gutter {\ + background: rgb(227, 227, 227);\ + border-right: 1px solid rgb(159, 159, 159);\ + color: rgb(136, 136, 136);\ +}\ +\ +.ace-eclipse .ace_print_margin {\ + width: 1px;\ + background: #b1b4ba;\ +}\ +\ +.ace-eclipse .ace_fold {\ + background-color: rgb(60, 76, 114);\ +}\ +\ +.ace-eclipse .ace_text-layer {\ + cursor: text;\ +}\ +\ +.ace-eclipse .ace_cursor {\ + border-left: 2px solid black;\ +}\ +\ +.ace-eclipse .ace_line .ace_storage,\ +.ace-eclipse .ace_line .ace_keyword,\ +.ace-eclipse .ace_line .ace_variable {\ + color: rgb(127, 0, 85);\ +}\ +\ +.ace-eclipse .ace_line .ace_constant.ace_buildin {\ + color: rgb(88, 72, 246);\ +}\ +\ +.ace-eclipse .ace_line .ace_constant.ace_library {\ + color: rgb(6, 150, 14);\ +}\ +\ +.ace-eclipse .ace_line .ace_function {\ + color: rgb(60, 76, 114);\ +}\ +\ +.ace-eclipse .ace_line .ace_string {\ + color: rgb(42, 0, 255);\ +}\ +\ +.ace-eclipse .ace_line .ace_comment {\ + color: rgb(63, 127, 95);\ +}\ +\ +.ace-eclipse .ace_line .ace_comment.ace_doc {\ + color: rgb(63, 95, 191);\ +}\ +\ +.ace-eclipse .ace_line .ace_comment.ace_doc.ace_tag {\ + color: rgb(127, 159, 191);\ +}\ +\ +.ace-eclipse .ace_line .ace_constant.ace_numeric {\ +}\ +\ +.ace-eclipse .ace_line .ace_tag {\ + color: rgb(63, 127, 127);\ +}\ +\ +.ace-eclipse .ace_line .ace_type {\ + color: rgb(127, 0, 127);\ +}\ +\ +.ace-eclipse .ace_line .ace_xml_pe {\ + color: rgb(104, 104, 91);\ +}\ +\ +.ace-eclipse .ace_marker-layer .ace_selection {\ + background: rgb(181, 213, 255);\ +}\ +\ +.ace-eclipse .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgb(192, 192, 192);\ +}\ +\ +.ace-eclipse .ace_line .ace_meta.ace_tag {\ + color:rgb(63, 127, 127);\ +}\ +\ +.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\ + color:rgb(127, 0, 127);\ +}\ +\ +.ace-eclipse .ace_marker-layer .ace_active_line {\ + background: rgb(232, 242, 254);\ +}"; + +exports.cssClass = "ace-eclipse"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-idle_fingers.js b/build/src/theme-idle_fingers.js index ec2c22e5..34eee0d6 100644 --- a/build/src/theme-idle_fingers.js +++ b/build/src/theme-idle_fingers.js @@ -1 +1,179 @@ -define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-idle-fingers",b.cssText=".ace-idle-fingers .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-idle-fingers .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-idle-fingers .ace_gutter { background: #e8e8e8; color: #333;}.ace-idle-fingers .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-idle-fingers .ace_scroller { background-color: #323232;}.ace-idle-fingers .ace_text-layer { cursor: text; color: #FFFFFF;}.ace-idle-fingers .ace_cursor { border-left: 2px solid #91FF00;}.ace-idle-fingers .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #91FF00;}.ace-idle-fingers .ace_marker-layer .ace_selection { background: rgba(90, 100, 126, 0.88);}.ace-idle-fingers.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #323232; border-radius: 2px;}.ace-idle-fingers .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-idle-fingers .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #404040;}.ace-idle-fingers .ace_marker-layer .ace_active_line { background: #353637;}.ace-idle-fingers .ace_marker-layer .ace_selected_word { border: 1px solid rgba(90, 100, 126, 0.88);}.ace-idle-fingers .ace_invisible { color: #404040;}.ace-idle-fingers .ace_keyword, .ace-idle-fingers .ace_meta { color:#CC7833;}.ace-idle-fingers .ace_constant, .ace-idle-fingers .ace_constant.ace_other { color:#6C99BB;}.ace-idle-fingers .ace_constant.ace_character, { color:#6C99BB;}.ace-idle-fingers .ace_constant.ace_character.ace_escape, { color:#6C99BB;}.ace-idle-fingers .ace_invalid { color:#FFFFFF;background-color:#FF0000;}.ace-idle-fingers .ace_support.ace_constant { color:#6C99BB;}.ace-idle-fingers .ace_fold { background-color: #CC7833; border-color: #FFFFFF;}.ace-idle-fingers .ace_support.ace_function { color:#B83426;}.ace-idle-fingers .ace_variable.ace_parameter { font-style:italic;}.ace-idle-fingers .ace_string { color:#A5C261;}.ace-idle-fingers .ace_string.ace_regexp { color:#CCCC33;}.ace-idle-fingers .ace_comment { font-style:italic;color:#BC9458;}.ace-idle-fingers .ace_meta.ace_tag { color:#FFE5BB;}.ace-idle-fingers .ace_entity.ace_name { color:#FFC66D;}.ace-idle-fingers .ace_markup.ace_underline { text-decoration:underline;}.ace-idle-fingers .ace_collab.ace_user1 { color:#323232;background-color:#FFF980;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/idle_fingers', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-idle-fingers"; +exports.cssText = "\ +.ace-idle-fingers .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-idle-fingers .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-idle-fingers .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-idle-fingers .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-idle-fingers .ace_scroller {\ + background-color: #323232;\ +}\ +\ +.ace-idle-fingers .ace_text-layer {\ + cursor: text;\ + color: #FFFFFF;\ +}\ +\ +.ace-idle-fingers .ace_cursor {\ + border-left: 2px solid #91FF00;\ +}\ +\ +.ace-idle-fingers .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #91FF00;\ +}\ +\ +.ace-idle-fingers .ace_marker-layer .ace_selection {\ + background: rgba(90, 100, 126, 0.88);\ +}\ +\ +.ace-idle-fingers.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #323232;\ + border-radius: 2px;\ +}\ +\ +.ace-idle-fingers .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-idle-fingers .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #404040;\ +}\ +\ +.ace-idle-fingers .ace_marker-layer .ace_active_line {\ + background: #353637;\ +}\ +\ +.ace-idle-fingers .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(90, 100, 126, 0.88);\ +}\ +\ +.ace-idle-fingers .ace_invisible {\ + color: #404040;\ +}\ +\ +.ace-idle-fingers .ace_keyword, .ace-idle-fingers .ace_meta {\ + color:#CC7833;\ +}\ +\ +.ace-idle-fingers .ace_constant, .ace-idle-fingers .ace_constant.ace_other {\ + color:#6C99BB;\ +}\ +\ +.ace-idle-fingers .ace_constant.ace_character, {\ + color:#6C99BB;\ +}\ +\ +.ace-idle-fingers .ace_constant.ace_character.ace_escape, {\ + color:#6C99BB;\ +}\ +\ +.ace-idle-fingers .ace_invalid {\ + color:#FFFFFF;\ +background-color:#FF0000;\ +}\ +\ +.ace-idle-fingers .ace_support.ace_constant {\ + color:#6C99BB;\ +}\ +\ +.ace-idle-fingers .ace_fold {\ + background-color: #CC7833;\ + border-color: #FFFFFF;\ +}\ +\ +.ace-idle-fingers .ace_support.ace_function {\ + color:#B83426;\ +}\ +\ +.ace-idle-fingers .ace_variable.ace_parameter {\ + font-style:italic;\ +}\ +\ +.ace-idle-fingers .ace_string {\ + color:#A5C261;\ +}\ +\ +.ace-idle-fingers .ace_string.ace_regexp {\ + color:#CCCC33;\ +}\ +\ +.ace-idle-fingers .ace_comment {\ + font-style:italic;\ +color:#BC9458;\ +}\ +\ +.ace-idle-fingers .ace_meta.ace_tag {\ + color:#FFE5BB;\ +}\ +\ +.ace-idle-fingers .ace_entity.ace_name {\ + color:#FFC66D;\ +}\ +\ +.ace-idle-fingers .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-idle-fingers .ace_collab.ace_user1 {\ + color:#323232;\ +background-color:#FFF980;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-kr_theme.js b/build/src/theme-kr_theme.js index 7d599322..b30ff07e 100644 --- a/build/src/theme-kr_theme.js +++ b/build/src/theme-kr_theme.js @@ -1 +1,182 @@ -define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-kr-theme",b.cssText=".ace-kr-theme .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-kr-theme .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-kr-theme .ace_gutter { background: #e8e8e8; color: #333;}.ace-kr-theme .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-kr-theme .ace_scroller { background-color: #0B0A09;}.ace-kr-theme .ace_text-layer { cursor: text; color: #FCFFE0;}.ace-kr-theme .ace_cursor { border-left: 2px solid #FF9900;}.ace-kr-theme .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FF9900;}.ace-kr-theme .ace_marker-layer .ace_selection { background: rgba(170, 0, 255, 0.45);}.ace-kr-theme.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #0B0A09; border-radius: 2px;}.ace-kr-theme .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-kr-theme .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(255, 177, 111, 0.32);}.ace-kr-theme .ace_marker-layer .ace_active_line { background: #38403D;}.ace-kr-theme .ace_marker-layer .ace_selected_word { border: 1px solid rgba(170, 0, 255, 0.45);}.ace-kr-theme .ace_invisible { color: rgba(255, 177, 111, 0.32);}.ace-kr-theme .ace_keyword, .ace-kr-theme .ace_meta { color:#949C8B;}.ace-kr-theme .ace_constant, .ace-kr-theme .ace_constant.ace_other { color:rgba(210, 117, 24, 0.76);}.ace-kr-theme .ace_constant.ace_character, { color:rgba(210, 117, 24, 0.76);}.ace-kr-theme .ace_constant.ace_character.ace_escape, { color:rgba(210, 117, 24, 0.76);}.ace-kr-theme .ace_invalid { color:#F8F8F8;background-color:#A41300;}.ace-kr-theme .ace_support { color:#9FC28A;}.ace-kr-theme .ace_support.ace_constant { color:#C27E66;}.ace-kr-theme .ace_fold { background-color: #949C8B; border-color: #FCFFE0;}.ace-kr-theme .ace_support.ace_function { color:#85873A;}.ace-kr-theme .ace_storage { color:#FFEE80;}.ace-kr-theme .ace_string.ace_regexp { color:rgba(125, 255, 192, 0.65);}.ace-kr-theme .ace_comment { font-style:italic;color:#706D5B;}.ace-kr-theme .ace_variable { color:#D1A796;}.ace-kr-theme .ace_variable.ace_language { color:#FF80E1;}.ace-kr-theme .ace_meta.ace_tag { color:#BABD9C;}.ace-kr-theme .ace_markup.ace_underline { text-decoration:underline;}.ace-kr-theme .ace_markup.ace_list { background-color:#0F0040;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/kr_theme', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-kr-theme"; +exports.cssText = "\ +.ace-kr-theme .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-kr-theme .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-kr-theme .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-kr-theme .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-kr-theme .ace_scroller {\ + background-color: #0B0A09;\ +}\ +\ +.ace-kr-theme .ace_text-layer {\ + cursor: text;\ + color: #FCFFE0;\ +}\ +\ +.ace-kr-theme .ace_cursor {\ + border-left: 2px solid #FF9900;\ +}\ +\ +.ace-kr-theme .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FF9900;\ +}\ +\ +.ace-kr-theme .ace_marker-layer .ace_selection {\ + background: rgba(170, 0, 255, 0.45);\ +}\ +\ +.ace-kr-theme.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #0B0A09;\ + border-radius: 2px;\ +}\ +\ +.ace-kr-theme .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-kr-theme .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(255, 177, 111, 0.32);\ +}\ +\ +.ace-kr-theme .ace_marker-layer .ace_active_line {\ + background: #38403D;\ +}\ +\ +.ace-kr-theme .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(170, 0, 255, 0.45);\ +}\ +\ +.ace-kr-theme .ace_invisible {\ + color: rgba(255, 177, 111, 0.32);\ +}\ +\ +.ace-kr-theme .ace_keyword, .ace-kr-theme .ace_meta {\ + color:#949C8B;\ +}\ +\ +.ace-kr-theme .ace_constant, .ace-kr-theme .ace_constant.ace_other {\ + color:rgba(210, 117, 24, 0.76);\ +}\ +\ +.ace-kr-theme .ace_constant.ace_character, {\ + color:rgba(210, 117, 24, 0.76);\ +}\ +\ +.ace-kr-theme .ace_constant.ace_character.ace_escape, {\ + color:rgba(210, 117, 24, 0.76);\ +}\ +\ +.ace-kr-theme .ace_invalid {\ + color:#F8F8F8;\ +background-color:#A41300;\ +}\ +\ +.ace-kr-theme .ace_support {\ + color:#9FC28A;\ +}\ +\ +.ace-kr-theme .ace_support.ace_constant {\ + color:#C27E66;\ +}\ +\ +.ace-kr-theme .ace_fold {\ + background-color: #949C8B;\ + border-color: #FCFFE0;\ +}\ +\ +.ace-kr-theme .ace_support.ace_function {\ + color:#85873A;\ +}\ +\ +.ace-kr-theme .ace_storage {\ + color:#FFEE80;\ +}\ +\ +.ace-kr-theme .ace_string.ace_regexp {\ + color:rgba(125, 255, 192, 0.65);\ +}\ +\ +.ace-kr-theme .ace_comment {\ + font-style:italic;\ +color:#706D5B;\ +}\ +\ +.ace-kr-theme .ace_variable {\ + color:#D1A796;\ +}\ +\ +.ace-kr-theme .ace_variable.ace_language {\ + color:#FF80E1;\ +}\ +\ +.ace-kr-theme .ace_meta.ace_tag {\ + color:#BABD9C;\ +}\ +\ +.ace-kr-theme .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-kr-theme .ace_markup.ace_list {\ + background-color:#0F0040;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-merbivore.js b/build/src/theme-merbivore.js index 32810168..31039da7 100644 --- a/build/src/theme-merbivore.js +++ b/build/src/theme-merbivore.js @@ -1 +1,182 @@ -define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-merbivore",b.cssText=".ace-merbivore .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-merbivore .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-merbivore .ace_gutter { background: #e8e8e8; color: #333;}.ace-merbivore .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-merbivore .ace_scroller { background-color: #161616;}.ace-merbivore .ace_text-layer { cursor: text; color: #E6E1DC;}.ace-merbivore .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-merbivore .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;}.ace-merbivore .ace_marker-layer .ace_selection { background: #454545;}.ace-merbivore.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #161616; border-radius: 2px;}.ace-merbivore .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-merbivore .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #404040;}.ace-merbivore .ace_marker-layer .ace_active_line { background: #333435;}.ace-merbivore .ace_marker-layer .ace_selected_word { border: 1px solid #454545;}.ace-merbivore .ace_invisible { color: #404040;}.ace-merbivore .ace_keyword, .ace-merbivore .ace_meta { color:#FC6F09;}.ace-merbivore .ace_constant, .ace-merbivore .ace_constant.ace_other { color:#1EDAFB;}.ace-merbivore .ace_constant.ace_character, { color:#1EDAFB;}.ace-merbivore .ace_constant.ace_character.ace_escape, { color:#1EDAFB;}.ace-merbivore .ace_constant.ace_language { color:#FDC251;}.ace-merbivore .ace_constant.ace_library { color:#8DFF0A;}.ace-merbivore .ace_constant.ace_numeric { color:#58C554;}.ace-merbivore .ace_invalid { color:#FFFFFF;background-color:#990000;}.ace-merbivore .ace_support.ace_constant { color:#8DFF0A;}.ace-merbivore .ace_fold { background-color: #FC6F09; border-color: #E6E1DC;}.ace-merbivore .ace_support.ace_function { color:#FC6F09;}.ace-merbivore .ace_storage { color:#FC6F09;}.ace-merbivore .ace_string { color:#8DFF0A;}.ace-merbivore .ace_comment { font-style:italic;color:#AD2EA4;}.ace-merbivore .ace_meta.ace_tag { color:#FC6F09;}.ace-merbivore .ace_entity.ace_other.ace_attribute-name { color:#FFFF89;}.ace-merbivore .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/merbivore', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-merbivore"; +exports.cssText = "\ +.ace-merbivore .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-merbivore .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-merbivore .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-merbivore .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-merbivore .ace_scroller {\ + background-color: #161616;\ +}\ +\ +.ace-merbivore .ace_text-layer {\ + cursor: text;\ + color: #E6E1DC;\ +}\ +\ +.ace-merbivore .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ +}\ +\ +.ace-merbivore .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ +}\ +\ +.ace-merbivore .ace_marker-layer .ace_selection {\ + background: #454545;\ +}\ +\ +.ace-merbivore.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #161616;\ + border-radius: 2px;\ +}\ +\ +.ace-merbivore .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-merbivore .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #404040;\ +}\ +\ +.ace-merbivore .ace_marker-layer .ace_active_line {\ + background: #333435;\ +}\ +\ +.ace-merbivore .ace_marker-layer .ace_selected_word {\ + border: 1px solid #454545;\ +}\ +\ +.ace-merbivore .ace_invisible {\ + color: #404040;\ +}\ +\ +.ace-merbivore .ace_keyword, .ace-merbivore .ace_meta {\ + color:#FC6F09;\ +}\ +\ +.ace-merbivore .ace_constant, .ace-merbivore .ace_constant.ace_other {\ + color:#1EDAFB;\ +}\ +\ +.ace-merbivore .ace_constant.ace_character, {\ + color:#1EDAFB;\ +}\ +\ +.ace-merbivore .ace_constant.ace_character.ace_escape, {\ + color:#1EDAFB;\ +}\ +\ +.ace-merbivore .ace_constant.ace_language {\ + color:#FDC251;\ +}\ +\ +.ace-merbivore .ace_constant.ace_library {\ + color:#8DFF0A;\ +}\ +\ +.ace-merbivore .ace_constant.ace_numeric {\ + color:#58C554;\ +}\ +\ +.ace-merbivore .ace_invalid {\ + color:#FFFFFF;\ +background-color:#990000;\ +}\ +\ +.ace-merbivore .ace_support.ace_constant {\ + color:#8DFF0A;\ +}\ +\ +.ace-merbivore .ace_fold {\ + background-color: #FC6F09;\ + border-color: #E6E1DC;\ +}\ +\ +.ace-merbivore .ace_support.ace_function {\ + color:#FC6F09;\ +}\ +\ +.ace-merbivore .ace_storage {\ + color:#FC6F09;\ +}\ +\ +.ace-merbivore .ace_string {\ + color:#8DFF0A;\ +}\ +\ +.ace-merbivore .ace_comment {\ + font-style:italic;\ +color:#AD2EA4;\ +}\ +\ +.ace-merbivore .ace_meta.ace_tag {\ + color:#FC6F09;\ +}\ +\ +.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\ + color:#FFFF89;\ +}\ +\ +.ace-merbivore .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-merbivore_soft.js b/build/src/theme-merbivore_soft.js index 29637396..7f71080a 100644 --- a/build/src/theme-merbivore_soft.js +++ b/build/src/theme-merbivore_soft.js @@ -1 +1,188 @@ -define("ace/theme/merbivore_soft",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-merbivore-soft",b.cssText=".ace-merbivore-soft .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-merbivore-soft .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-merbivore-soft .ace_gutter { background: #e8e8e8; color: #333;}.ace-merbivore-soft .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-merbivore-soft .ace_scroller { background-color: #1C1C1C;}.ace-merbivore-soft .ace_text-layer { cursor: text; color: #E6E1DC;}.ace-merbivore-soft .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-merbivore-soft .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;}.ace-merbivore-soft .ace_marker-layer .ace_selection { background: #494949;}.ace-merbivore-soft.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #1C1C1C; border-radius: 2px;}.ace-merbivore-soft .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-merbivore-soft .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #404040;}.ace-merbivore-soft .ace_marker-layer .ace_active_line { background: #333435;}.ace-merbivore-soft .ace_marker-layer .ace_selected_word { border: 1px solid #494949;}.ace-merbivore-soft .ace_invisible { color: #404040;}.ace-merbivore-soft .ace_keyword, .ace-merbivore-soft .ace_meta { color:#FC803A;}.ace-merbivore-soft .ace_constant, .ace-merbivore-soft .ace_constant.ace_other { color:#68C1D8;}.ace-merbivore-soft .ace_constant.ace_character, { color:#68C1D8;}.ace-merbivore-soft .ace_constant.ace_character.ace_escape, { color:#68C1D8;}.ace-merbivore-soft .ace_constant.ace_language { color:#E1C582;}.ace-merbivore-soft .ace_constant.ace_library { color:#8EC65F;}.ace-merbivore-soft .ace_constant.ace_numeric { color:#7FC578;}.ace-merbivore-soft .ace_invalid { color:#FFFFFF;background-color:#FE3838;}.ace-merbivore-soft .ace_invalid.ace_deprecated { color:#FFFFFF;background-color:#FE3838;}.ace-merbivore-soft .ace_support.ace_constant { color:#8EC65F;}.ace-merbivore-soft .ace_fold { background-color: #FC803A; border-color: #E6E1DC;}.ace-merbivore-soft .ace_storage { color:#FC803A;}.ace-merbivore-soft .ace_string { color:#8EC65F;}.ace-merbivore-soft .ace_comment { font-style:italic;color:#AC4BB8;}.ace-merbivore-soft .ace_meta { font-style:italic;color:#AC4BB8;}.ace-merbivore-soft .ace_meta.ace_tag { color:#FC803A;}.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name { color:#EAF1A3;}.ace-merbivore-soft .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/merbivore_soft', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-merbivore-soft"; +exports.cssText = "\ +.ace-merbivore-soft .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-merbivore-soft .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-merbivore-soft .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-merbivore-soft .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-merbivore-soft .ace_scroller {\ + background-color: #1C1C1C;\ +}\ +\ +.ace-merbivore-soft .ace_text-layer {\ + cursor: text;\ + color: #E6E1DC;\ +}\ +\ +.ace-merbivore-soft .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ +}\ +\ +.ace-merbivore-soft .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ +}\ +\ +.ace-merbivore-soft .ace_marker-layer .ace_selection {\ + background: #494949;\ +}\ +\ +.ace-merbivore-soft.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #1C1C1C;\ + border-radius: 2px;\ +}\ +\ +.ace-merbivore-soft .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-merbivore-soft .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #404040;\ +}\ +\ +.ace-merbivore-soft .ace_marker-layer .ace_active_line {\ + background: #333435;\ +}\ +\ +.ace-merbivore-soft .ace_marker-layer .ace_selected_word {\ + border: 1px solid #494949;\ +}\ +\ +.ace-merbivore-soft .ace_invisible {\ + color: #404040;\ +}\ +\ +.ace-merbivore-soft .ace_keyword, .ace-merbivore-soft .ace_meta {\ + color:#FC803A;\ +}\ +\ +.ace-merbivore-soft .ace_constant, .ace-merbivore-soft .ace_constant.ace_other {\ + color:#68C1D8;\ +}\ +\ +.ace-merbivore-soft .ace_constant.ace_character, {\ + color:#68C1D8;\ +}\ +\ +.ace-merbivore-soft .ace_constant.ace_character.ace_escape, {\ + color:#68C1D8;\ +}\ +\ +.ace-merbivore-soft .ace_constant.ace_language {\ + color:#E1C582;\ +}\ +\ +.ace-merbivore-soft .ace_constant.ace_library {\ + color:#8EC65F;\ +}\ +\ +.ace-merbivore-soft .ace_constant.ace_numeric {\ + color:#7FC578;\ +}\ +\ +.ace-merbivore-soft .ace_invalid {\ + color:#FFFFFF;\ +background-color:#FE3838;\ +}\ +\ +.ace-merbivore-soft .ace_invalid.ace_deprecated {\ + color:#FFFFFF;\ +background-color:#FE3838;\ +}\ +\ +.ace-merbivore-soft .ace_support.ace_constant {\ + color:#8EC65F;\ +}\ +\ +.ace-merbivore-soft .ace_fold {\ + background-color: #FC803A;\ + border-color: #E6E1DC;\ +}\ +\ +.ace-merbivore-soft .ace_storage {\ + color:#FC803A;\ +}\ +\ +.ace-merbivore-soft .ace_string {\ + color:#8EC65F;\ +}\ +\ +.ace-merbivore-soft .ace_comment {\ + font-style:italic;\ +color:#AC4BB8;\ +}\ +\ +.ace-merbivore-soft .ace_meta {\ + font-style:italic;\ +color:#AC4BB8;\ +}\ +\ +.ace-merbivore-soft .ace_meta.ace_tag {\ + color:#FC803A;\ +}\ +\ +.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\ + color:#EAF1A3;\ +}\ +\ +.ace-merbivore-soft .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-mono_industrial.js b/build/src/theme-mono_industrial.js index f1797580..a8ccfe79 100644 --- a/build/src/theme-mono_industrial.js +++ b/build/src/theme-mono_industrial.js @@ -1 +1,190 @@ -define("ace/theme/mono_industrial",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-mono-industrial",b.cssText=".ace-mono-industrial .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-mono-industrial .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-mono-industrial .ace_gutter { background: #e8e8e8; color: #333;}.ace-mono-industrial .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-mono-industrial .ace_scroller { background-color: #222C28;}.ace-mono-industrial .ace_text-layer { cursor: text; color: #FFFFFF;}.ace-mono-industrial .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-mono-industrial .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;}.ace-mono-industrial .ace_marker-layer .ace_selection { background: rgba(145, 153, 148, 0.40);}.ace-mono-industrial.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #222C28; border-radius: 2px;}.ace-mono-industrial .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-mono-industrial .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(102, 108, 104, 0.50);}.ace-mono-industrial .ace_marker-layer .ace_active_line { background: rgba(12, 13, 12, 0.25);}.ace-mono-industrial .ace_marker-layer .ace_selected_word { border: 1px solid rgba(145, 153, 148, 0.40);}.ace-mono-industrial .ace_invisible { color: rgba(102, 108, 104, 0.50);}.ace-mono-industrial .ace_keyword, .ace-mono-industrial .ace_meta { color:#A39E64;}.ace-mono-industrial .ace_keyword.ace_operator { color:#A8B3AB;}.ace-mono-industrial .ace_constant, .ace-mono-industrial .ace_constant.ace_other { color:#E98800;}.ace-mono-industrial .ace_constant.ace_character, { color:#E98800;}.ace-mono-industrial .ace_constant.ace_character.ace_escape, { color:#E98800;}.ace-mono-industrial .ace_constant.ace_numeric { color:#E98800;}.ace-mono-industrial .ace_invalid { color:#FFFFFF;background-color:rgba(153, 0, 0, 0.68);}.ace-mono-industrial .ace_support.ace_constant { color:#C87500;}.ace-mono-industrial .ace_fold { background-color: #A8B3AB; border-color: #FFFFFF;}.ace-mono-industrial .ace_support.ace_function { color:#588E60;}.ace-mono-industrial .ace_storage { color:#C23B00;}.ace-mono-industrial .ace_variable { color:#A8B3AB;}.ace-mono-industrial .ace_variable.ace_parameter { color:#648BD2;}.ace-mono-industrial .ace_comment { color:#666C68;background-color:#151C19;}.ace-mono-industrial .ace_variable.ace_language { color:#648BD2;}.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name { color:#909993;}.ace-mono-industrial .ace_entity.ace_name { color:#5778B6;}.ace-mono-industrial .ace_entity.ace_name.ace_function { color:#A8B3AB;}.ace-mono-industrial .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/mono_industrial', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-mono-industrial"; +exports.cssText = "\ +.ace-mono-industrial .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-mono-industrial .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-mono-industrial .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-mono-industrial .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-mono-industrial .ace_scroller {\ + background-color: #222C28;\ +}\ +\ +.ace-mono-industrial .ace_text-layer {\ + cursor: text;\ + color: #FFFFFF;\ +}\ +\ +.ace-mono-industrial .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ +}\ +\ +.ace-mono-industrial .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ +}\ +\ +.ace-mono-industrial .ace_marker-layer .ace_selection {\ + background: rgba(145, 153, 148, 0.40);\ +}\ +\ +.ace-mono-industrial.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #222C28;\ + border-radius: 2px;\ +}\ +\ +.ace-mono-industrial .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-mono-industrial .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(102, 108, 104, 0.50);\ +}\ +\ +.ace-mono-industrial .ace_marker-layer .ace_active_line {\ + background: rgba(12, 13, 12, 0.25);\ +}\ +\ +.ace-mono-industrial .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(145, 153, 148, 0.40);\ +}\ +\ +.ace-mono-industrial .ace_invisible {\ + color: rgba(102, 108, 104, 0.50);\ +}\ +\ +.ace-mono-industrial .ace_keyword, .ace-mono-industrial .ace_meta {\ + color:#A39E64;\ +}\ +\ +.ace-mono-industrial .ace_keyword.ace_operator {\ + color:#A8B3AB;\ +}\ +\ +.ace-mono-industrial .ace_constant, .ace-mono-industrial .ace_constant.ace_other {\ + color:#E98800;\ +}\ +\ +.ace-mono-industrial .ace_constant.ace_character, {\ + color:#E98800;\ +}\ +\ +.ace-mono-industrial .ace_constant.ace_character.ace_escape, {\ + color:#E98800;\ +}\ +\ +.ace-mono-industrial .ace_constant.ace_numeric {\ + color:#E98800;\ +}\ +\ +.ace-mono-industrial .ace_invalid {\ + color:#FFFFFF;\ +background-color:rgba(153, 0, 0, 0.68);\ +}\ +\ +.ace-mono-industrial .ace_support.ace_constant {\ + color:#C87500;\ +}\ +\ +.ace-mono-industrial .ace_fold {\ + background-color: #A8B3AB;\ + border-color: #FFFFFF;\ +}\ +\ +.ace-mono-industrial .ace_support.ace_function {\ + color:#588E60;\ +}\ +\ +.ace-mono-industrial .ace_storage {\ + color:#C23B00;\ +}\ +\ +.ace-mono-industrial .ace_variable {\ + color:#A8B3AB;\ +}\ +\ +.ace-mono-industrial .ace_variable.ace_parameter {\ + color:#648BD2;\ +}\ +\ +.ace-mono-industrial .ace_comment {\ + color:#666C68;\ +background-color:#151C19;\ +}\ +\ +.ace-mono-industrial .ace_variable.ace_language {\ + color:#648BD2;\ +}\ +\ +.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\ + color:#909993;\ +}\ +\ +.ace-mono-industrial .ace_entity.ace_name {\ + color:#5778B6;\ +}\ +\ +.ace-mono-industrial .ace_entity.ace_name.ace_function {\ + color:#A8B3AB;\ +}\ +\ +.ace-mono-industrial .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-monokai.js b/build/src/theme-monokai.js index f6b455bc..4f639944 100644 --- a/build/src/theme-monokai.js +++ b/build/src/theme-monokai.js @@ -1 +1,191 @@ -define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-monokai",b.cssText=".ace-monokai .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-monokai .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-monokai .ace_gutter { background: #292a24; color: #f1f1f1;}.ace-monokai .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-monokai .ace_scroller { background-color: #272822;}.ace-monokai .ace_text-layer { cursor: text; color: #F8F8F2;}.ace-monokai .ace_cursor { border-left: 2px solid #F8F8F0;}.ace-monokai .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #F8F8F0;}.ace-monokai .ace_marker-layer .ace_selection { background: #49483E;}.ace-monokai.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #272822; border-radius: 2px;}.ace-monokai .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-monokai .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #49483E;}.ace-monokai .ace_marker-layer .ace_active_line{ background: #49483E;}.ace-monokai .ace_gutter_active_line{ background: #191916;}.ace-monokai .ace_marker-layer .ace_selected_word { border: 1px solid #49483E;}.ace-monokai .ace_invisible { color: #49483E;}.ace-monokai .ace_keyword, .ace-monokai .ace_meta { color:#F92672;}.ace-monokai .ace_constant.ace_language { color:#AE81FF;}.ace-monokai .ace_constant.ace_numeric { color:#AE81FF;}.ace-monokai .ace_constant.ace_other { color:#AE81FF;}.ace-monokai .ace_invalid { color:#F8F8F0;background-color:#F92672;}.ace-monokai .ace_invalid.ace_deprecated { color:#F8F8F0;background-color:#AE81FF;}.ace-monokai .ace_support.ace_constant { color:#66D9EF;}.ace-monokai .ace_fold { background-color: #A6E22E; border-color: #F8F8F2;}.ace-monokai .ace_support.ace_function { color:#66D9EF;}.ace-monokai .ace_storage { color:#F92672;}.ace-monokai .ace_storage.ace_type, .ace-monokai .ace_support.ace_type{ font-style:italic;color:#66D9EF;}.ace-monokai .ace_variable { color:#A6E22E;}.ace-monokai .ace_variable.ace_parameter { font-style:italic;color:#FD971F;}.ace-monokai .ace_string { color:#E6DB74;}.ace-monokai .ace_comment { color:#75715E;}.ace-monokai .ace_entity.ace_other.ace_attribute-name { color:#A6E22E;}.ace-monokai .ace_entity.ace_name.ace_function { color:#A6E22E;}.ace-monokai .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/monokai', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-monokai"; +exports.cssText = "\ +.ace-monokai .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-monokai .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-monokai .ace_gutter {\ + background: #292a24;\ + color: #f1f1f1;\ +}\ +\ +.ace-monokai .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-monokai .ace_scroller {\ + background-color: #272822;\ +}\ +\ +.ace-monokai .ace_text-layer {\ + cursor: text;\ + color: #F8F8F2;\ +}\ +\ +.ace-monokai .ace_cursor {\ + border-left: 2px solid #F8F8F0;\ +}\ +\ +.ace-monokai .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #F8F8F0;\ +}\ +\ +.ace-monokai .ace_marker-layer .ace_selection {\ + background: #49483E;\ +}\ +\ +.ace-monokai.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #272822;\ + border-radius: 2px;\ +}\ +\ +.ace-monokai .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-monokai .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #49483E;\ +}\ +\ +.ace-monokai .ace_marker-layer .ace_active_line{\ + background: #49483E;\ +}\ +.ace-monokai .ace_gutter_active_line{\ + background: #191916;\ +}\ +\ +.ace-monokai .ace_marker-layer .ace_selected_word {\ + border: 1px solid #49483E;\ +}\ +\ +.ace-monokai .ace_invisible {\ + color: #49483E;\ +}\ +\ +.ace-monokai .ace_keyword, .ace-monokai .ace_meta {\ + color:#F92672;\ +}\ +\ +.ace-monokai .ace_constant.ace_language {\ + color:#AE81FF;\ +}\ +\ +.ace-monokai .ace_constant.ace_numeric {\ + color:#AE81FF;\ +}\ +\ +.ace-monokai .ace_constant.ace_other {\ + color:#AE81FF;\ +}\ +\ +.ace-monokai .ace_invalid {\ + color:#F8F8F0;\ +background-color:#F92672;\ +}\ +\ +.ace-monokai .ace_invalid.ace_deprecated {\ + color:#F8F8F0;\ +background-color:#AE81FF;\ +}\ +\ +.ace-monokai .ace_support.ace_constant {\ + color:#66D9EF;\ +}\ +\ +.ace-monokai .ace_fold {\ + background-color: #A6E22E;\ + border-color: #F8F8F2;\ +}\ +\ +.ace-monokai .ace_support.ace_function {\ + color:#66D9EF;\ +}\ +\ +.ace-monokai .ace_storage {\ + color:#F92672;\ +}\ +\ +.ace-monokai .ace_storage.ace_type, .ace-monokai .ace_support.ace_type{\ + font-style:italic;\ +color:#66D9EF;\ +}\ +\ +.ace-monokai .ace_variable {\ + color:#A6E22E;\ +}\ +\ +.ace-monokai .ace_variable.ace_parameter {\ + font-style:italic;\ +color:#FD971F;\ +}\ +\ +.ace-monokai .ace_string {\ + color:#E6DB74;\ +}\ +\ +.ace-monokai .ace_comment {\ + color:#75715E;\ +}\ +\ +.ace-monokai .ace_entity.ace_other.ace_attribute-name {\ + color:#A6E22E;\ +}\ +\ +.ace-monokai .ace_entity.ace_name.ace_function {\ + color:#A6E22E;\ +}\ +\ +.ace-monokai .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-pastel_on_dark.js b/build/src/theme-pastel_on_dark.js index 6748e294..3ab17730 100644 --- a/build/src/theme-pastel_on_dark.js +++ b/build/src/theme-pastel_on_dark.js @@ -1 +1,192 @@ -define("ace/theme/pastel_on_dark",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-pastel-on-dark",b.cssText=".ace-pastel-on-dark .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-pastel-on-dark .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-pastel-on-dark .ace_gutter { background: #e8e8e8; color: #333;}.ace-pastel-on-dark .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-pastel-on-dark .ace_scroller { background-color: #2C2828;}.ace-pastel-on-dark .ace_text-layer { cursor: text; color: #8F938F;}.ace-pastel-on-dark .ace_cursor { border-left: 2px solid #A7A7A7;}.ace-pastel-on-dark .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #A7A7A7;}.ace-pastel-on-dark .ace_marker-layer .ace_selection { background: rgba(221, 240, 255, 0.20);}.ace-pastel-on-dark.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #2C2828; border-radius: 2px;}.ace-pastel-on-dark .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-pastel-on-dark .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(255, 255, 255, 0.25);}.ace-pastel-on-dark .ace_marker-layer .ace_active_line { background: rgba(255, 255, 255, 0.031);}.ace-pastel-on-dark .ace_marker-layer .ace_selected_word { border: 1px solid rgba(221, 240, 255, 0.20);}.ace-pastel-on-dark .ace_invisible { color: rgba(255, 255, 255, 0.25);}.ace-pastel-on-dark .ace_keyword, .ace-pastel-on-dark .ace_meta { color:#757aD8;}.ace-pastel-on-dark .ace_keyword.ace_operator { color:#797878;}.ace-pastel-on-dark .ace_constant, .ace-pastel-on-dark .ace_constant.ace_other { color:#4FB7C5;}.ace-pastel-on-dark .ace_constant.ace_character, { color:#4FB7C5;}.ace-pastel-on-dark .ace_constant.ace_character.ace_escape, { color:#4FB7C5;}.ace-pastel-on-dark .ace_constant.ace_language { color:#DE8E30;}.ace-pastel-on-dark .ace_constant.ace_numeric { color:#CCCCCC;}.ace-pastel-on-dark .ace_invalid { color:#F8F8F8;background-color:rgba(86, 45, 86, 0.75);}.ace-pastel-on-dark .ace_invalid.ace_illegal { color:#F8F8F8;background-color:rgba(86, 45, 86, 0.75);}.ace-pastel-on-dark .ace_invalid.ace_deprecated { text-decoration:underline;font-style:italic;color:#D2A8A1;}.ace-pastel-on-dark .ace_fold { background-color: #757aD8; border-color: #8F938F;}.ace-pastel-on-dark .ace_support.ace_function { color:#AEB2F8;}.ace-pastel-on-dark .ace_string { color:#66A968;}.ace-pastel-on-dark .ace_string.ace_regexp { color:#E9C062;}.ace-pastel-on-dark .ace_comment { color:#A6C6FF;}.ace-pastel-on-dark .ace_variable { color:#BEBF55;}.ace-pastel-on-dark .ace_variable.ace_language { color:#C1C144;}.ace-pastel-on-dark .ace_xml_pe { color:#494949;}.ace-pastel-on-dark .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/pastel_on_dark', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-pastel-on-dark"; +exports.cssText = "\ +.ace-pastel-on-dark .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-pastel-on-dark .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-pastel-on-dark .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-pastel-on-dark .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-pastel-on-dark .ace_scroller {\ + background-color: #2C2828;\ +}\ +\ +.ace-pastel-on-dark .ace_text-layer {\ + cursor: text;\ + color: #8F938F;\ +}\ +\ +.ace-pastel-on-dark .ace_cursor {\ + border-left: 2px solid #A7A7A7;\ +}\ +\ +.ace-pastel-on-dark .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #A7A7A7;\ +}\ +\ +.ace-pastel-on-dark .ace_marker-layer .ace_selection {\ + background: rgba(221, 240, 255, 0.20);\ +}\ +\ +.ace-pastel-on-dark.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #2C2828;\ + border-radius: 2px;\ +}\ +\ +.ace-pastel-on-dark .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(255, 255, 255, 0.25);\ +}\ +\ +.ace-pastel-on-dark .ace_marker-layer .ace_active_line {\ + background: rgba(255, 255, 255, 0.031);\ +}\ +\ +.ace-pastel-on-dark .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(221, 240, 255, 0.20);\ +}\ +\ +.ace-pastel-on-dark .ace_invisible {\ + color: rgba(255, 255, 255, 0.25);\ +}\ +\ +.ace-pastel-on-dark .ace_keyword, .ace-pastel-on-dark .ace_meta {\ + color:#757aD8;\ +}\ +\ +.ace-pastel-on-dark .ace_keyword.ace_operator {\ + color:#797878;\ +}\ +\ +.ace-pastel-on-dark .ace_constant, .ace-pastel-on-dark .ace_constant.ace_other {\ + color:#4FB7C5;\ +}\ +\ +.ace-pastel-on-dark .ace_constant.ace_character, {\ + color:#4FB7C5;\ +}\ +\ +.ace-pastel-on-dark .ace_constant.ace_character.ace_escape, {\ + color:#4FB7C5;\ +}\ +\ +.ace-pastel-on-dark .ace_constant.ace_language {\ + color:#DE8E30;\ +}\ +\ +.ace-pastel-on-dark .ace_constant.ace_numeric {\ + color:#CCCCCC;\ +}\ +\ +.ace-pastel-on-dark .ace_invalid {\ + color:#F8F8F8;\ +background-color:rgba(86, 45, 86, 0.75);\ +}\ +\ +.ace-pastel-on-dark .ace_invalid.ace_illegal {\ + color:#F8F8F8;\ +background-color:rgba(86, 45, 86, 0.75);\ +}\ +\ +.ace-pastel-on-dark .ace_invalid.ace_deprecated {\ + text-decoration:underline;\ +font-style:italic;\ +color:#D2A8A1;\ +}\ +\ +.ace-pastel-on-dark .ace_fold {\ + background-color: #757aD8;\ + border-color: #8F938F;\ +}\ +\ +.ace-pastel-on-dark .ace_support.ace_function {\ + color:#AEB2F8;\ +}\ +\ +.ace-pastel-on-dark .ace_string {\ + color:#66A968;\ +}\ +\ +.ace-pastel-on-dark .ace_string.ace_regexp {\ + color:#E9C062;\ +}\ +\ +.ace-pastel-on-dark .ace_comment {\ + color:#A6C6FF;\ +}\ +\ +.ace-pastel-on-dark .ace_variable {\ + color:#BEBF55;\ +}\ +\ +.ace-pastel-on-dark .ace_variable.ace_language {\ + color:#C1C144;\ +}\ +\ +.ace-pastel-on-dark .ace_xml_pe {\ + color:#494949;\ +}\ +\ +.ace-pastel-on-dark .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-solarized_dark.js b/build/src/theme-solarized_dark.js index 5d266f6b..f96e08e7 100644 --- a/build/src/theme-solarized_dark.js +++ b/build/src/theme-solarized_dark.js @@ -1 +1,176 @@ -define("ace/theme/solarized_dark",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-solarized-dark",b.cssText=".ace-solarized-dark .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-solarized-dark .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-solarized-dark .ace_gutter { background: #09222b; color: #d0edf7;}.ace-solarized-dark .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-solarized-dark .ace_scroller { background-color: #002B36;}.ace-solarized-dark .ace_text-layer { cursor: text; color: #93A1A1;}.ace-solarized-dark .ace_cursor { border-left: 2px solid #D30102;}.ace-solarized-dark .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #D30102;}.ace-solarized-dark .ace_marker-layer .ace_selection { background: #073642;}.ace-solarized-dark.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #002B36; border-radius: 2px;}.ace-solarized-dark .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-solarized-dark .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(147, 161, 161, 0.50);}.ace-solarized-dark .ace_marker-layer .ace_active_line { background: #073642;}.ace-solarized-dark .ace_gutter_active_line{ background: #0d3440;}.ace-solarized-dark .ace_marker-layer .ace_selected_word { border: 1px solid #073642;}.ace-solarized-dark .ace_invisible { color: rgba(147, 161, 161, 0.50);}.ace-solarized-dark .ace_keyword, .ace-solarized-dark .ace_meta { color:#859900;}.ace-solarized-dark .ace_constant.ace_language { color:#B58900;}.ace-solarized-dark .ace_constant.ace_numeric { color:#D33682;}.ace-solarized-dark .ace_constant.ace_other { color:#CB4B16;}.ace-solarized-dark .ace_fold { background-color: #268BD2; border-color: #93A1A1;}.ace-solarized-dark .ace_support.ace_function { color:#268BD2;}.ace-solarized-dark .ace_storage { color:#93A1A1;}.ace-solarized-dark .ace_variable { color:#268BD2;}.ace-solarized-dark .ace_string { color:#2AA198;}.ace-solarized-dark .ace_string.ace_regexp { color:#D30102;}.ace-solarized-dark .ace_comment { font-style:italic;color:#657B83;}.ace-solarized-dark .ace_variable.ace_language { color:#268BD2;}.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name { color:#93A1A1;}.ace-solarized-dark .ace_entity.ace_name.ace_function { color:#268BD2;}.ace-solarized-dark .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/solarized_dark', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-solarized-dark"; +exports.cssText = "\ +.ace-solarized-dark .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-solarized-dark .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-solarized-dark .ace_gutter {\ + background: #09222b;\ + color: #d0edf7;\ +}\ +\ +.ace-solarized-dark .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-solarized-dark .ace_scroller {\ + background-color: #002B36;\ +}\ +\ +.ace-solarized-dark .ace_text-layer {\ + cursor: text;\ + color: #93A1A1;\ +}\ +\ +.ace-solarized-dark .ace_cursor {\ + border-left: 2px solid #D30102;\ +}\ +\ +.ace-solarized-dark .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #D30102;\ +}\ +\ +.ace-solarized-dark .ace_marker-layer .ace_selection {\ + background: #073642;\ +}\ +\ +.ace-solarized-dark.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #002B36;\ + border-radius: 2px;\ +}\ +\ +.ace-solarized-dark .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-solarized-dark .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(147, 161, 161, 0.50);\ +}\ +\ +.ace-solarized-dark .ace_marker-layer .ace_active_line {\ + background: #073642;\ +}\ +.ace-solarized-dark .ace_gutter_active_line{\ + background: #0d3440;\ +}\ +\ +.ace-solarized-dark .ace_marker-layer .ace_selected_word {\ + border: 1px solid #073642;\ +}\ +\ +.ace-solarized-dark .ace_invisible {\ + color: rgba(147, 161, 161, 0.50);\ +}\ +\ +.ace-solarized-dark .ace_keyword, .ace-solarized-dark .ace_meta {\ + color:#859900;\ +}\ +\ +.ace-solarized-dark .ace_constant.ace_language {\ + color:#B58900;\ +}\ +\ +.ace-solarized-dark .ace_constant.ace_numeric {\ + color:#D33682;\ +}\ +\ +.ace-solarized-dark .ace_constant.ace_other {\ + color:#CB4B16;\ +}\ +\ +.ace-solarized-dark .ace_fold {\ + background-color: #268BD2;\ + border-color: #93A1A1;\ +}\ +\ +.ace-solarized-dark .ace_support.ace_function {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-dark .ace_storage {\ + color:#93A1A1;\ +}\ +\ +.ace-solarized-dark .ace_variable {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-dark .ace_string {\ + color:#2AA198;\ +}\ +\ +.ace-solarized-dark .ace_string.ace_regexp {\ + color:#D30102;\ +}\ +\ +.ace-solarized-dark .ace_comment {\ + font-style:italic;\ +color:#657B83;\ +}\ +\ +.ace-solarized-dark .ace_variable.ace_language {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name {\ + color:#93A1A1;\ +}\ +\ +.ace-solarized-dark .ace_entity.ace_name.ace_function {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-dark .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-solarized_light.js b/build/src/theme-solarized_light.js index ec2947d6..f94a799a 100644 --- a/build/src/theme-solarized_light.js +++ b/build/src/theme-solarized_light.js @@ -1 +1,172 @@ -define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssClass="ace-solarized-light",b.cssText=".ace-solarized-light .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-solarized-light .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-solarized-light .ace_gutter { background: #e8e8e8; color: #333;}.ace-solarized-light .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-solarized-light .ace_scroller { background-color: #FDF6E3;}.ace-solarized-light .ace_text-layer { cursor: text; color: #586E75;}.ace-solarized-light .ace_cursor { border-left: 2px solid #000000;}.ace-solarized-light .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #000000;}.ace-solarized-light .ace_marker-layer .ace_selection { background: #073642;}.ace-solarized-light.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #FDF6E3; border-radius: 2px;}.ace-solarized-light .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-solarized-light .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(147, 161, 161, 0.50);}.ace-solarized-light .ace_marker-layer .ace_active_line { background: #EEE8D5;}.ace-solarized-light .ace_marker-layer .ace_selected_word { border: 1px solid #073642;}.ace-solarized-light .ace_invisible { color: rgba(147, 161, 161, 0.50);}.ace-solarized-light .ace_keyword, .ace-solarized-light .ace_meta { color:#859900;}.ace-solarized-light .ace_constant.ace_language { color:#B58900;}.ace-solarized-light .ace_constant.ace_numeric { color:#D33682;}.ace-solarized-light .ace_constant.ace_other { color:#CB4B16;}.ace-solarized-light .ace_fold { background-color: #268BD2; border-color: #586E75;}.ace-solarized-light .ace_support.ace_function { color:#268BD2;}.ace-solarized-light .ace_storage { color:#073642;}.ace-solarized-light .ace_variable { color:#268BD2;}.ace-solarized-light .ace_string { color:#2AA198;}.ace-solarized-light .ace_string.ace_regexp { color:#D30102;}.ace-solarized-light .ace_comment { color:#93A1A1;}.ace-solarized-light .ace_variable.ace_language { color:#268BD2;}.ace-solarized-light .ace_entity.ace_other.ace_attribute-name { color:#93A1A1;}.ace-solarized-light .ace_entity.ace_name.ace_function { color:#268BD2;}.ace-solarized-light .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/solarized_light', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-solarized-light"; +exports.cssText = "\ +.ace-solarized-light .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-solarized-light .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-solarized-light .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-solarized-light .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-solarized-light .ace_scroller {\ + background-color: #FDF6E3;\ +}\ +\ +.ace-solarized-light .ace_text-layer {\ + cursor: text;\ + color: #586E75;\ +}\ +\ +.ace-solarized-light .ace_cursor {\ + border-left: 2px solid #000000;\ +}\ +\ +.ace-solarized-light .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #000000;\ +}\ +\ +.ace-solarized-light .ace_marker-layer .ace_selection {\ + background: #073642;\ +}\ +\ +.ace-solarized-light.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #FDF6E3;\ + border-radius: 2px;\ +}\ +\ +.ace-solarized-light .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-solarized-light .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(147, 161, 161, 0.50);\ +}\ +\ +.ace-solarized-light .ace_marker-layer .ace_active_line {\ + background: #EEE8D5;\ +}\ +\ +.ace-solarized-light .ace_marker-layer .ace_selected_word {\ + border: 1px solid #073642;\ +}\ +\ +.ace-solarized-light .ace_invisible {\ + color: rgba(147, 161, 161, 0.50);\ +}\ +\ +.ace-solarized-light .ace_keyword, .ace-solarized-light .ace_meta {\ + color:#859900;\ +}\ +\ +.ace-solarized-light .ace_constant.ace_language {\ + color:#B58900;\ +}\ +\ +.ace-solarized-light .ace_constant.ace_numeric {\ + color:#D33682;\ +}\ +\ +.ace-solarized-light .ace_constant.ace_other {\ + color:#CB4B16;\ +}\ +\ +.ace-solarized-light .ace_fold {\ + background-color: #268BD2;\ + border-color: #586E75;\ +}\ +\ +.ace-solarized-light .ace_support.ace_function {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-light .ace_storage {\ + color:#073642;\ +}\ +\ +.ace-solarized-light .ace_variable {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-light .ace_string {\ + color:#2AA198;\ +}\ +\ +.ace-solarized-light .ace_string.ace_regexp {\ + color:#D30102;\ +}\ +\ +.ace-solarized-light .ace_comment {\ + color:#93A1A1;\ +}\ +\ +.ace-solarized-light .ace_variable.ace_language {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\ + color:#93A1A1;\ +}\ +\ +.ace-solarized-light .ace_entity.ace_name.ace_function {\ + color:#268BD2;\ +}\ +\ +.ace-solarized-light .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-tomorrow.js b/build/src/theme-tomorrow.js index 9fd233d7..fcecb565 100644 --- a/build/src/theme-tomorrow.js +++ b/build/src/theme-tomorrow.js @@ -1 +1,206 @@ -define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssClass="ace-tomorrow",b.cssText=".ace-tomorrow .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tomorrow .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tomorrow .ace_gutter { background: #e8e8e8; color: #333;}.ace-tomorrow .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tomorrow .ace_scroller { background-color: #FFFFFF;}.ace-tomorrow .ace_text-layer { cursor: text; color: #4D4D4C;}.ace-tomorrow .ace_cursor { border-left: 2px solid #AEAFAD;}.ace-tomorrow .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #AEAFAD;}.ace-tomorrow .ace_marker-layer .ace_selection { background: #D6D6D6;}.ace-tomorrow.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #FFFFFF; border-radius: 2px;}.ace-tomorrow .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-tomorrow .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #D1D1D1;}.ace-tomorrow .ace_marker-layer .ace_active_line { background: #EFEFEF;}.ace-tomorrow .ace_marker-layer .ace_selected_word { border: 1px solid #D6D6D6;}.ace-tomorrow .ace_invisible { color: #D1D1D1;}.ace-tomorrow .ace_keyword, .ace-tomorrow .ace_meta { color:#8959A8;}.ace-tomorrow .ace_keyword.ace_operator { color:#3E999F;}.ace-tomorrow .ace_constant.ace_language { color:#F5871F;}.ace-tomorrow .ace_constant.ace_numeric { color:#F5871F;}.ace-tomorrow .ace_constant.ace_other { color:#666969;}.ace-tomorrow .ace_invalid { color:#FFFFFF;background-color:#C82829;}.ace-tomorrow .ace_invalid.ace_deprecated { color:#FFFFFF;background-color:#8959A8;}.ace-tomorrow .ace_support.ace_constant { color:#F5871F;}.ace-tomorrow .ace_fold { background-color: #4271AE; border-color: #4D4D4C;}.ace-tomorrow .ace_support.ace_function { color:#4271AE;}.ace-tomorrow .ace_storage { color:#8959A8;}.ace-tomorrow .ace_storage.ace_type, .ace-tomorrow .ace_support.ace_type{ color:#8959A8;}.ace-tomorrow .ace_variable { color:#4271AE;}.ace-tomorrow .ace_variable.ace_parameter { color:#F5871F;}.ace-tomorrow .ace_string { color:#718C00;}.ace-tomorrow .ace_string.ace_regexp { color:#C82829;}.ace-tomorrow .ace_comment { color:#8E908C;}.ace-tomorrow .ace_variable { color:#C82829;}.ace-tomorrow .ace_meta.ace_tag { color:#C82829;}.ace-tomorrow .ace_entity.ace_other.ace_attribute-name { color:#C82829;}.ace-tomorrow .ace_entity.ace_name.ace_function { color:#4271AE;}.ace-tomorrow .ace_markup.ace_underline { text-decoration:underline;}.ace-tomorrow .ace_markup.ace_heading { color:#718C00;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/tomorrow', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-tomorrow"; +exports.cssText = "\ +.ace-tomorrow .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-tomorrow .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-tomorrow .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-tomorrow .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-tomorrow .ace_scroller {\ + background-color: #FFFFFF;\ +}\ +\ +.ace-tomorrow .ace_text-layer {\ + cursor: text;\ + color: #4D4D4C;\ +}\ +\ +.ace-tomorrow .ace_cursor {\ + border-left: 2px solid #AEAFAD;\ +}\ +\ +.ace-tomorrow .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #AEAFAD;\ +}\ +\ +.ace-tomorrow .ace_marker-layer .ace_selection {\ + background: #D6D6D6;\ +}\ +\ +.ace-tomorrow.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #FFFFFF;\ + border-radius: 2px;\ +}\ +\ +.ace-tomorrow .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-tomorrow .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #D1D1D1;\ +}\ +\ +.ace-tomorrow .ace_marker-layer .ace_active_line {\ + background: #EFEFEF;\ +}\ +\ +.ace-tomorrow .ace_marker-layer .ace_selected_word {\ + border: 1px solid #D6D6D6;\ +}\ +\ +.ace-tomorrow .ace_invisible {\ + color: #D1D1D1;\ +}\ +\ +.ace-tomorrow .ace_keyword, .ace-tomorrow .ace_meta {\ + color:#8959A8;\ +}\ +\ +.ace-tomorrow .ace_keyword.ace_operator {\ + color:#3E999F;\ +}\ +\ +.ace-tomorrow .ace_constant.ace_language {\ + color:#F5871F;\ +}\ +\ +.ace-tomorrow .ace_constant.ace_numeric {\ + color:#F5871F;\ +}\ +\ +.ace-tomorrow .ace_constant.ace_other {\ + color:#666969;\ +}\ +\ +.ace-tomorrow .ace_invalid {\ + color:#FFFFFF;\ +background-color:#C82829;\ +}\ +\ +.ace-tomorrow .ace_invalid.ace_deprecated {\ + color:#FFFFFF;\ +background-color:#8959A8;\ +}\ +\ +.ace-tomorrow .ace_support.ace_constant {\ + color:#F5871F;\ +}\ +\ +.ace-tomorrow .ace_fold {\ + background-color: #4271AE;\ + border-color: #4D4D4C;\ +}\ +\ +.ace-tomorrow .ace_support.ace_function {\ + color:#4271AE;\ +}\ +\ +.ace-tomorrow .ace_storage {\ + color:#8959A8;\ +}\ +\ +.ace-tomorrow .ace_storage.ace_type, .ace-tomorrow .ace_support.ace_type{\ + color:#8959A8;\ +}\ +\ +.ace-tomorrow .ace_variable {\ + color:#4271AE;\ +}\ +\ +.ace-tomorrow .ace_variable.ace_parameter {\ + color:#F5871F;\ +}\ +\ +.ace-tomorrow .ace_string {\ + color:#718C00;\ +}\ +\ +.ace-tomorrow .ace_string.ace_regexp {\ + color:#C82829;\ +}\ +\ +.ace-tomorrow .ace_comment {\ + color:#8E908C;\ +}\ +\ +.ace-tomorrow .ace_variable {\ + color:#C82829;\ +}\ +\ +.ace-tomorrow .ace_meta.ace_tag {\ + color:#C82829;\ +}\ +\ +.ace-tomorrow .ace_entity.ace_other.ace_attribute-name {\ + color:#C82829;\ +}\ +\ +.ace-tomorrow .ace_entity.ace_name.ace_function {\ + color:#4271AE;\ +}\ +\ +.ace-tomorrow .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-tomorrow .ace_markup.ace_heading {\ + color:#718C00;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-tomorrow_night.js b/build/src/theme-tomorrow_night.js index 746ee82a..a5a774f3 100644 --- a/build/src/theme-tomorrow_night.js +++ b/build/src/theme-tomorrow_night.js @@ -1 +1,206 @@ -define("ace/theme/tomorrow_night",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-tomorrow-night",b.cssText=".ace-tomorrow-night .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tomorrow-night .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tomorrow-night .ace_gutter { background: #e8e8e8; color: #333;}.ace-tomorrow-night .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tomorrow-night .ace_scroller { background-color: #1D1F21;}.ace-tomorrow-night .ace_text-layer { cursor: text; color: #C5C8C6;}.ace-tomorrow-night .ace_cursor { border-left: 2px solid #AEAFAD;}.ace-tomorrow-night .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #AEAFAD;}.ace-tomorrow-night .ace_marker-layer .ace_selection { background: #373B41;}.ace-tomorrow-night.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #1D1F21; border-radius: 2px;}.ace-tomorrow-night .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-tomorrow-night .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #4B4E55;}.ace-tomorrow-night .ace_marker-layer .ace_active_line { background: #282A2E;}.ace-tomorrow-night .ace_marker-layer .ace_selected_word { border: 1px solid #373B41;}.ace-tomorrow-night .ace_invisible { color: #4B4E55;}.ace-tomorrow-night .ace_keyword, .ace-tomorrow-night .ace_meta { color:#B294BB;}.ace-tomorrow-night .ace_keyword.ace_operator { color:#8ABEB7;}.ace-tomorrow-night .ace_constant.ace_language { color:#DE935F;}.ace-tomorrow-night .ace_constant.ace_numeric { color:#DE935F;}.ace-tomorrow-night .ace_constant.ace_other { color:#CED1CF;}.ace-tomorrow-night .ace_invalid { color:#CED2CF;background-color:#DF5F5F;}.ace-tomorrow-night .ace_invalid.ace_deprecated { color:#CED2CF;background-color:#B798BF;}.ace-tomorrow-night .ace_support.ace_constant { color:#DE935F;}.ace-tomorrow-night .ace_fold { background-color: #81A2BE; border-color: #C5C8C6;}.ace-tomorrow-night .ace_support.ace_function { color:#81A2BE;}.ace-tomorrow-night .ace_storage { color:#B294BB;}.ace-tomorrow-night .ace_storage.ace_type, .ace-tomorrow-night .ace_support.ace_type{ color:#B294BB;}.ace-tomorrow-night .ace_variable { color:#81A2BE;}.ace-tomorrow-night .ace_variable.ace_parameter { color:#DE935F;}.ace-tomorrow-night .ace_string { color:#B5BD68;}.ace-tomorrow-night .ace_string.ace_regexp { color:#CC6666;}.ace-tomorrow-night .ace_comment { color:#969896;}.ace-tomorrow-night .ace_variable { color:#CC6666;}.ace-tomorrow-night .ace_meta.ace_tag { color:#CC6666;}.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name { color:#CC6666;}.ace-tomorrow-night .ace_entity.ace_name.ace_function { color:#81A2BE;}.ace-tomorrow-night .ace_markup.ace_underline { text-decoration:underline;}.ace-tomorrow-night .ace_markup.ace_heading { color:#B5BD68;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/tomorrow_night', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night"; +exports.cssText = "\ +.ace-tomorrow-night .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-tomorrow-night .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-tomorrow-night .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-tomorrow-night .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-tomorrow-night .ace_scroller {\ + background-color: #1D1F21;\ +}\ +\ +.ace-tomorrow-night .ace_text-layer {\ + cursor: text;\ + color: #C5C8C6;\ +}\ +\ +.ace-tomorrow-night .ace_cursor {\ + border-left: 2px solid #AEAFAD;\ +}\ +\ +.ace-tomorrow-night .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #AEAFAD;\ +}\ +\ +.ace-tomorrow-night .ace_marker-layer .ace_selection {\ + background: #373B41;\ +}\ +\ +.ace-tomorrow-night.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #1D1F21;\ + border-radius: 2px;\ +}\ +\ +.ace-tomorrow-night .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-tomorrow-night .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #4B4E55;\ +}\ +\ +.ace-tomorrow-night .ace_marker-layer .ace_active_line {\ + background: #282A2E;\ +}\ +\ +.ace-tomorrow-night .ace_marker-layer .ace_selected_word {\ + border: 1px solid #373B41;\ +}\ +\ +.ace-tomorrow-night .ace_invisible {\ + color: #4B4E55;\ +}\ +\ +.ace-tomorrow-night .ace_keyword, .ace-tomorrow-night .ace_meta {\ + color:#B294BB;\ +}\ +\ +.ace-tomorrow-night .ace_keyword.ace_operator {\ + color:#8ABEB7;\ +}\ +\ +.ace-tomorrow-night .ace_constant.ace_language {\ + color:#DE935F;\ +}\ +\ +.ace-tomorrow-night .ace_constant.ace_numeric {\ + color:#DE935F;\ +}\ +\ +.ace-tomorrow-night .ace_constant.ace_other {\ + color:#CED1CF;\ +}\ +\ +.ace-tomorrow-night .ace_invalid {\ + color:#CED2CF;\ +background-color:#DF5F5F;\ +}\ +\ +.ace-tomorrow-night .ace_invalid.ace_deprecated {\ + color:#CED2CF;\ +background-color:#B798BF;\ +}\ +\ +.ace-tomorrow-night .ace_support.ace_constant {\ + color:#DE935F;\ +}\ +\ +.ace-tomorrow-night .ace_fold {\ + background-color: #81A2BE;\ + border-color: #C5C8C6;\ +}\ +\ +.ace-tomorrow-night .ace_support.ace_function {\ + color:#81A2BE;\ +}\ +\ +.ace-tomorrow-night .ace_storage {\ + color:#B294BB;\ +}\ +\ +.ace-tomorrow-night .ace_storage.ace_type, .ace-tomorrow-night .ace_support.ace_type{\ + color:#B294BB;\ +}\ +\ +.ace-tomorrow-night .ace_variable {\ + color:#81A2BE;\ +}\ +\ +.ace-tomorrow-night .ace_variable.ace_parameter {\ + color:#DE935F;\ +}\ +\ +.ace-tomorrow-night .ace_string {\ + color:#B5BD68;\ +}\ +\ +.ace-tomorrow-night .ace_string.ace_regexp {\ + color:#CC6666;\ +}\ +\ +.ace-tomorrow-night .ace_comment {\ + color:#969896;\ +}\ +\ +.ace-tomorrow-night .ace_variable {\ + color:#CC6666;\ +}\ +\ +.ace-tomorrow-night .ace_meta.ace_tag {\ + color:#CC6666;\ +}\ +\ +.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name {\ + color:#CC6666;\ +}\ +\ +.ace-tomorrow-night .ace_entity.ace_name.ace_function {\ + color:#81A2BE;\ +}\ +\ +.ace-tomorrow-night .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-tomorrow-night .ace_markup.ace_heading {\ + color:#B5BD68;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-tomorrow_night_blue.js b/build/src/theme-tomorrow_night_blue.js index 252a4fdd..7c014296 100644 --- a/build/src/theme-tomorrow_night_blue.js +++ b/build/src/theme-tomorrow_night_blue.js @@ -1 +1,209 @@ -define("ace/theme/tomorrow_night_blue",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-tomorrow-night-blue",b.cssText=".ace-tomorrow-night-blue .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tomorrow-night-blue .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tomorrow-night-blue .ace_gutter { background: #022346; color: #7388b5;}.ace-tomorrow-night-blue .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tomorrow-night-blue .ace_scroller { background-color: #002451;}.ace-tomorrow-night-blue .ace_text-layer { cursor: text; color: #FFFFFF;}.ace-tomorrow-night-blue .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-tomorrow-night-blue .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;}.ace-tomorrow-night-blue .ace_marker-layer .ace_selection { background: #003F8E;}.ace-tomorrow-night-blue.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #002451; border-radius: 2px;}.ace-tomorrow-night-blue .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #404F7D;}.ace-tomorrow-night-blue .ace_marker-layer .ace_active_line{ background: #00346E;}.ace-tomorrow-night-blue .ace_gutter_active_line{ background: #022040;}.ace-tomorrow-night-blue .ace_marker-layer .ace_selected_word { border: 1px solid #003F8E;}.ace-tomorrow-night-blue .ace_invisible { color: #404F7D;}.ace-tomorrow-night-blue .ace_keyword, .ace-tomorrow-night-blue .ace_meta { color:#EBBBFF;}.ace-tomorrow-night-blue .ace_keyword.ace_operator { color:#99FFFF;}.ace-tomorrow-night-blue .ace_constant.ace_language { color:#FFC58F;}.ace-tomorrow-night-blue .ace_constant.ace_numeric { color:#FFC58F;}.ace-tomorrow-night-blue .ace_constant.ace_other { color:#FFFFFF;}.ace-tomorrow-night-blue .ace_invalid { color:#FFFFFF;background-color:#F99DA5;}.ace-tomorrow-night-blue .ace_invalid.ace_deprecated { color:#FFFFFF;background-color:#EBBBFF;}.ace-tomorrow-night-blue .ace_support.ace_constant { color:#FFC58F;}.ace-tomorrow-night-blue .ace_fold { background-color: #BBDAFF; border-color: #FFFFFF;}.ace-tomorrow-night-blue .ace_support.ace_function { color:#BBDAFF;}.ace-tomorrow-night-blue .ace_storage { color:#EBBBFF;}.ace-tomorrow-night-blue .ace_storage.ace_type, .ace-tomorrow-night-blue .ace_support.ace_type{ color:#EBBBFF;}.ace-tomorrow-night-blue .ace_variable { color:#BBDAFF;}.ace-tomorrow-night-blue .ace_variable.ace_parameter { color:#FFC58F;}.ace-tomorrow-night-blue .ace_string { color:#D1F1A9;}.ace-tomorrow-night-blue .ace_string.ace_regexp { color:#FF9DA4;}.ace-tomorrow-night-blue .ace_comment { color:#7285B7;}.ace-tomorrow-night-blue .ace_variable { color:#FF9DA4;}.ace-tomorrow-night-blue .ace_meta.ace_tag { color:#FF9DA4;}.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name { color:#FF9DA4;}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function { color:#BBDAFF;}.ace-tomorrow-night-blue .ace_markup.ace_underline { text-decoration:underline;}.ace-tomorrow-night-blue .ace_markup.ace_heading { color:#D1F1A9;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/tomorrow_night_blue', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-blue"; +exports.cssText = "\ +.ace-tomorrow-night-blue .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-tomorrow-night-blue .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-tomorrow-night-blue .ace_gutter {\ + background: #022346;\ + color: #7388b5;\ +}\ +\ +.ace-tomorrow-night-blue .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-tomorrow-night-blue .ace_scroller {\ + background-color: #002451;\ +}\ +\ +.ace-tomorrow-night-blue .ace_text-layer {\ + cursor: text;\ + color: #FFFFFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {\ + background: #003F8E;\ +}\ +\ +.ace-tomorrow-night-blue.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #002451;\ + border-radius: 2px;\ +}\ +\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #404F7D;\ +}\ +\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_active_line{\ + background: #00346E;\ +}\ +.ace-tomorrow-night-blue .ace_gutter_active_line{\ + background: #022040;\ +}\ +\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_selected_word {\ + border: 1px solid #003F8E;\ +}\ +\ +.ace-tomorrow-night-blue .ace_invisible {\ + color: #404F7D;\ +}\ +\ +.ace-tomorrow-night-blue .ace_keyword, .ace-tomorrow-night-blue .ace_meta {\ + color:#EBBBFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_keyword.ace_operator {\ + color:#99FFFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_constant.ace_language {\ + color:#FFC58F;\ +}\ +\ +.ace-tomorrow-night-blue .ace_constant.ace_numeric {\ + color:#FFC58F;\ +}\ +\ +.ace-tomorrow-night-blue .ace_constant.ace_other {\ + color:#FFFFFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_invalid {\ + color:#FFFFFF;\ +background-color:#F99DA5;\ +}\ +\ +.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {\ + color:#FFFFFF;\ +background-color:#EBBBFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_support.ace_constant {\ + color:#FFC58F;\ +}\ +\ +.ace-tomorrow-night-blue .ace_fold {\ + background-color: #BBDAFF;\ + border-color: #FFFFFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_support.ace_function {\ + color:#BBDAFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_storage {\ + color:#EBBBFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_storage.ace_type, .ace-tomorrow-night-blue .ace_support.ace_type{\ + color:#EBBBFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_variable {\ + color:#BBDAFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_variable.ace_parameter {\ + color:#FFC58F;\ +}\ +\ +.ace-tomorrow-night-blue .ace_string {\ + color:#D1F1A9;\ +}\ +\ +.ace-tomorrow-night-blue .ace_string.ace_regexp {\ + color:#FF9DA4;\ +}\ +\ +.ace-tomorrow-night-blue .ace_comment {\ + color:#7285B7;\ +}\ +\ +.ace-tomorrow-night-blue .ace_variable {\ + color:#FF9DA4;\ +}\ +\ +.ace-tomorrow-night-blue .ace_meta.ace_tag {\ + color:#FF9DA4;\ +}\ +\ +.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name {\ + color:#FF9DA4;\ +}\ +\ +.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function {\ + color:#BBDAFF;\ +}\ +\ +.ace-tomorrow-night-blue .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-tomorrow-night-blue .ace_markup.ace_heading {\ + color:#D1F1A9;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-tomorrow_night_bright.js b/build/src/theme-tomorrow_night_bright.js index 0566de08..7d93bee4 100644 --- a/build/src/theme-tomorrow_night_bright.js +++ b/build/src/theme-tomorrow_night_bright.js @@ -1 +1,206 @@ -define("ace/theme/tomorrow_night_bright",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-tomorrow-night-bright",b.cssText=".ace-tomorrow-night-bright .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tomorrow-night-bright .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tomorrow-night-bright .ace_gutter { background: #e8e8e8; color: #333;}.ace-tomorrow-night-bright .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tomorrow-night-bright .ace_scroller { background-color: #000000;}.ace-tomorrow-night-bright .ace_text-layer { cursor: text; color: #DEDEDE;}.ace-tomorrow-night-bright .ace_cursor { border-left: 2px solid #9F9F9F;}.ace-tomorrow-night-bright .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #9F9F9F;}.ace-tomorrow-night-bright .ace_marker-layer .ace_selection { background: #424242;}.ace-tomorrow-night-bright.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #000000; border-radius: 2px;}.ace-tomorrow-night-bright .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #343434;}.ace-tomorrow-night-bright .ace_marker-layer .ace_active_line { background: #2A2A2A;}.ace-tomorrow-night-bright .ace_marker-layer .ace_selected_word { border: 1px solid #424242;}.ace-tomorrow-night-bright .ace_invisible { color: #343434;}.ace-tomorrow-night-bright .ace_keyword, .ace-tomorrow-night-bright .ace_meta { color:#C397D8;}.ace-tomorrow-night-bright .ace_keyword.ace_operator { color:#70C0B1;}.ace-tomorrow-night-bright .ace_constant.ace_language { color:#E78C45;}.ace-tomorrow-night-bright .ace_constant.ace_numeric { color:#E78C45;}.ace-tomorrow-night-bright .ace_constant.ace_other { color:#EEEEEE;}.ace-tomorrow-night-bright .ace_invalid { color:#CED2CF;background-color:#DF5F5F;}.ace-tomorrow-night-bright .ace_invalid.ace_deprecated { color:#CED2CF;background-color:#B798BF;}.ace-tomorrow-night-bright .ace_support.ace_constant { color:#E78C45;}.ace-tomorrow-night-bright .ace_fold { background-color: #7AA6DA; border-color: #DEDEDE;}.ace-tomorrow-night-bright .ace_support.ace_function { color:#7AA6DA;}.ace-tomorrow-night-bright .ace_storage { color:#C397D8;}.ace-tomorrow-night-bright .ace_storage.ace_type, .ace-tomorrow-night-bright .ace_support.ace_type{ color:#C397D8;}.ace-tomorrow-night-bright .ace_variable { color:#7AA6DA;}.ace-tomorrow-night-bright .ace_variable.ace_parameter { color:#E78C45;}.ace-tomorrow-night-bright .ace_string { color:#B9CA4A;}.ace-tomorrow-night-bright .ace_string.ace_regexp { color:#D54E53;}.ace-tomorrow-night-bright .ace_comment { color:#969896;}.ace-tomorrow-night-bright .ace_variable { color:#D54E53;}.ace-tomorrow-night-bright .ace_meta.ace_tag { color:#D54E53;}.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name { color:#D54E53;}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function { color:#7AA6DA;}.ace-tomorrow-night-bright .ace_markup.ace_underline { text-decoration:underline;}.ace-tomorrow-night-bright .ace_markup.ace_heading { color:#B9CA4A;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/tomorrow_night_bright', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-bright"; +exports.cssText = "\ +.ace-tomorrow-night-bright .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-tomorrow-night-bright .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-tomorrow-night-bright .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-tomorrow-night-bright .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-tomorrow-night-bright .ace_scroller {\ + background-color: #000000;\ +}\ +\ +.ace-tomorrow-night-bright .ace_text-layer {\ + cursor: text;\ + color: #DEDEDE;\ +}\ +\ +.ace-tomorrow-night-bright .ace_cursor {\ + border-left: 2px solid #9F9F9F;\ +}\ +\ +.ace-tomorrow-night-bright .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #9F9F9F;\ +}\ +\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {\ + background: #424242;\ +}\ +\ +.ace-tomorrow-night-bright.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #000000;\ + border-radius: 2px;\ +}\ +\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #343434;\ +}\ +\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_active_line {\ + background: #2A2A2A;\ +}\ +\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_selected_word {\ + border: 1px solid #424242;\ +}\ +\ +.ace-tomorrow-night-bright .ace_invisible {\ + color: #343434;\ +}\ +\ +.ace-tomorrow-night-bright .ace_keyword, .ace-tomorrow-night-bright .ace_meta {\ + color:#C397D8;\ +}\ +\ +.ace-tomorrow-night-bright .ace_keyword.ace_operator {\ + color:#70C0B1;\ +}\ +\ +.ace-tomorrow-night-bright .ace_constant.ace_language {\ + color:#E78C45;\ +}\ +\ +.ace-tomorrow-night-bright .ace_constant.ace_numeric {\ + color:#E78C45;\ +}\ +\ +.ace-tomorrow-night-bright .ace_constant.ace_other {\ + color:#EEEEEE;\ +}\ +\ +.ace-tomorrow-night-bright .ace_invalid {\ + color:#CED2CF;\ +background-color:#DF5F5F;\ +}\ +\ +.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {\ + color:#CED2CF;\ +background-color:#B798BF;\ +}\ +\ +.ace-tomorrow-night-bright .ace_support.ace_constant {\ + color:#E78C45;\ +}\ +\ +.ace-tomorrow-night-bright .ace_fold {\ + background-color: #7AA6DA;\ + border-color: #DEDEDE;\ +}\ +\ +.ace-tomorrow-night-bright .ace_support.ace_function {\ + color:#7AA6DA;\ +}\ +\ +.ace-tomorrow-night-bright .ace_storage {\ + color:#C397D8;\ +}\ +\ +.ace-tomorrow-night-bright .ace_storage.ace_type, .ace-tomorrow-night-bright .ace_support.ace_type{\ + color:#C397D8;\ +}\ +\ +.ace-tomorrow-night-bright .ace_variable {\ + color:#7AA6DA;\ +}\ +\ +.ace-tomorrow-night-bright .ace_variable.ace_parameter {\ + color:#E78C45;\ +}\ +\ +.ace-tomorrow-night-bright .ace_string {\ + color:#B9CA4A;\ +}\ +\ +.ace-tomorrow-night-bright .ace_string.ace_regexp {\ + color:#D54E53;\ +}\ +\ +.ace-tomorrow-night-bright .ace_comment {\ + color:#969896;\ +}\ +\ +.ace-tomorrow-night-bright .ace_variable {\ + color:#D54E53;\ +}\ +\ +.ace-tomorrow-night-bright .ace_meta.ace_tag {\ + color:#D54E53;\ +}\ +\ +.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name {\ + color:#D54E53;\ +}\ +\ +.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function {\ + color:#7AA6DA;\ +}\ +\ +.ace-tomorrow-night-bright .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-tomorrow-night-bright .ace_markup.ace_heading {\ + color:#B9CA4A;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-tomorrow_night_eighties.js b/build/src/theme-tomorrow_night_eighties.js index 21cb7436..9b24b0e5 100644 --- a/build/src/theme-tomorrow_night_eighties.js +++ b/build/src/theme-tomorrow_night_eighties.js @@ -1 +1,202 @@ -define("ace/theme/tomorrow_night_eighties",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-tomorrow-night-eighties",b.cssText=".ace-tomorrow-night-eighties .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-tomorrow-night-eighties .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-tomorrow-night-eighties .ace_gutter { background: #e8e8e8; color: #333;}.ace-tomorrow-night-eighties .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-tomorrow-night-eighties .ace_scroller { background-color: #2D2D2D;}.ace-tomorrow-night-eighties .ace_text-layer { cursor: text; color: #CCCCCC;}.ace-tomorrow-night-eighties .ace_cursor { border-left: 2px solid #CCCCCC;}.ace-tomorrow-night-eighties .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #CCCCCC;}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection { background: #515151;}.ace-tomorrow-night-eighties.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #2D2D2D; border-radius: 2px;}.ace-tomorrow-night-eighties .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #6A6A6A;}.ace-tomorrow-night-eighties .ace_marker-layer .ace_active_line { background: #393939;}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected_word { border: 1px solid #515151;}.ace-tomorrow-night-eighties .ace_invisible { color: #6A6A6A;}.ace-tomorrow-night-eighties .ace_keyword, .ace-tomorrow-night-eighties .ace_meta { color:#CC99CC;}.ace-tomorrow-night-eighties .ace_keyword.ace_operator { color:#66CCCC;}.ace-tomorrow-night-eighties .ace_constant.ace_language { color:#F99157;}.ace-tomorrow-night-eighties .ace_constant.ace_numeric { color:#F99157;}.ace-tomorrow-night-eighties .ace_constant.ace_other { color:#CCCCCC;}.ace-tomorrow-night-eighties .ace_invalid { color:#CDCDCD;background-color:#F2777A;}.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated { color:#CDCDCD;background-color:#CC99CC;}.ace-tomorrow-night-eighties .ace_support.ace_constant { color:#F99157;}.ace-tomorrow-night-eighties .ace_fold { background-color: #6699CC; border-color: #CCCCCC;}.ace-tomorrow-night-eighties .ace_support.ace_function { color:#6699CC;}.ace-tomorrow-night-eighties .ace_storage { color:#CC99CC;}.ace-tomorrow-night-eighties .ace_storage.ace_type, .ace-tomorrow-night-eighties .ace_support.ace_type{ color:#CC99CC;}.ace-tomorrow-night-eighties .ace_variable { color:#6699CC;}.ace-tomorrow-night-eighties .ace_variable.ace_parameter { color:#F99157;}.ace-tomorrow-night-eighties .ace_string { color:#99CC99;}.ace-tomorrow-night-eighties .ace_comment { color:#999999;}.ace-tomorrow-night-eighties .ace_variable { color:#F2777A;}.ace-tomorrow-night-eighties .ace_meta.ace_tag { color:#F2777A;}.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name { color:#F2777A;}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function { color:#6699CC;}.ace-tomorrow-night-eighties .ace_markup.ace_underline { text-decoration:underline;}.ace-tomorrow-night-eighties .ace_markup.ace_heading { color:#99CC99;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/tomorrow_night_eighties', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-eighties"; +exports.cssText = "\ +.ace-tomorrow-night-eighties .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-tomorrow-night-eighties .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_scroller {\ + background-color: #2D2D2D;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_text-layer {\ + cursor: text;\ + color: #CCCCCC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_cursor {\ + border-left: 2px solid #CCCCCC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #CCCCCC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {\ + background: #515151;\ +}\ +\ +.ace-tomorrow-night-eighties.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #2D2D2D;\ + border-radius: 2px;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #6A6A6A;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_active_line {\ + background: #393939;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected_word {\ + border: 1px solid #515151;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_invisible {\ + color: #6A6A6A;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_keyword, .ace-tomorrow-night-eighties .ace_meta {\ + color:#CC99CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_keyword.ace_operator {\ + color:#66CCCC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_constant.ace_language {\ + color:#F99157;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_constant.ace_numeric {\ + color:#F99157;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_constant.ace_other {\ + color:#CCCCCC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_invalid {\ + color:#CDCDCD;\ +background-color:#F2777A;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {\ + color:#CDCDCD;\ +background-color:#CC99CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_support.ace_constant {\ + color:#F99157;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_fold {\ + background-color: #6699CC;\ + border-color: #CCCCCC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_support.ace_function {\ + color:#6699CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_storage {\ + color:#CC99CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_storage.ace_type, .ace-tomorrow-night-eighties .ace_support.ace_type{\ + color:#CC99CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_variable {\ + color:#6699CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_variable.ace_parameter {\ + color:#F99157;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_string {\ + color:#99CC99;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_comment {\ + color:#999999;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_variable {\ + color:#F2777A;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_meta.ace_tag {\ + color:#F2777A;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name {\ + color:#F2777A;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function {\ + color:#6699CC;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-tomorrow-night-eighties .ace_markup.ace_heading {\ + color:#99CC99;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-twilight.js b/build/src/theme-twilight.js index fa5b43d7..72cd8ec6 100644 --- a/build/src/theme-twilight.js +++ b/build/src/theme-twilight.js @@ -1 +1,204 @@ -define("ace/theme/twilight",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-twilight",b.cssText=".ace-twilight .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-twilight .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-twilight .ace_gutter { background: #e8e8e8; color: #333;}.ace-twilight .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-twilight .ace_scroller { background-color: #141414;}.ace-twilight .ace_text-layer { cursor: text; color: #F8F8F8;}.ace-twilight .ace_cursor { border-left: 2px solid #A7A7A7;}.ace-twilight .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #A7A7A7;}.ace-twilight .ace_marker-layer .ace_selection { background: rgba(221, 240, 255, 0.20);}.ace-twilight.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #141414; border-radius: 2px;}.ace-twilight .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-twilight .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgba(255, 255, 255, 0.25);}.ace-twilight .ace_marker-layer .ace_active_line { background: rgba(255, 255, 255, 0.031);}.ace-twilight .ace_marker-layer .ace_selected_word { border: 1px solid rgba(221, 240, 255, 0.20);}.ace-twilight .ace_invisible { color: rgba(255, 255, 255, 0.25);}.ace-twilight .ace_keyword, .ace-twilight .ace_meta { color:#CDA869;}.ace-twilight .ace_constant, .ace-twilight .ace_constant.ace_other { color:#CF6A4C;}.ace-twilight .ace_constant.ace_character, { color:#CF6A4C;}.ace-twilight .ace_constant.ace_character.ace_escape, { color:#CF6A4C;}.ace-twilight .ace_invalid.ace_illegal { color:#F8F8F8;background-color:rgba(86, 45, 86, 0.75);}.ace-twilight .ace_invalid.ace_deprecated { text-decoration:underline;font-style:italic;color:#D2A8A1;}.ace-twilight .ace_support { color:#9B859D;}.ace-twilight .ace_support.ace_constant { color:#CF6A4C;}.ace-twilight .ace_fold { background-color: #AC885B; border-color: #F8F8F8;}.ace-twilight .ace_support.ace_function { color:#DAD085;}.ace-twilight .ace_storage { color:#F9EE98;}.ace-twilight .ace_variable { color:#AC885B;}.ace-twilight .ace_string { color:#8F9D6A;}.ace-twilight .ace_string.ace_regexp { color:#E9C062;}.ace-twilight .ace_comment { font-style:italic;color:#5F5A60;}.ace-twilight .ace_variable { color:#7587A6;}.ace-twilight .ace_xml_pe { color:#494949;}.ace-twilight .ace_meta.ace_tag { color:#AC885B;}.ace-twilight .ace_entity.ace_name.ace_function { color:#AC885B;}.ace-twilight .ace_markup.ace_underline { text-decoration:underline;}.ace-twilight .ace_markup.ace_heading { color:#CF6A4C;}.ace-twilight .ace_markup.ace_list { color:#F9EE98;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/twilight', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-twilight"; +exports.cssText = "\ +.ace-twilight .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-twilight .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-twilight .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-twilight .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-twilight .ace_scroller {\ + background-color: #141414;\ +}\ +\ +.ace-twilight .ace_text-layer {\ + cursor: text;\ + color: #F8F8F8;\ +}\ +\ +.ace-twilight .ace_cursor {\ + border-left: 2px solid #A7A7A7;\ +}\ +\ +.ace-twilight .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #A7A7A7;\ +}\ +\ +.ace-twilight .ace_marker-layer .ace_selection {\ + background: rgba(221, 240, 255, 0.20);\ +}\ +\ +.ace-twilight.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #141414;\ + border-radius: 2px;\ +}\ +\ +.ace-twilight .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-twilight .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid rgba(255, 255, 255, 0.25);\ +}\ +\ +.ace-twilight .ace_marker-layer .ace_active_line {\ + background: rgba(255, 255, 255, 0.031);\ +}\ +\ +.ace-twilight .ace_marker-layer .ace_selected_word {\ + border: 1px solid rgba(221, 240, 255, 0.20);\ +}\ +\ +.ace-twilight .ace_invisible {\ + color: rgba(255, 255, 255, 0.25);\ +}\ +\ +.ace-twilight .ace_keyword, .ace-twilight .ace_meta {\ + color:#CDA869;\ +}\ +\ +.ace-twilight .ace_constant, .ace-twilight .ace_constant.ace_other {\ + color:#CF6A4C;\ +}\ +\ +.ace-twilight .ace_constant.ace_character, {\ + color:#CF6A4C;\ +}\ +\ +.ace-twilight .ace_constant.ace_character.ace_escape, {\ + color:#CF6A4C;\ +}\ +\ +.ace-twilight .ace_invalid.ace_illegal {\ + color:#F8F8F8;\ +background-color:rgba(86, 45, 86, 0.75);\ +}\ +\ +.ace-twilight .ace_invalid.ace_deprecated {\ + text-decoration:underline;\ +font-style:italic;\ +color:#D2A8A1;\ +}\ +\ +.ace-twilight .ace_support {\ + color:#9B859D;\ +}\ +\ +.ace-twilight .ace_support.ace_constant {\ + color:#CF6A4C;\ +}\ +\ +.ace-twilight .ace_fold {\ + background-color: #AC885B;\ + border-color: #F8F8F8;\ +}\ +\ +.ace-twilight .ace_support.ace_function {\ + color:#DAD085;\ +}\ +\ +.ace-twilight .ace_storage {\ + color:#F9EE98;\ +}\ +\ +.ace-twilight .ace_variable {\ + color:#AC885B;\ +}\ +\ +.ace-twilight .ace_string {\ + color:#8F9D6A;\ +}\ +\ +.ace-twilight .ace_string.ace_regexp {\ + color:#E9C062;\ +}\ +\ +.ace-twilight .ace_comment {\ + font-style:italic;\ +color:#5F5A60;\ +}\ +\ +.ace-twilight .ace_variable {\ + color:#7587A6;\ +}\ +\ +.ace-twilight .ace_xml_pe {\ + color:#494949;\ +}\ +\ +.ace-twilight .ace_meta.ace_tag {\ + color:#AC885B;\ +}\ +\ +.ace-twilight .ace_entity.ace_name.ace_function {\ + color:#AC885B;\ +}\ +\ +.ace-twilight .ace_markup.ace_underline {\ + text-decoration:underline;\ +}\ +\ +.ace-twilight .ace_markup.ace_heading {\ + color:#CF6A4C;\ +}\ +\ +.ace-twilight .ace_markup.ace_list {\ + color:#F9EE98;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/theme-vibrant_ink.js b/build/src/theme-vibrant_ink.js index 77d87ef2..6c0e27c8 100644 --- a/build/src/theme-vibrant_ink.js +++ b/build/src/theme-vibrant_ink.js @@ -1 +1,183 @@ -define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-vibrant-ink",b.cssText=".ace-vibrant-ink .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-vibrant-ink .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-vibrant-ink .ace_gutter { background: #e8e8e8; color: #333;}.ace-vibrant-ink .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-vibrant-ink .ace_scroller { background-color: #0F0F0F;}.ace-vibrant-ink .ace_text-layer { cursor: text; color: #FFFFFF;}.ace-vibrant-ink .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-vibrant-ink .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;}.ace-vibrant-ink .ace_marker-layer .ace_selection { background: #6699CC;}.ace-vibrant-ink.multiselect .ace_selection.start { box-shadow: 0 0 3px 0px #0F0F0F; border-radius: 2px;}.ace-vibrant-ink .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-vibrant-ink .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #404040;}.ace-vibrant-ink .ace_marker-layer .ace_active_line { background: #333333;}.ace-vibrant-ink .ace_marker-layer .ace_selected_word { border: 1px solid #6699CC;}.ace-vibrant-ink .ace_invisible { color: #404040;}.ace-vibrant-ink .ace_keyword, .ace-vibrant-ink .ace_meta { color:#FF6600;}.ace-vibrant-ink .ace_constant, .ace-vibrant-ink .ace_constant.ace_other { color:#339999;}.ace-vibrant-ink .ace_constant.ace_character, { color:#339999;}.ace-vibrant-ink .ace_constant.ace_character.ace_escape, { color:#339999;}.ace-vibrant-ink .ace_constant.ace_numeric { color:#99CC99;}.ace-vibrant-ink .ace_invalid { color:#CCFF33;background-color:#000000;}.ace-vibrant-ink .ace_invalid.ace_deprecated { color:#CCFF33;background-color:#000000;}.ace-vibrant-ink .ace_fold { background-color: #FFCC00; border-color: #FFFFFF;}.ace-vibrant-ink .ace_support.ace_function { color:#FFCC00;}.ace-vibrant-ink .ace_variable { color:#FFCC00;}.ace-vibrant-ink .ace_variable.ace_parameter { font-style:italic;}.ace-vibrant-ink .ace_string { color:#66FF00;}.ace-vibrant-ink .ace_string.ace_regexp { color:#44B4CC;}.ace-vibrant-ink .ace_comment { color:#9933CC;}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name { font-style:italic;color:#99CC99;}.ace-vibrant-ink .ace_entity.ace_name.ace_function { color:#FFCC00;}.ace-vibrant-ink .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}) \ No newline at end of file +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/theme/vibrant_ink', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-vibrant-ink"; +exports.cssText = "\ +.ace-vibrant-ink .ace_editor {\ + border: 2px solid rgb(159, 159, 159);\ +}\ +\ +.ace-vibrant-ink .ace_editor.ace_focus {\ + border: 2px solid #327fbd;\ +}\ +\ +.ace-vibrant-ink .ace_gutter {\ + background: #e8e8e8;\ + color: #333;\ +}\ +\ +.ace-vibrant-ink .ace_print_margin {\ + width: 1px;\ + background: #e8e8e8;\ +}\ +\ +.ace-vibrant-ink .ace_scroller {\ + background-color: #0F0F0F;\ +}\ +\ +.ace-vibrant-ink .ace_text-layer {\ + cursor: text;\ + color: #FFFFFF;\ +}\ +\ +.ace-vibrant-ink .ace_cursor {\ + border-left: 2px solid #FFFFFF;\ +}\ +\ +.ace-vibrant-ink .ace_cursor.ace_overwrite {\ + border-left: 0px;\ + border-bottom: 1px solid #FFFFFF;\ +}\ +\ +.ace-vibrant-ink .ace_marker-layer .ace_selection {\ + background: #6699CC;\ +}\ +\ +.ace-vibrant-ink.multiselect .ace_selection.start {\ + box-shadow: 0 0 3px 0px #0F0F0F;\ + border-radius: 2px;\ +}\ +\ +.ace-vibrant-ink .ace_marker-layer .ace_step {\ + background: rgb(198, 219, 174);\ +}\ +\ +.ace-vibrant-ink .ace_marker-layer .ace_bracket {\ + margin: -1px 0 0 -1px;\ + border: 1px solid #404040;\ +}\ +\ +.ace-vibrant-ink .ace_marker-layer .ace_active_line {\ + background: #333333;\ +}\ +\ +.ace-vibrant-ink .ace_marker-layer .ace_selected_word {\ + border: 1px solid #6699CC;\ +}\ +\ +.ace-vibrant-ink .ace_invisible {\ + color: #404040;\ +}\ +\ +.ace-vibrant-ink .ace_keyword, .ace-vibrant-ink .ace_meta {\ + color:#FF6600;\ +}\ +\ +.ace-vibrant-ink .ace_constant, .ace-vibrant-ink .ace_constant.ace_other {\ + color:#339999;\ +}\ +\ +.ace-vibrant-ink .ace_constant.ace_character, {\ + color:#339999;\ +}\ +\ +.ace-vibrant-ink .ace_constant.ace_character.ace_escape, {\ + color:#339999;\ +}\ +\ +.ace-vibrant-ink .ace_constant.ace_numeric {\ + color:#99CC99;\ +}\ +\ +.ace-vibrant-ink .ace_invalid {\ + color:#CCFF33;\ +background-color:#000000;\ +}\ +\ +.ace-vibrant-ink .ace_invalid.ace_deprecated {\ + color:#CCFF33;\ +background-color:#000000;\ +}\ +\ +.ace-vibrant-ink .ace_fold {\ + background-color: #FFCC00;\ + border-color: #FFFFFF;\ +}\ +\ +.ace-vibrant-ink .ace_support.ace_function {\ + color:#FFCC00;\ +}\ +\ +.ace-vibrant-ink .ace_variable {\ + color:#FFCC00;\ +}\ +\ +.ace-vibrant-ink .ace_variable.ace_parameter {\ + font-style:italic;\ +}\ +\ +.ace-vibrant-ink .ace_string {\ + color:#66FF00;\ +}\ +\ +.ace-vibrant-ink .ace_string.ace_regexp {\ + color:#44B4CC;\ +}\ +\ +.ace-vibrant-ink .ace_comment {\ + color:#9933CC;\ +}\ +\ +.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\ + font-style:italic;\ +color:#99CC99;\ +}\ +\ +.ace-vibrant-ink .ace_entity.ace_name.ace_function {\ + color:#FFCC00;\ +}\ +\ +.ace-vibrant-ink .ace_markup.ace_underline {\ + text-decoration:underline;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/build/src/worker-coffee.js b/build/src/worker-coffee.js index aa9daade..4ffc5d30 100644 --- a/build/src/worker-coffee.js +++ b/build/src/worker-coffee.js @@ -187,6 +187,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex return !x.lastIndex; }(); + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + //--------------------------------- // Overriden native methods //--------------------------------- diff --git a/build/src/worker-css.js b/build/src/worker-css.js index a86bbcb0..c44ea10c 100644 --- a/build/src/worker-css.js +++ b/build/src/worker-css.js @@ -187,6 +187,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex return !x.lastIndex; }(); + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + //--------------------------------- // Overriden native methods //--------------------------------- diff --git a/build/src/worker-javascript.js b/build/src/worker-javascript.js index bd77cc7f..7b9b261b 100644 --- a/build/src/worker-javascript.js +++ b/build/src/worker-javascript.js @@ -187,6 +187,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex return !x.lastIndex; }(); + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + //--------------------------------- // Overriden native methods //--------------------------------- diff --git a/build/src/worker-json.js b/build/src/worker-json.js index cffed24f..58128ead 100644 --- a/build/src/worker-json.js +++ b/build/src/worker-json.js @@ -187,6 +187,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex return !x.lastIndex; }(); + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + //--------------------------------- // Overriden native methods //--------------------------------- diff --git a/build/src/worker-xquery.js b/build/src/worker-xquery.js new file mode 100644 index 00000000..49f85b42 --- /dev/null +++ b/build/src/worker-xquery.js @@ -0,0 +1,67844 @@ +"no use strict"; + +var console = { + log: function(msg) { + postMessage({type: "log", data: msg}); + } +}; +var window = { + console: console +}; + +var normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + var moduleName = base + "/" + moduleName; + + while(moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + var moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; + +var require = function(parentId, id) { + var id = normalizeModule(parentId, id); + + var module = require.modules[id]; + if (module) { + if (!module.initialized) { + module.exports = module.factory().exports; + module.initialized = true; + } + return module.exports; + } + + var chunks = id.split("/"); + chunks[0] = require.tlns[chunks[0]] || chunks[0]; + var path = chunks.join("/") + ".js"; + + require.id = id; + importScripts(path); + return require(parentId, id); +}; + +require.modules = {}; +require.tlns = {}; + +var define = function(id, deps, factory) { + if (arguments.length == 2) { + factory = deps; + } else if (arguments.length == 1) { + factory = id; + id = require.id; + } + + if (id.indexOf("text!") === 0) + return; + + var req = function(deps, factory) { + return require(id, deps, factory); + }; + + require.modules[id] = { + factory: function() { + var module = { + exports: {} + }; + var returnExports = factory(req, module.exports, module); + if (returnExports) + module.exports = returnExports; + return module; + } + }; +}; + +function initBaseUrls(topLevelNamespaces) { + require.tlns = topLevelNamespaces; +} + +function initSender() { + + var EventEmitter = require(null, "ace/lib/event_emitter").EventEmitter; + var oop = require(null, "ace/lib/oop"); + + var Sender = function() {}; + + (function() { + + oop.implement(this, EventEmitter); + + this.callback = function(data, callbackId) { + postMessage({ + type: "call", + id: callbackId, + data: data + }); + }; + + this.emit = function(name, data) { + postMessage({ + type: "event", + name: name, + data: data + }); + }; + + }).call(Sender.prototype); + + return new Sender(); +} + +var main; +var sender; + +onmessage = function(e) { + var msg = e.data; + if (msg.command) { + main[msg.command].apply(main, msg.args); + } + else if (msg.init) { + initBaseUrls(msg.tlns); + require(null, "ace/lib/fixoldbrowsers"); + sender = initSender(); + var clazz = require(null, msg.module)[msg.classname]; + main = new clazz(sender); + } + else if (msg.event && sender) { + sender._emit(msg.event, msg.data); + } +}; +// vim:set ts=4 sts=4 sw=4 st: +// -- kriskowal Kris Kowal Copyright (C) 2009-2010 MIT License +// -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project) +// -- dantman Daniel Friesen Copyright(C) 2010 XXX No License Specified +// -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License +// -- Irakli Gozalishvili Copyright (C) 2010 MIT License + +/*! + Copyright (c) 2009, 280 North Inc. http://280north.com/ + MIT License. http://github.com/280north/narwhal/blob/master/README.md +*/ + +define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) { +"use strict"; + +require("./regexp"); +require("./es5-shim"); + +}); +/* + * Based on code from: + * + * XRegExp 1.5.0 + * (c) 2007-2010 Steven Levithan + * MIT License + * + * Provides an augmented, extensible, cross-browser implementation of regular expressions, + * including support for additional syntax, flags, and methods + */ + +define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + + //--------------------------------- + // Private variables + //--------------------------------- + + var real = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + real.test.call(x, ""); + return !x.lastIndex; + }(); + + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + + //--------------------------------- + // Overriden native methods + //--------------------------------- + + // Adds named capture support (with backreferences returned as `result.name`), and fixes two + // cross-browser issues per ES3: + // - Captured values for nonparticipating capturing groups should be returned as `undefined`, + // rather than the empty string. + // - `lastIndex` should not be incremented after zero-length matches. + RegExp.prototype.exec = function (str) { + var match = real.exec.apply(this, arguments), + name, r2; + if ( typeof(str) == 'string' && match) { + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", "")); + // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed + // matching due to characters outside the match + real.replace.call(str.slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + // Attach named capture properties + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + // Fix browsers that increment `lastIndex` after zero-length matches + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + return match; + }; + + // Don't override `test` if it won't change anything + if (!compliantLastIndexIncrement) { + // Fix browser bug in native method + RegExp.prototype.test = function (str) { + // Use the native `exec` to skip some processing overhead, even though the overriden + // `exec` would take care of the `lastIndex` fix + var match = real.exec.call(this, str); + // Fix browsers that increment `lastIndex` after zero-length matches + if (match && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + return !!match; + }; + } + + //--------------------------------- + // Private helper functions + //--------------------------------- + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + }; + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + }; + +}); +// vim: ts=4 sts=4 sw=4 expandtab +// -- kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License +// -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project) +// -- dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA +// -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License +// -- Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License +// -- kitcambridge Kit Cambridge Copyright (C) 2011 MIT License +// -- kossnocorp Sasha Koss XXX TODO License or CLA +// -- bryanforbes Bryan Forbes XXX TODO License or CLA +// -- killdream Quildreen Motta Copyright (C) 2011 MIT Licence +// -- michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD License +// -- sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License +// -- bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain) +// -- iwyg XXX TODO License or CLA +// -- DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License +// -- xavierm02 Montillet Xavier XXX TODO License or CLA +// -- Raynos Raynos XXX TODO License or CLA +// -- samsonjs Sami Samhuri Copyright (C) 2010 MIT License +// -- rwldrn Rick Waldron Copyright (C) 2011 MIT License +// -- lexer Alexey Zakharov XXX TODO License or CLA + +/*! + Copyright (c) 2009, 280 North Inc. http://280north.com/ + MIT License. http://github.com/280north/narwhal/blob/master/README.md +*/ + +define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) { + +/* + * Brings an environment as close to ECMAScript 5 compliance + * as is possible with the facilities of erstwhile engines. + * + * Annotated ES5: http://es5.github.com/ (specific links below) + * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf + * + * @module + */ + +/*whatsupdoc*/ + +// +// Function +// ======== +// + +// ES-5 15.3.4.5 +// http://es5.github.com/#x15.3.4.5 + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + // 1. Let Target be the this value. + var target = this; + // 2. If IsCallable(Target) is false, throw a TypeError exception. + if (typeof target != "function") + throw new TypeError(); // TODO message + // 3. Let A be a new (possibly empty) internal list of all of the + // argument values provided after thisArg (arg1, arg2 etc), in order. + // XXX slicedArgs will stand in for "A" if used + var args = slice.call(arguments, 1); // for normal call + // 4. Let F be a new native ECMAScript object. + // 11. Set the [[Prototype]] internal property of F to the standard + // built-in Function prototype object as specified in 15.3.3.1. + // 12. Set the [[Call]] internal property of F as described in + // 15.3.4.5.1. + // 13. Set the [[Construct]] internal property of F as described in + // 15.3.4.5.2. + // 14. Set the [[HasInstance]] internal property of F as described in + // 15.3.4.5.3. + var bound = function () { + + if (this instanceof bound) { + // 15.3.4.5.2 [[Construct]] + // When the [[Construct]] internal method of a function object, + // F that was created using the bind function is called with a + // list of arguments ExtraArgs, the following steps are taken: + // 1. Let target be the value of F's [[TargetFunction]] + // internal property. + // 2. If target has no [[Construct]] internal method, a + // TypeError exception is thrown. + // 3. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Construct]] internal + // method of target providing args as the arguments. + + var F = function(){}; + F.prototype = target.prototype; + var self = new F; + + var result = target.apply( + self, + args.concat(slice.call(arguments)) + ); + if (result !== null && Object(result) === result) + return result; + return self; + + } else { + // 15.3.4.5.1 [[Call]] + // When the [[Call]] internal method of a function object, F, + // which was created using the bind function is called with a + // this value and a list of arguments ExtraArgs, the following + // steps are taken: + // 1. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 2. Let boundThis be the value of F's [[BoundThis]] internal + // property. + // 3. Let target be the value of F's [[TargetFunction]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Call]] internal method + // of target providing boundThis as the this value and + // providing args as the arguments. + + // equiv: target.call(this, ...boundArgs, ...args) + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + // XXX bound.length is never writable, so don't even try + // + // 15. If the [[Class]] internal property of Target is "Function", then + // a. Let L be the length property of Target minus the length of A. + // b. Set the length own property of F to either 0 or L, whichever is + // larger. + // 16. Else set the length own property of F to 0. + // 17. Set the attributes of the length own property of F to the values + // specified in 15.3.5.1. + + // TODO + // 18. Set the [[Extensible]] internal property of F to true. + + // TODO + // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3). + // 20. Call the [[DefineOwnProperty]] internal method of F with + // arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]: + // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and + // false. + // 21. Call the [[DefineOwnProperty]] internal method of F with + // arguments "arguments", PropertyDescriptor {[[Get]]: thrower, + // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false}, + // and false. + + // TODO + // NOTE Function objects created using Function.prototype.bind do not + // have a prototype property or the [[Code]], [[FormalParameters]], and + // [[Scope]] internal properties. + // XXX can't delete prototype in pure-js. + + // 22. Return F. + return bound; + }; +} + +// Shortcut to an often accessed properties, in order to avoid multiple +// dereference that costs universally. +// _Please note: Shortcuts are defined after `Function.prototype.bind` as we +// us it in defining shortcuts. +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); + +// If JS engine supports accessors creating shortcuts. +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} + +// +// Array +// ===== +// + +// ES5 15.4.3.2 +// http://es5.github.com/#x15.4.3.2 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return toString(obj) == "[object Array]"; + }; +} + +// The IsCallable() check in the Array functions +// has been replaced with a strict check on the +// internal class of the object to trap cases where +// the provided function was actually a regular +// expression literal, which in V8 and +// JavaScriptCore is a typeof "function". Only in +// V8 are regular expression literals permitted as +// reduce parameters, so it is desirable in the +// general case for the shim to match the more +// strict and common behavior of rejecting regular +// expressions. + +// ES5 15.4.4.18 +// http://es5.github.com/#x15.4.4.18 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var self = toObject(this), + thisp = arguments[1], + i = 0, + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (i < length) { + if (i in self) { + // Invoke the callback function with call, passing arguments: + // context, property value, property key, thisArg object context + fun.call(thisp, self[i], i, self); + } + i++; + } + }; +} + +// ES5 15.4.4.19 +// http://es5.github.com/#x15.4.4.19 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var self = toObject(this), + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, self); + } + return result; + }; +} + +// ES5 15.4.4.20 +// http://es5.github.com/#x15.4.4.20 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + result = [], + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, self)) + result.push(self[i]); + } + return result; + }; +} + +// ES5 15.4.4.16 +// http://es5.github.com/#x15.4.4.16 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, self)) + return false; + } + return true; + }; +} + +// ES5 15.4.4.17 +// http://es5.github.com/#x15.4.4.17 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var self = toObject(this), + length = self.length >>> 0, + thisp = arguments[1]; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, self)) + return true; + } + return false; + }; +} + +// ES5 15.4.4.21 +// http://es5.github.com/#x15.4.4.21 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var self = toObject(this), + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + // no value to return if no initial value and an empty array + if (!length && arguments.length == 1) + throw new TypeError(); // TODO message + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + + // if array contains no values, no initial value to return + if (++i >= length) + throw new TypeError(); // TODO message + } while (true); + } + + for (; i < length; i++) { + if (i in self) + result = fun.call(void 0, result, self[i], i, self); + } + + return result; + }; +} + +// ES5 15.4.4.22 +// http://es5.github.com/#x15.4.4.22 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var self = toObject(this), + length = self.length >>> 0; + + // If no callback function or if callback is not a callable function + if (toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + // no value to return if no initial value, empty array + if (!length && arguments.length == 1) + throw new TypeError(); // TODO message + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + + // if array contains no values, no initial value to return + if (--i < 0) + throw new TypeError(); // TODO message + } while (true); + } + + do { + if (i in this) + result = fun.call(void 0, result, self[i], i, self); + } while (i--); + + return result; + }; +} + +// ES5 15.4.4.14 +// http://es5.github.com/#x15.4.4.14 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = toObject(this), + length = self.length >>> 0; + + if (!length) + return -1; + + var i = 0; + if (arguments.length > 1) + i = toInteger(arguments[1]); + + // handle negative indices + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} + +// ES5 15.4.4.15 +// http://es5.github.com/#x15.4.4.15 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf +if (!Array.prototype.lastIndexOf) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = toObject(this), + length = self.length >>> 0; + + if (!length) + return -1; + var i = length - 1; + if (arguments.length > 1) + i = Math.min(i, toInteger(arguments[1])); + // handle negative indices + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) + return i; + } + return -1; + }; +} + +// +// Object +// ====== +// + +// ES5 15.2.3.2 +// http://es5.github.com/#x15.2.3.2 +if (!Object.getPrototypeOf) { + // https://github.com/kriskowal/es5-shim/issues#issue/2 + // http://ejohn.org/blog/objectgetprototypeof/ + // recommended by fschaefer on github + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} + +// ES5 15.2.3.3 +// http://es5.github.com/#x15.2.3.3 +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + // If object does not owns property return undefined immediately. + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + + // If object has a property then it's for sure both `enumerable` and + // `configurable`. + descriptor = { enumerable: true, configurable: true }; + + // If JS engine supports accessor properties then property may be a + // getter or setter. + if (supportsAccessors) { + // Unfortunately `__lookupGetter__` will return a getter even + // if object has own non getter property along with a same named + // inherited getter. To avoid misbehavior we temporary remove + // `__proto__` so that `__lookupGetter__` will return getter only + // if it's owned by an object. + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + + // Once we have getter and setter we can put values back. + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + + // If it was accessor property we're done and return here + // in order to avoid adding `value` to the descriptor. + return descriptor; + } + } + + // If we got this far we know that object has an own property that is + // not an accessor so we set it as a value and return descriptor. + descriptor.value = object[property]; + return descriptor; + }; +} + +// ES5 15.2.3.4 +// http://es5.github.com/#x15.2.3.4 +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} + +// ES5 15.2.3.5 +// http://es5.github.com/#x15.2.3.5 +if (!Object.create) { + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = { "__proto__": null }; + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + // IE has no built-in implementation of `Object.getPrototypeOf` + // neither `__proto__`, but this manually setting `__proto__` will + // guarantee that `Object.getPrototypeOf` will work as expected with + // objects created using `Object.create` + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +// ES5 15.2.3.6 +// http://es5.github.com/#x15.2.3.6 + +// Patch for WebKit and IE8 standard mode +// Designed by hax +// related issue: https://github.com/kriskowal/es5-shim/issues#issue/5 +// IE8 Reference: +// http://msdn.microsoft.com/en-us/library/dd282900.aspx +// http://msdn.microsoft.com/en-us/library/dd229916.aspx +// WebKit Bugs: +// https://bugs.webkit.org/show_bug.cgi?id=36423 + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + // returns falsy + } +} + +// check whether defineProperty works if it's given. Otherwise, +// shim partially. +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + + // make a valiant attempt to use the real defineProperty + // for I8's DOM elements. + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + // try the shim if the real one doesn't work + } + } + + // If it's a data property. + if (owns(descriptor, "value")) { + // fail silently if "writable", "enumerable", or "configurable" + // are requested but not supported + /* + // alternate approach: + if ( // can't implement these features; allow false but not true + !(owns(descriptor, "writable") ? descriptor.writable : true) || + !(owns(descriptor, "enumerable") ? descriptor.enumerable : true) || + !(owns(descriptor, "configurable") ? descriptor.configurable : true) + ) + throw new RangeError( + "This implementation of Object.defineProperty does not " + + "support configurable, enumerable, or writable." + ); + */ + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + // As accessors are supported only on engines implementing + // `__proto__` we can safely override `__proto__` while defining + // a property to make sure that we don't hit an inherited + // accessor. + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + // Deleting a property anyway since getter / setter may be + // defined on object itself. + delete object[property]; + object[property] = descriptor.value; + // Setting original `__proto__` back now. + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + // If we got that far then getters and setters can be defined !! + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} + +// ES5 15.2.3.7 +// http://es5.github.com/#x15.2.3.7 +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} + +// ES5 15.2.3.8 +// http://es5.github.com/#x15.2.3.8 +if (!Object.seal) { + Object.seal = function seal(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// ES5 15.2.3.9 +// http://es5.github.com/#x15.2.3.9 +if (!Object.freeze) { + Object.freeze = function freeze(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// detect a Rhino bug and patch it +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} + +// ES5 15.2.3.10 +// http://es5.github.com/#x15.2.3.10 +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + // this is misleading and breaks feature-detection, but + // allows "securable" code to "gracefully" degrade to working + // but insecure code. + return object; + }; +} + +// ES5 15.2.3.11 +// http://es5.github.com/#x15.2.3.11 +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} + +// ES5 15.2.3.12 +// http://es5.github.com/#x15.2.3.12 +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} + +// ES5 15.2.3.13 +// http://es5.github.com/#x15.2.3.13 +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + // 1. If Type(O) is not Object throw a TypeError exception. + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + // 2. Return the Boolean value of the [[Extensible]] internal property of O. + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} + +// ES5 15.2.3.14 +// http://es5.github.com/#x15.2.3.14 +if (!Object.keys) { + // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) + hasDontEnumBug = false; + + Object.keys = function keys(object) { + + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError("Object.keys called on a non-object"); + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + + return keys; + }; + +} + +// +// Date +// ==== +// + +// ES5 15.9.5.43 +// http://es5.github.com/#x15.9.5.43 +// This function returns a String value represent the instance in time +// represented by this Date object. The format of the String is the Date Time +// string format defined in 15.9.1.15. All fields are present in the String. +// The time zone is always UTC, denoted by the suffix Z. If the time value of +// this object is not a finite Number a RangeError exception is thrown. +if (!Date.prototype.toISOString || (new Date(-62198755200000).toISOString().indexOf('-000001') === -1)) { + Date.prototype.toISOString = function toISOString() { + var result, length, value, year; + if (!isFinite(this)) + throw new RangeError; + + // the date time string format is specified in 15.9.1.15. + result = [this.getUTCMonth() + 1, this.getUTCDate(), + this.getUTCHours(), this.getUTCMinutes(), this.getUTCSeconds()]; + year = this.getUTCFullYear(); + year = (year < 0 ? '-' : (year > 9999 ? '+' : '')) + ('00000' + Math.abs(year)).slice(0 <= year && year <= 9999 ? -4 : -6); + + length = result.length; + while (length--) { + value = result[length]; + // pad months, days, hours, minutes, and seconds to have two digits. + if (value < 10) + result[length] = "0" + value; + } + // pad milliseconds to have three digits. + return year + "-" + result.slice(0, 2).join("-") + "T" + result.slice(2).join(":") + "." + + ("000" + this.getUTCMilliseconds()).slice(-3) + "Z"; + } +} + +// ES5 15.9.4.4 +// http://es5.github.com/#x15.9.4.4 +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} + +// ES5 15.9.5.44 +// http://es5.github.com/#x15.9.5.44 +// This function provides a String representation of a Date object for use by +// JSON.stringify (15.12.3). +if (!Date.prototype.toJSON) { + Date.prototype.toJSON = function toJSON(key) { + // When the toJSON method is called with argument key, the following + // steps are taken: + + // 1. Let O be the result of calling ToObject, giving it the this + // value as its argument. + // 2. Let tv be ToPrimitive(O, hint Number). + // 3. If tv is a Number and is not finite, return null. + // XXX + // 4. Let toISO be the result of calling the [[Get]] internal method of + // O with argument "toISOString". + // 5. If IsCallable(toISO) is false, throw a TypeError exception. + if (typeof this.toISOString != "function") + throw new TypeError(); // TODO message + // 6. Return the result of calling the [[Call]] internal method of + // toISO with O as the this value and an empty argument list. + return this.toISOString(); + + // NOTE 1 The argument is ignored. + + // NOTE 2 The toJSON function is intentionally generic; it does not + // require that its this value be a Date object. Therefore, it can be + // transferred to other kinds of objects for use as a method. However, + // it does require that any such object have a toISOString method. An + // object is free to use the argument key to filter its + // stringification. + }; +} + +// ES5 15.9.4.2 +// http://es5.github.com/#x15.9.4.2 +// based on work shared by Daniel Friesen (dantman) +// http://gist.github.com/303249 +if (Date.parse("+275760-09-13T00:00:00.000Z") !== 8.64e15) { + // XXX global assignment won't work in embeddings that use + // an alternate object for the context. + Date = (function(NativeDate) { + + // Date.length === 7 + var Date = function Date(Y, M, D, h, m, s, ms) { + var length = arguments.length; + if (this instanceof NativeDate) { + var date = length == 1 && String(Y) === Y ? // isString(Y) + // We explicitly pass it through parse: + new NativeDate(Date.parse(Y)) : + // We have to manually make calls depending on argument + // length here + length >= 7 ? new NativeDate(Y, M, D, h, m, s, ms) : + length >= 6 ? new NativeDate(Y, M, D, h, m, s) : + length >= 5 ? new NativeDate(Y, M, D, h, m) : + length >= 4 ? new NativeDate(Y, M, D, h) : + length >= 3 ? new NativeDate(Y, M, D) : + length >= 2 ? new NativeDate(Y, M) : + length >= 1 ? new NativeDate(Y) : + new NativeDate(); + // Prevent mixups with unfixed Date object + date.constructor = Date; + return date; + } + return NativeDate.apply(this, arguments); + }; + + // 15.9.1.15 Date Time String Format. + var isoDateExpression = new RegExp("^" + + "(\\d{4}|[\+\-]\\d{6})" + // four-digit year capture or sign + 6-digit extended year + "(?:-(\\d{2})" + // optional month capture + "(?:-(\\d{2})" + // optional day capture + "(?:" + // capture hours:minutes:seconds.milliseconds + "T(\\d{2})" + // hours capture + ":(\\d{2})" + // minutes capture + "(?:" + // optional :seconds.milliseconds + ":(\\d{2})" + // seconds capture + "(?:\\.(\\d{3}))?" + // milliseconds capture + ")?" + + "(?:" + // capture UTC offset component + "Z|" + // UTC capture + "(?:" + // offset specifier +/-hours:minutes + "([-+])" + // sign capture + "(\\d{2})" + // hours offset capture + ":(\\d{2})" + // minutes offset capture + ")" + + ")?)?)?)?" + + "$"); + + // Copy any custom methods a 3rd party library may have added + for (var key in NativeDate) + Date[key] = NativeDate[key]; + + // Copy "native" methods explicitly; they may be non-enumerable + Date.now = NativeDate.now; + Date.UTC = NativeDate.UTC; + Date.prototype = NativeDate.prototype; + Date.prototype.constructor = Date; + + // Upgrade Date.parse to handle simplified ISO 8601 strings + Date.parse = function parse(string) { + var match = isoDateExpression.exec(string); + if (match) { + match.shift(); // kill match[0], the full match + // parse months, days, hours, minutes, seconds, and milliseconds + for (var i = 1; i < 7; i++) { + // provide default values if necessary + match[i] = +(match[i] || (i < 3 ? 1 : 0)); + // match[1] is the month. Months are 0-11 in JavaScript + // `Date` objects, but 1-12 in ISO notation, so we + // decrement. + if (i == 1) + match[i]--; + } + + // parse the UTC offset component + var minuteOffset = +match.pop(), hourOffset = +match.pop(), sign = match.pop(); + + // compute the explicit time zone offset if specified + var offset = 0; + if (sign) { + // detect invalid offsets and return early + if (hourOffset > 23 || minuteOffset > 59) + return NaN; + + // express the provided time zone offset in minutes. The offset is + // negative for time zones west of UTC; positive otherwise. + offset = (hourOffset * 60 + minuteOffset) * 6e4 * (sign == "+" ? -1 : 1); + } + + // Date.UTC for years between 0 and 99 converts year to 1900 + year + // The Gregorian calendar has a 400-year cycle, so + // to Date.UTC(year + 400, .... ) - 12622780800000 == Date.UTC(year, ...), + // where 12622780800000 - number of milliseconds in Gregorian calendar 400 years + var year = +match[0]; + if (0 <= year && year <= 99) { + match[0] = year + 400; + return NativeDate.UTC.apply(this, match) + offset - 12622780800000; + } + + // compute a new UTC date value, accounting for the optional offset + return NativeDate.UTC.apply(this, match) + offset; + } + return NativeDate.parse.apply(this, arguments); + }; + + return Date; + })(Date); +} + +// +// String +// ====== +// + +// ES5 15.5.4.20 +// http://es5.github.com/#x15.5.4.20 +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + // http://blog.stevenlevithan.com/archives/faster-trim-javascript + // http://perfectionkills.com/whitespace-deviations/ + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +// +// Util +// ====== +// + +// ES5 9.4 +// http://es5.github.com/#x9.4 +// http://jsperf.com/to-integer +var toInteger = function (n) { + n = +n; + if (n !== n) // isNaN + n = 0; + else if (n !== 0 && n !== (1/0) && n !== -(1/0)) + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + return n; +}; + +var prepareString = "a"[0] != "a", + // ES5 9.9 + // http://es5.github.com/#x9.9 + toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError(); // TODO message + } + // If the implementation doesn't support by-index access of + // string characters (ex. IE < 7), split the string + if (prepareString && typeof o == "string" && o) { + return o.split(""); + } + return Object(o); + }; +}); +/* vim:ts=4:sts=4:sw=4: + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * Irakli Gozalishvili (http://jeditoolkit.com) + * Mike de Boer + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry = this._eventRegistry || {}; + this._defaultHandlers = this._defaultHandlers || {}; + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + e = e || {}; + e.type = eventName; + + if (!e.stopPropagation) { + e.stopPropagation = function() { + this.propagationStopped = true; + }; + } + + if (!e.preventDefault) { + e.preventDefault = function() { + this.defaultPrevented = true; + }; + } + + for (var i=0; i + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +exports.inherits = (function() { + var tempCtor = function() {}; + return function(ctor, superCtor) { + tempCtor.prototype = superCtor.prototype; + ctor.super_ = superCtor.prototype; + ctor.prototype = new tempCtor(); + ctor.prototype.constructor = ctor; + }; +}()); + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/xquery_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/xquery/xquery', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules'], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var Mirror = require("../worker/mirror").Mirror; +var xquery = require("../mode/xquery/xquery"); +var Tokenizer = require("../tokenizer").Tokenizer; +var XQueryHighlightRules = require("./xquery_highlight_rules").XQueryHighlightRules; + +window.addEventListener = function() {}; + + +var XQueryWorker = exports.XQueryWorker = function(sender) { + Mirror.call(this, sender); + this.setTimeout(200); +}; + +oop.inherits(XQueryWorker, Mirror); + +(function() { + + this.onUpdate = function() { + this.sender.emit("start"); + var value = this.doc.getValue(); + var parser = xquery.getParser(value); + var ast = parser.p_Module(); + if(parser.hasErrors()) { + var errors = parser.getErrors(); + var i = 0; + for(i in errors) { + var error = errors[i]; + this.sender.emit("error", { + row: error.line, + column: error.column, + text: error.message, + type: "error" + }); + } + } else { + this.sender.emit("ok"); + } + parser.highlighter.tokenizer = new Tokenizer(new XQueryHighlightRules().getRules()); + var tokens = parser.highlighter.getTokens(); + this.sender.emit("highlight", tokens); + }; + +}).call(XQueryWorker.prototype); + +}); +define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) { +"use strict"; + +var Document = require("../document").Document; +var lang = require("../lib/lang"); + +var Mirror = exports.Mirror = function(sender) { + this.sender = sender; + var doc = this.doc = new Document(""); + + var deferredUpdate = this.deferredUpdate = lang.deferredCall(this.onUpdate.bind(this)); + + var _self = this; + sender.on("change", function(e) { + doc.applyDeltas([e.data]); + deferredUpdate.schedule(_self.$timeout); + }); +}; + +(function() { + + this.$timeout = 500; + + this.setTimeout = function(timeout) { + this.$timeout = timeout; + }; + + this.setValue = function(value) { + this.doc.setValue(value); + this.deferredUpdate.schedule(this.$timeout); + }; + + this.getValue = function(callbackId) { + this.sender.callback(this.doc.getValue(), callbackId); + }; + + this.onUpdate = function() { + // abstract method + }; + +}).call(Mirror.prototype); + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +/** + * class Document + * + * Contains the text of the document. Documents are controlled by a single [[EditSession `EditSession`]]. At its core, `Document`s are just an array of strings, with each row in the document matching up to the array index. + * + * + **/ + + /** + * new Document([text]) + * - text (String | Array): The starting text + * + * Creates a new `Document`. If `text` is included, the `Document` contains those strings; otherwise, it's empty. + * + **/ +var Document = function(text) { + this.$lines = []; + + if (Array.isArray(text)) { + this.insertLines(0, text); + } + // There has to be one line at least in the document. If you pass an empty + // string to the insert function, nothing will happen. Workaround. + else if (text.length == 0) { + this.$lines = [""]; + } else { + this.insert({row: 0, column:0}, text); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + + /** + * Document.setValue(text) -> Void + * - text (String): The text to use + * + * Replaces all the lines in the current `Document` with the value of `text`. + **/ + this.setValue = function(text) { + var len = this.getLength(); + this.remove(new Range(0, 0, len, this.getLine(len-1).length)); + this.insert({row: 0, column:0}, text); + }; + + /** + * Document.getValue() -> String + * + * Returns all the lines in the document as a single string, split by the new line character. + **/ + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + + /** + * Document.createAnchor(row, column) -> Anchor + * - row (Number): The row number to use + * - column (Number): The column number to use + * + * Creates a new `Anchor` to define a floating point in the document. + **/ + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + + /** internal, hide + * Document.$split(text) -> [String] + * - text (String): The text to work with + * + ([String]): A String array, with each index containing a piece of the original `text` string. + * + * Splits a string of text on any newline (`\n`) or carriage-return ('\r') characters. + * + * + **/ + + // check for IE split bug + if ("aaa".split(/a/).length == 0) + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + } + else + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + + + /** internal, hide + * Document.$detectNewLine(text) -> Void + * + * + **/ + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + if (match) { + this.$autoNewLine = match[1]; + } else { + this.$autoNewLine = "\n"; + } + }; + + /** + * Document.getNewLineCharacter() -> String + * + (String): If `newLineMode == windows`, `\r\n` is returned.
+ * If `newLineMode == unix`, `\n` is returned.
+ * If `newLineMode == auto`, the value of `autoNewLine` is returned. + * + * Returns the newline character that's being used, depending on the value of `newLineMode`. + * + * + * + **/ + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + + case "unix": + return "\n"; + + case "auto": + return this.$autoNewLine; + } + }; + + this.$autoNewLine = "\n"; + this.$newLineMode = "auto"; + /** + * Document.setNewLineMode(newLineMode) -> Void + * - newLineMode(String): [The newline mode to use; can be either `windows`, `unix`, or `auto`]{: #Document.setNewLineMode.param} + * + * [Sets the new line mode.]{: #Document.setNewLineMode.desc} + **/ + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + }; + + /** + * Document.getNewLineMode() -> String + * + * [Returns the type of newlines being used; either `windows`, `unix`, or `auto`]{: #Document.getNewLineMode} + * + **/ + this.getNewLineMode = function() { + return this.$newLineMode; + }; + + /** + * Document.isNewLine(text) -> Boolean + * - text (String): The text to check + * + * Returns `true` if `text` is a newline character (either `\r\n`, `\r`, or `\n`). + * + **/ + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + + /** + * Document.getLine(row) -> String + * - row (Number): The row index to retrieve + * + * Returns a verbatim copy of the given line as it is in the document + * + **/ + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + + /** + * Document.getLines(firstRow, lastRow) -> [String] + * - firstRow (Number): The first row index to retrieve + * - lastRow (Number): The final row index to retrieve + * + * Returns an array of strings of the rows between `firstRow` and `lastRow`. This function is inclusive of `lastRow`. + * + **/ + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + + /** + * Document.getAllLines() -> [String] + * + * Returns all lines in the document as string array. Warning: The caller should not modify this array! + **/ + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + + /** + * Document.getLength() -> Number + * + * Returns the number of rows in the document. + **/ + this.getLength = function() { + return this.$lines.length; + }; + + /** + * Document.getTextRange(range) -> String + * - range (Range): The range to work with + * + * [Given a range within the document, this function returns all the text within that range as a single string.]{: #Document.getTextRange.desc} + **/ + this.getTextRange = function(range) { + if (range.start.row == range.end.row) { + return this.$lines[range.start.row].substring(range.start.column, + range.end.column); + } + else { + var lines = this.getLines(range.start.row+1, range.end.row-1); + lines.unshift((this.$lines[range.start.row] || "").substring(range.start.column)); + lines.push((this.$lines[range.end.row] || "").substring(0, range.end.column)); + return lines.join(this.getNewLineCharacter()); + } + }; + + /** internal, hide + * Document.$clipPosition(position) -> Number + * + * + **/ + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length-1).length; + } + return position; + }; + + /** + * Document.insert(position, text) -> Number + * - position (Number): The position to start inserting at + * - text (String): A chunk of text to insert + * + (Number): The position of the last line of `text`. If the length of `text` is 0, this function simply returns `position`. + * Inserts a block of `text` and the indicated `position`. + * + * + **/ + this.insert = function(position, text) { + if (!text || text.length === 0) + return position; + + position = this.$clipPosition(position); + + // only detect new lines if the document has no line break yet + if (this.getLength() <= 1) + this.$detectNewLine(text); + + var lines = this.$split(text); + var firstLine = lines.splice(0, 1)[0]; + var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0]; + + position = this.insertInLine(position, firstLine); + if (lastLine !== null) { + position = this.insertNewLine(position); // terminate first line + position = this.insertLines(position.row, lines); + position = this.insertInLine(position, lastLine || ""); + } + return position; + }; + + /** + * Document.insertLines(row, lines) -> Object + * - row (Number): The index of the row to insert at + * - lines (Array): An array of strings + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}```
+ * If `lines` is empty, this function returns an object containing the current row, and column, like this:
+ * ```{row: row, column: 0}``` + * + * Inserts the elements in `lines` into the document, starting at the row index given by `row`. This method also triggers the `'change'` event. + * + * + **/ + this.insertLines = function(row, lines) { + if (lines.length == 0) + return {row: row, column: 0}; + + var args = [row, 0]; + args.push.apply(args, lines); + this.$lines.splice.apply(this.$lines, args); + + var range = new Range(row, 0, row + lines.length, 0); + var delta = { + action: "insertLines", + range: range, + lines: lines + }; + this._emit("change", { data: delta }); + return range.end; + }; + + /** + * Document.insertNewLine(position) -> Object + * - position (String): The position to insert at + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}``` + * + * Inserts a new line into the document at the current row's `position`. This method also triggers the `'change'` event. + * + * + * + **/ + this.insertNewLine = function(position) { + position = this.$clipPosition(position); + var line = this.$lines[position.row] || ""; + + this.$lines[position.row] = line.substring(0, position.column); + this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length)); + + var end = { + row : position.row + 1, + column : 0 + }; + + var delta = { + action: "insertText", + range: Range.fromPoints(position, end), + text: this.getNewLineCharacter() + }; + this._emit("change", { data: delta }); + + return end; + }; + + /** + * Document.insertInLine(position, text) -> Object | Number + * - position (Number): The position to insert at + * - text (String): A chunk of text + * + (Object): Returns an object containing the final row and column, like this:
+ * ```{row: endRow, column: 0}``` + * + (Number): If `text` is empty, this function returns the value of `position` + * + * Inserts `text` into the `position` at the current row. This method also triggers the `'change'` event. + * + * + * + **/ + this.insertInLine = function(position, text) { + if (text.length == 0) + return position; + + var line = this.$lines[position.row] || ""; + + this.$lines[position.row] = line.substring(0, position.column) + text + + line.substring(position.column); + + var end = { + row : position.row, + column : position.column + text.length + }; + + var delta = { + action: "insertText", + range: Range.fromPoints(position, end), + text: text + }; + this._emit("change", { data: delta }); + + return end; + }; + + /** + * Document.remove(range) -> Object + * - range (Range): A specified Range to remove + * + (Object): Returns the new `start` property of the range, which contains `startRow` and `startColumn`. If `range` is empty, this function returns the unmodified value of `range.start`. + * + * Removes the `range` from the document. + * + * + **/ + this.remove = function(range) { + // clip to document + range.start = this.$clipPosition(range.start); + range.end = this.$clipPosition(range.end); + + if (range.isEmpty()) + return range.start; + + var firstRow = range.start.row; + var lastRow = range.end.row; + + if (range.isMultiLine()) { + var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1; + var lastFullRow = lastRow - 1; + + if (range.end.column > 0) + this.removeInLine(lastRow, 0, range.end.column); + + if (lastFullRow >= firstFullRow) + this.removeLines(firstFullRow, lastFullRow); + + if (firstFullRow != firstRow) { + this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length); + this.removeNewLine(range.start.row); + } + } + else { + this.removeInLine(firstRow, range.start.column, range.end.column); + } + return range.start; + }; + + /** + * Document.removeInLine(row, startColumn, endColumn) -> Object + * - row (Number): The row to remove from + * - startColumn (Number): The column to start removing at + * - endColumn (Number): The column to stop removing at + * + (Object): Returns an object containing `startRow` and `startColumn`, indicating the new row and column values.
If `startColumn` is equal to `endColumn`, this function returns nothing. + * + * Removes the specified columns from the `row`. This method also triggers the `'change'` event. + * + * + **/ + this.removeInLine = function(row, startColumn, endColumn) { + if (startColumn == endColumn) + return; + + var range = new Range(row, startColumn, row, endColumn); + var line = this.getLine(row); + var removed = line.substring(startColumn, endColumn); + var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length); + this.$lines.splice(row, 1, newLine); + + var delta = { + action: "removeText", + range: range, + text: removed + }; + this._emit("change", { data: delta }); + return range.start; + }; + + /** + * Document.removeLines(firstRow, lastRow) -> [String] + * - firstRow (Number): The first row to be removed + * - lastRow (Number): The last row to be removed + * + ([String]): Returns all the removed lines. + * + * Removes a range of full lines. This method also triggers the `'change'` event. + * + * + **/ + this.removeLines = function(firstRow, lastRow) { + var range = new Range(firstRow, 0, lastRow + 1, 0); + var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1); + + var delta = { + action: "removeLines", + range: range, + nl: this.getNewLineCharacter(), + lines: removed + }; + this._emit("change", { data: delta }); + return removed; + }; + + /** + * Document.removeNewLine(row) -> Void + * - row (Number): The row to check + * + * Removes the new line between `row` and the row immediately following it. This method also triggers the `'change'` event. + * + **/ + this.removeNewLine = function(row) { + var firstLine = this.getLine(row); + var secondLine = this.getLine(row+1); + + var range = new Range(row, firstLine.length, row+1, 0); + var line = firstLine + secondLine; + + this.$lines.splice(row, 2, line); + + var delta = { + action: "removeText", + range: range, + text: this.getNewLineCharacter() + }; + this._emit("change", { data: delta }); + }; + + /** + * Document.replace(range, text) -> Object + * - range (Range): A specified Range to replace + * - text (String): The new text to use as a replacement + * + (Object): Returns an object containing the final row and column, like this: + * {row: endRow, column: 0} + * If the text and range are empty, this function returns an object containing the current `range.start` value. + * If the text is the exact same as what currently exists, this function returns an object containing the current `range.end` value. + * + * Replaces a range in the document with the new `text`. + * + **/ + this.replace = function(range, text) { + if (text.length == 0 && range.isEmpty()) + return range.start; + + // Shortcut: If the text we want to insert is the same as it is already + // in the document, we don't have to replace anything. + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + if (text) { + var end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + + /** + * Document.applyDeltas(deltas) -> Void + * + * Applies all the changes previously accumulated. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`. + **/ + this.applyDeltas = function(deltas) { + for (var i=0; i Void + * + * Reverts any changes previously applied. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`. + **/ + this.revertDeltas = function(deltas) { + for (var i=deltas.length-1; i>=0; i--) { + var delta = deltas[i]; + + var range = Range.fromPoints(delta.range.start, delta.range.end); + + if (delta.action == "insertLines") + this.removeLines(range.start.row, range.end.row - 1); + else if (delta.action == "insertText") + this.remove(range); + else if (delta.action == "removeLines") + this.insertLines(range.start.row, delta.lines); + else if (delta.action == "removeText") + this.insert(range.start, delta.text); + } + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +/** + * class Range + * + * This object is used in various places to indicate a region within the editor. To better visualize how this works, imagine a rectangle. Each quadrant of the rectangle is analogus to a range, as ranges contain a starting row and starting column, and an ending row, and ending column. + * + **/ + +/** + * new Range(startRow, startColumn, endRow, endColumn) + * - startRow (Number): The starting row + * - startColumn (Number): The starting column + * - endRow (Number): The ending row + * - endColumn (Number): The ending column + * + * Creates a new `Range` object with the given starting and ending row and column points. + * + **/ +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + /** + * Range.isEqual(range) -> Boolean + * - range (Range): A range to check against + * + * Returns `true` if and only if the starting row and column, and ending tow and column, are equivalent to those given by `range`. + * + **/ + this.isEqual = function(range) { + return this.start.row == range.start.row && + this.end.row == range.end.row && + this.start.column == range.start.column && + this.end.column == range.end.column + }; + + /** + * Range.toString() -> String + * + * Returns a string containing the range's row and column information, given like this: + * + * [start.row/start.column] -> [end.row/end.column] + * + **/ + + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + /** related to: Range.compare + * Range.contains(row, column) -> Boolean + * - row (Number): A row to check for + * - column (Number): A column to check for + * + * Returns `true` if the `row` and `column` provided are within the given range. This can better be expressed as returning `true` if: + * + * this.start.row <= row <= this.end.row && + * this.start.column <= column <= this.end.column + * + **/ + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + + /** related to: Range.compare + * Range.compareRange(range) -> Number + * - range (Range): A range to compare with + * + (Number): This method returns one of the following numbers:
+ *
+ * * `-2`: (B) is in front of (A), and doesn't intersect with (A)
+ * * `-1`: (B) begins before (A) but ends inside of (A)
+ * * `0`: (B) is completely inside of (A) OR (A) is completely inside of (B)
+ * * `+1`: (B) begins inside of (A) but ends outside of (A)
+ * * `+2`: (B) is after (A) and doesn't intersect with (A)
+ * * `42`: FTW state: (B) ends in (A) but starts outside of (A) + * + * Compares `this` range (A) with another range (B). + * + **/ + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + } + + /** related to: Range.compare + * Range.comparePoint(p) -> Number + * - p (Range): A point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1
+ * + * Checks the row and column points of `p` with the row and column points of the calling range. + * + * + * + **/ + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + } + + /** related to: Range.comparePoint + * Range.containsRange(range) -> Boolean + * - range (Range): A range to compare with + * + * Checks the start and end points of `range` and compares them to the calling range. Returns `true` if the `range` is contained within the caller's range. + * + **/ + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + } + + /** + * Range.intersects(range) -> Boolean + * - range (Range): A range to compare with + * + * Returns `true` if passed in `range` intersects with the one calling this method. + * + **/ + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + } + + /** + * Range.isEnd(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the caller's ending row point is the same as `row`, and if the caller's ending column is the same as `column`. + * + **/ + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + } + + /** + * Range.isStart(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the caller's starting row point is the same as `row`, and if the caller's starting column is the same as `column`. + * + **/ + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + } + + /** + * Range.setStart(row, column) + * - row (Number): A row point to set + * - column (Number): A column point to set + * + * Sets the starting row and column for the range. + * + **/ + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + } + + /** + * Range.setEnd(row, column) + * - row (Number): A row point to set + * - column (Number): A column point to set + * + * Sets the starting row and column for the range. + * + **/ + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + } + + /** related to: Range.compare + * Range.inside(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range. + * + **/ + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** related to: Range.compare + * Range.insideStart(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range's starting points. + * + **/ + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** related to: Range.compare + * Range.insideEnd(row, column) -> Boolean + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + * Returns `true` if the `row` and `column` are within the given range's ending points. + * + **/ + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + } + + /** + * Range.compare(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + **/ + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + }; + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + + /** + * Range.compareStart(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ *
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range, or if `isStart` is `true`.
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + * + **/ + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.compareEnd(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `0` if the two points are exactly equal
+ * * `-1` if `p.row` is less then the calling range
+ * * `1` if `p.row` is greater than the calling range, or if `isEnd` is `true.
+ *
+ * If the starting row of the calling range is equal to `p.row`, and:
+ * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`
+ * * Otherwise, it returns -1
+ *
+ * If the ending row of the calling range is equal to `p.row`, and:
+ * * `p.column` is less than or equal to the calling range's ending column, this returns `0`
+ * * Otherwise, it returns 1 + * + * Checks the row and column points with the row and column points of the calling range. + * + * + **/ + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.compareInside(row, column) -> Number + * - row (Number): A row point to compare with + * - column (Number): A column point to compare with + * + (Number): This method returns one of the following numbers:
+ * * `1` if the ending row of the calling range is equal to `row`, and the ending column of the calling range is equal to `column`
+ * * `-1` if the starting row of the calling range is equal to `row`, and the starting column of the calling range is equal to `column`
+ *
+ * Otherwise, it returns the value after calling [[Range.compare `compare()`]]. + * + * Checks the row and column points with the row and column points of the calling range. + * + * + * + **/ + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + } + + /** + * Range.clipRows(firstRow, lastRow) -> Range + * - firstRow (Number): The starting row + * - lastRow (Number): The ending row + * + * Returns the part of the current `Range` that occurs within the boundaries of `firstRow` and `lastRow` as a new `Range` object. + * + **/ + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) { + var end = { + row: lastRow+1, + column: 0 + }; + } + + if (this.start.row > lastRow) { + var start = { + row: lastRow+1, + column: 0 + }; + } + + if (this.start.row < firstRow) { + var start = { + row: firstRow, + column: 0 + }; + } + + if (this.end.row < firstRow) { + var end = { + row: firstRow, + column: 0 + }; + } + return Range.fromPoints(start || this.start, end || this.end); + }; + + /** + * Range.extend(row, column) -> Range + * - row (Number): A new row to extend to + * - column (Number): A new column to extend to + * + * Changes the row and column points for the calling range for both the starting and ending points. This method returns that range with a new row. + * + **/ + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row == this.end.row && this.start.column == this.end.column); + }; + + /** + * Range.isMultiLine() -> Boolean + * + * Returns true if the range spans across multiple lines. + * + **/ + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + + /** + * Range.clone() -> Range + * + * Returns a duplicate of the calling range. + * + **/ + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + + /** + * Range.collapseRows() -> Range + * + * Returns a range containing the starting and ending rows of the original range, but with a column value of `0`. + * + **/ + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) + else + return new Range(this.start.row, 0, this.end.row, 0) + }; + + /** + * Range.toScreenRange(session) -> Range + * - session (EditSession): The `EditSession` to retrieve coordinates from + * + * Given the current `Range`, this function converts those starting and ending points into screen positions, and then returns a new `Range` object. + **/ + this.toScreenRange = function(session) { + var screenPosStart = + session.documentToScreenPosition(this.start); + var screenPosEnd = + session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + +}).call(Range.prototype); + +/** + * Range.fromPoints(start, end) -> Range + * - start (Range): A starting point to use + * - end (Range): An ending point to use + * + * Creates and returns a new `Range` based on the row and column of the given parameters. + * +**/ +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; + +exports.Range = Range; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +/** + * class Anchor + * + * Defines the floating pointer in the document. Whenever text is inserted or deleted before the cursor, the position of the cursor is updated + * + **/ + +/** + * new Anchor(doc, row, column) + * - doc (Document): The document to associate with the anchor + * - row (Number): The starting row position + * - column (Number): The starting column position + * + * Creates a new `Anchor` and associates it with a document. + * + **/ + +var Anchor = exports.Anchor = function(doc, row, column) { + this.document = doc; + + if (typeof column == "undefined") + this.setPosition(row.row, row.column); + else + this.setPosition(row, column); + + this.$onChange = this.onChange.bind(this); + doc.on("change", this.$onChange); +}; + +(function() { + + oop.implement(this, EventEmitter); + + /** + * Anchor.getPosition() -> Object + * + * Returns an object identifying the `row` and `column` position of the current anchor. + * + **/ + + this.getPosition = function() { + return this.$clipPositionToDocument(this.row, this.column); + }; + + /** + * Anchor.getDocument() -> Document + * + * Returns the current document. + * + **/ + + this.getDocument = function() { + return this.document; + }; + + /** + * Anchor@onChange(e) + * - e (Event): Contains data about the event + * + * Fires whenever the anchor position changes. Events that can trigger this function include `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`. + * + **/ + + this.onChange = function(e) { + var delta = e.data; + var range = delta.range; + + if (range.start.row == range.end.row && range.start.row != this.row) + return; + + if (range.start.row > this.row) + return; + + if (range.start.row == this.row && range.start.column > this.column) + return; + + var row = this.row; + var column = this.column; + + if (delta.action === "insertText") { + if (range.start.row === row && range.start.column <= column) { + if (range.start.row === range.end.row) { + column += range.end.column - range.start.column; + } + else { + column -= range.start.column; + row += range.end.row - range.start.row; + } + } + else if (range.start.row !== range.end.row && range.start.row < row) { + row += range.end.row - range.start.row; + } + } else if (delta.action === "insertLines") { + if (range.start.row <= row) { + row += range.end.row - range.start.row; + } + } + else if (delta.action == "removeText") { + if (range.start.row == row && range.start.column < column) { + if (range.end.column >= column) + column = range.start.column; + else + column = Math.max(0, column - (range.end.column - range.start.column)); + + } else if (range.start.row !== range.end.row && range.start.row < row) { + if (range.end.row == row) { + column = Math.max(0, column - range.end.column) + range.start.column; + } + row -= (range.end.row - range.start.row); + } + else if (range.end.row == row) { + row -= range.end.row - range.start.row; + column = Math.max(0, column - range.end.column) + range.start.column; + } + } else if (delta.action == "removeLines") { + if (range.start.row <= row) { + if (range.end.row <= row) + row -= range.end.row - range.start.row; + else { + row = range.start.row; + column = 0; + } + } + } + + this.setPosition(row, column, true); + }; + + /** + * Anchor.setPosition(row, column, noClip) + * - row (Number): The row index to move the anchor to + * - column (Number): The column index to move the anchor to + * - noClip (Boolean): Identifies if you want the position to be clipped + * + * Sets the anchor position to the specified row and column. If `noClip` is `true`, the position is not clipped. + * + **/ + + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } + else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._emit("change", { + old: old, + value: pos + }); + }; + + /** + * Anchor.detach() + * + * When called, the `'change'` event listener is removed. + * + **/ + + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + + /** internal, hide + * Anchor.clipPositionToDocument(row, column) + * - row (Number): The row index to clip the anchor to + * - column (Number): The column index to clip the anchor to + * + * Clips the anchor position to the specified row and column. + * + **/ + + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + return new Array(count + 1).join(string); +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/xquery/xquery', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQueryLexer', 'ace/mode/xquery/XQueryParser'], function(require, exports, module) { + + var antlr = require("./antlr3-all"); + var org = antlr.org; + var NewLazyTokenStream = antlr.NewLazyTokenStream; + var XQueryLexer = require("./XQueryLexer").XQueryLexer; + var XQueryParser = require("./XQueryParser").XQueryParser; + + exports.getParser = function(code) { + var cstream = new org.antlr.runtime.ANTLRStringStream(code); + var lexer = new XQueryLexer(cstream); + var tstream = new NewLazyTokenStream(lexer); + tstream.jumpToFirstValidToken(); + var parser = new XQueryParser(tstream); + parser.setSource(cstream); + return parser; + }; +}); +/* +Copyright (c) 2003-2008 Terence Parr. All rights reserved. +Code licensed under the BSD License: +http://www.antlr.org/license.html + +Some parts of the ANTLR class: +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +*/ +/* +Some portions: +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.5.1 +*/ +define('ace/mode/xquery/antlr3-all', ['require', 'exports', 'module' ], function(require, exports, module) { +var NewLazyTokenStream = exports.NewLazyTokenStream = function(tokenSource) { + + this.tokenSource = tokenSource; + this.tokens = []; + this.isWsExplicit = false; + this.p = 0; + this.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + + this.LT = function(k) { + if (k == 0) + return null; + if (k < 0) + return this.readReverseNthGoodToken(-k); + + return this.readNthGoodToken(k); + }; + + this.get = function(i) { + if (i >= this.tokens.length) + return org.antlr.runtime.Token.EOF_TOKEN; + else + return this.tokens[i]; + }; + + this.getTokenSource = function() { + return this.tokenSource; + }; + + this.toString = function(start, stop) { + if(start == undefined) { + return this.toString(0, this.tokens.length - 1); + } else + if(start instanceof org.antlr.runtime.Token) { + return this.toString(start.getTokenIndex(), stop.getTokenIndex()); + } else { + if (start < 0) + start = 0; + if (this.p <= stop) { + this.readNTokens(stop - this.p + 1); + } + + var sb = ""; + for (var i = start; i <= stop && i < this.tokens.length; i++) { + sb += this.tokens[i].getText(); + } + return sb; + } + }; + + this.LA = function(i) { + return this.LT(i).getType(); + }; + + this.done = false; + + this.consume = function() { + if (this.done) { + return; + } + this.p++; + if (!this.isWsExplicit) { + this.jumpToFirstValidToken(); + } + }; + + this.getSourceName = function() { + return this.getTokenSource().getSourceName(); + }; + + this.index = function() { + return this.p; + }; + + this.mark = function() { + this.lastMarker = this.index(); + return this.lastMarker; + }; + + this.release = function(marker) { + }; + + this.rewind = function(marker) { + if(arguments.length == 1) { + this.seek(marker); + } else { + this.seek(this.lastMarker); + } + }; + + this.seek = function(index) { + this.p = index; + this.done = false; + }; + + this.size = function() { + return this.tokens.length; + }; + + this.setTokenSource = function(source) { + this.tokenSource = source; + this.setWsExplicit(source.isWsExplicit); + // un-read the unused tokens + // they are different for the new source + if (this.p < this.tokens.length) { + var rIndex = this.p > 0 ? this.tokens[this.p - 1].getStopIndex() : 0; + this.tokenSource.rewindToIndex(rIndex + 1); + for (var i = this.tokens.length - 1; i >= this.p; i--) { + this.tokens.splice(i, 1); + } + } + + // if we ignore WS, jump to next token + if (!this.isWsExplicit) { + this.jumpToFirstValidToken(); + } + }; + + this.setWsExplicit = function(explicit) { + this.isWsExplicit = explicit; + if (!explicit) { + this.jumpToFirstValidToken(); + } + }; + + this.readNthGoodToken = function(n) { + var count = this.tokens.length; + // number of buffered tokens available + var avt = count - this.p; + // i counts good tokens, j counts all tokens + var i = 1, j = 0; + var t = null; + while (i <= n) { + if (j < avt) // read from buffer + t = this.tokens[this.p + j]; + else { // read from source + t = this.tokenSource.nextToken(); + if (t == org.antlr.runtime.Token.EOF_TOKEN) { + return t; + } + t.setTokenIndex(count++); + this.tokens.push(t); + } + if (this.isWsExplicit || t.getChannel() == this.channel) { + i++; + } + j++; + } + return t; + }; + + this.readReverseNthGoodToken = function(n) { + if (n == 0 || (this.p - n) < 0) + return null; + + // i counts good tokens, j counts all tokens + var i = 1, j = 0; + var t = null; + while (this.p - 1 - j >= 0) { + t = this.get(this.p - 1 - j); + + if (this.isWsExplicit || t.getChannel() == this.channel) { + if (i++ == n) + return t; + } + j++; + } + return null; + }; + + this.readNTokens = function(n) { + var t = null; + for (var i = 0; i < n; i++) { + if (this.tokens.length > this.p + i) + continue; + + t = this.tokenSource.nextToken(); + if (t == org.antlr.runtime.Token.EOF_TOKEN) + return; + + t.setTokenIndex(this.p + i); + this.tokens.push(t); + } + }; + + this.jumpToFirstValidToken = function() { + var t = this.LT(1); + if (t != org.antlr.runtime.Token.EOF_TOKEN) { + this.done = false; + this.p = t.getTokenIndex(); + } + }; +}; + +// create org.antlr module +if (typeof org == "undefined" || !org) { + var org = {}; +} +if (typeof org.antlr == "undefined" || !org.antlr) { + /** + * The org.antlr global namespace object. If antlr is already defined, the + * existing antlr object will not be overwritten so that defined + * namespaces are preserved. + * @namespace org.antlr + */ + org.antlr = {}; +} + +/** + * The global JavaScript object. + */ +org.antlr.global = (function() { + return this; +}).call(null); + +/** + * Returns the namespace specified and creates it if it doesn't exist. + * + * Be careful when naming packages. Reserved words may work in some browsers + * and not others. For instance, the following will fail in Safari: + *
+ * org.antlr.namespace("really.long.nested.namespace");
+ * 
+ * This fails because "long" is a future reserved word in ECMAScript + * + * @static + * @param {String*} arguments 1-n namespaces to create + * @return {Object} A reference to the last namespace object created + * @example + * org.antlr.namespace("org.antlr.property.package"); + */ +org.antlr.namespace = function() { + var a=arguments, o=null, i, j, d; + for (i=0; i0 then it's the level of backtracking. + */ + this.backtracking = 0; + + /** An array[size num rules] of Map that tracks + * the stop token index for each rule. ruleMemo[ruleIndex] is + * the memoization table for ruleIndex. For key ruleStartIndex, you + * get back the stop token for associated rule or MEMO_RULE_FAILED. + * + * This is only used if rule memoization is on (which it is by default). + */ + this.ruleMemo = null; + + + // LEXER FIELDS (must be in same state object to avoid casting + // constantly in generated code and Lexer object) :( + + + /** The goal of all lexer rules/methods is to create a token object. + * This is an instance variable as multiple rules may collaborate to + * create a single token. nextToken will return this object after + * matching lexer rule(s). If you subclass to allow multiple token + * emissions, then set this to the last token to be matched or + * something nonnull so that the auto token emit mechanism will not + * emit another token. + */ + this.token = null; + + /** What character index in the stream did the current token start at? + * Needed, for example, to get the text for current token. Set at + * the start of nextToken. + */ + this.tokenStartCharIndex = -1; + + /** The line on which the first character of the token resides */ + // this.tokenStartLine; + + /** The character position of first character within the line */ + // this.tokenStartCharPositionInLine; + + /** The channel number for the current token */ + // this.channel; + + /** The token type for the current token */ + // this.type; + + /** You can set the text for the current token to override what is in + * the input char buffer. Use setText() or can set this instance var. + */ + this.text = null; +}; +org.antlr.runtime.IndexOutOfBoundsException = function(m) { + org.antlr.runtime.IndexOutOfBoundsException.superclass.constructor.call(this, m); +}; + +org.antlr.lang.extend(org.antlr.runtime.IndexOutOfBoundsException, Error, { + name: "org.antlr.runtime.IndexOutOfBoundsException" +}); +/** The root of the ANTLR exception hierarchy. + * + *

To avoid English-only error messages and to generally make things + * as flexible as possible, these exceptions are not created with strings, + * but rather the information necessary to generate an error. Then + * the various reporting methods in Parser and Lexer can be overridden + * to generate a localized error message. For example, MismatchedToken + * exceptions are built with the expected token type. + * So, don't expect getMessage() to return anything.

+ * + *

ANTLR generates code that throws exceptions upon recognition error and + * also generates code to catch these exceptions in each rule. If you + * want to quit upon first error, you can turn off the automatic error + * handling mechanism using rulecatch action, but you still need to + * override methods mismatch and recoverFromMismatchSet.

+ * + *

In general, the recognition exceptions can track where in a grammar a + * problem occurred and/or what was the expected input. While the parser + * knows its state (such as current input symbol and line info) that + * state can change before the exception is reported so current token index + * is computed and stored at exception time. From this info, you can + * perhaps print an entire line of input not just a single token, for example. + * Better to just say the recognizer had a problem and then let the parser + * figure out a fancy report.

+ * + * @class + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @extends Error + * + */ +org.antlr.runtime.RecognitionException = function(input) { + org.antlr.runtime.RecognitionException.superclass.constructor.call(this); + this.input = input; + this.index = input.index(); + if ( input instanceof NewLazyTokenStream ) {//org.antlr.runtime.CommonTokenStream ) { + this.token = input.LT(1); + this.line = this.token.getLine(); + this.charPositionInLine = this.token.getCharPositionInLine(); + } + if ( input instanceof org.antlr.runtime.tree.TreeNodeStream ) { + this.extractInformationFromTreeNodeStream(input); + } + else if ( input instanceof org.antlr.runtime.ANTLRStringStream ) { + // Note: removed CharStream from hierarchy in JS port so checking for + // StringStream instead + this.c = input.LA(1); + this.line = input.getLine(); + this.charPositionInLine = input.getCharPositionInLine(); + } + else { + this.c = input.LA(1); + } + + this.message = this.toString(); +}; + +org.antlr.lang.extend(org.antlr.runtime.RecognitionException, Error, +/** @lends org.antlr.runtime.RecognitionException.prototype */ +{ + /** + * What input stream did the error occur in? + */ + input: null, + + /** What is index of token/char were we looking at when the error occurred? + * @type Number + */ + index: null, + + /** The current Token when an error occurred. Since not all streams + * can retrieve the ith Token, we have to track the Token object. + * For parsers. Even when it's a tree parser, token might be set. + * @type org.antlr.runtime.CommonToken + */ + token: null, + + /** If this is a tree parser exception, node is set to the node with + * the problem. + * @type Object + */ + node: null, + + /** The current char when an error occurred. For lexers. + * @type Number + */ + c: null, + + /** Track the line at which the error occurred in case this is + * generated from a lexer. We need to track this since the + * unexpected char doesn't carry the line info. + * @type Number + */ + line: null, + + /** The exception's class name. + * @type String + */ + name: "org.antlr.runtime.RecognitionException", + + /** Position in the line where exception occurred. + * @type Number + */ + charPositionInLine: null, + + /** If you are parsing a tree node stream, you will encounter som + * imaginary nodes w/o line/col info. We now search backwards looking + * for most recent token with line/col info, but notify getErrorHeader() + * that info is approximate. + * @type Boolean + */ + approximateLineInfo: null, + + /** Gather exception information from input stream. + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + */ + extractInformationFromTreeNodeStream: function(input) { + var nodes = input, + priorNode, + priorPayLoad, + type, + text, + i; + + this.node = nodes.LT(1); + var adaptor = nodes.getTreeAdaptor(), + payload = adaptor.getToken(this.node); + if ( payload ) { + this.token = payload; + if ( payload.getLine()<= 0 ) { + // imaginary node; no line/pos info; scan backwards + i = -1; + priorNode = nodes.LT(i); + while ( priorNode ) { + priorPayload = adaptor.getToken(priorNode); + if ( priorPayload && priorPayload.getLine()>0 ) { + // we found the most recent real line / pos info + this.line = priorPayload.getLine(); + this.charPositionInLine = priorPayload.getCharPositionInLine(); + this.approximateLineInfo = true; + break; + } + --i; + priorNode = nodes.LT(i); + } + } + else { // node created from real token + this.line = payload.getLine(); + this.charPositionInLine = payload.getCharPositionInLine(); + } + } + else if ( this.node instanceof org.antlr.runtime.tree.CommonTree) { + this.line = this.node.getLine(); + this.charPositionInLine = this.node.getCharPositionInLine(); + if ( this.node instanceof org.antlr.runtime.tree.CommonTree) { + this.token = this.node.token; + } + } + else { + type = adaptor.getType(this.node); + text = adaptor.getText(this.node); + this.token = new org.antlr.runtime.CommonToken(type, text); + } + }, + + /** Return the token type or char of the unexpected input element + * @return {Number} type of the unexpected input element. + */ + getUnexpectedType: function() { + if ( this.input instanceof NewLazyTokenStream) {//org.antlr.runtime.CommonTokenStream ) { + return this.token.getType(); + } + else if ( this.input instanceof org.antlr.runtime.tree.TreeNodeStream ) { + var nodes = this.input; + var adaptor = nodes.getTreeAdaptor(); + return adaptor.getType(this.node); + } + else { + return this.c; + } + } +}); +org.antlr.runtime.MismatchedTokenException = function(expecting, input) { + if (arguments.length===0) { + this.expecting = org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } else { + org.antlr.runtime.MismatchedTokenException.superclass.constructor.call( + this, input); + this.expecting = expecting; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedTokenException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedTokenException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedTokenException" +}); +/** An extra token while parsing a TokenStream */ +org.antlr.runtime.UnwantedTokenException = function(expecting, input) { + if (arguments.length>0) { + org.antlr.runtime.UnwantedTokenException.superclass.constructor.call( + this, expecting, input); + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.UnwantedTokenException, + org.antlr.runtime.MismatchedTokenException, { + getUnexpectedToken: function() { + return this.token; + }, + toString: function() { + var exp = ", expected "+this.expecting; + if ( this.expecting===org.antlr.runtime.Token.INVALID_TOKEN_TYPE ) { + exp = ""; + } + if ( !org.antlr.lang.isValue(this.token) ) { + return "UnwantedTokenException(found="+exp+")"; + } + return "UnwantedTokenException(found="+this.token.getText()+exp+")"; + }, + name: "org.antlr.runtime.UnwantedTokenException" +}); +org.antlr.runtime.MissingTokenException = function(expecting, input, inserted) { + if (arguments.length>0) { + org.antlr.runtime.MissingTokenException.superclass.constructor.call( + this, expecting, input); + this.inserted = inserted; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MissingTokenException, + org.antlr.runtime.MismatchedTokenException, { + getMissingType: function() { + return this.expecting; + }, + + toString: function() { + if (org.antlr.lang.isValue(this.inserted) && + org.antlr.lang.isValue(this.token)) + { + return "MissingTokenException(inserted "+this.inserted+" at "+this.token.getText()+")"; + } + if ( org.antlr.lang.isValue(this.token) ) { + return "MissingTokenException(at "+this.token.getText()+")"; + } + return "MissingTokenException"; + }, + name: "org.antlr.runtime.MissingTokenException" +}); +org.antlr.runtime.NoViableAltException = function(grammarDecisionDescription, + decisionNumber, + stateNumber, + input) +{ + org.antlr.runtime.NoViableAltException.superclass.constructor.call(this, input); + this.grammarDecisionDescription = grammarDecisionDescription; + this.decisionNumber = decisionNumber; + this.stateNumber = stateNumber; +}; + +org.antlr.lang.extend( + org.antlr.runtime.NoViableAltException, + org.antlr.runtime.RecognitionException, { + toString: function() { + if ( this.input instanceof org.antlr.runtime.ANTLRStringStream ) { + return "NoViableAltException('"+this.getUnexpectedType()+"'@["+this.grammarDecisionDescription+"])"; + } + else { + return "NoViableAltException("+this.getUnexpectedType()+"@["+this.grammarDecisionDescription+"])"; + } + }, + name: "org.antlr.runtime.NoViableAltException" +}); +/** The recognizer did not match anything for a ()+ loop. + * + * @class + * @param {Number} decisionNumber + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @extends org.antlr.runtime.RecognitionException + */ +org.antlr.runtime.EarlyExitException = function(decisionNumber, input) { + org.antlr.runtime.EarlyExitException.superclass.constructor.call( + this, input); + this.decisionNumber = decisionNumber; +}; + +org.antlr.lang.extend( + org.antlr.runtime.EarlyExitException, + org.antlr.runtime.RecognitionException, +/** @lends org.antlr.runtime.EarlyExitException.prototype */ +{ + /** Name of this class. + * @type String + */ + name: "org.antlr.runtime.EarlyExitException" +}); +org.antlr.runtime.MismatchedSetException = function(expecting, input) { + org.antlr.runtime.MismatchedSetException.superclass.constructor.call( + this, input); + this.expecting = expecting; +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedSetException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedSetException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedSetException" +}); +org.antlr.runtime.MismatchedNotSetException = function(expecting, input) { + org.antlr.runtime.MismatchedNotSetException.superclass.constructor.call(this, expecting, input); +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedNotSetException, + org.antlr.runtime.MismatchedSetException, { + toString: function() { + return "MismatchedNotSetException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedNotSetException" +}); +org.antlr.runtime.MismatchedRangeException = function(a, b, input) { + if (arguments.length===0) { + return this; + } + + org.antlr.runtime.MismatchedRangeException.superclass.constructor.call( + this, input); + this.a = a; + this.b = b; +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedRangeException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedRangeException(" + + this.getUnexpectedType()+" not in ["+this.a+","+this.b+"])"; + }, + name: "org.antlr.runtime.MismatchedRangeException" +}); +/** A semantic predicate failed during validation. Validation of predicates + * occurs when normally parsing the alternative just like matching a token. + * Disambiguating predicate evaluation occurs when we hoist a predicate into + * a prediction decision. + * + * @class + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @param {String} ruleName name of the rule in which the exception occurred. + * @param {String} predicateText the predicate that failed. + * @extends org.antlr.runtime.RecognitionException + */ +org.antlr.runtime.FailedPredicateException = function(input, ruleName, predicateText){ + org.antlr.runtime.FailedPredicateException.superclass.constructor.call(this, input); + this.ruleName = ruleName; + this.predicateText = predicateText; +}; + +org.antlr.lang.extend( + org.antlr.runtime.FailedPredicateException, + org.antlr.runtime.RecognitionException, +/** @lends org.antlr.runtime.FailedPredicateException.prototype */ +{ + /** Create a string representation of this exception. + * @returns {String} + */ + toString: function() { + return "FailedPredicateException("+this.ruleName+",{"+this.predicateText+"}?)"; + }, + + /** Name of this class. + * @type String + */ + name: "org.antlr.runtime.FailedPredicateException" +}); +/** + * A BitSet similar to java.util.BitSet. + * + *

JavaScript Note: There is no good way to implement something like this in + * JavaScript. JS has no true int type, arrays are usually implemented as + * hashes, etc. This class should probably be nixed for something that is + * similarly (in)efficient, but more clear.

+ * + * @class + * @param {Number|Array} [bits] a 32 bit number or array of 32 bit numbers + * representing the bitset. These are typically + * generated by the ANTLR Tool. + */ +org.antlr.runtime.BitSet = function(bits) { + if (!bits) { + bits = org.antlr.runtime.BitSet.BITS; + } + + if (org.antlr.lang.isArray(bits)) { + /** + * An array of Numbers representing the BitSet. + * @type Array + */ + this.bits = bits; + } else if(org.antlr.lang.isNumber(bits)) { + this.bits = []; + } +}; + +org.antlr.lang.augmentObject(org.antlr.runtime.BitSet, { + /** + * Number of bits in each number. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + BITS: 32, + + /** + * Log (base 2) of the number of bits in each number. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + LOG_BITS: 5, // 2^5 == 32 + + /** + * We will often need to do a mod operator (i mod nbits). Its + * turns out that, for powers of two, this mod operation is + * same as (i & (nbits-1)). Since mod is slow, we use a + * precomputed mod mask to do the mod instead. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + MOD_MASK: 31, // BITS - 1 + + /** + * Create mask for bit modded to fit in a single word. + * @example + * bitmask(35) => 00000000000000000000000000000100 + * bitmask(3) => 00000000000000000000000000000100 + * @param {Number} bitNumber the bit to create a mask for. + * @returns {Number} the bitmask. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + bitMask: function(bitNumber) { + var bitPosition = bitNumber & org.antlr.runtime.BitSet.MOD_MASK; + return 1 << bitPosition; + }, + + /** + * Calculate the minimum number of bits needed to represent el. + * @param {Number} el a number to be included in the BitSet. + * @returns {Number} the number of bits need to create a BitSet with member + * el. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + numWordsToHold: function(el) { + return (el >> org.antlr.runtime.BitSet.LOG_BITS) + 1; + }, + + /** + * @param {Number} bit a number to be included in the BitSet + * @returns {Number} the index of the word in the field bits that would + * hold bit. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + wordNumber: function(bit) { + return bit >> org.antlr.runtime.BitSet.LOG_BITS; // bit / BITS + }, + + /** + * BitSet factory method. + * + *

Operates in a number of modes: + *

    + *
  • If el is a number create the BitSet containing that number.
  • + *
  • If el is an array create the BitSet containing each number in the + * array.
  • + *
  • If el is a BitSet return el.
  • + *
  • If el is an Object create the BitSet containing each numeric value + * in el.
  • + *
  • If el is a number and el2 is a number return a BitSet containing + * the numbers between el and el2 (inclusive).
  • + *
+ *

+ * @param {Number|Array|org.antlr.runtime.BitSet|Object} el + * @param {Number} el2 + * @returns {org.antlr.runtime.BitSet} + * @memberOf org.antlr.runtime.BitSet + */ + of: function(el, el2) { + var i, n, s, keys; + + if (org.antlr.lang.isNumber(el)) { + if (org.antlr.lang.isNumber(el2)) { + s = new org.antlr.runtime.BitSet(el2 + 1); + for (i = el; i <= el2; i++) { + n = org.antlr.runtime.BitSet.wordNumber(i); + s.bits[n] |= org.antlr.runtime.BitSet.bitMask(i); + } + return s; + } else { + s = new org.antlr.runtime.BitSet(el + 1); + s.add(el); + return s; + } + } else if(org.antlr.lang.isArray(el)) { + s = new org.antlr.runtime.BitSet(); + for (i=el.length-1; i>=0; i--) { + s.add(el[i]); + } + return s; + } else if (el instanceof org.antlr.runtime.BitSet) { + if (!el) { + return null; + } + return el; + } else if (el instanceof org.antlr.runtime.IntervalSet) { + if (!el) { + return null; + } + s = new org.antlr.runtime.BitSet(); + s.addAll(el); + return s; + } else if (org.antlr.lang.isObject(el)) { + keys = []; + for (i in el) { + if (org.antlr.lang.isNumber(i)) { + keys.push(i); + } + } + return org.antlr.runtime.BitSet.of(keys); + } + } +}); + + + +org.antlr.runtime.BitSet.prototype = { + /** + * Add el into this set. + * @param {Number} el the number to add to the set. + */ + add: function(el) { + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { + this.growToInclude(el); + } + this.bits[n] |= org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Add multiple elements into this set. + * @param {Array|org.antlr.runtime.BitSet} elements the elements to be added to + * this set. + */ + addAll: function(elements) { + var other, + i, + e; + + if ( elements instanceof org.antlr.runtime.BitSet ) { + this.orInPlace(elements); + } + else if ( elements instanceof org.antlr.runtime.IntervalSet ) { + other = elements; + // walk set and add each interval + /* @todo after implementing intervalset + for (Iterator iter = other.intervals.iterator(); iter.hasNext();) { + Interval I = (Interval) iter.next(); + this.orInPlace(BitSet.range(I.a,I.b)); + }*/ + } else if (org.antlr.lang.isArray(elements)) { + for (i = 0; i < elements.length; i++) { + e = elements[i]; + this.add(e); + } + } else { + return; + } + }, + + /** + * Clone this BitSet and then {@link #andInPlace} with a. + * @param {org.antlr.runtime.BitSet} a a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + and: function(a) { + var s = this.clone(); + s.andInPlace(a); + return s; + }, + + /** + * Perform a logical AND of this target BitSet with the argument BitSet. + * + * This bit set is modified so that each bit in it has the value true if + * and only if it both initially had the value true and the corresponding + * bit in the bit set argument also had the value true. + * @param {org.antlr.runtime.BitSet} a a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + andInPlace: function(a) { + var min = Math.min(this.bits.length, a.bits.length), + i; + for (i = min - 1; i >= 0; i--) { + this.bits[i] &= a.bits[i]; + } + // clear all bits in this not present in a (if this bigger than a). + for (i = min; i < this.bits.length; i++) { + this.bits[i] = 0; + } + }, + + /** + * Clear all bits or a specific bit. + * + * If no arguments given, sets all of the bits in this BitSet to false. + * If one argument given, sets the bit specified by the index to false. + * @param {Number} [el] the index of the bit to be cleared. + */ + clear: function(el) { + if (arguments.length===0) { + var i; + for (i = this.bits.length - 1; i >= 0; i--) { + this.bits[i] = 0; + } + return; + } + + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { // grow as necessary to accommodate + this.growToInclude(el); + } + this.bits[n] &= ~org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Cloning this BitSet produces a new BitSet that is equal to it. + * + * The clone of the bit set is another bit set that has exactly the same + * bit set to true as this bit set. + * @returns {org.antlr.runtime.BitSet} a clone of this BitSet. + */ + clone: function() { + var i, len, b=[]; + for (i=0, len=this.bits.length; i= 0; i--) { + word = this.bits[i]; + if (word !== 0) { + for (bit = org.antlr.runtime.BitSet.BITS - 1; bit >= 0; bit--) { + if ((word & (1 << bit)) !== 0) { + deg++; + } + } + } + } + return deg; + }, + + /** + * Compares this object against the specified object. + * + * The result is true if and only if the argument is not null and is a + * BitSet object that has exactly the same set of bits set to true as + * this bit set. That is, for every nonnegative int index k, + *

+     * ((BitSet)obj).get(k) == this.get(k)
+     * 
+ * must be true. The current sizes of the two bit sets are not compared. + * @param {Object} other the object to compare with. + * @returns {Boolean} if the objects are the same; false otherwise. + */ + equals: function(other) { + if ( !other || !(other instanceof org.antlr.runtime.BitSet) ) { + return false; + } + + var otherSet = other, + i, + n = Math.min(this.bits.length, otherSet.bits.length); + + // for any bits in common, compare + for (i=0; i n) { + for (i = n+1; i n) { + for (i = n+1; i= this.bits.length) { return false; } + return (this.bits[n] & org.antlr.runtime.BitSet.bitMask(el)) !== 0; + }, + + /** + * Returns the index of the first bit that is set to true. + * If no such bit exists then -1 is returned. + * @returns {Number} the index of the next set bit. + */ + getSingleElement: function() { + var i; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + return i; + } + } + return -1; //Label.INVALID; + }, + + /** + * Returns true if this BitSet contains no bits that are set to true. + * @returns {Boolean} boolean indicating whether this BitSet is empty. + */ + isNil: function() { + var i; + for (i = this.bits.length - 1; i >= 0; i--) { + if (this.bits[i] !== 0) { + return false; + } + } + return true; + }, + + /** + * If a bit set argument is passed performs a {@link #subtract} of this bit + * set with the argument bit set. If no argument is passed, clone this bit + * set and {@link #notInPlace}. + * @param {org.antlr.runtime.BitSet} [set] + * @returns {org.antlr.runtime.BitSet} + */ + complement: function(set) { + if (set) { + return set.subtract(this); + } else { + var s = this.clone(); + s.notInPlace(); + return s; + } + }, + + /** + * If no arguments are passed sets all bits to the complement of their + * current values. If one argument is passed sets each bit from the + * beginning of the bit set to index1 (inclusive) to the complement of its + * current value. If two arguments are passed sets each bit from the + * specified index1 (inclusive) to the sepcified index2 (inclusive) to the + * complement of its current value. + * @param {Number} index1 + * @param {Number} index2 + */ + notInPlace: function() { + var minBit, maxBit, i, n; + if (arguments.length===0) { + for (i = this.bits.length - 1; i >= 0; i--) { + this.bits[i] = ~this.bits[i]; + } + } else { + if (arguments.length===1) { + minBit = 0; + maxBit = arguments[0]; + } else { + minBit = arguments[0]; + maxBit = arguments[1]; + } + // make sure that we have room for maxBit + this.growToInclude(maxBit); + for (i = minBit; i <= maxBit; i++) { + n = org.antlr.runtime.BitSet.wordNumber(i); + this.bits[n] ^= org.antlr.runtime.BitSet.bitMask(i); + } + } + + }, + + /** + * Performs a logical OR of this bit set with the bit set argument. + * If no argument is passed, return this bit set. Otherwise a clone of + * this bit set is modified so that a bit in it has the value true if and + * only if it either already had the value true or the corresponding bit + * in the bit set argument has the value true. + * @param {org.antlr.runtime.BitSet} [a] a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + or: function(a) { + if ( !a ) { + return this; + } + var s = this.clone(); + s.orInPlace(a); + return s; + }, + + /** + * Performs a logical {@link #or} in place. + * @param {org.antlr.runtime.BitSet} [a] + * @returns {org.antlr.runtime.BitSet} + */ + orInPlace: function(a) { + if ( !a ) { + return; + } + // If this is smaller than a, grow this first + if (a.bits.length > this.bits.length) { + this.setSize(a.bits.length); + } + var min = Math.min(this.bits.length, a.bits.length), + i; + for (i = min - 1; i >= 0; i--) { + this.bits[i] |= a.bits[i]; + } + }, + + /** + * Sets the bit specified by the index to false. + * @param {Number} bitIndex the index of the bit to be cleared. + */ + remove: function(el) { + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { + this.growToInclude(el); + } + this.bits[n] &= ~org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Grows the internal bits array to include at least nwords numbers. + * @private + * @param {Number} nwords how many words the new set should be + * @private + */ + setSize: function(nwords) { + var n = nwords - this.bits.length; + while (n>=0) { + this.bits.push(0); + n--; + } + }, + + /** + * Returns the number of bits capable of being represented by this bit set + * given its current size. + * @returns {Number} the maximum number of bits that can be represented at + * the moment. + * @private + */ + numBits: function() { + return this.bits.length << org.antlr.runtime.BitSet.LOG_BITS; // num words * bits per word + }, + + /** + * Return how much space is being used by the bits array not + * how many actually have member bits on. + * @returns {Number} the length of the internal bits array. + * @private + */ + lengthInLongWords: function() { + return this.bits.length; + }, + + /** + * Is this bit set contained within a? + * @param {org.antlr.runtime.BitSet} a bit set + * @returns {Boolean} true if and only if a is a subset of this bit set. + */ + subset: function(a) { + if (!a) { return false; } + return this.and(a).equals(this); + }, + + /** + * Subtract the elements of the argument bit set from this bit set in place. + * That is, for each set bit in the argument bit set, set the corresponding + * bit in this bit set to false. + * @param {org.antlr.runtime.BitSet} a bit set. + */ + subtractInPlace: function(a) { + if (!a) { return; } + // for all words of 'a', turn off corresponding bits of 'this' + var i; + for (i = 0; i < this.bits.length && i < a.bits.length; i++) { + this.bits[i] &= ~a.bits[i]; + } + }, + + /** + * Perform a {@link #subtractInPlace} on a clone of this bit set. + * @param {org.antlr.runtime.BitSet} a bit set. + * @returns {org.antlr.runtime.BitSet} the new bit set. + */ + subtract: function(a) { + if (!a || !(a instanceof org.antlr.runtime.BitSet)) { return null; } + + var s = this.clone(); + s.subtractInPlace(a); + return s; + }, + + /* antlr-java needs this to make its class hierarchy happy . . . + toList: function() { + throw new Error("BitSet.toList() unimplemented"); + }, + */ + + /** + * Creates an array of the indexes of each bit set in this bit set. + * @returns {Array} + */ + toArray: function() { + var elems = [], //new Array(this.size()), + i, + en = 0; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + elems[en++] = i; + } + } + return elems; + }, + + /** + * Returns the internal representation of this bit set. + * This representation is an array of numbers, each representing 32 bits. + * @returns {Array} + */ + toPackedArray: function() { + return this.bits; + }, + + /** + * Returns a string representation of this bit set. + *

For every index for which this BitSet contains a bit in the set state, + * the decimal representation of that index is included in the result. + * Such indices are listed in order from lowest to highest, separated by + * ", " (a comma and a space) and surrounded by braces, resulting in the + * usual mathematical notation for a set of integers.

+ * + *

If a grammar g is passed, print g.getTokenDisplayName(i) for each set + * index instead of the numerical index.

+ * + * <>If two arguments are passed, the first will be used as a custom + * separator string. The second argument is an array whose i-th element + * will be added if the corresponding bit is set.

+ * + * @param {Object|String} [arg1] an Object with function property + * getTokenDispalyName or a String that will be used as a list + * separator. + * @param {Array} [vocabulary] array from which the i-th value will be + * drawn if the corresponding bit is set. Must pass a string as the + * first argument if using this option. + * @return A commma-separated list of values + */ + toString: function() { + if (arguments.length===0) { + return this.toString1(null); + } else { + if (org.antlr.lang.isString(arguments[0])) { + if (!org.antlr.lang.isValue(arguments[1])) { + return this.toString1(null); + } else { + return this.toString2(arguments[0], arguments[1]); + } + } else { + return this.toString1(arguments[0]); + } + } + }, + + /** + * Transform a bit set into a string by formatting each element as an + * integer separator The string to put in between elements + * @private + * @return A commma-separated list of values + */ + toString1: function(g) { + var buf = "{", + separator = ",", + i, + havePrintedAnElement = false; + + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + if (i > 0 && havePrintedAnElement ) { + buf += separator; + } + if ( g ) { + buf += g.getTokenDisplayName(i); + } + else { + buf += i.toString(); + } + havePrintedAnElement = true; + } + } + return buf + "}"; + }, + + /** + * Create a string representation where instead of integer elements, the + * ith element of vocabulary is displayed instead. Vocabulary is a Vector + * of Strings. + * separator The string to put in between elements + * @private + * @return A commma-separated list of character constants. + */ + toString2: function(separator, vocabulary) { + var str = "", + i; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + if (str.length > 0) { + str += separator; + } + if (i >= vocabulary.size()) { + str += "'" + i + "'"; + } + else if (!org.antlr.lang.isValue(vocabulary.get(i))) { + str += "'" + i + "'"; + } + else { + str += vocabulary.get(i); + } + } + } + return str; + } + + /* + * Dump a comma-separated list of the words making up the bit set. + * Split each 32 bit number into two more manageable 16 bit numbers. + * @returns {String} comma separated list view of the this.bits property. + * + toStringOfHalfWords: function() { + var s = "", + tmp, + i; + for (i = 0; i < this.bits.length; i++) { + if (i !== 0) { + s+=", "; + } + tmp = this.bits[i]; + tmp &= 0xFFFF; + s += tmp + "UL, "; + tmp = this.bits[i] >> 16; + tmp &= 0xFFFF; + s += tmp+"UL"; + } + return s; + }, + */ + + /* + * Dump a comma-separated list of the words making up the bit set. + * This generates a comma-separated list of Java-like long int constants. + * + toStringOfWords: function() { + var s="", + i; + for (i = 0; i < this.bits.length; i++) { + if (i !== 0) { + s+=", "; + } + s += this.bits[i]+"L"; + } + return s; + }, + + toStringWithRanges: function() { + return this.toString(); + } + */ +}; + +/* + * + * +org.antlr.runtime.IntervalSet = function() { + throw new Error("not implemented"); +}; +*/ +org.antlr.runtime.CharStream = { + EOF: -1 +}; +org.antlr.runtime.CommonToken = function() { + var oldToken; + + this.charPositionInLine = -1; // set to invalid position + this.channel = 0; // org.antlr.runtime.CommonToken.DEFAULT_CHANNEL + this.index = -1; + + if (arguments.length == 1) { + if (org.antlr.lang.isNumber(arguments[0])) { + this.type = arguments[0]; + } else { + oldToken = arguments[0]; + this.text = oldToken.getText(); + this.type = oldToken.getType(); + this.line = oldToken.getLine(); + this.index = oldToken.getTokenIndex(); + this.charPositionInLine = oldToken.getCharPositionInLine(); + this.channel = oldToken.getChannel(); + if ( oldToken instanceof org.antlr.runtime.CommonToken ) { + this.start = oldToken.start; + this.stop = oldToken.stop; + } + } + } else if (arguments.length == 2) { + this.type = arguments[0]; + this.text = arguments[1]; + this.channel = 0; // org.antlr.runtime.CommonToken.DEFAULT_CHANNEL + } else if (arguments.length == 5) { + this.input = arguments[0]; + this.type = arguments[1]; + this.channel = arguments[2]; + this.start = arguments[3]; + this.stop = arguments[4]; + } +}; + +org.antlr.runtime.CommonToken.prototype = { + getType: function() { + return this.type; + }, + + setLine: function(line) { + this.line = line; + }, + + getText: function() { + if ( org.antlr.lang.isString(this.text) ) { + return this.text; + } + if ( !this.input ) { + return null; + } + this.text = this.input.substring(this.start,this.stop); + return this.text; + }, + + /** Override the text for this token. getText() will return this text + * rather than pulling from the buffer. Note that this does not mean + * that start/stop indexes are not valid. It means that that input + * was converted to a new string in the token object. + */ + setText: function(text) { + this.text = text; + }, + + getLine: function() { + return this.line; + }, + + getCharPositionInLine: function() { + return this.charPositionInLine; + }, + + setCharPositionInLine: function(charPositionInLine) { + this.charPositionInLine = charPositionInLine; + }, + + getChannel: function() { + return this.channel; + }, + + setChannel: function(channel) { + this.channel = channel; + }, + + setType: function(type) { + this.type = type; + }, + + getStartIndex: function() { + return this.start; + }, + + setStartIndex: function(start) { + this.start = start; + }, + + getStopIndex: function() { + return this.stop; + }, + + setStopIndex: function(stop) { + this.stop = stop; + }, + + getTokenIndex: function() { + return this.index; + }, + + setTokenIndex: function(index) { + this.index = index; + }, + + getInputStream: function() { + return this.input; + }, + + setInputStream: function(input) { + this.input = input; + }, + + toString: function() { + var channelStr = ""; + if ( this.channel>0 ) { + channelStr=",channel="+this.channel; + } + var txt = this.getText(); + if ( !org.antlr.lang.isNull(txt) ) { + txt = txt.replace(/\n/g,"\\\\n"); + txt = txt.replace(/\r/g,"\\\\r"); + txt = txt.replace(/\t/g,"\\\\t"); + } + else { + txt = ""; + } + return "[@"+this.getTokenIndex()+","+this.start+":"+this.stop+"='"+txt+"',<"+this.type+">"+channelStr+","+this.line+":"+this.getCharPositionInLine()+"]"; + } +}; +// NB: Because Token has static members of type CommonToken, the Token dummy +// constructor is defined in CommonToken. All methods and vars of Token are +// defined here. Token is an interface, not a subclass in the Java runtime. + +/** + * @class Abstract base class of all token types. + * @name Token + * @memberOf org.antlr.runtime + */ +org.antlr.runtime.Token = function() {}; +org.antlr.lang.augmentObject(org.antlr.runtime.Token, /** @lends Token */ { + EOR_TOKEN_TYPE: 1, + + /** imaginary tree navigation type; traverse "get child" link */ + DOWN: 2, + /** imaginary tree navigation type; finish with a child list */ + UP: 3, + + MIN_TOKEN_TYPE: 4, // UP+1, + + EOF: org.antlr.runtime.CharStream.EOF, + EOF_TOKEN: new org.antlr.runtime.CommonToken(org.antlr.runtime.CharStream.EOF), + + INVALID_TOKEN_TYPE: 0, + INVALID_TOKEN: new org.antlr.runtime.CommonToken(0), + + /** In an action, a lexer rule can set token to this SKIP_TOKEN and ANTLR + * will avoid creating a token for this symbol and try to fetch another. + */ + SKIP_TOKEN: new org.antlr.runtime.CommonToken(0), + + /** All tokens go to the parser (unless skip() is called in that rule) + * on a particular "channel". The parser tunes to a particular channel + * so that whitespace etc... can go to the parser on a "hidden" channel. + */ + DEFAULT_CHANNEL: 0, + + /** Anything on different channel than DEFAULT_CHANNEL is not parsed + * by parser. + */ + HIDDEN_CHANNEL: 99 +}); + +org.antlr.lang.augmentObject(org.antlr.runtime.CommonToken, org.antlr.runtime.Token); +org.antlr.runtime.tree = {}; +org.antlr.runtime.tree.RewriteCardinalityException = function(elementDescription) { + this.elementDescription = elementDescription; +}; + +/** Base class for all exceptions thrown during AST rewrite construction. + * This signifies a case where the cardinality of two or more elements + * in a subrule are different: (ID INT)+ where |ID|!=|INT| + */ +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteCardinalityException, Error, { + getMessage: function() { + if ( org.antlr.lang.isString(this.elementDescription) ) { + return this.elementDescription; + } + return null; + }, + name: function() { + return "org.antlr.runtime.tree.RewriteCardinalityException"; + } +}); +/** Ref to ID or expr but no tokens in ID stream or subtrees in expr stream */ +org.antlr.runtime.tree.RewriteEmptyStreamException = function(elementDescription) { + var sup = org.antlr.runtime.tree.RewriteEmptyStreamException.superclass; + sup.constructor.call(this, elementDescription); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteEmptyStreamException, + org.antlr.runtime.tree.RewriteCardinalityException, { + name: function() { + return "org.antlr.runtime.tree.RewriteEmptyStreamException"; + } +}); +/** No elements within a (...)+ in a rewrite rule */ +org.antlr.runtime.tree.RewriteEarlyExitException = function(elementDescription) { + var sup = org.antlr.runtime.tree.RewriteEarlyExitException.superclass; + if (org.antlr.lang.isUndefined(elementDescription)) { + elementDescription = null; + } + sup.constructor.call(this, elementDescription); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteEarlyExitException, + org.antlr.runtime.tree.RewriteCardinalityException, { + name: function() { + return "org.antlr.runtime.tree.RewriteEarlyExitException"; + } +}); +org.antlr.runtime.MismatchedTreeNodeException = function(expecting, input) { + if (expecting && input) { + org.antlr.runtime.MismatchedTreeNodeException.superclass.constructor.call( + this, input); + this.expecting = expecting; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedTreeNodeException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedTreeNodeException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedTreeNodeException" +}); +/** A generic tree implementation with no payload. You must subclass to + * actually have any user data. ANTLR v3 uses a list of children approach + * instead of the child-sibling approach in v2. A flat tree (a list) is + * an empty node whose children represent the list. An empty, but + * non-null node is called "nil". + */ +org.antlr.runtime.tree.BaseTree = function() {}; + +org.antlr.runtime.tree.BaseTree.prototype = { + getChild: function(i) { + if ( !this.children || i>=this.children.length ) { + return null; + } + return this.children[i]; + }, + + /** Get the children internal List; note that if you directly mess with + * the list, do so at your own risk. + */ + getChildren: function() { + return this.children; + }, + + getFirstChildWithType: function(type) { + var i, t; + for (i = 0; this.children && i < this.children.length; i++) { + t = this.children[i]; + if ( t.getType()===type ) { + return t; + } + } + return null; + }, + + getChildCount: function() { + if ( !this.children ) { + return 0; + } + return this.children.length; + }, + + /** Add t as child of this node. + * + * Warning: if t has no children, but child does + * and child isNil then this routine moves children to t via + * t.children = child.children; i.e., without copying the array. + */ + addChild: function(t) { + if ( !org.antlr.lang.isValue(t) ) { + return; // do nothing upon addChild(null) + } + var childTree = t, n, i, c; + if ( childTree.isNil() ) { // t is an empty node possibly with children + if ( this.children && this.children == childTree.children ) { + throw new Error("attempt to add child list to itself"); + } + // just add all of childTree's children to this + if ( childTree.children ) { + if ( this.children ) { // must copy, this has children already + n = childTree.children.length; + for (i = 0; i < n; i++) { + c = childTree.children[i]; + this.children.push(c); + // handle double-link stuff for each child of nil root + c.setParent(this); + c.setChildIndex(this.children.length-1); + } + } + else { + // no children for this but t has children; just set pointer + // call general freshener routine + this.children = childTree.children; + this.freshenParentAndChildIndexes(); + } + } + } + else { // child is not nil (don't care about children) + if ( !this.children ) { + this.children = this.createChildrenList(); // create children list on demand + } + this.children.push(t); + childTree.setParent(this); + childTree.setChildIndex(this.children.length-1); + } + }, + + /** Add all elements of kids list as children of this node */ + addChildren: function(kids) { + var i, t; + for (i = 0; i < kids.length; i++) { + t = kids[i]; + this.addChild(t); + } + }, + + setChild: function(i, t) { + if ( !t ) { + return; + } + if ( t.isNil() ) { + throw new Error("Can't set single child to a list"); + } + if ( !this.children ) { + this.children = this.createChildrenList(); + } + this.children[i] = t; + t.setParent(this); + t.setChildIndex(i); + }, + + deleteChild: function(i) { + if ( !this.children ) { + return null; + } + if (i<0 || i>=this.children.length) { + throw new Error("Index out of bounds."); + } + var killed = this.children.splice(i, 1)[0]; + // walk rest and decrement their child indexes + this.freshenParentAndChildIndexes(i); + return killed; + }, + + /** Delete children from start to stop and replace with t even if t is + * a list (nil-root tree). num of children can increase or decrease. + * For huge child lists, inserting children can force walking rest of + * children to set their childindex; could be slow. + */ + replaceChildren: function(startChildIndex, stopChildIndex, t) { + if ( !this.children ) { + throw new Error("indexes invalid; no children in list"); + } + var replacingHowMany = stopChildIndex - startChildIndex + 1; + var replacingWithHowMany; + var newTree = t; + var newChildren = null; + // normalize to a list of children to add: newChildren + if ( newTree.isNil() ) { + newChildren = newTree.children; + } + else { + newChildren = []; + newChildren.push(newTree); + } + replacingWithHowMany = newChildren.length; + var numNewChildren = newChildren.length; + var delta = replacingHowMany - replacingWithHowMany; + var j, i, child, indexToDelete, c, killed, numToInsert; + // if same number of nodes, do direct replace + if ( delta === 0 ) { + j = 0; // index into new children + for (i=startChildIndex; i<=stopChildIndex; i++) { + child = newChildren[j]; + this.children[i] = child; + child.setParent(this); + child.setChildIndex(i); + j++; + } + } + else if ( delta > 0 ) { // fewer new nodes than there were + // set children and then delete extra + for (j=0; j0 ) { + buf += ' '; + } + buf += t.toStringTree(); + } + if ( !this.isNil() ) { + buf += ")"; + } + return buf; + }, + + getLine: function() { + return 0; + }, + + getCharPositionInLine: function() { + return 0; + } +}; +/** A tree node that is wrapper for a Token object. After 3.0 release + * while building tree rewrite stuff, it became clear that computing + * parent and child index is very difficult and cumbersome. Better to + * spend the space in every tree node. If you don't want these extra + * fields, it's easy to cut them out in your own BaseTree subclass. + */ +org.antlr.runtime.tree.CommonTree = function(node) { + /** What token indexes bracket all tokens associated with this node + * and below? + */ + this.startIndex = -1; + this.stopIndex = -1; + + /** What index is this node in the child list? Range: 0..n-1 */ + this.childIndex = -1; + + /** Who is the parent node of this node; if null, implies node is root */ + this.parent = null; + + /** A single token is the payload */ + this.token = null; + + if (node instanceof org.antlr.runtime.tree.CommonTree) { + org.antlr.runtime.tree.CommonTree.superclass.constructor.call(this, node); + this.token = node.token; + this.startIndex = node.startIndex; + this.stopIndex = node.stopIndex; + } else if (node instanceof org.antlr.runtime.CommonToken) { + this.token = node; + } +}; + +/** A tree node that is wrapper for a Token object. */ +org.antlr.lang.extend(org.antlr.runtime.tree.CommonTree, org.antlr.runtime.tree.BaseTree, { + getToken: function() { + return this.token; + }, + + dupNode: function() { + return new org.antlr.runtime.tree.CommonTree(this); + }, + + isNil: function() { + return !this.token; + }, + + getType: function() { + if ( !this.token ) { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } + return this.token.getType(); + }, + + getText: function() { + if ( !this.token ) { + return null; + } + return this.token.getText(); + }, + + getLine: function() { + if ( !this.token || this.token.getLine()===0 ) { + if ( this.getChildCount()>0 ) { + return this.getChild(0).getLine(); + } + return 0; + } + return this.token.getLine(); + }, + + getCharPositionInLine: function() { + if ( !this.token || this.token.getCharPositionInLine()===-1 ) { + if ( this.getChildCount()>0 ) { + return this.getChild(0).getCharPositionInLine(); + } + return 0; + } + return this.token.getCharPositionInLine(); + }, + + getTokenStartIndex: function() { + if ( this.token ) { + return this.token.getTokenIndex(); + } + return this.startIndex; + }, + + setTokenStartIndex: function(index) { + this.startIndex = index; + }, + + getTokenStopIndex: function() { + if ( this.token ) { + return this.token.getTokenIndex(); + } + return this.stopIndex; + }, + + setTokenStopIndex: function(index) { + this.stopIndex = index; + }, + + getChildIndex: function() { + return this.childIndex; + }, + + getParent: function() { + return this.parent; + }, + + setParent: function(t) { + this.parent = t; + }, + + setChildIndex: function(index) { + this.childIndex = index; + }, + + toString: function() { + if ( this.isNil() ) { + return "nil"; + } + if ( this.getType()===org.antlr.runtime.Token.INVALID_TOKEN_TYPE ) { + return ""; + } + if ( !this.token ) { + return null; + } + return this.token.getText(); + } +}); +/** What does a tree look like? ANTLR has a number of support classes + * such as CommonTreeNodeStream that work on these kinds of trees. You + * don't have to make your trees implement this interface, but if you do, + * you'll be able to use more support code. + * + * NOTE: When constructing trees, ANTLR can build any kind of tree; it can + * even use Token objects as trees if you add a child list to your tokens. + * + * This is a tree node without any payload; just navigation and factory stuff. + */ +org.antlr.runtime.tree.Tree = { + INVALID_NODE: new org.antlr.runtime.tree.CommonTree(org.antlr.runtime.Token.INVALID_TOKEN) +}; +org.antlr.runtime.tree.CommonErrorNode = function(input, start, stop, e) { + if ( !stop || + (stop.getTokenIndex() < start.getTokenIndex() && + stop.getType()!=org.antlr.runtime.Token.EOF) ) + { + // sometimes resync does not consume a token (when LT(1) is + // in follow set. So, stop will be 1 to left to start. adjust. + // Also handle case where start is the first token and no token + // is consumed during recovery; LT(-1) will return null. + stop = start; + } + this.input = input; + this.start = start; + this.stop = stop; + this.trappedException = e; +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.CommonErrorNode, org.antlr.runtime.tree.CommonTree, { + isNil: function() { + return false; + }, + + getType: function() { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + }, + + getText: function() { + var badText = null; + if ( this.start instanceof org.antlr.runtime.CommonToken ) { + var i = this.start.getTokenIndex(); + var j = this.stop.getTokenIndex(); + if ( this.stop.getType() === org.antlr.runtime.Token.EOF ) { + j = this.input.size(); + } + badText = this.input.toString(i, j); + } + else if ( this.start instanceof org.antlr.runtime.tree.CommonTree ) { + badText = this.input.toString(this.start, this.stop); + } + else { + // people should subclass if they alter the tree type so this + // next one is for sure correct. + badText = ""; + } + return badText; + }, + + toString: function() { + if ( this.trappedException instanceof org.antlr.runtime.MissingTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.UnwantedTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.MismatchedTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.NoViableAltException ) { + return ""; + } + return ""; + } +}); +/** A TreeAdaptor that works with any Tree implementation. */ +org.antlr.runtime.tree.BaseTreeAdaptor = function() { + this.uniqueNodeID = 1; +}; + +org.antlr.runtime.tree.BaseTreeAdaptor.prototype = { + nil: function() { + return this.create(null); + }, + + /** create tree node that holds the start and stop tokens associated + * with an error. + * + * If you specify your own kind of tree nodes, you will likely have to + * override this method. CommonTree returns Token.INVALID_TOKEN_TYPE + * if no token payload but you might have to set token type for diff + * node type. + */ + errorNode: function(input, start, stop, e) { + var t = new org.antlr.runtime.tree.CommonErrorNode(input, start, stop, e); + return t; + }, + + isNil: function(tree) { + return tree.isNil(); + }, + + /** This is generic in the sense that it will work with any kind of + * tree (not just Tree interface). It invokes the adaptor routines + * not the tree node routines to do the construction. + */ + dupTree: function(t, parent) { + if (arguments.length===1) { + parent = null; + } + if ( !t ) { + return null; + } + var newTree = this.dupNode(t); + // ensure new subtree root has parent/child index set + this.setChildIndex(newTree, this.getChildIndex(t)); // same index in new tree + this.setParent(newTree, parent); + var n = this.getChildCount(t), + i, child, newSubTree; + for (i = 0; i < n; i++) { + child = this.getChild(t, i); + newSubTree = this.dupTree(child, t); + this.addChild(newTree, newSubTree); + } + return newTree; + }, + + /** Add a child to the tree t. If child is a flat tree (a list), make all + * in list children of t. Warning: if t has no children, but child does + * and child isNil then you can decide it is ok to move children to t via + * t.children = child.children; i.e., without copying the array. Just + * make sure that this is consistent with have the user will build + * ASTs. + */ + addChild: function(t, child) { + if ( t && org.antlr.lang.isValue(child) ) { + t.addChild(child); + } + }, + + /** If oldRoot is a nil root, just copy or move the children to newRoot. + * If not a nil root, make oldRoot a child of newRoot. + * + * old=^(nil a b c), new=r yields ^(r a b c) + * old=^(a b c), new=r yields ^(r ^(a b c)) + * + * If newRoot is a nil-rooted single child tree, use the single + * child as the new root node. + * + * old=^(nil a b c), new=^(nil r) yields ^(r a b c) + * old=^(a b c), new=^(nil r) yields ^(r ^(a b c)) + * + * If oldRoot was null, it's ok, just return newRoot (even if isNil). + * + * old=null, new=r yields r + * old=null, new=^(nil r) yields ^(nil r) + * + * Return newRoot. Throw an exception if newRoot is not a + * simple node or nil root with a single child node--it must be a root + * node. If newRoot is ^(nil x) return x as newRoot. + * + * Be advised that it's ok for newRoot to point at oldRoot's + * children; i.e., you don't have to copy the list. We are + * constructing these nodes so we should have this control for + * efficiency. + */ + becomeRoot: function(newRoot, oldRoot) { + if (newRoot instanceof org.antlr.runtime.CommonToken || !newRoot) { + newRoot = this.create(newRoot); + } + + var newRootTree = newRoot, + oldRootTree = oldRoot; + if ( !oldRoot ) { + return newRoot; + } + // handle ^(nil real-node) + if ( newRootTree.isNil() ) { + if ( newRootTree.getChildCount()>1 ) { + // TODO: make tree run time exceptions hierarchy + throw new Error("more than one node as root (TODO: make exception hierarchy)"); + } + newRootTree = newRootTree.getChild(0); + } + // add oldRoot to newRoot; addChild takes care of case where oldRoot + // is a flat list (i.e., nil-rooted tree). All children of oldRoot + // are added to newRoot. + newRootTree.addChild(oldRootTree); + return newRootTree; + }, + + /** Transform ^(nil x) to x */ + rulePostProcessing: function(root) { + var r = root; + if ( r && r.isNil() ) { + if ( r.getChildCount()===0 ) { + r = null; + } + else if ( r.getChildCount()===1 ) { + r = r.getChild(0); + // whoever invokes rule will set parent and child index + r.setParent(null); + r.setChildIndex(-1); + } + } + return r; + }, + + create: function(tokenType, fromToken) { + var text, t; + if (arguments.length===2) { + if (org.antlr.lang.isString(arguments[1])) { + text = arguments[1]; + fromToken = this.createToken(tokenType, text); + t = this.create(fromToken); + return t; + } else { + fromToken = this.createToken(fromToken); + fromToken.setType(tokenType); + t = this.create(fromToken); + return t; + } + } else if (arguments.length===3) { + text = arguments[2]; + fromToken = this.createToken(fromToken); + fromToken.setType(tokenType); + fromToken.setText(text); + t = this.create(fromToken); + return t; + } + }, + + getType: function(t) { + t.getType(); + return 0; + }, + + setType: function(t, type) { + throw new Error("don't know enough about Tree node"); + }, + + getText: function(t) { + return t.getText(); + }, + + setText: function(t, text) { + throw new Error("don't know enough about Tree node"); + }, + + getChild: function(t, i) { + return t.getChild(i); + }, + + setChild: function(t, i, child) { + t.setChild(i, child); + }, + + deleteChild: function(t, i) { + return t.deleteChild(i); + }, + + getChildCount: function(t) { + return t.getChildCount(); + }, + + getUniqueID: function(node) { + if ( !this.treeToUniqueIDMap ) { + this.treeToUniqueIDMap = {}; + } + var prevID = this.treeToUniqueIDMap[node]; + if ( org.antlr.lang.isValue(prevID) ) { + return prevID; + } + var ID = this.uniqueNodeID; + this.treeToUniqueIDMap[node] = ID; + this.uniqueNodeID++; + return ID; + // GC makes these nonunique: + // return System.identityHashCode(node); + } +}; +/** A TreeAdaptor that works with any Tree implementation. It provides + * really just factory methods; all the work is done by BaseTreeAdaptor. + * If you would like to have different tokens created than ClassicToken + * objects, you need to override this and then set the parser tree adaptor to + * use your subclass. + * + * To get your parser to build nodes of a different type, override + * create(Token). + */ +org.antlr.runtime.tree.CommonTreeAdaptor = function() {}; + +org.antlr.lang.extend(org.antlr.runtime.tree.CommonTreeAdaptor, + org.antlr.runtime.tree.BaseTreeAdaptor, { + /** Duplicate a node. This is part of the factory; + * override if you want another kind of node to be built. + * + * I could use reflection to prevent having to override this + * but reflection is slow. + */ + dupNode: function(t) { + if ( !org.antlr.lang.isValue(t) ) { + return null; + } + return t.dupNode(); + }, + + create: function(payload) { + if (arguments.length>1) { + return org.antlr.runtime.tree.CommonTreeAdaptor.superclass.create.apply(this, arguments); + } + return new org.antlr.runtime.tree.CommonTree(payload); + }, + + /** Tell me how to create a token for use with imaginary token nodes. + * For example, there is probably no input symbol associated with imaginary + * token DECL, but you need to create it as a payload or whatever for + * the DECL node as in ^(DECL type ID). + * + * If you care what the token payload objects' type is, you should + * override this method and any other createToken variant. + * + * Tell me how to create a token for use with imaginary token nodes. + * For example, there is probably no input symbol associated with imaginary + * token DECL, but you need to create it as a payload or whatever for + * the DECL node as in ^(DECL type ID). + * + * This is a variant of createToken where the new token is derived from + * an actual real input token. Typically this is for converting '{' + * tokens to BLOCK etc... You'll see + * + * r : lc='{' ID+ '}' -> ^(BLOCK[$lc] ID+) ; + * + * If you care what the token payload objects' type is, you should + * override this method and any other createToken variant. + */ + createToken: function(fromToken) { + if (arguments.length===2) { + return new org.antlr.runtime.CommonToken(arguments[0], arguments[1]); + } else { + return new org.antlr.runtime.CommonToken(arguments[0]); + } + }, + + /** Track start/stop token for subtree root created for a rule. + * Only works with Tree nodes. For rules that match nothing, + * seems like this will yield start=i and stop=i-1 in a nil node. + * Might be useful info so I'll not force to be i..i. + */ + setTokenBoundaries: function(t, startToken, stopToken) { + if ( !org.antlr.lang.isValue(t) ) { + return; + } + var start = 0, + stop = 0; + if ( org.antlr.lang.isValue(startToken) ) { + if (startToken.getTokenIndex) { + start = startToken.getTokenIndex(); + } else if (startToken.getStartIndex) { + start = startToken.getStartIndex(); + } else { + start = startToken.getTokenStartIndex(); + } + } + if ( org.antlr.lang.isValue(stopToken) ) { + if (stop.getTokenIndex) { + stop = stopToken.getTokenIndex(); + } else if (stopToken.getStopIndex) { + stop = stopToken.getStopIndex(); + } else { + stop = stopToken.getTokenStopIndex(); + } + } + t.setTokenStartIndex(start); + t.setTokenStopIndex(stop); + }, + + getTokenStartIndex: function(t) { + if (!t) { + return -1; + } + return t.getTokenStartIndex(); + }, + + getTokenStopIndex: function(t) { + if (!t) { + return -1; + } + return t.getTokenStopIndex(); + }, + + getText: function(t) { + if (!t) { + return null; + } + return t.getText(); + }, + + getType: function(t) { + if (!t) { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } + return t.getType(); + }, + + /** What is the Token associated with this node? If + * you are not using CommonTree, then you must + * override this in your own adaptor. + */ + getToken: function(t) { + if ( t instanceof org.antlr.runtime.tree.CommonTree ) { + return t.getToken(); + } + return null; // no idea what to do + }, + + getChild: function(t, i) { + if (!t) { + return null; + } + return t.getChild(i); + }, + + getChildCount: function(t) { + if (!t) { + return 0; + } + return t.getChildCount(); + }, + + getParent: function(t) { + return t.getParent(); + }, + + setParent: function(t, parent) { + t.setParent(parent); + }, + + getChildIndex: function(t) { + return t.getChildIndex(); + }, + + setChildIndex: function(t, index) { + t.setChildIndex(index); + }, + + replaceChildren: function(parent, startChildIndex, stopChildIndex, t) { + if ( parent ) { + parent.replaceChildren(startChildIndex, stopChildIndex, t); + } + } +}); +/** + * A stream of characters created from a JavaScript string that in turn gets + * fed to a lexer. + * @class + * @param {String} data the string from which this stream will be created. + */ +org.antlr.runtime.ANTLRStringStream = function(data) { + /** + * Location in the stream. + * Ranges from 0 to (stream length - 1). + * @private + * @type Number + */ + this.p = 0; + + /** + * The current line in the input. + * Ranges from 1 to (number of lines). + * @private + * @type Number + */ + this.line = 1; + + /** + * The index of the character relative to the beginning of the line. + * Ranges from 0 to (length of line - 1). + * @private + * @type Number + */ + this.charPositionInLine = 0; + + /** + * Tracks how deep mark() calls are nested + * @private + * @type Number + */ + this.markDepth = 0; + + /** + * An Array of objects that tracks the stream state + * values line, charPositionInLine, and p that can change as you + * move through the input stream. Indexed from 1..markDepth. + * A null is kept at index 0. Created upon first call to mark(). + * @private + * @type Array + */ + this.markers = null; + + /** + * Track the last mark() call result value for use in rewind(). + * @private + * @type Number + */ + this.lastMarker = null; + + /** + * The data being scanned. + * @private + * @type String + */ + this.data = data; + + /** + * The number of characters in the stream. + * @private + * @type Number + */ + this.n = data.length; +}; + +org.antlr.runtime.ANTLRStringStream.prototype = { + /** + * Reset the stream so that it's in the same state it was + * when the object was created *except* the data array is not + * touched. + */ + reset: function() { + this.p = 0; + this.line = 1; + this.charPositionInLine = 0; + this.markDepth = 0; + }, + + /** + * Consume the next character of data in the stream. + */ + consume: function() { + //console.log("prev p="+ this.p +", c="+ this.data.charAt(this.p)); + if ( this.p < this.n ) { + this.charPositionInLine++; + if ( this.data.charAt(this.p)==="\n" ) { + this.line++; + this.charPositionInLine=0; + } + this.p++; + //console.log("p moves to " + this.p + " (c='"+ this.data.charAt(this.p) +"')"); + } + }, + + /** + * Get character at current input pointer + i ahead where i=1 is next int. + * Negative indexes are allowed. LA(-1) is previous token (token + * just matched). LA(-i) where i is before first token should + * yield -1, invalid char / EOF. + * @param {Number} i non-zero amount of lookahead or lookback + * @returns {String|Number} The charcter at the specified position or -1 if + * you fell off either end of the stream. + */ + LA: function(i) { + if ( i<0 ) { + i++; // e.g., translate LA(-1) to use offset i=0; then data[p+0-1] + } + + var new_pos = this.p+i-1; + if (new_pos>=this.n || new_pos<0) { + return org.antlr.runtime.CharStream.EOF; + } + return this.data.charAt(new_pos); + }, + + + /** + * Return the current input symbol index 0..n where n indicates the + * last symbol has been read. The index is the index of char to + * be returned from LA(1) (i.e. the one about to be consumed). + * @returns {Number} the index of the current input symbol + */ + index: function() { + return this.p; + }, + + /** + * The length of this stream. + * @returns {Number} the length of this stream. + */ + size: function() { + return this.n; + }, + + /** + * Tell the stream to start buffering if it hasn't already. Return + * current input position, index(), or some other marker so that + * when passed to rewind() you get back to the same spot. + * rewind(mark()) should not affect the input cursor. The Lexer + * tracks line/col info as well as input index so its markers are + * not pure input indexes. Same for tree node streams. + * + *

Marking is a mechanism for storing the current position of a stream + * in a stack. This corresponds with the predictive look-ahead mechanism + * used in Lexers.

+ * @returns {Number} the current size of the mark stack. + */ + mark: function() { + if ( !this.markers ) { + this.markers = []; + this.markers.push(null); // depth 0 means no backtracking, leave blank + } + this.markDepth++; + var state = null; + if ( this.markDepth>=this.markers.length ) { + state = {}; + this.markers.push(state); + } + else { + state = this.markers[this.markDepth]; + } + state.p = this.p; + state.line = this.line; + state.charPositionInLine = this.charPositionInLine; + this.lastMarker = this.markDepth; + return this.markDepth; + }, + + /** + * Rewind to the input position of the last marker. + * Used currently only after a cyclic DFA and just + * before starting a sem/syn predicate to get the + * input position back to the start of the decision. + * Do not "pop" the marker off the state. mark(i) + * and rewind(i) should balance still. It is + * like invoking rewind(last marker) but it should not "pop" + * the marker off. It's like seek(last marker's input position). + * @param {Number} [m] the index in the mark stack to load instead of the + * last. + */ + rewind: function(m) { + if (!org.antlr.lang.isNumber(m)) { + m = this.lastMarker; + } + + var state = this.markers[m]; + // restore stream state + this.seek(state.p); + this.line = state.line; + this.charPositionInLine = state.charPositionInLine; + this.release(m); + }, + + /** + * You may want to commit to a backtrack but don't want to force the + * stream to keep bookkeeping objects around for a marker that is + * no longer necessary. This will have the same behavior as + * rewind() except it releases resources without the backward seek. + * This must throw away resources for all markers back to the marker + * argument. So if you're nested 5 levels of mark(), and then release(2) + * you have to release resources for depths 2..5. + * @param {Number} marker the mark depth above which all mark states will + * be released. + */ + release: function(marker) { + // unwind any other markers made after m and release m + this.markDepth = marker; + // release this marker + this.markDepth--; + }, + + /** + * Set the input cursor to the position indicated by index. This is + * normally used to seek ahead in the input stream. No buffering is + * required to do this unless you know your stream will use seek to + * move backwards such as when backtracking. + * + *

This is different from rewind in its multi-directional + * requirement and in that its argument is strictly an input cursor + * (index).

+ * + *

For char streams, seeking forward must update the stream state such + * as line number. For seeking backwards, you will be presumably + * backtracking using the mark/rewind mechanism that restores state and + * so this method does not need to update state when seeking backwards.

+ * + *

Currently, this method is only used for efficient backtracking using + * memoization, but in the future it may be used for incremental + * parsing.

+ * + *

The index is 0..n-1. A seek to position i means that LA(1) will + * return the ith symbol. So, seeking to 0 means LA(1) will return the + * first element in the stream.

+ * + *

Esentially this method method moves the input position, + * {@link #consume}-ing data if necessary.

+ * + * @param {Number} index the position to seek to. + */ + seek: function(index) { + if ( index<=this.p ) { + this.p = index; // just jump; don't update stream state (line, ...) + return; + } + // seek forward, consume until p hits index + while ( this.p= 2) { + this.channel = channel; + } else if (arguments.length === 1) { + this.tokenSource = tokenSource; + } +}; + +org.antlr.runtime.CommonTokenStream.prototype = { + /** Reset this token stream by setting its token source. */ + setTokenSource: function(tokenSource) { + this.tokenSource = tokenSource; + this.tokens = []; + this.p = -1; + this.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + }, + + /** Load all tokens from the token source and put in tokens. + * This is done upon first LT request because you might want to + * set some token type / channel overrides before filling buffer. + */ + fillBuffer: function() { + var index = 0, + t = this.tokenSource.nextToken(), + discard, + channelI; + while ( org.antlr.lang.isValue(t) && + t.getType()!=org.antlr.runtime.CharStream.EOF ) + { + discard = false; + // is there a channel override for token type? + if ( this.channelOverrideMap ) { + channelI = this.channelOverrideMap[t.getType()]; + if ( org.antlr.lang.isValue(channelI) ) { + t.setChannel(channelI); + } + } + if ( this.discardSet && this.discardSet[t.getType()] ) + { + discard = true; + } + else if ( this.v_discardOffChannelTokens && + t.getChannel()!=this.channel ) + { + discard = true; + } + if ( !discard ) { + t.setTokenIndex(index); + this.tokens.push(t); + index++; + } + t = this.tokenSource.nextToken(); + } + // leave p pointing at first token on channel + this.p = 0; + this.p = this.skipOffTokenChannels(this.p); + }, + + /** Move the input pointer to the next incoming token. The stream + * must become active with LT(1) available. consume() simply + * moves the input pointer so that LT(1) points at the next + * input symbol. Consume at least one token. + * + * Walk past any token not on the channel the parser is listening to. + */ + consume: function() { + if ( this.p=0 && (this.tokens[i]).getChannel()!=this.channel ) { + i--; + } + return i; + }, + + /** A simple filter mechanism whereby you can tell this token stream + * to force all tokens of type ttype to be on channel. For example, + * when interpreting, we cannot exec actions so we need to tell + * the stream to force all WS and NEWLINE to be a different, ignored + * channel. + */ + setTokenTypeChannel: function(ttype, channel) { + if ( !this.channelOverrideMap ) { + this.channelOverrideMap = {}; + } + this.channelOverrideMap[ttype] = channel; + }, + + discardTokenType: function(ttype) { + if ( !this.discardSet ) { + this.discardSet = {}; + } + this.discardSet[ttype] = true; + }, + + discardOffChannelTokens: function(b) { + this.v_discardOffChannelTokens = b; + }, + + /** Given a start and stop index, return a List of all tokens in + * the token type BitSet. Return null if no tokens were found. This + * method looks at both on and off channel tokens. + */ + getTokens: function(start, stop, types) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + + if (arguments.length===0) { + return this.tokens; + } + + if (org.antlr.lang.isArray(types)) { + types = new org.antlr.runtime.BitSet(types); + } else if (org.antlr.lang.isNumber(types)) { + types = org.antlr.runtime.BitSet.of(types); + } + + if ( stop>=this.tokens.length ) { + stop=this.tokens.length-1; + } + if ( start<0 ) { + start=0; + } + if ( start>stop ) { + return null; + } + + // list = tokens[start:stop]:{Token t, t.getType() in types} + var filteredTokens = [], + i, + t; + for (i=start; i<=stop; i++) { + t = this.tokens[i]; + if ( !this.types || types.member(t.getType()) ) { + filteredTokens.push(t); + } + } + if ( filteredTokens.length===0 ) { + filteredTokens = null; + } + return filteredTokens; + }, + + /** Get the ith token from the current position 1..n where k=1 is the + * first symbol of lookahead. + */ + LT: function(k) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + if ( k===0 ) { + return null; + } + if ( k<0 ) { + return this.LB(-1*k); + } + if ( (this.p+k-1) >= this.tokens.length ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + var i = this.p, + n = 1; + // find k good tokens + while ( n=this.tokens.length ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + return this.tokens[i]; + }, + + /** Look backwards k tokens on-channel tokens */ + LB: function(k) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + if ( k===0 ) { + return null; + } + if ( (this.p-k)<0 ) { + return null; + } + + var i = this.p, + n = 1; + // find k good tokens looking backwards + while ( n<=k ) { + // skip off-channel tokens + i = this.skipOffTokenChannelsReverse(i-1); // leave p on valid token + n++; + } + if ( i<0 ) { + return null; + } + return this.tokens[i]; + }, + + /** Return absolute token i; ignore which channel the tokens are on; + * that is, count all tokens not just on-channel tokens. + */ + get: function(i) { + return this.tokens[i]; + }, + + LA: function(i) { + return this.LT(i).getType(); + }, + + mark: function() { + if ( this.p === -1 ) { + this.fillBuffer(); + } + this.lastMarker = this.index(); + return this.lastMarker; + }, + + release: function(marker) { + // no resources to release + }, + + size: function() { + return this.tokens.length; + }, + + index: function() { + return this.p; + }, + + rewind: function(marker) { + if (!org.antlr.lang.isNumber(marker)) { + marker = this.lastMarker; + } + this.seek(marker); + }, + + reset: function() { + this.p = -1; + this.lastMarker = 0; + }, + + seek: function(index) { + this.p = index; + }, + + getTokenSource: function() { + return this.tokenSource; + }, + + getSourceName: function() { + return this.getTokenSource().getSourceName(); + }, + + toString: function(start, stop) { + if (arguments.length===0) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + start = 0; + stop = this.tokens.length-1; + } + + if (!org.antlr.lang.isNumber(start) && !org.antlr.lang.isNumber(stop)) { + if ( org.antlr.lang.isValue(start) && org.antlr.lang.isValue(stop) ) { + start = start.getTokenIndex(); + stop = stop.getTokenIndex(); + } else { + return null; + } + } + + var buf = "", + i; + + if ( start<0 || stop<0 ) { + return null; + } + if ( this.p == -1 ) { + this.fillBuffer(); + } + if ( stop>=this.tokens.length ) { + stop = this.tokens.length-1; + } + for (i = start; i <= stop; i++) { + t = this.tokens[i]; + buf = buf + this.tokens[i].getText(); + } + return buf; + } +}; +/* Useful for dumping out the input stream after doing some + * augmentation or other manipulations. + * + * You can insert stuff, replace, and delete chunks. Note that the + * operations are done lazily--only if you convert the buffer to a + * String. This is very efficient because you are not moving data around + * all the time. As the buffer of tokens is converted to strings, the + * toString() method(s) check to see if there is an operation at the + * current index. If so, the operation is done and then normal String + * rendering continues on the buffer. This is like having multiple Turing + * machine instruction streams (programs) operating on a single input tape. :) + * + * Since the operations are done lazily at toString-time, operations do not + * screw up the token index values. That is, an insert operation at token + * index i does not change the index values for tokens i+1..n-1. + * + * Because operations never actually alter the buffer, you may always get + * the original token stream back without undoing anything. Since + * the instructions are queued up, you can easily simulate transactions and + * roll back any changes if there is an error just by removing instructions. + * For example, + * + * CharStream input = new ANTLRFileStream("input"); + * TLexer lex = new TLexer(input); + * TokenRewriteStream tokens = new TokenRewriteStream(lex); + * T parser = new T(tokens); + * parser.startRule(); + * + * Then in the rules, you can execute + * Token t,u; + * ... + * input.insertAfter(t, "text to put after t");} + * input.insertAfter(u, "text after u");} + * System.out.println(tokens.toString()); + * + * Actually, you have to cast the 'input' to a TokenRewriteStream. :( + * + * You can also have multiple "instruction streams" and get multiple + * rewrites from a single pass over the input. Just name the instruction + * streams and use that name again when printing the buffer. This could be + * useful for generating a C file and also its header file--all from the + * same buffer: + * + * tokens.insertAfter("pass1", t, "text to put after t");} + * tokens.insertAfter("pass2", u, "text after u");} + * System.out.println(tokens.toString("pass1")); + * System.out.println(tokens.toString("pass2")); + * + * If you don't use named rewrite streams, a "default" stream is used as + * the first example shows. + */ + +org.antlr.runtime.TokenRewriteStream = function() { + var sup = org.antlr.runtime.TokenRewriteStream.superclass; + + /** You may have multiple, named streams of rewrite operations. + * I'm calling these things "programs." + * Maps String (name) -> rewrite (List) + */ + this.programs = null; + + /** Map String (program name) -> Integer index */ + this.lastRewriteTokenIndexes = null; + + + if (arguments.length===0) { + this.init(); + } else { + sup.constructor.apply(this, arguments); + this.init(); + } +}; + +(function(){ +var trs = org.antlr.runtime.TokenRewriteStream; + +org.antlr.lang.augmentObject(trs, { + DEFAULT_PROGRAM_NAME: "default", + PROGRAM_INIT_SIZE: 100, + MIN_TOKEN_INDEX: 0 +}); + +// +// Define the rewrite operation hierarchy +// + +trs.RewriteOperation = function(index, text) { + this.index = index; + this.text = text; +}; + +/** Execute the rewrite operation by possibly adding to the buffer. + * Return the index of the next token to operate on. + */ +trs.RewriteOperation.prototype = { + execute: function(buf) { + return this.index; + }, + toString: function() { + /*String opName = getClass().getName(); + int $index = opName.indexOf('$'); + opName = opName.substring($index+1, opName.length()); + return opName+"@"+index+'"'+text+'"';*/ + return this.text; + } +}; + +trs.InsertBeforeOp = function(index, text) { + trs.InsertBeforeOp.superclass.constructor.call(this, index, text); +}; +org.antlr.lang.extend(trs.InsertBeforeOp, trs.RewriteOperation, { + execute: function(buf) { + buf.push(this.text); + return this.index; + } +}); + +/** I'm going to try replacing range from x..y with (y-x)+1 ReplaceOp + * instructions. + */ +trs.ReplaceOp = function(from, to, text) { + trs.ReplaceOp.superclass.constructor.call(this, from, text); + this.lastIndex = to; +}; +org.antlr.lang.extend(trs.ReplaceOp, trs.RewriteOperation, { + execute: function(buf) { + if (org.antlr.lang.isValue(this.text)) { + buf.push(this.text); + } + return this.lastIndex+1; + } +}); + +trs.DeleteOp = function(from, to) { + trs.DeleteOp.superclass.constructor.call(this, from, to); +}; +org.antlr.lang.extend(trs.DeleteOp, trs.ReplaceOp); + +org.antlr.lang.extend(trs, org.antlr.runtime.CommonTokenStream, { + init: function() { + this.programs = {}; + this.programs[trs.DEFAULT_PROGRAM_NAME] = []; + this.lastRewriteTokenIndexes = {}; + }, + + /** Rollback the instruction stream for a program so that + * the indicated instruction (via instructionIndex) is no + * longer in the stream. UNTESTED! + */ + rollback: function() { + var programName, + instructionIndex; + + if (arguments.length===1) { + programName = trs.DEFAULT_PROGRAM_NAME; + instructionIndex = arguments[0]; + } else if (arguments.length===2) { + programName = arguments[0]; + instructionIndex = arguments[1]; + } + var is = this.programs[programName]; + if (is) { + programs[programName] = is.slice(trs.MIN_TOKEN_INDEX, this.instructionIndex); + } + }, + + /** Reset the program so that no instructions exist */ + deleteProgram: function(programName) { + programName = programName || trs.DEFAULT_PROGRAM_NAME; + this.rollback(programName, trs.MIN_TOKEN_INDEX); + }, + + /** Add an instruction to the rewrite instruction list ordered by + * the instruction number (use a binary search for efficiency). + * The list is ordered so that toString() can be done efficiently. + * + * When there are multiple instructions at the same index, the instructions + * must be ordered to ensure proper behavior. For example, a delete at + * index i must kill any replace operation at i. Insert-before operations + * must come before any replace / delete instructions. If there are + * multiple insert instructions for a single index, they are done in + * reverse insertion order so that "insert foo" then "insert bar" yields + * "foobar" in front rather than "barfoo". This is convenient because + * I can insert new InsertOp instructions at the index returned by + * the binary search. A ReplaceOp kills any previous replace op. Since + * delete is the same as replace with null text, i can check for + * ReplaceOp and cover DeleteOp at same time. :) + */ + addToSortedRewriteList: function() { + var programName, + op; + if (arguments.length===1) { + programName = trs.DEFAULT_PROGRAM_NAME; + op = arguments[0]; + } else if (arguments.length===2) { + programName = arguments[0]; + op = arguments[1]; + } + + var rewrites = this.getProgram(programName); + var len, pos, searchOp, replaced, prevOp, i; + for (pos=0, len=rewrites.length; pos op.index) { + rewrites.splice(pos, 0, op); + break; + } + } + if (pos===len) { + rewrites.push(op); + } + }, + + insertAfter: function() { + var index, programName, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + index = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = arguments[0]; + index = arguments[1]; + text = arguments[2]; + } + + if (index instanceof org.antlr.runtime.CommonToken) { + // index is a Token, grab it's stream index + index = index.index; // that's ugly + } + + // insert after is the same as insert before the next index + this.insertBefore(programName, index+1, text); + }, + + insertBefore: function() { + var index, programName, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + index = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = arguments[0]; + index = arguments[1]; + text = arguments[2]; + } + + if (index instanceof org.antlr.runtime.CommonToken) { + // index is a Token, grab it's stream index + index = index.index; // that's ugly + } + + this.addToSortedRewriteList( + programName, + new trs.InsertBeforeOp(index,text) + ); + }, + + replace: function() { + var programName, first, last, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + first = arguments[0]; + last = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = trs.DEFAULT_PROGRAM_NAME; + first = arguments[0]; + last = arguments[1]; + text = arguments[2]; + } if (arguments.length===4) { + programName = arguments[0]; + first = arguments[1]; + last = arguments[2]; + text = arguments[3]; + } + + if (first instanceof org.antlr.runtime.CommonToken) { + first = first.index; + } + + if (last instanceof org.antlr.runtime.CommonToken) { + last = last.index; // that's ugly + } + + if ( first > last || last<0 || first<0 ) { + return; + } + this.addToSortedRewriteList( + programName, + new trs.ReplaceOp(first, last, text)); + }, + + // !!! API Break: delete is a JS keyword, so using remove instead. + remove: function() { + // convert arguments to a real array + var args=[], i=arguments.length-1; + while (i>=0) { + args[i] = arguments[i]; + i--; + } + + args.push(""); + this.replace.apply(this, args); + }, + + getLastRewriteTokenIndex: function(programName) { + programName = programName || trs.DEFAULT_PROGRAM_NAME; + return this.lastRewriteTokenIndexes[programName] || -1; + }, + + setLastRewriteTokenIndex: function(programName, i) { + this.lastRewriteTokenIndexes[programName] = i; + }, + + getProgram: function(name) { + var is = this.programs[name]; + if ( !is ) { + is = this.initializeProgram(name); + } + return is; + }, + + initializeProgram: function(name) { + var is = []; + this.programs[name] = is; + return is; + }, + + toOriginalString: function(start, end) { + if (!org.antlr.lang.isNumber(start)) { + start = trs.MIN_TOKEN_INDEX; + } + if (!org.antlr.lang.isNumber(end)) { + end = this.size()-1; + } + + var buf = [], i; + for (i=start; i>=trs.MIN_TOKEN_INDEX && i<=end && i=trs.MIN_TOKEN_INDEX && + tokenCursor<=end && + tokenCursor=trs.MIN_TOKEN_INDEX && i<=end && i0 ) { + this.addNavigationNode(org.antlr.runtime.Token.DOWN); + } + // and now add all its children + var c, child; + for (c=0; c0 ) { + this.addNavigationNode(org.antlr.runtime.Token.UP); + } + + if (reset_p) { + this.p = 0; // buffer of nodes intialized now + } + }, + + getNodeIndex: function(node) { + if ( this.p==-1 ) { + this.fillBuffer(); + } + var i, t; + for (i=0; i= this.nodes.length ) { + return this.eof; + } + return this.nodes[this.p+k-1]; + }, + + getCurrentSymbol: function() { return this.LT(1); }, + + /** Look backwards k nodes */ + LB: function(k) { + if ( k===0 ) { + return null; + } + if ( (this.p-k)<0 ) { + return null; + } + return this.nodes[this.p-k]; + }, + + getTreeSource: function() { + return this.root; + }, + + getSourceName: function() { + return this.getTokenStream().getSourceName(); + }, + + getTokenStream: function() { + return this.tokens; + }, + + setTokenStream: function(tokens) { + this.tokens = tokens; + }, + + getTreeAdaptor: function() { + return this.adaptor; + }, + + setTreeAdaptor: function(adaptor) { + this.adaptor = adaptor; + }, + + hasUniqueNavigationNodes: function() { + return this.uniqueNavigationNodes; + }, + + setUniqueNavigationNodes: function(uniqueNavigationNodes) { + this.uniqueNavigationNodes = uniqueNavigationNodes; + }, + + consume: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.p++; + }, + + LA: function(i) { + return this.adaptor.getType(this.LT(i)); + }, + + mark: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.lastMarker = this.index(); + return this.lastMarker; + }, + + release: function(marker) { + // no resources to release + }, + + index: function() { + return this.p; + }, + + rewind: function(marker) { + if (!org.antlr.lang.isNumber(marker)) { + marker = this.lastMarker; + } + this.seek(marker); + }, + + seek: function(index) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.p = index; + }, + + /** Make stream jump to a new location, saving old location. + * Switch back with pop(). + */ + push: function(index) { + if ( !this.calls ) { + this.calls = []; + } + this.calls.push(this.p); // save current index + this.seek(index); + }, + + /** Seek back to previous index saved during last push() call. + * Return top of stack (return index). + */ + pop: function() { + var ret = this.calls.pop(); + this.seek(ret); + return ret; + }, + + reset: function() { + this.p = -1; + this.lastMarker = 0; + if (this.calls) { + this.calls = []; + } + }, + + size: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + return this.nodes.length; + }, + + iterator: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + return this.StreamIterator(); + }, + + replaceChildren: function(parent, startChildIndex, stopChildIndex, t) { + if ( parent ) { + this.adaptor.replaceChildren(parent, startChildIndex, stopChildIndex, t); + } + }, + + /** Debugging */ + toTokenString: function(start, stop) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + var buf='', i, t; + for (i = start; i < this.nodes.length && i <= stop; i++) { + t = this.nodes[i]; + buf += " "+this.adaptor.getToken(t); + } + return buf; + }, + + /** Used for testing, just return the token type stream */ + toString: function(start, stop) { + var buf = "", + text, + t, + i; + if (arguments.length===0) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + for (i = 0; i < this.nodes.length; i++) { + t = this.nodes[i]; + buf += " "; + buf += this.adaptor.getType(t); + } + return buf; + } else { + if ( !org.antlr.lang.isNumber(start) || !org.antlr.lang.isNumber(stop) ) { + return null; + } + if ( this.p===-1 ) { + this.fillBuffer(); + } + //System.out.println("stop: "+stop); + if ( start instanceof org.antlr.runtime.tree.CommonTree ) { + //System.out.print("toString: "+((CommonTree)start).getToken()+", "); + } else { + //System.out.println(start); + } + if ( stop instanceof org.antlr.runtime.tree.CommonTree ) { + //System.out.println(((CommonTree)stop).getToken()); + } else { + //System.out.println(stop); + } + // if we have the token stream, use that to dump text in order + var beginTokenIndex, + endTokenIndex; + if ( this.tokens ) { + beginTokenIndex = this.adaptor.getTokenStartIndex(start); + endTokenIndex = this.adaptor.getTokenStopIndex(stop); + // if it's a tree, use start/stop index from start node + // else use token range from start/stop nodes + if ( this.adaptor.getType(stop)===org.antlr.runtime.Token.UP ) { + endTokenIndex = this.adaptor.getTokenStopIndex(start); + } + else if ( this.adaptor.getType(stop)==org.antlr.runtime.Token.EOF ) + { + endTokenIndex = this.size()-2; // don't use EOF + } + return this.tokens.toString(beginTokenIndex, endTokenIndex); + } + // walk nodes looking for start + t = null; + i = 0; + for (; i < this.nodes.length; i++) { + t = this.nodes[i]; + if ( t===start ) { + break; + } + } + // now walk until we see stop, filling string buffer with text + buf = text = ""; + t = this.nodes[i]; + while ( t!==stop ) { + text = this.adaptor.getText(t); + if ( !org.antlr.lang.isString(text) ) { + text = " "+this.adaptor.getType(t).toString(); + } + buf += text; + i++; + t = nodes[i]; + } + // include stop node too + text = this.adaptor.getText(stop); + if ( !org.antlr.lang.isString(text) ) { + text = " "+this.adaptor.getType(stop).toString(); + } + buf += text; + return buf; + } + } +}); +/** A generic list of elements tracked in an alternative to be used in + * a -> rewrite rule. We need to subclass to fill in the next() method, + * which returns either an AST node wrapped around a token payload or + * an existing subtree. + * + * Once you start next()ing, do not try to add more elements. It will + * break the cursor tracking I believe. + * + * @see org.antlr.runtime.tree.RewriteRuleSubtreeStream + * @see org.antlr.runtime.tree.RewriteRuleTokenStream + * + * TODO: add mechanism to detect/puke on modification after reading from stream + */ +org.antlr.runtime.tree.RewriteRuleElementStream = function(adaptor, elementDescription, el) { + /** Cursor 0..n-1. If singleElement!=null, cursor is 0 until you next(), + * which bumps it to 1 meaning no more elements. + */ + this.cursor = 0; + + /** Once a node / subtree has been used in a stream, it must be dup'd + * from then on. Streams are reset after subrules so that the streams + * can be reused in future subrules. So, reset must set a dirty bit. + * If dirty, then next() always returns a dup. + * + * I wanted to use "naughty bit" here, but couldn't think of a way + * to use "naughty". + */ + this.dirty = false; + + this.elementDescription = elementDescription; + this.adaptor = adaptor; + if (el) { + if (org.antlr.lang.isArray(el)) { + this.singleElement = null; + this.elements = el; + } else { + this.add(el); + } + } +}; + +org.antlr.runtime.tree.RewriteRuleElementStream.prototype = { + /** Reset the condition of this stream so that it appears we have + * not consumed any of its elements. Elements themselves are untouched. + * Once we reset the stream, any future use will need duplicates. Set + * the dirty bit. + */ + reset: function() { + this.cursor = 0; + this.dirty = true; + }, + + add: function(el) { + if ( !org.antlr.lang.isValue(el) ) { + return; + } + if ( this.elements ) { // if in list, just add + this.elements.push(el); + return; + } + if ( !org.antlr.lang.isValue(this.singleElement) ) { // no elements yet, track w/o list + this.singleElement = el; + return; + } + // adding 2nd element, move to list + this.elements = []; + this.elements.push(this.singleElement); + this.singleElement = null; + this.elements.push(el); + }, + + /** Return the next element in the stream. If out of elements, throw + * an exception unless size()==1. If size is 1, then return elements[0]. + * Return a duplicate node/subtree if stream is out of elements and + * size==1. If we've already used the element, dup (dirty bit set). + */ + nextTree: function() { + var n = this.size(), + el; + if ( this.dirty || (this.cursor>=n && n==1) ) { + // if out of elements and size is 1, dup + el = this._next(); + return this.dup(el); + } + // test size above then fetch + el = this._next(); + return el; + }, + + /** do the work of getting the next element, making sure that it's + * a tree node or subtree. Deal with the optimization of single- + * element list versus list of size > 1. Throw an exception + * if the stream is empty or we're out of elements and size>1. + * protected so you can override in a subclass if necessary. + */ + _next: function() { + var n = this.size(); + if (n===0) { + throw new org.antlr.runtime.tree.RewriteEmptyStreamException(this.elementDescription); + } + if ( this.cursor>= n) { // out of elements? + if ( n===1 ) { // if size is 1, it's ok; return and we'll dup + return this.toTree(this.singleElement); + } + // out of elements and size was not 1, so we can't dup + throw new org.antlr.runtime.tree.RewriteCardinalityException(this.elementDescription); + } + // we have elements + if ( org.antlr.lang.isValue(this.singleElement) ) { + this.cursor++; // move cursor even for single element list + return this.toTree(this.singleElement); + } + // must have more than one in list, pull from elements + var o = this.toTree(this.elements[this.cursor]); + this.cursor++; + return o; + }, + + /** Ensure stream emits trees; tokens must be converted to AST nodes. + * AST nodes can be passed through unmolested. + */ + toTree: function(el) { + if (el && el.getTree) { + return el.getTree(); + } + return el; + }, + + hasNext: function() { + return (org.antlr.lang.isValue(this.singleElement) && this.cursor < 1) || + (this.elements && this.cursor < this.elements.length); + }, + + size: function() { + var n = 0; + if ( org.antlr.lang.isValue(this.singleElement) ) { + n = 1; + } + if ( this.elements ) { + return this.elements.length; + } + return n; + }, + + getDescription: function() { + return this.elementDescription; + } +}; +/** Queues up nodes matched on left side of -> in a tree parser. This is + * the analog of RewriteRuleTokenStream for normal parsers. + */ +org.antlr.runtime.tree.RewriteRuleNodeStream = function(adaptor, elementDescription, el) { + org.antlr.runtime.tree.RewriteRuleNodeStream.superclass.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleNodeStream, + org.antlr.runtime.tree.RewriteRuleElementStream, +{ + nextNode: function() { + return this._next(); + }, + + toTree: function(el) { + return this.adaptor.dupNode(el); + }, + + dup: function() { + // we dup every node, so don't have to worry about calling dup; short- + // circuited next() so it doesn't call. + throw new Error("dup can't be called for a node stream."); + } +}); +org.antlr.runtime.tree.RewriteRuleTokenStream = function(adaptor, elementDescription, el) { + var sup = org.antlr.runtime.tree.RewriteRuleTokenStream.superclass; + sup.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleTokenStream, + org.antlr.runtime.tree.RewriteRuleElementStream, { + /** Get next token from stream and make a node for it */ + nextNode: function() { + var t = this._next(); + return this.adaptor.create(t); + }, + + nextToken: function() { + return this._next(); + }, + + /** Don't convert to a tree unless they explicitly call nextTree. + * This way we can do hetero tree nodes in rewrite. + */ + toTree: function(el) { + return el; + }, + + dup: function(el) { + throw new Error("dup can't be called for a token stream."); + } +}); +org.antlr.runtime.tree.RewriteRuleSubtreeStream = function() { + var sup = org.antlr.runtime.tree.RewriteRuleSubtreeStream.superclass; + sup.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleSubtreeStream, + org.antlr.runtime.tree.RewriteRuleElementStream, { + /** Treat next element as a single node even if it's a subtree. + * This is used instead of next() when the result has to be a + * tree root node. Also prevents us from duplicating recently-added + * children; e.g., ^(type ID)+ adds ID to type and then 2nd iteration + * must dup the type node, but ID has been added. + * + * Referencing a rule result twice is ok; dup entire tree as + * we can't be adding trees as root; e.g., expr expr. + * + * Hideous code duplication here with super.next(). Can't think of + * a proper way to refactor. This needs to always call dup node + * and super.next() doesn't know which to call: dup node or dup tree. + */ + nextNode: function() { + var n = this.size(), + el; + if ( this.dirty || (this.cursor>=n && n===1) ) { + // if out of elements and size is 1, dup (at most a single node + // since this is for making root nodes). + el = this._next(); + return this.adaptor.dupNode(el); + } + // test size above then fetch + el = this._next(); + return el; + }, + + dup: function(el) { + return this.adaptor.dupTree(el); + } +});/** A generic recognizer that can handle recognizers generated from + * lexer, parser, and tree grammars. This is all the parsing + * support code essentially; most of it is error recovery stuff and + * backtracking. + * + *

This class should not be instantiated directly. Instead, use one of its + * subclasses.

+ * + * @class + * @param {org.antlr.runtime.RecognizerSharedState} [state] optional state object + * with which to initialize this recognizer. + */ +org.antlr.runtime.BaseRecognizer = function(state) { + /** State of a lexer, parser, or tree parser are collected into a state + * object so the state can be shared. This sharing is needed to + * have one grammar import others and share same error variables + * and other state variables. It's a kind of explicit multiple + * inheritance via delegation of methods and shared state. + */ + this.state = state || new org.antlr.runtime.RecognizerSharedState(); +}; + +/* static vars, methods */ +org.antlr.lang.augmentObject(org.antlr.runtime.BaseRecognizer, { + MEMO_RULE_FAILED: -2, + MEMO_RULE_UNKNOWN: -1, + INITIAL_FOLLOW_STACK_SIZE: 100, + MEMO_RULE_FAILED_I: -2, + DEFAULT_TOKEN_CHANNEL: org.antlr.runtime.Token.DEFAULT_CHANNEL, + HIDDEN: org.antlr.runtime.Token.HIDDEN_CHANNEL, + NEXT_TOKEN_RULE_NAME: "nextToken" +}); + +org.antlr.runtime.BaseRecognizer.prototype = { + /** Reset the parser's state. Subclasses must rewinds the input stream */ + reset: function() { + var i, len; + + // wack everything related to error recovery + if (!this.state) { + return; // no shared state work to do + } + this.state._fsp = -1; + this.state.errorRecovery = false; + this.state.lastErrorIndex = -1; + this.state.failed = false; + this.state.syntaxErrors = 0; + // wack everything related to backtracking and memoization + this.state.backtracking = 0; + // wipe cache + if (this.state.ruleMemo) { + for (i=0, len=this.state.ruleMemo.length; iTo turn off single token insertion or deletion error + * recovery, override {@link #mismatchRecover} and have it call + * plain {@link #mismatch}, which does not recover. Then any error + * in a rule will cause an exception and immediate exit from + * rule. Rule would recover by resynchronizing to the set of + * symbols that can follow rule ref.

+ * + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype input type to match. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + * @returns {Object} the matched symbol + */ + match: function(input, ttype, follow) { + var matchedSymbol = this.getCurrentInputSymbol(input); + if ( input.LA(1)===ttype ) { + input.consume(); + this.state.errorRecovery = false; + this.state.failed = false; + return matchedSymbol; + } + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return matchedSymbol; + } + matchedSymbol = this.recoverFromMismatchedToken(input, ttype, follow); + return matchedSymbol; + }, + + /** + * Match any token. + * @param {org.antlr.runtime.IntStream} input input stream to match against. + */ + matchAny: function(input) { + this.state.errorRecovery = false; + this.state.failed = false; + input.consume(); + }, + + /** + * Is the following token (LA(2)) the unwanted type (ttype)? + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype the undesired token type. + * @returns {Boolean} true if and only if the following token is the + * unwanted type. + */ + mismatchIsUnwantedToken: function(input, ttype) { + return input.LA(2)===ttype; + }, + + /** + * Does the stream appear to be missing a single token? + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + * @returns {Boolean} true if and only if it appears that the stream is + * missing a single token. + */ + mismatchIsMissingToken: function(input, follow) { + if ( !follow ) { + // we have no information about the follow; we can only consume + // a single token and hope for the best + return false; + } + // compute what can follow this grammar element reference + if ( follow.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) { + if ( this.state._fsp>=0 ) { // remove EOR if we're not the start symbol + follow.remove(org.antlr.runtime.Token.EOR_TOKEN_TYPE); + } + var viableTokensFollowingThisRule = this.computeContextSensitiveRuleFOLLOW(); + follow = follow.or(this.viableTokensFollowingThisRule); + } + // if current token is consistent with what could come after set + // then we know we're missing a token; error recovery is free to + // "insert" the missing token + + // BitSet cannot handle negative numbers like -1 (EOF) so I leave EOR + // in follow set to indicate that the fall of the start symbol is + // in the set (EOF can follow). + if ( follow.member(input.LA(1)) || + follow.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) + { + return true; + } + return false; + }, + + /** Factor out what to do upon token mismatch so tree parsers can behave + * differently. Override and call {@link #mismatchRecover} + * to get single token insertion and deletion. + * + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype input type to match. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + */ + mismatch: function(input, ttype, follow) { + if ( this.mismatchIsUnwantedToken(input, ttype) ) { + throw new org.antlr.runtime.UnwantedTokenException(ttype, input); + } else if ( this.mismatchIsMissingToken(input, follow) ) { + throw new org.antlr.runtime.MissingTokenException(ttype, input, null); + } + throw new org.antlr.runtime.MismatchedTokenException(ttype, input); + }, + + /** Report a recognition problem. + * + *

This method sets errorRecovery to indicate the parser is recovering + * not parsing. Once in recovery mode, no errors are generated. + * To get out of recovery mode, the parser must successfully match + * a token (after a resync). So it will go:

+ *
    + *
  1. error occurs
  2. + *
  3. enter recovery mode, report error
  4. + *
  5. consume until token found in resynch set
  6. + *
  7. try to resume parsing
  8. + *
  9. next match() will reset errorRecovery mode
  10. + *
+ * + *

If you override, make sure to update this.state.syntaxErrors if you + * care about that.

+ * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + */ + reportError: function(e) { + if(this.input.size() != 0) { + var token = this.input.get(e.index); + var errorMessage = ""; + var column = 0; + var line = 0; + if(token.getType() == -1) { + token = this.input.get(this.input.size() - 1); + } + errorMessage = this.getErrorMessage(e, this.getTokenNames()); + column = token.getStartIndex(); + line = token.getLine() - 1; + + var error = { + line: line, + message: errorMessage, + column: column + }; + this.addError(error); + } + // if we've already reported an error and have not matched a token + // yet successfully, don't report any errors. + if ( this.state.errorRecovery ) { + return; + } + this.state.syntaxErrors++; + this.state.errorRecovery = true; + + this.displayRecognitionError(this.getTokenNames(), e); + }, + + /** + * Assemble recognition error message. + * @param {Array} tokenNames array of token names (strings). + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + */ + displayRecognitionError: function(tokenNames, e) { + var hdr = this.getErrorHeader(e), + msg = this.getErrorMessage(e, tokenNames); + this.emitErrorMessage(hdr+" "+msg); + }, + + /** + * Create error header message. Format is line + * lineNumber:positionInLine. + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + * @returns {String} The error header. + */ + getErrorHeader: function(e) { + /* handle null input */ + if (!org.antlr.lang.isNumber(e.line)) { + e.line = 0; + } + return "line "+e.line+":"+e.charPositionInLine; + }, + + /** + * Override this method to change where error messages go. + * Defaults to "alert"-ing the error in browsers and "print"-ing the error + * in other environments (e.g. Rhino, SpiderMonkey). + * @param {String} msg the error message to be displayed. + */ + emitErrorMessage: function(msg) { + //throw msg; + console.log(msg); + }, + + /** What error message should be generated for the various + * exception types? + * + *

Not very object-oriented code, but I like having all error message + * generation within one method rather than spread among all of the + * exception classes. This also makes it much easier for the exception + * handling because the exception classes do not have to have pointers back + * to this object to access utility routines and so on. Also, changing + * the message for an exception type would be difficult because you + * would have to be subclassing exceptions, but then somehow get ANTLR + * to make those kinds of exception objects instead of the default.

+ * + *

For grammar debugging, you will want to override this to add + * more information such as the stack frame and no viable alts.

+ * + *

Override this to change the message generated for one or more + * exception types.

+ * + * @param {Array} tokenNames array of token names (strings). + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + * @returns {String} the error message to be emitted. + */ + getErrorMessage: function(e, tokenNames) { + var msg = (e && e.getMessage) ? e.getMessage() : null, + mte, + tokenName; + if ( e instanceof org.antlr.runtime.UnwantedTokenException ) { + var ute = e; + tokenName=""; + if ( ute.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } else { + tokenName = tokenNames[ute.expecting]; + } + msg = "extraneous input "+this.getTokenErrorDisplay(ute.getUnexpectedToken())+ + " expecting "+tokenName; + } + else if ( e instanceof org.antlr.runtime.MissingTokenException ) { + mte = e; + tokenName=""; + if ( mte.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } else { + tokenName = tokenNames[mte.expecting]; + } + msg = "missing "+tokenName+" at "+this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.MismatchedTokenException ) { + mte = e; + tokenName=""; + if ( mte.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } + else { + tokenName = tokenNames[mte.expecting]; + } + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting "+tokenName; + } + else if ( e instanceof org.antlr.runtime.NoViableAltException ) { + msg = "no viable alternative at input "+this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.EarlyExitException ) { + msg = "required (...)+ loop did not match anything at input "+ + this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.MismatchedSetException ) { + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedNotSetException ) { + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.FailedPredicateException ) { + msg = "rule "+e.ruleName+" failed predicate: {"+ + e.predicateText+"}?"; + } + return msg; + }, + + /** Get number of recognition errors (lexer, parser, tree parser). Each + * recognizer tracks its own number. So parser and lexer each have + * separate count. Does not count the spurious errors found between + * an error and next valid token match + * + * See also reportError() + */ + getNumberOfSyntaxErrors: function() { + return this.state.syntaxErrors; + }, + + /** How should a token be displayed in an error message? The default + * is to display just the text, but during development you might + * want to have a lot of information spit out. Override in that case + * to use t.toString() (which, for CommonToken, dumps everything about + * the token). This is better than forcing you to override a method in + * your token objects because you don't have to go modify your lexer + * so that it creates a new Java type. + */ + getTokenErrorDisplay: function(t) { + var s = t.getText(); + if ( !org.antlr.lang.isValue(s) ) { + if ( t.getType()==org.antlr.runtime.Token.EOF ) { + s = ""; + } + else { + s = "<"+t.getType()+">"; + } + } + s = s.replace(/\n/g,"\\n"); + s = s.replace(/\r/g,"\\r"); + s = s.replace(/\t/g,"\\t"); + return "'"+s+"'"; + }, + + /** Recover from an error found on the input stream. This is + * for NoViableAlt and mismatched symbol exceptions. If you enable + * single token insertion and deletion, this will usually not + * handle mismatched symbol exceptions but there could be a mismatched + * token that the match() routine could not recover from. + */ + recover: function(input, re) { + if ( this.state.lastErrorIndex==input.index() ) { + // uh oh, another error at same token index; must be a case + // where LT(1) is in the recovery token set so nothing is + // consumed; consume a single token so at least to prevent + // an infinite loop; this is a failsafe. + input.consume(); + } + this.state.lastErrorIndex = input.index(); + var followSet = this.computeErrorRecoverySet(); + this.beginResync(); + this.consumeUntil(input, followSet); + this.endResync(); + }, + + /** A hook to listen in on the token consumption during error recovery. + * The DebugParser subclasses this to fire events to the listenter. + */ + beginResync: function() { + }, + + endResync: function() { + }, + + /* Compute the error recovery set for the current rule. During + * rule invocation, the parser pushes the set of tokens that can + * follow that rule reference on the stack; this amounts to + * computing FIRST of what follows the rule reference in the + * enclosing rule. This local follow set only includes tokens + * from within the rule; i.e., the FIRST computation done by + * ANTLR stops at the end of a rule. + * + * EXAMPLE + * + * When you find a "no viable alt exception", the input is not + * consistent with any of the alternatives for rule r. The best + * thing to do is to consume tokens until you see something that + * can legally follow a call to r *or* any rule that called r. + * You don't want the exact set of viable next tokens because the + * input might just be missing a token--you might consume the + * rest of the input looking for one of the missing tokens. + * + * Consider grammar: + * + * a : '[' b ']' + * | '(' b ')' + * ; + * b : c '^' INT ; + * c : ID + * | INT + * ; + * + * At each rule invocation, the set of tokens that could follow + * that rule is pushed on a stack. Here are the various "local" + * follow sets: + * + * FOLLOW(b1_in_a) = FIRST(']') = ']' + * FOLLOW(b2_in_a) = FIRST(')') = ')' + * FOLLOW(c_in_b) = FIRST('^') = '^' + * + * Upon erroneous input "[]", the call chain is + * + * a -> b -> c + * + * and, hence, the follow context stack is: + * + * depth local follow set after call to rule + * 0 a (from main()) + * 1 ']' b + * 3 '^' c + * + * Notice that ')' is not included, because b would have to have + * been called from a different context in rule a for ')' to be + * included. + * + * For error recovery, we cannot consider FOLLOW(c) + * (context-sensitive or otherwise). We need the combined set of + * all context-sensitive FOLLOW sets--the set of all tokens that + * could follow any reference in the call chain. We need to + * resync to one of those tokens. Note that FOLLOW(c)='^' and if + * we resync'd to that token, we'd consume until EOF. We need to + * sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}. + * In this case, for input "[]", LA(1) is in this set so we would + * not consume anything and after printing an error rule c would + * return normally. It would not find the required '^' though. + * At this point, it gets a mismatched token error and throws an + * exception (since LA(1) is not in the viable following token + * set). The rule exception handler tries to recover, but finds + * the same recovery set and doesn't consume anything. Rule b + * exits normally returning to rule a. Now it finds the ']' (and + * with the successful match exits errorRecovery mode). + * + * So, you cna see that the parser walks up call chain looking + * for the token that was a member of the recovery set. + * + * Errors are not generated in errorRecovery mode. + * + * ANTLR's error recovery mechanism is based upon original ideas: + * + * "Algorithms + Data Structures = Programs" by Niklaus Wirth + * + * and + * + * "A note on error recovery in recursive descent parsers": + * http://portal.acm.org/citation.cfm?id=947902.947905 + * + * Later, Josef Grosch had some good ideas: + * + * "Efficient and Comfortable Error Recovery in Recursive Descent + * Parsers": + * ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip + * + * Like Grosch I implemented local FOLLOW sets that are combined + * at run-time upon error to avoid overhead during parsing. + */ + computeErrorRecoverySet: function() { + return this.combineFollows(false); + }, + + + /** Compute the context-sensitive FOLLOW set for current rule. + * This is set of token types that can follow a specific rule + * reference given a specific call chain. You get the set of + * viable tokens that can possibly come next (lookahead depth 1) + * given the current call chain. Contrast this with the + * definition of plain FOLLOW for rule r: + * + * FOLLOW(r)={x | S=>*alpha r beta in G and x in FIRST(beta)} + * + * where x in T* and alpha, beta in V*; T is set of terminals and + * V is the set of terminals and nonterminals. In other words, + * FOLLOW(r) is the set of all tokens that can possibly follow + * references to r in *any* sentential form (context). At + * runtime, however, we know precisely which context applies as + * we have the call chain. We may compute the exact (rather + * than covering superset) set of following tokens. + * + * For example, consider grammar: + * + * stat : ID '=' expr ';' // FOLLOW(stat)=={EOF} + * | "return" expr '.' + * ; + * expr : atom ('+' atom)* ; // FOLLOW(expr)=={';','.',')'} + * atom : INT // FOLLOW(atom)=={'+',')',';','.'} + * | '(' expr ')' + * ; + * + * The FOLLOW sets are all inclusive whereas context-sensitive + * FOLLOW sets are precisely what could follow a rule reference. + * For input input "i=(3);", here is the derivation: + * + * stat => ID '=' expr ';' + * => ID '=' atom ('+' atom)* ';' + * => ID '=' '(' expr ')' ('+' atom)* ';' + * => ID '=' '(' atom ')' ('+' atom)* ';' + * => ID '=' '(' INT ')' ('+' atom)* ';' + * => ID '=' '(' INT ')' ';' + * + * At the "3" token, you'd have a call chain of + * + * stat -> expr -> atom -> expr -> atom + * + * What can follow that specific nested ref to atom? Exactly ')' + * as you can see by looking at the derivation of this specific + * input. Contrast this with the FOLLOW(atom)={'+',')',';','.'}. + * + * You want the exact viable token set when recovering from a + * token mismatch. Upon token mismatch, if LA(1) is member of + * the viable next token set, then you know there is most likely + * a missing token in the input stream. "Insert" one by just not + * throwing an exception. + */ + computeContextSensitiveRuleFOLLOW: function() { + return this.combineFollows(true); + }, + + combineFollows: function(exact) { + var top = this.state._fsp, + i, + localFollowSet, + followSet = new org.antlr.runtime.BitSet(); + for (i=top; i>=0; i--) { + localFollowSet = this.state.following[i]; + followSet.orInPlace(localFollowSet); + if ( exact ) { + // can we see end of rule? + if ( localFollowSet.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) + { + // Only leave EOR in set if at top (start rule); this lets + // us know if have to include follow(start rule); i.e., EOF + if ( i>0 ) { + followSet.remove(org.antlr.runtime.Token.EOR_TOKEN_TYPE); + } + } + else { // can't see end of rule, quit + break; + } + } + } + return followSet; + }, + + /** Attempt to recover from a single missing or extra token. + * + * EXTRA TOKEN + * + * LA(1) is not what we are looking for. If LA(2) has the right token, + * however, then assume LA(1) is some extra spurious token. Delete it + * and LA(2) as if we were doing a normal match(), which advances the + * input. + * + * MISSING TOKEN + * + * If current token is consistent with what could come after + * ttype then it is ok to "insert" the missing token, else throw + * exception For example, Input "i=(3;" is clearly missing the + * ')'. When the parser returns from the nested call to expr, it + * will have call chain: + * + * stat -> expr -> atom + * + * and it will be trying to match the ')' at this point in the + * derivation: + * + * => ID '=' '(' INT ')' ('+' atom)* ';' + * ^ + * match() will see that ';' doesn't match ')' and report a + * mismatched token error. To recover, it sees that LA(1)==';' + * is in the set of tokens that can follow the ')' token + * reference in rule atom. It can assume that you forgot the ')'. + */ + recoverFromMismatchedToken: function(input, + ttype, + follow) + { + var e = null; + // if next token is what we are looking for then "delete" this token + if ( this.mismatchIsUnwantedToken(input, ttype) ) { + e = new org.antlr.runtime.UnwantedTokenException(ttype, input); + this.beginResync(); + input.consume(); // simply delete extra token + this.endResync(); + this.reportError(e); // report after consuming so AW sees the token in the exception + // we want to return the token we're actually matching + var matchedSymbol = this.getCurrentInputSymbol(input); + input.consume(); // move past ttype token as if all were ok + return matchedSymbol; + } + // can't recover with single token deletion, try insertion + if ( this.mismatchIsMissingToken(input, follow) ) { + var inserted = this.getMissingSymbol(input, e, ttype, follow); + e = new org.antlr.runtime.MissingTokenException(ttype, input, inserted); + this.reportError(e); // report after inserting so AW sees the token in the exception + return inserted; + } + // even that didn't work; must throw the exception + e = new org.antlr.runtime.MismatchedTokenException(ttype, input); + throw e; + }, + + recoverFromMismatchedSet: function(input, + e, + follow) + { + if ( this.mismatchIsMissingToken(input, follow) ) { + // System.out.println("missing token"); + this.reportError(e); + // we don't know how to conjure up a token for sets yet + return this.getMissingSymbol(input, e, org.antlr.runtime.Token.INVALID_TOKEN_TYPE, follow); + } + throw e; + }, + + /** Match needs to return the current input symbol, which gets put + * into the label for the associated token ref; e.g., x=ID. Token + * and tree parsers need to return different objects. Rather than test + * for input stream type or change the IntStream interface, I use + * a simple method to ask the recognizer to tell me what the current + * input symbol is. + * + * This is ignored for lexers. + */ + getCurrentInputSymbol: function(input) { return null; }, + + /** Conjure up a missing token during error recovery. + * + * The recognizer attempts to recover from single missing + * symbols. But, actions might refer to that missing symbol. + * For example, x=ID {f($x);}. The action clearly assumes + * that there has been an identifier matched previously and that + * $x points at that token. If that token is missing, but + * the next token in the stream is what we want we assume that + * this token is missing and we keep going. Because we + * have to return some token to replace the missing token, + * we have to conjure one up. This method gives the user control + * over the tokens returned for missing tokens. Mostly, + * you will want to create something special for identifier + * tokens. For literals such as '{' and ',', the default + * action in the parser or tree parser works. It simply creates + * a CommonToken of the appropriate type. The text will be the token. + * If you change what tokens must be created by the lexer, + * override this method to create the appropriate tokens. + */ + getMissingSymbol: function(input, + e, + expectedTokenType, + follow) + { + return null; + }, + + + /** Consume tokens until one matches the given token set */ + consumeUntil: function(input, set) { + var ttype = input.LA(1); + while (ttype != org.antlr.runtime.Token.EOF && !set.member(ttype) ) { + input.consume(); + ttype = input.LA(1); + } + }, + + /** Push a rule's follow set using our own hardcoded stack */ + pushFollow: function(fset) { + if ( (this.state._fsp +1)>=this.state.following.length ) { + var f = []; + var i; + for (i=this.state.following.length-1; i>=0; i--) { + f[i] = this.state.following[i]; + } + this.state.following = f; + } + this.state._fsp++; + this.state.following[this.state._fsp] = fset; + }, + + /** Return List of the rules in your parser instance + * leading up to a call to this method. You could override if + * you want more details such as the file/line info of where + * in the parser java code a rule is invoked. + * + * This is very useful for error messages and for context-sensitive + * error recovery. + * + * A more general version of getRuleInvocationStack where you can + * pass in, for example, a RecognitionException to get it's rule + * stack trace. This routine is shared with all recognizers, hence, + * static. + * + * TODO: move to a utility class or something; weird having lexer call this + * + * Most JS interpreters can't do real stack reflection. See this + * spidermonkey bug, for example: + * https://bugzilla.mozilla.org/show_bug.cgi?id=332104 + * + * JS is supposed to get real stack traces in v4, at which time it would + * be easy to implement this function. + * + * Until then I'll leave this unimplemented. If there is enough clamor + * it would be possible to keep track of the invocation stack using an + * auxillary array, but that will definitely be a performance hit. + */ + getRuleInvocationStack: function(e, recognizerClassName) + { + throw new Error("Not implemented."); + }, + + getBacktrackingLevel: function() { + return this.state.backtracking; + }, + + /** Used to print out token names like ID during debugging and + * error reporting. The generated parsers implement a method + * that overrides this to point to their String[] tokenNames. + */ + getTokenNames: function() { + return null; + }, + + /** For debugging and other purposes, might want the grammar name. + * Have ANTLR generate an implementation for this method. + */ + getGrammarFileName: function() { + return null; + }, + + /** A convenience method for use most often with template rewrites. + * Convert a List to List + */ + toStrings: function(tokens) { + if ( !tokens ) { + return null; + } + var strings = []; + var i; + for (i=0; i= this.state.ruleMemo.length ) { + throw new Error("!!!!!!!!! memo size is "+this.state.ruleMemo.length+", but rule index is "+ruleIndex); + } + if ( org.antlr.lang.isValue(this.state.ruleMemo[ruleIndex]) ) { + this.state.ruleMemo[ruleIndex][ruleStartIndex] = stopTokenIndex; + } + }, + + /** return how many rule/input-index pairs there are in total. + * TODO: this includes synpreds. + */ + getRuleMemoizationCacheSize: function() { + var n = 0, i; + for (i = 0; this.state.ruleMemo && i < this.state.ruleMemo.length; i++) { + var ruleMap = this.state.ruleMemo[i]; + if ( ruleMap ) { + // @todo need to get size of rulemap? + n += ruleMap.length; // how many input indexes are recorded? + } + } + return n; + }, + + traceIn: function(ruleName, ruleIndex, inputSymbol) { + this.emitErrorMessage("enter "+ruleName+" "+inputSymbol); + if ( this.state.failed ) { + this.emitErrorMessage(" failed="+this.failed); + } + if ( this.state.backtracking>0 ) { + this.emitErrorMessage(" backtracking="+this.state.backtracking); + } + // System.out.println(); + }, + + traceOut: function(ruleName, ruleIndex, inputSymbol) { + this.emitErrorMessage("exit "+ruleName+" "+inputSymbol); + if ( this.state.failed ) { + this.emitErrorMessage(" failed="+this.state.failed); + } + if ( this.state.backtracking>0 ) { + this.emitErrorMessage(" backtracking="+this.state.backtracking); + } + } +}; +/** A lexer is recognizer that draws input symbols from a character stream. + * lexer grammars result in a subclass of this object. A Lexer object + * uses simplified match() and error recovery mechanisms in the interest + * of speed. + */ +org.antlr.runtime.Lexer = function(input, state) { + if (state) { + org.antlr.runtime.Lexer.superclass.constructor.call(this, state); + } + if (input) { + this.input = input; + } +}; + +org.antlr.lang.extend(org.antlr.runtime.Lexer, org.antlr.runtime.BaseRecognizer, { + reset: function() { + // reset all recognizer state variables + org.antlr.runtime.Lexer.superclass.reset.call(this); + if ( org.antlr.lang.isValue(this.input) ) { + this.input.seek(0); // rewind the input + } + if ( !org.antlr.lang.isValue(this.state) ) { + return; // no shared state work to do + } + this.state.token = null; + this.state.type = org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + this.state.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + this.state.tokenStartCharIndex = -1; + this.state.tokenStartCharPositionInLine = -1; + this.state.tokenStartLine = -1; + this.state.text = null; + }, + + /** Return a token from this source; i.e., match a token on the char + * stream. + */ + nextToken: function() { + while (true) { + this.state.token = null; + this.state.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + this.state.tokenStartCharIndex = this.input.index(); + this.state.tokenStartCharPositionInLine = this.input.getCharPositionInLine(); + this.state.tokenStartLine = this.input.getLine(); + this.state.text = null; + if ( this.input.LA(1)===org.antlr.runtime.CharStream.EOF ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + try { + this.mTokens(); + if ( !org.antlr.lang.isValue(this.state.token) ) { + this.emit(); + } + else if ( this.state.token==org.antlr.runtime.Token.SKIP_TOKEN ) { + continue; + } + return this.state.token; + } + catch (re) { + if (re instanceof org.antlr.runtime.NoViableAltException) { + this.reportError(re); + this.recover(re); + } else if ( re instanceof org.antlr.runtime.RecognitionException ) { + this.reportError(re); + } else { + throw re; + } + } + } + }, + + /** Instruct the lexer to skip creating a token for current lexer rule + * and look for another token. nextToken() knows to keep looking when + * a lexer rule finishes with token set to SKIP_TOKEN. Recall that + * if token==null at end of any token rule, it creates one for you + * and emits it. + */ + skip: function() { + this.state.token = org.antlr.runtime.Token.SKIP_TOKEN; + }, + + /** Set the char stream and reset the lexer */ + setCharStream: function(input) { + this.input = null; + this.reset(); + this.input = input; + }, + + getCharStream: function() { + return this.input; + }, + + getSourceName: function() { + return this.input.getSourceName(); + }, + + /** Currently does not support multiple emits per nextToken invocation + * for efficiency reasons. Subclass and override this method and + * nextToken (to push tokens into a list and pull from that list rather + * than a single variable as this implementation does). + * + * The standard method called to automatically emit a token at the + * outermost lexical rule. The token object should point into the + * char buffer start..stop. If there is a text override in 'text', + * use that to set the token's text. Override this method to emit + * custom Token objects. + * + * If you are building trees, then you should also override + * Parser or TreeParser.getMissingSymbol(). + */ + emit: function() { + if (arguments.length===0) { + var t = new org.antlr.runtime.CommonToken(this.input, this.state.type, this.state.channel, this.state.tokenStartCharIndex, this.getCharIndex()-1); + t.setLine(this.state.tokenStartLine); + t.setText(this.state.text); + t.setCharPositionInLine(this.state.tokenStartCharPositionInLine); + this.state.token = t; + return t; + } else { + this.state.token = arguments[0]; + } + }, + + match: function(s) { + var i = 0, + mte; + + if (org.antlr.lang.isString(s)) { + while ( i0 ) { + this.state.failed = true; + return; + } + mte = new org.antlr.runtime.MismatchedTokenException(s.charAt(i), this.input); + this.recover(mte); + throw mte; + } + i++; + this.input.consume(); + this.state.failed = false; + } + } else if (org.antlr.lang.isNumber(s)) { + if ( this.input.LA(1)!=s ) { + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return; + } + mte = new org.antlr.runtime.MismatchedTokenException(s, this.input); + this.recover(mte); + throw mte; + } + this.input.consume(); + this.state.failed = false; + } + }, + + matchAny: function() { + this.input.consume(); + }, + + matchRange: function(a, b) { + if ( this.input.LA(1)
b ) { + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return; + } + mre = new org.antlr.runtime.MismatchedRangeException(a,b,this.input); + this.recover(mre); + throw mre; + } + this.input.consume(); + this.state.failed = false; + }, + + getLine: function() { + return this.input.getLine(); + }, + + getCharPositionInLine: function() { + return this.input.getCharPositionInLine(); + }, + + /** What is the index of the current character of lookahead? */ + getCharIndex: function() { + return this.input.index(); + }, + + /** Return the text matched so far for the current token or any + * text override. + */ + getText: function() { + if ( org.antlr.lang.isString(this.state.text) ) { + return this.state.text; + } + return this.input.substring(this.state.tokenStartCharIndex,this.getCharIndex()-1); + }, + + /** Set the complete text of this token; it wipes any previous + * changes to the text. + */ + setText: function(text) { + this.state.text = text; + }, + + reportError: function(e) { + /** TODO: not thought about recovery in lexer yet. + * + // if we've already reported an error and have not matched a token + // yet successfully, don't report any errors. + if ( errorRecovery ) { + //System.err.print("[SPURIOUS] "); + return; + } + errorRecovery = true; + */ + + this.displayRecognitionError(this.getTokenNames(), e); + }, + + getErrorMessage: function(e, tokenNames) { + var msg = null; + if ( e instanceof org.antlr.runtime.MismatchedTokenException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting "+this.getCharErrorDisplay(e.expecting); + } + else if ( e instanceof org.antlr.runtime.NoViableAltException ) { + msg = "no viable alternative at character "+this.getCharErrorDisplay(e.c); + } + else if ( e instanceof org.antlr.runtime.EarlyExitException ) { + msg = "required (...)+ loop did not match anything at character "+this.getCharErrorDisplay(e.c); + } + else if ( e instanceof org.antlr.runtime.MismatchedNotSetException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedSetException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedRangeException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+ + this.getCharErrorDisplay(e.a)+".."+this.getCharErrorDisplay(e.b); + } + else { + msg = org.antlr.runtime.Lexer.superclass.getErrorMessage.call(this, e, tokenNames); + } + return msg; + }, + + getCharErrorDisplay: function(c) { + var s = c; //String.fromCharCode(c); + switch ( s ) { + case org.antlr.runtime.Token.EOF : + s = ""; + break; + case "\n" : + s = "\\n"; + break; + case "\t" : + s = "\\t"; + break; + case "\r" : + s = "\\r"; + break; + } + return "'"+s+"'"; + }, + + /** Lexers can normally match any char in it's vocabulary after matching + * a token, so do the easy thing and just kill a character and hope + * it all works out. You can instead use the rule invocation stack + * to do sophisticated error recovery if you are in a fragment rule. + */ + recover: function(re) { + this.input.consume(); + }, + + traceIn: function(ruleName, ruleIndex) { + var inputSymbol = String.fromCharCode(this.input.LT(1))+" line="+this.getLine()+":"+this.getCharPositionInLine(); + org.antlr.runtime.Lexer.superclass.traceIn.call(this, ruleName, ruleIndex, inputSymbol); + }, + + traceOut: function(ruleName, ruleIndex) { + var inputSymbol = String.fromCharCode(this.input.LT(1))+" line="+this.getLine()+":"+this.getCharPositionInLine(); + org.antlr.runtime.Lexer.superclass.traceOut.call(this, ruleName, ruleIndex, inputSymbol); + } +}); +/** Rules that return more than a single value must return an object + * containing all the values. Besides the properties defined in + * RuleLabelScope.predefinedRulePropertiesScope there may be user-defined + * return values. This class simply defines the minimum properties that + * are always defined and methods to access the others that might be + * available depending on output option such as template and tree. + * + * Note text is not an actual property of the return value, it is computed + * from start and stop using the input stream's toString() method. I + * could add a ctor to this so that we can pass in and store the input + * stream, but I'm not sure we want to do that. It would seem to be undefined + * to get the .text property anyway if the rule matches tokens from multiple + * input streams. + * + * I do not use getters for fields of objects that are used simply to + * group values such as this aggregate. The getters/setters are there to + * satisfy the superclass interface. + */ +org.antlr.runtime.ParserRuleReturnScope = function() {}; + +org.antlr.runtime.ParserRuleReturnScope.prototype = { + getStart: function() { return this.start; }, + getStop: function() { return this.stop; } +}; +/** This is identical to the ParserRuleReturnScope except that + * the start property is a tree nodes not Token object + * when you are parsing trees. To be generic the tree node types + * have to be Object. + */ +org.antlr.runtime.tree.TreeRuleReturnScope = function(){}; + +org.antlr.runtime.tree.TreeRuleReturnScope.prototype = { + getStart: function() { return this.start; } +}; +/** A parser for TokenStreams. "parser grammars" result in a subclass + * of this. + */ +org.antlr.runtime.Parser = function(input, state) { + org.antlr.runtime.Parser.superclass.constructor.call(this, state); + this.setTokenStream(input); +}; + +org.antlr.lang.extend(org.antlr.runtime.Parser, org.antlr.runtime.BaseRecognizer, { + reset: function() { + // reset all recognizer state variables + org.antlr.runtime.Parser.superclass.reset.call(this); + if ( org.antlr.lang.isValue(this.input) ) { + this.input.seek(0); // rewind the input + } + }, + + getCurrentInputSymbol: function(input) { + return input.LT(1); + }, + + getMissingSymbol: function(input, + e, + expectedTokenType, + follow) + { + var tokenText = + ""; + var t = new org.antlr.runtime.CommonToken(expectedTokenType, tokenText); + var current = input.LT(1); + var old_current; + if ( current.getType() === org.antlr.runtime.Token.EOF ) { + old_current = current; + current = input.LT(-1); + // handle edge case where there are no good tokens in the stream + if (!current) { + current = old_current; + } + } + t.line = current.getLine(); + t.charPositionInLine = current.getCharPositionInLine(); + t.channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + return t; + }, + + + /** Set the token stream and reset the parser */ + setTokenStream: function(input) { + this.input = null; + this.reset(); + this.input = input; + }, + + getTokenStream: function() { + return this.input; + }, + + getSourceName: function() { + return this.input.getSourceName(); + }, + + traceIn: function(ruleName, ruleIndex) { + org.antlr.runtime.Parser.superclass.traceIn.call( + this, ruleName, ruleIndex, this.input.LT(1)); + }, + + traceOut: function(ruleName, ruleIndex) { + org.antlr.runtime.Parser.superclass.traceOut.call( + this, ruleName, ruleIndex, this.input.LT(1)); + } +}); +/** A DFA implemented as a set of transition tables. + * + * Any state that has a semantic predicate edge is special; those states + * are generated with if-then-else structures in a specialStateTransition() + * which is generated by cyclicDFA template. + * + * There are at most 32767 states (16-bit signed short). + * Could get away with byte sometimes but would have to generate different + * types and the simulation code too. For a point of reference, the Java + * lexer's Tokens rule DFA has 326 states roughly. + */ +org.antlr.runtime.DFA = function() {}; + +org.antlr.runtime.DFA.prototype = { + /** From the input stream, predict what alternative will succeed + * using this DFA (representing the covering regular approximation + * to the underlying CFL). Return an alternative number 1..n. Throw + * an exception upon error. + */ + predict: function(input) { + var mark = input.mark(), // remember where decision started in input + s = 0, // we always start at s0 + specialState, + c, + snext; + + try { + while ( true ) { + specialState = this.special[s]; + if ( specialState>=0 ) { + s = this.specialStateTransition(specialState,input); + if (s===-1) { + this.noViableAlt(s, input); + return 0; + } + input.consume(); + continue; + } + if ( this.accept[s] >= 1 ) { + return this.accept[s]; + } + // look for a normal char transition + c = input.LA(1); // -1 == \uFFFF, all tokens fit in 65000 space + + if (c===org.antlr.runtime.Token.EOF) { + c = -1; + } else if (org.antlr.lang.isString(c)) { + c = c.charCodeAt(0); + } + + if (c>=this.min[s] && c<=this.max[s]) { + snext = this.transition[s][c-this.min[s]]; // move to next state + if ( snext < 0 ) { + // was in range but not a normal transition + // must check EOT, which is like the else clause. + // eot[s]>=0 indicates that an EOT edge goes to another + // state. + if ( this.eot[s]>=0 ) { // EOT Transition to accept state? + s = this.eot[s]; + input.consume(); + // TODO: I had this as return accept[eot[s]] + // which assumed here that the EOT edge always + // went to an accept...faster to do this, but + // what about predicated edges coming from EOT + // target? + continue; + } + this.noViableAlt(s,input); + return 0; + } + s = snext; + input.consume(); + continue; + } + if ( this.eot[s]>=0 ) { // EOT Transition? + s = this.eot[s]; + input.consume(); + continue; + } + if ( c==org.antlr.runtime.Token.EOF && this.eof[s]>=0 ) { // EOF Transition to accept state? + return this.accept[this.eof[s]]; + } + // not in range and not EOF/EOT, must be invalid symbol + this.noViableAlt(s,input); + return 0; + } + } + finally { + input.rewind(mark); + } + }, + + noViableAlt: function(s, input) { + if (this.recognizer.state.backtracking>0) { + this.recognizer.state.failed=true; + return; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), + this.decisionNumber, + s, + input); + this.error(nvae); + throw nvae; + }, + + /** A hook for debugging interface */ + error: function(nvae) { }, + + specialStateTransition: function(s, input) { + return -1; + }, + + getDescription: function() { + return "n/a"; + } +}; + +org.antlr.lang.augmentObject(org.antlr.runtime.DFA, { + /** Given a String that has a run-length-encoding of some unsigned shorts + * like "\1\2\3\9", convert to short[] {2,9,9,9}. + */ + unpackEncodedString: function(encodedString) { + // walk first to find how big it is. + var i, + data = [], + di = 0, + n, + v, + j; + for (i=0; i"; + return new org.antlr.runtime.tree.CommonTree(new org.antlr.runtime.CommonToken(expectedTokenType, tokenText)); + }, + + /** Match '.' in tree parser has special meaning. Skip node or + * entire tree if node has children. If children, scan until + * corresponding UP node. + */ + matchAny: function(ignore) { // ignore stream, copy of this.input + this.state.errorRecovery = false; + this.state.failed = false; + var look = this.input.LT(1); + if ( this.input.getTreeAdaptor().getChildCount(look)===0 ) { + this.input.consume(); // not subtree, consume 1 node and return + return; + } + // current node is a subtree, skip to corresponding UP. + // must count nesting level to get right UP + var level=0, + tokenType = this.input.getTreeAdaptor().getType(look); + while ( tokenType!==org.antlr.runtime.Token.EOF && + !(tokenType===TP.UP && level===0) ) + { + this.input.consume(); + look = this.input.LT(1); + tokenType = this.input.getTreeAdaptor().getType(look); + if ( tokenType === TP.DOWN ) { + level++; + } + else if ( tokenType === TP.UP ) { + level--; + } + } + this.input.consume(); // consume UP + }, + + /** We have DOWN/UP nodes in the stream that have no line info; override. + * plus we want to alter the exception type. Don't try to recover + * * from tree parser errors inline... + */ + mismatch: function(input, ttype, follow) { + throw new org.antlr.runtime.MismatchedTreeNodeException(ttype, input); + }, + + /** Prefix error message with the grammar name because message is + * always intended for the programmer because the parser built + * the input tree not the user. + */ + getErrorHeader: function(e) { + return this.getGrammarFileName()+": node from "+ + (e.approximateLineInfo?"after ":"")+"line "+e.line+":"+e.charPositionInLine; + }, + + /** Tree parsers parse nodes they usually have a token object as + * payload. Set the exception token and do the default behavior. + */ + getErrorMessage: function(e, tokenNames) { + var adaptor; + if ( this instanceof TP ) { + adaptor = e.input.getTreeAdaptor(); + e.token = adaptor.getToken(e.node); + if ( !org.antlr.lang.isValue(e.token) ) { // could be an UP/DOWN node + e.token = new org.antlr.runtime.CommonToken( + adaptor.getType(e.node), + adaptor.getText(e.node)); + } + } + return TP.superclass.getErrorMessage.call(this, e, tokenNames); + }, + + traceIn: function(ruleName, ruleIndex) { + TP.superclass.traceIn.call(this, ruleName, ruleIndex, this.input.LT(1)); + }, + + traceOut: function(ruleName, ruleIndex) { + TP.superclass.traceOut.call(this, ruleName, ruleIndex, this.input.LT(1)); + } +}); + +})(); + +exports.org = org; + +}); +define('ace/mode/xquery/XQueryLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQDTLexer'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryLexer.g 2012-05-24 17:09:22 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var XQueryLexer = function(input, state) { +// alternate constructor @todo +// public XQueryLexer(CharStream input) +// public XQueryLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inStr = false; + + // dummy list for warning elimination + //List> dummy = new ArrayList>(); + + // when we start, the '<' has already been eaten by the other lexer + //boolean inStr = false; + // + //public boolean isInString() + //{ + // return inStr; + //} + + + }).call(this); + + this.dfa19 = new XQueryLexer.DFA19(this); + XQueryLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(XQueryLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(XQueryLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + getGrammarFileName: function() { return "xquery/XQueryLexer.g"; } +}); +org.antlr.lang.augmentObject(XQueryLexer.prototype, { + // $ANTLR start ANCESTOR + mANCESTOR: function() { + try { + var _type = this.ANCESTOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:85:29: ( 'ancestor' ) + // xquery/XQueryLexer.g:85:31: 'ancestor' + this.match("ancestor"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANCESTOR", + + // $ANTLR start ANCESTOR_OR_SELF + mANCESTOR_OR_SELF: function() { + try { + var _type = this.ANCESTOR_OR_SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:86:29: ( 'ancestor-or-self' ) + // xquery/XQueryLexer.g:86:31: 'ancestor-or-self' + this.match("ancestor-or-self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANCESTOR_OR_SELF", + + // $ANTLR start AND + mAND: function() { + try { + var _type = this.AND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:87:29: ( 'and' ) + // xquery/XQueryLexer.g:87:31: 'and' + this.match("and"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AND", + + // $ANTLR start AS + mAS: function() { + try { + var _type = this.AS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:88:29: ( 'as' ) + // xquery/XQueryLexer.g:88:31: 'as' + this.match("as"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AS", + + // $ANTLR start ASCENDING + mASCENDING: function() { + try { + var _type = this.ASCENDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:89:29: ( 'ascending' ) + // xquery/XQueryLexer.g:89:31: 'ascending' + this.match("ascending"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ASCENDING", + + // $ANTLR start AT + mAT: function() { + try { + var _type = this.AT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:90:29: ( 'at' ) + // xquery/XQueryLexer.g:90:31: 'at' + this.match("at"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AT", + + // $ANTLR start ATTRIBUTE + mATTRIBUTE: function() { + try { + var _type = this.ATTRIBUTE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:91:29: ( 'attribute' ) + // xquery/XQueryLexer.g:91:31: 'attribute' + this.match("attribute"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ATTRIBUTE", + + // $ANTLR start BASE_URI + mBASE_URI: function() { + try { + var _type = this.BASE_URI; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:92:29: ( 'base-uri' ) + // xquery/XQueryLexer.g:92:31: 'base-uri' + this.match("base-uri"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BASE_URI", + + // $ANTLR start BOUNDARY_SPACE + mBOUNDARY_SPACE: function() { + try { + var _type = this.BOUNDARY_SPACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:93:29: ( 'boundary-space' ) + // xquery/XQueryLexer.g:93:31: 'boundary-space' + this.match("boundary-space"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BOUNDARY_SPACE", + + // $ANTLR start BY + mBY: function() { + try { + var _type = this.BY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:94:29: ( 'by' ) + // xquery/XQueryLexer.g:94:31: 'by' + this.match("by"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BY", + + // $ANTLR start CASE + mCASE: function() { + try { + var _type = this.CASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:95:29: ( 'case' ) + // xquery/XQueryLexer.g:95:31: 'case' + this.match("case"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CASE", + + // $ANTLR start CAST + mCAST: function() { + try { + var _type = this.CAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:96:29: ( 'cast' ) + // xquery/XQueryLexer.g:96:31: 'cast' + this.match("cast"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CAST", + + // $ANTLR start CASTABLE + mCASTABLE: function() { + try { + var _type = this.CASTABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:97:29: ( 'castable' ) + // xquery/XQueryLexer.g:97:31: 'castable' + this.match("castable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CASTABLE", + + // $ANTLR start CHILD + mCHILD: function() { + try { + var _type = this.CHILD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:98:29: ( 'child' ) + // xquery/XQueryLexer.g:98:31: 'child' + this.match("child"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHILD", + + // $ANTLR start COLLATION + mCOLLATION: function() { + try { + var _type = this.COLLATION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:99:29: ( 'collation' ) + // xquery/XQueryLexer.g:99:31: 'collation' + this.match("collation"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLLATION", + + // $ANTLR start COMMENT + mCOMMENT: function() { + try { + var _type = this.COMMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:100:29: ( 'comment' ) + // xquery/XQueryLexer.g:100:31: 'comment' + this.match("comment"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COMMENT", + + // $ANTLR start CONSTRUCTION + mCONSTRUCTION: function() { + try { + var _type = this.CONSTRUCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:101:29: ( 'construction' ) + // xquery/XQueryLexer.g:101:31: 'construction' + this.match("construction"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONSTRUCTION", + + // $ANTLR start COPY_NAMESPACES + mCOPY_NAMESPACES: function() { + try { + var _type = this.COPY_NAMESPACES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:102:29: ( 'copy-namespaces' ) + // xquery/XQueryLexer.g:102:31: 'copy-namespaces' + this.match("copy-namespaces"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COPY_NAMESPACES", + + // $ANTLR start DECLARE + mDECLARE: function() { + try { + var _type = this.DECLARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:103:29: ( 'declare' ) + // xquery/XQueryLexer.g:103:31: 'declare' + this.match("declare"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECLARE", + + // $ANTLR start DEFAULT + mDEFAULT: function() { + try { + var _type = this.DEFAULT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:104:29: ( 'default' ) + // xquery/XQueryLexer.g:104:31: 'default' + this.match("default"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DEFAULT", + + // $ANTLR start DESCENDANT + mDESCENDANT: function() { + try { + var _type = this.DESCENDANT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:105:29: ( 'descendant' ) + // xquery/XQueryLexer.g:105:31: 'descendant' + this.match("descendant"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDANT", + + // $ANTLR start DESCENDANT_OR_SELF + mDESCENDANT_OR_SELF: function() { + try { + var _type = this.DESCENDANT_OR_SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:106:29: ( 'descendant-or-self' ) + // xquery/XQueryLexer.g:106:31: 'descendant-or-self' + this.match("descendant-or-self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDANT_OR_SELF", + + // $ANTLR start DESCENDING + mDESCENDING: function() { + try { + var _type = this.DESCENDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:107:29: ( 'descending' ) + // xquery/XQueryLexer.g:107:31: 'descending' + this.match("descending"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDING", + + // $ANTLR start DIV + mDIV: function() { + try { + var _type = this.DIV; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:108:29: ( 'div' ) + // xquery/XQueryLexer.g:108:31: 'div' + this.match("div"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIV", + + // $ANTLR start DOCUMENT + mDOCUMENT: function() { + try { + var _type = this.DOCUMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:109:29: ( 'document' ) + // xquery/XQueryLexer.g:109:31: 'document' + this.match("document"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOCUMENT", + + // $ANTLR start DOCUMENT_NODE + mDOCUMENT_NODE: function() { + try { + var _type = this.DOCUMENT_NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:110:29: ( 'document-node' ) + // xquery/XQueryLexer.g:110:31: 'document-node' + this.match("document-node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOCUMENT_NODE", + + // $ANTLR start ELEMENT + mELEMENT: function() { + try { + var _type = this.ELEMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:111:29: ( 'element' ) + // xquery/XQueryLexer.g:111:31: 'element' + this.match("element"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ELEMENT", + + // $ANTLR start ELSE + mELSE: function() { + try { + var _type = this.ELSE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:112:29: ( 'else' ) + // xquery/XQueryLexer.g:112:31: 'else' + this.match("else"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ELSE", + + // $ANTLR start EMPTY + mEMPTY: function() { + try { + var _type = this.EMPTY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:113:29: ( 'empty' ) + // xquery/XQueryLexer.g:113:31: 'empty' + this.match("empty"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY", + + // $ANTLR start EMPTY_SEQUENCE + mEMPTY_SEQUENCE: function() { + try { + var _type = this.EMPTY_SEQUENCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:114:29: ( 'empty-sequence' ) + // xquery/XQueryLexer.g:114:31: 'empty-sequence' + this.match("empty-sequence"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_SEQUENCE", + + // $ANTLR start ENCODING + mENCODING: function() { + try { + var _type = this.ENCODING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:115:29: ( 'encoding' ) + // xquery/XQueryLexer.g:115:31: 'encoding' + this.match("encoding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ENCODING", + + // $ANTLR start EQ + mEQ: function() { + try { + var _type = this.EQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:116:29: ( 'eq' ) + // xquery/XQueryLexer.g:116:31: 'eq' + this.match("eq"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQ", + + // $ANTLR start EVERY + mEVERY: function() { + try { + var _type = this.EVERY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:117:29: ( 'every' ) + // xquery/XQueryLexer.g:117:31: 'every' + this.match("every"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EVERY", + + // $ANTLR start EXCEPT + mEXCEPT: function() { + try { + var _type = this.EXCEPT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:118:29: ( 'except' ) + // xquery/XQueryLexer.g:118:31: 'except' + this.match("except"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXCEPT", + + // $ANTLR start EXTERNAL + mEXTERNAL: function() { + try { + var _type = this.EXTERNAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:119:29: ( 'external' ) + // xquery/XQueryLexer.g:119:31: 'external' + this.match("external"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXTERNAL", + + // $ANTLR start FOLLOWING + mFOLLOWING: function() { + try { + var _type = this.FOLLOWING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:120:29: ( 'following' ) + // xquery/XQueryLexer.g:120:31: 'following' + this.match("following"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOLLOWING", + + // $ANTLR start FOLLOWING_SIBLING + mFOLLOWING_SIBLING: function() { + try { + var _type = this.FOLLOWING_SIBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:121:29: ( 'following-sibling' ) + // xquery/XQueryLexer.g:121:31: 'following-sibling' + this.match("following-sibling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOLLOWING_SIBLING", + + // $ANTLR start FOR + mFOR: function() { + try { + var _type = this.FOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:122:29: ( 'for' ) + // xquery/XQueryLexer.g:122:31: 'for' + this.match("for"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOR", + + // $ANTLR start FUNCTION + mFUNCTION: function() { + try { + var _type = this.FUNCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:123:29: ( 'function' ) + // xquery/XQueryLexer.g:123:31: 'function' + this.match("function"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FUNCTION", + + // $ANTLR start GE + mGE: function() { + try { + var _type = this.GE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:124:29: ( 'ge' ) + // xquery/XQueryLexer.g:124:31: 'ge' + this.match("ge"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GE", + + // $ANTLR start GREATEST + mGREATEST: function() { + try { + var _type = this.GREATEST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:125:29: ( 'greatest' ) + // xquery/XQueryLexer.g:125:31: 'greatest' + this.match("greatest"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATEST", + + // $ANTLR start GT + mGT: function() { + try { + var _type = this.GT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:126:29: ( 'gt' ) + // xquery/XQueryLexer.g:126:31: 'gt' + this.match("gt"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GT", + + // $ANTLR start IDIV + mIDIV: function() { + try { + var _type = this.IDIV; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:127:29: ( 'idiv' ) + // xquery/XQueryLexer.g:127:31: 'idiv' + this.match("idiv"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IDIV", + + // $ANTLR start IF + mIF: function() { + try { + var _type = this.IF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:128:29: ( 'if' ) + // xquery/XQueryLexer.g:128:31: 'if' + this.match("if"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IF", + + // $ANTLR start IMPORT + mIMPORT: function() { + try { + var _type = this.IMPORT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:129:29: ( 'import' ) + // xquery/XQueryLexer.g:129:31: 'import' + this.match("import"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IMPORT", + + // $ANTLR start IN + mIN: function() { + try { + var _type = this.IN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:130:29: ( 'in' ) + // xquery/XQueryLexer.g:130:31: 'in' + this.match("in"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IN", + + // $ANTLR start INHERIT + mINHERIT: function() { + try { + var _type = this.INHERIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:131:29: ( 'inherit' ) + // xquery/XQueryLexer.g:131:31: 'inherit' + this.match("inherit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INHERIT", + + // $ANTLR start INSTANCE + mINSTANCE: function() { + try { + var _type = this.INSTANCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:132:29: ( 'instance' ) + // xquery/XQueryLexer.g:132:31: 'instance' + this.match("instance"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSTANCE", + + // $ANTLR start INTERSECT + mINTERSECT: function() { + try { + var _type = this.INTERSECT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:133:29: ( 'intersect' ) + // xquery/XQueryLexer.g:133:31: 'intersect' + this.match("intersect"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTERSECT", + + // $ANTLR start IS + mIS: function() { + try { + var _type = this.IS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:134:29: ( 'is' ) + // xquery/XQueryLexer.g:134:31: 'is' + this.match("is"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IS", + + // $ANTLR start ITEM + mITEM: function() { + try { + var _type = this.ITEM; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:135:29: ( 'item' ) + // xquery/XQueryLexer.g:135:31: 'item' + this.match("item"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ITEM", + + // $ANTLR start LAX + mLAX: function() { + try { + var _type = this.LAX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:136:29: ( 'lax' ) + // xquery/XQueryLexer.g:136:31: 'lax' + this.match("lax"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LAX", + + // $ANTLR start LE + mLE: function() { + try { + var _type = this.LE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:137:29: ( 'le' ) + // xquery/XQueryLexer.g:137:31: 'le' + this.match("le"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LE", + + // $ANTLR start LEAST + mLEAST: function() { + try { + var _type = this.LEAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:138:29: ( 'least' ) + // xquery/XQueryLexer.g:138:31: 'least' + this.match("least"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LEAST", + + // $ANTLR start LET + mLET: function() { + try { + var _type = this.LET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:139:29: ( 'let' ) + // xquery/XQueryLexer.g:139:31: 'let' + this.match("let"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LET", + + // $ANTLR start LT + mLT: function() { + try { + var _type = this.LT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:140:29: ( 'lt' ) + // xquery/XQueryLexer.g:140:31: 'lt' + this.match("lt"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LT", + + // $ANTLR start MOD + mMOD: function() { + try { + var _type = this.MOD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:141:29: ( 'mod' ) + // xquery/XQueryLexer.g:141:31: 'mod' + this.match("mod"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MOD", + + // $ANTLR start MODULE + mMODULE: function() { + try { + var _type = this.MODULE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:142:29: ( 'module' ) + // xquery/XQueryLexer.g:142:31: 'module' + this.match("module"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MODULE", + + // $ANTLR start NAMESPACE + mNAMESPACE: function() { + try { + var _type = this.NAMESPACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:143:29: ( 'namespace' ) + // xquery/XQueryLexer.g:143:31: 'namespace' + this.match("namespace"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAMESPACE", + + // $ANTLR start NE + mNE: function() { + try { + var _type = this.NE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:144:29: ( 'ne' ) + // xquery/XQueryLexer.g:144:31: 'ne' + this.match("ne"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NE", + + // $ANTLR start NO_INHERIT + mNO_INHERIT: function() { + try { + var _type = this.NO_INHERIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:145:29: ( 'no-inherit' ) + // xquery/XQueryLexer.g:145:31: 'no-inherit' + this.match("no-inherit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO_INHERIT", + + // $ANTLR start NO_PRESERVE + mNO_PRESERVE: function() { + try { + var _type = this.NO_PRESERVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:146:29: ( 'no-preserve' ) + // xquery/XQueryLexer.g:146:31: 'no-preserve' + this.match("no-preserve"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO_PRESERVE", + + // $ANTLR start NODE + mNODE: function() { + try { + var _type = this.NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:147:29: ( 'node' ) + // xquery/XQueryLexer.g:147:31: 'node' + this.match("node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NODE", + + // $ANTLR start OF + mOF: function() { + try { + var _type = this.OF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:148:29: ( 'of' ) + // xquery/XQueryLexer.g:148:31: 'of' + this.match("of"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OF", + + // $ANTLR start OPTION + mOPTION: function() { + try { + var _type = this.OPTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:149:29: ( 'option' ) + // xquery/XQueryLexer.g:149:31: 'option' + this.match("option"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OPTION", + + // $ANTLR start OR + mOR: function() { + try { + var _type = this.OR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:150:29: ( 'or' ) + // xquery/XQueryLexer.g:150:31: 'or' + this.match("or"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OR", + + // $ANTLR start ORDER + mORDER: function() { + try { + var _type = this.ORDER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:151:29: ( 'order' ) + // xquery/XQueryLexer.g:151:31: 'order' + this.match("order"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDER", + + // $ANTLR start ORDERED + mORDERED: function() { + try { + var _type = this.ORDERED; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:152:29: ( 'ordered' ) + // xquery/XQueryLexer.g:152:31: 'ordered' + this.match("ordered"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDERED", + + // $ANTLR start ORDERING + mORDERING: function() { + try { + var _type = this.ORDERING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:153:29: ( 'ordering' ) + // xquery/XQueryLexer.g:153:31: 'ordering' + this.match("ordering"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDERING", + + // $ANTLR start PARENT + mPARENT: function() { + try { + var _type = this.PARENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:154:29: ( 'parent' ) + // xquery/XQueryLexer.g:154:31: 'parent' + this.match("parent"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARENT", + + // $ANTLR start PRECEDING + mPRECEDING: function() { + try { + var _type = this.PRECEDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:155:29: ( 'preceding' ) + // xquery/XQueryLexer.g:155:31: 'preceding' + this.match("preceding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRECEDING", + + // $ANTLR start PRECEDING_SIBLING + mPRECEDING_SIBLING: function() { + try { + var _type = this.PRECEDING_SIBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:156:29: ( 'preceding-sibling' ) + // xquery/XQueryLexer.g:156:31: 'preceding-sibling' + this.match("preceding-sibling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRECEDING_SIBLING", + + // $ANTLR start PRESERVE + mPRESERVE: function() { + try { + var _type = this.PRESERVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:157:29: ( 'preserve' ) + // xquery/XQueryLexer.g:157:31: 'preserve' + this.match("preserve"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRESERVE", + + // $ANTLR start PROCESSING_INSTRUCTION + mPROCESSING_INSTRUCTION: function() { + try { + var _type = this.PROCESSING_INSTRUCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:158:29: ( 'processing-instruction' ) + // xquery/XQueryLexer.g:158:31: 'processing-instruction' + this.match("processing-instruction"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PROCESSING_INSTRUCTION", + + // $ANTLR start RETURN + mRETURN: function() { + try { + var _type = this.RETURN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:159:29: ( 'return' ) + // xquery/XQueryLexer.g:159:31: 'return' + this.match("return"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RETURN", + + // $ANTLR start SATISFIES + mSATISFIES: function() { + try { + var _type = this.SATISFIES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:160:29: ( 'satisfies' ) + // xquery/XQueryLexer.g:160:31: 'satisfies' + this.match("satisfies"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SATISFIES", + + // $ANTLR start SCHEMA + mSCHEMA: function() { + try { + var _type = this.SCHEMA; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:161:29: ( 'schema' ) + // xquery/XQueryLexer.g:161:31: 'schema' + this.match("schema"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA", + + // $ANTLR start SCHEMA_ATTRIBUTE + mSCHEMA_ATTRIBUTE: function() { + try { + var _type = this.SCHEMA_ATTRIBUTE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:162:29: ( 'schema-attribute' ) + // xquery/XQueryLexer.g:162:31: 'schema-attribute' + this.match("schema-attribute"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA_ATTRIBUTE", + + // $ANTLR start SCHEMA_ELEMENT + mSCHEMA_ELEMENT: function() { + try { + var _type = this.SCHEMA_ELEMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:163:29: ( 'schema-element' ) + // xquery/XQueryLexer.g:163:31: 'schema-element' + this.match("schema-element"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA_ELEMENT", + + // $ANTLR start SELF + mSELF: function() { + try { + var _type = this.SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:164:29: ( 'self' ) + // xquery/XQueryLexer.g:164:31: 'self' + this.match("self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SELF", + + // $ANTLR start SOME + mSOME: function() { + try { + var _type = this.SOME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:165:29: ( 'some' ) + // xquery/XQueryLexer.g:165:31: 'some' + this.match("some"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SOME", + + // $ANTLR start STABLE + mSTABLE: function() { + try { + var _type = this.STABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:166:29: ( 'stable' ) + // xquery/XQueryLexer.g:166:31: 'stable' + this.match("stable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STABLE", + + // $ANTLR start STRICT + mSTRICT: function() { + try { + var _type = this.STRICT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:167:29: ( 'strict' ) + // xquery/XQueryLexer.g:167:31: 'strict' + this.match("strict"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STRICT", + + // $ANTLR start STRIP + mSTRIP: function() { + try { + var _type = this.STRIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:168:29: ( 'strip' ) + // xquery/XQueryLexer.g:168:31: 'strip' + this.match("strip"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STRIP", + + // $ANTLR start TEXT + mTEXT: function() { + try { + var _type = this.TEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:169:29: ( 'text' ) + // xquery/XQueryLexer.g:169:31: 'text' + this.match("text"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TEXT", + + // $ANTLR start THEN + mTHEN: function() { + try { + var _type = this.THEN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:170:29: ( 'then' ) + // xquery/XQueryLexer.g:170:31: 'then' + this.match("then"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "THEN", + + // $ANTLR start TO + mTO: function() { + try { + var _type = this.TO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:171:29: ( 'to' ) + // xquery/XQueryLexer.g:171:31: 'to' + this.match("to"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TO", + + // $ANTLR start TREAT + mTREAT: function() { + try { + var _type = this.TREAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:172:29: ( 'treat' ) + // xquery/XQueryLexer.g:172:31: 'treat' + this.match("treat"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TREAT", + + // $ANTLR start TYPESWITCH + mTYPESWITCH: function() { + try { + var _type = this.TYPESWITCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:173:29: ( 'typeswitch' ) + // xquery/XQueryLexer.g:173:31: 'typeswitch' + this.match("typeswitch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TYPESWITCH", + + // $ANTLR start UNION + mUNION: function() { + try { + var _type = this.UNION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:174:29: ( 'union' ) + // xquery/XQueryLexer.g:174:31: 'union' + this.match("union"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNION", + + // $ANTLR start UNORDERED + mUNORDERED: function() { + try { + var _type = this.UNORDERED; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:175:29: ( 'unordered' ) + // xquery/XQueryLexer.g:175:31: 'unordered' + this.match("unordered"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNORDERED", + + // $ANTLR start VALIDATE + mVALIDATE: function() { + try { + var _type = this.VALIDATE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:176:29: ( 'validate' ) + // xquery/XQueryLexer.g:176:31: 'validate' + this.match("validate"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VALIDATE", + + // $ANTLR start VARIABLE + mVARIABLE: function() { + try { + var _type = this.VARIABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:177:29: ( 'variable' ) + // xquery/XQueryLexer.g:177:31: 'variable' + this.match("variable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VARIABLE", + + // $ANTLR start VERSION + mVERSION: function() { + try { + var _type = this.VERSION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:178:29: ( 'version' ) + // xquery/XQueryLexer.g:178:31: 'version' + this.match("version"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VERSION", + + // $ANTLR start WHERE + mWHERE: function() { + try { + var _type = this.WHERE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:179:29: ( 'where' ) + // xquery/XQueryLexer.g:179:31: 'where' + this.match("where"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHERE", + + // $ANTLR start XQUERY + mXQUERY: function() { + try { + var _type = this.XQUERY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:180:29: ( 'xquery' ) + // xquery/XQueryLexer.g:180:31: 'xquery' + this.match("xquery"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "XQUERY", + + // $ANTLR start ALLOWING + mALLOWING: function() { + try { + var _type = this.ALLOWING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:182:29: ( 'allowing' ) + // xquery/XQueryLexer.g:182:31: 'allowing' + this.match("allowing"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ALLOWING", + + // $ANTLR start CATCH + mCATCH: function() { + try { + var _type = this.CATCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:183:29: ( 'catch' ) + // xquery/XQueryLexer.g:183:31: 'catch' + this.match("catch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CATCH", + + // $ANTLR start CONTEXT + mCONTEXT: function() { + try { + var _type = this.CONTEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:184:29: ( 'context' ) + // xquery/XQueryLexer.g:184:31: 'context' + this.match("context"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTEXT", + + // $ANTLR start COUNT + mCOUNT: function() { + try { + var _type = this.COUNT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:185:29: ( 'count' ) + // xquery/XQueryLexer.g:185:31: 'count' + this.match("count"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COUNT", + + // $ANTLR start DECIMAL_FORMAT + mDECIMAL_FORMAT: function() { + try { + var _type = this.DECIMAL_FORMAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:186:29: ( 'decimal-format' ) + // xquery/XQueryLexer.g:186:31: 'decimal-format' + this.match("decimal-format"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECIMAL_FORMAT", + + // $ANTLR start DECIMAL_SEPARATOR + mDECIMAL_SEPARATOR: function() { + try { + var _type = this.DECIMAL_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:187:29: ( 'decimal-separator' ) + // xquery/XQueryLexer.g:187:31: 'decimal-separator' + this.match("decimal-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECIMAL_SEPARATOR", + + // $ANTLR start DIGIT + mDIGIT: function() { + try { + var _type = this.DIGIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:188:29: ( 'digit' ) + // xquery/XQueryLexer.g:188:31: 'digit' + this.match("digit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIGIT", + + // $ANTLR start END + mEND: function() { + try { + var _type = this.END; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:189:29: ( 'end' ) + // xquery/XQueryLexer.g:189:31: 'end' + this.match("end"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "END", + + // $ANTLR start GROUP + mGROUP: function() { + try { + var _type = this.GROUP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:190:29: ( 'group' ) + // xquery/XQueryLexer.g:190:31: 'group' + this.match("group"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GROUP", + + // $ANTLR start GROUPING_SEPARATOR + mGROUPING_SEPARATOR: function() { + try { + var _type = this.GROUPING_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:191:29: ( 'grouping-separator' ) + // xquery/XQueryLexer.g:191:31: 'grouping-separator' + this.match("grouping-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GROUPING_SEPARATOR", + + // $ANTLR start INFINITY + mINFINITY: function() { + try { + var _type = this.INFINITY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:192:29: ( 'infinity' ) + // xquery/XQueryLexer.g:192:31: 'infinity' + this.match("infinity"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INFINITY", + + // $ANTLR start MINUS_SIGN + mMINUS_SIGN: function() { + try { + var _type = this.MINUS_SIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:193:29: ( 'minus-sign' ) + // xquery/XQueryLexer.g:193:31: 'minus-sign' + this.match("minus-sign"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MINUS_SIGN", + + // $ANTLR start NAMESPACE_NODE + mNAMESPACE_NODE: function() { + try { + var _type = this.NAMESPACE_NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:194:29: ( 'namespace-node' ) + // xquery/XQueryLexer.g:194:31: 'namespace-node' + this.match("namespace-node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAMESPACE_NODE", + + // $ANTLR start NAN + mNAN: function() { + try { + var _type = this.NAN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:195:29: ( 'NaN' ) + // xquery/XQueryLexer.g:195:31: 'NaN' + this.match("NaN"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAN", + + // $ANTLR start NEXT + mNEXT: function() { + try { + var _type = this.NEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:196:29: ( 'next' ) + // xquery/XQueryLexer.g:196:31: 'next' + this.match("next"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NEXT", + + // $ANTLR start ONLY + mONLY: function() { + try { + var _type = this.ONLY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:197:29: ( 'only' ) + // xquery/XQueryLexer.g:197:31: 'only' + this.match("only"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ONLY", + + // $ANTLR start PATTERN_SEPARATOR + mPATTERN_SEPARATOR: function() { + try { + var _type = this.PATTERN_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:198:29: ( 'pattern-separator' ) + // xquery/XQueryLexer.g:198:31: 'pattern-separator' + this.match("pattern-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PATTERN_SEPARATOR", + + // $ANTLR start PERCENT + mPERCENT: function() { + try { + var _type = this.PERCENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:199:29: ( 'percent' ) + // xquery/XQueryLexer.g:199:31: 'percent' + this.match("percent"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PERCENT", + + // $ANTLR start PER_MILLE + mPER_MILLE: function() { + try { + var _type = this.PER_MILLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:200:29: ( 'per-mille' ) + // xquery/XQueryLexer.g:200:31: 'per-mille' + this.match("per-mille"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PER_MILLE", + + // $ANTLR start PREVIOUS + mPREVIOUS: function() { + try { + var _type = this.PREVIOUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:201:29: ( 'previous' ) + // xquery/XQueryLexer.g:201:31: 'previous' + this.match("previous"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PREVIOUS", + + // $ANTLR start SLIDING + mSLIDING: function() { + try { + var _type = this.SLIDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:202:29: ( 'sliding' ) + // xquery/XQueryLexer.g:202:31: 'sliding' + this.match("sliding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLIDING", + + // $ANTLR start START + mSTART: function() { + try { + var _type = this.START; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:203:29: ( 'start' ) + // xquery/XQueryLexer.g:203:31: 'start' + this.match("start"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "START", + + // $ANTLR start SWITCH + mSWITCH: function() { + try { + var _type = this.SWITCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:204:29: ( 'switch' ) + // xquery/XQueryLexer.g:204:31: 'switch' + this.match("switch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SWITCH", + + // $ANTLR start TRY + mTRY: function() { + try { + var _type = this.TRY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:205:29: ( 'try' ) + // xquery/XQueryLexer.g:205:31: 'try' + this.match("try"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TRY", + + // $ANTLR start TUMBLING + mTUMBLING: function() { + try { + var _type = this.TUMBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:206:29: ( 'tumbling' ) + // xquery/XQueryLexer.g:206:31: 'tumbling' + this.match("tumbling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TUMBLING", + + // $ANTLR start TYPE + mTYPE: function() { + try { + var _type = this.TYPE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:207:29: ( 'type' ) + // xquery/XQueryLexer.g:207:31: 'type' + this.match("type"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TYPE", + + // $ANTLR start WHEN + mWHEN: function() { + try { + var _type = this.WHEN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:208:29: ( 'when' ) + // xquery/XQueryLexer.g:208:31: 'when' + this.match("when"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHEN", + + // $ANTLR start WINDOW + mWINDOW: function() { + try { + var _type = this.WINDOW; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:209:29: ( 'window' ) + // xquery/XQueryLexer.g:209:31: 'window' + this.match("window"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WINDOW", + + // $ANTLR start ZERO_DIGIT + mZERO_DIGIT: function() { + try { + var _type = this.ZERO_DIGIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:210:29: ( 'zero-digit' ) + // xquery/XQueryLexer.g:210:31: 'zero-digit' + this.match("zero-digit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ZERO_DIGIT", + + // $ANTLR start AFTER + mAFTER: function() { + try { + var _type = this.AFTER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:212:29: ( 'after' ) + // xquery/XQueryLexer.g:212:31: 'after' + this.match("after"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AFTER", + + // $ANTLR start BEFORE + mBEFORE: function() { + try { + var _type = this.BEFORE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:213:29: ( 'before' ) + // xquery/XQueryLexer.g:213:31: 'before' + this.match("before"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BEFORE", + + // $ANTLR start COPY + mCOPY: function() { + try { + var _type = this.COPY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:214:29: ( 'copy' ) + // xquery/XQueryLexer.g:214:31: 'copy' + this.match("copy"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COPY", + + // $ANTLR start DELETE + mDELETE: function() { + try { + var _type = this.DELETE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:215:29: ( 'delete' ) + // xquery/XQueryLexer.g:215:31: 'delete' + this.match("delete"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DELETE", + + // $ANTLR start FIRST + mFIRST: function() { + try { + var _type = this.FIRST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:216:29: ( 'first' ) + // xquery/XQueryLexer.g:216:31: 'first' + this.match("first"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FIRST", + + // $ANTLR start INSERT + mINSERT: function() { + try { + var _type = this.INSERT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:217:29: ( 'insert' ) + // xquery/XQueryLexer.g:217:31: 'insert' + this.match("insert"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSERT", + + // $ANTLR start INTO + mINTO: function() { + try { + var _type = this.INTO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:218:29: ( 'into' ) + // xquery/XQueryLexer.g:218:31: 'into' + this.match("into"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTO", + + // $ANTLR start LAST + mLAST: function() { + try { + var _type = this.LAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:219:29: ( 'last' ) + // xquery/XQueryLexer.g:219:31: 'last' + this.match("last"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LAST", + + // $ANTLR start MODIFY + mMODIFY: function() { + try { + var _type = this.MODIFY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:220:29: ( 'modify' ) + // xquery/XQueryLexer.g:220:31: 'modify' + this.match("modify"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MODIFY", + + // $ANTLR start NODES + mNODES: function() { + try { + var _type = this.NODES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:221:29: ( 'nodes' ) + // xquery/XQueryLexer.g:221:31: 'nodes' + this.match("nodes"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NODES", + + // $ANTLR start RENAME + mRENAME: function() { + try { + var _type = this.RENAME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:222:29: ( 'rename' ) + // xquery/XQueryLexer.g:222:31: 'rename' + this.match("rename"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RENAME", + + // $ANTLR start REPLACE + mREPLACE: function() { + try { + var _type = this.REPLACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:223:29: ( 'replace' ) + // xquery/XQueryLexer.g:223:31: 'replace' + this.match("replace"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "REPLACE", + + // $ANTLR start REVALIDATION + mREVALIDATION: function() { + try { + var _type = this.REVALIDATION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:224:29: ( 'revalidation' ) + // xquery/XQueryLexer.g:224:31: 'revalidation' + this.match("revalidation"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "REVALIDATION", + + // $ANTLR start SKIP + mSKIP: function() { + try { + var _type = this.SKIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:225:29: ( 'skip' ) + // xquery/XQueryLexer.g:225:31: 'skip' + this.match("skip"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SKIP", + + // $ANTLR start UPDATING + mUPDATING: function() { + try { + var _type = this.UPDATING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:226:29: ( 'updating' ) + // xquery/XQueryLexer.g:226:31: 'updating' + this.match("updating"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UPDATING", + + // $ANTLR start VALUE + mVALUE: function() { + try { + var _type = this.VALUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:227:29: ( 'value' ) + // xquery/XQueryLexer.g:227:31: 'value' + this.match("value"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VALUE", + + // $ANTLR start WITH + mWITH: function() { + try { + var _type = this.WITH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:228:29: ( 'with' ) + // xquery/XQueryLexer.g:228:31: 'with' + this.match("with"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WITH", + + // $ANTLR start ALL + mALL: function() { + try { + var _type = this.ALL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:230:29: ( 'all' ) + // xquery/XQueryLexer.g:230:31: 'all' + this.match("all"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ALL", + + // $ANTLR start ANY + mANY: function() { + try { + var _type = this.ANY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:231:29: ( 'any' ) + // xquery/XQueryLexer.g:231:31: 'any' + this.match("any"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANY", + + // $ANTLR start CONTAINS + mCONTAINS: function() { + try { + var _type = this.CONTAINS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:232:29: ( 'contains' ) + // xquery/XQueryLexer.g:232:31: 'contains' + this.match("contains"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTAINS", + + // $ANTLR start CONTENT + mCONTENT: function() { + try { + var _type = this.CONTENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:233:29: ( 'content' ) + // xquery/XQueryLexer.g:233:31: 'content' + this.match("content"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTENT", + + // $ANTLR start DIACRITICS + mDIACRITICS: function() { + try { + var _type = this.DIACRITICS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:234:29: ( 'diacritics' ) + // xquery/XQueryLexer.g:234:31: 'diacritics' + this.match("diacritics"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIACRITICS", + + // $ANTLR start DIFFERENT + mDIFFERENT: function() { + try { + var _type = this.DIFFERENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:235:29: ( 'different' ) + // xquery/XQueryLexer.g:235:31: 'different' + this.match("different"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIFFERENT", + + // $ANTLR start DISTANCE + mDISTANCE: function() { + try { + var _type = this.DISTANCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:236:29: ( 'distance' ) + // xquery/XQueryLexer.g:236:31: 'distance' + this.match("distance"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DISTANCE", + + // $ANTLR start ENTIRE + mENTIRE: function() { + try { + var _type = this.ENTIRE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:237:29: ( 'entire' ) + // xquery/XQueryLexer.g:237:31: 'entire' + this.match("entire"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ENTIRE", + + // $ANTLR start EXACTLY + mEXACTLY: function() { + try { + var _type = this.EXACTLY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:238:29: ( 'exactly' ) + // xquery/XQueryLexer.g:238:31: 'exactly' + this.match("exactly"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXACTLY", + + // $ANTLR start FROM + mFROM: function() { + try { + var _type = this.FROM; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:239:29: ( 'from' ) + // xquery/XQueryLexer.g:239:31: 'from' + this.match("from"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FROM", + + // $ANTLR start FT_OPTION + mFT_OPTION: function() { + try { + var _type = this.FT_OPTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:240:29: ( 'ft-option' ) + // xquery/XQueryLexer.g:240:31: 'ft-option' + this.match("ft-option"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FT_OPTION", + + // $ANTLR start FTAND + mFTAND: function() { + try { + var _type = this.FTAND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:241:29: ( 'ftand' ) + // xquery/XQueryLexer.g:241:31: 'ftand' + this.match("ftand"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTAND", + + // $ANTLR start FTNOT + mFTNOT: function() { + try { + var _type = this.FTNOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:242:29: ( 'ftnot' ) + // xquery/XQueryLexer.g:242:31: 'ftnot' + this.match("ftnot"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTNOT", + + // $ANTLR start FTOR + mFTOR: function() { + try { + var _type = this.FTOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:243:29: ( 'ftor' ) + // xquery/XQueryLexer.g:243:31: 'ftor' + this.match("ftor"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTOR", + + // $ANTLR start INSENSITIVE + mINSENSITIVE: function() { + try { + var _type = this.INSENSITIVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:244:29: ( 'insensitive' ) + // xquery/XQueryLexer.g:244:31: 'insensitive' + this.match("insensitive"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSENSITIVE", + + // $ANTLR start LANGUAGE + mLANGUAGE: function() { + try { + var _type = this.LANGUAGE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:245:29: ( 'language' ) + // xquery/XQueryLexer.g:245:31: 'language' + this.match("language"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LANGUAGE", + + // $ANTLR start LEVELS + mLEVELS: function() { + try { + var _type = this.LEVELS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:246:29: ( 'levels' ) + // xquery/XQueryLexer.g:246:31: 'levels' + this.match("levels"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LEVELS", + + // $ANTLR start LOWERCASE + mLOWERCASE: function() { + try { + var _type = this.LOWERCASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:247:29: ( 'lowercase' ) + // xquery/XQueryLexer.g:247:31: 'lowercase' + this.match("lowercase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LOWERCASE", + + // $ANTLR start MOST + mMOST: function() { + try { + var _type = this.MOST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:248:29: ( 'most' ) + // xquery/XQueryLexer.g:248:31: 'most' + this.match("most"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MOST", + + // $ANTLR start NO + mNO: function() { + try { + var _type = this.NO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:249:29: ( 'no' ) + // xquery/XQueryLexer.g:249:31: 'no' + this.match("no"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO", + + // $ANTLR start NOT + mNOT: function() { + try { + var _type = this.NOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:250:29: ( 'not' ) + // xquery/XQueryLexer.g:250:31: 'not' + this.match("not"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NOT", + + // $ANTLR start OCCURS + mOCCURS: function() { + try { + var _type = this.OCCURS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:251:29: ( 'occurs' ) + // xquery/XQueryLexer.g:251:31: 'occurs' + this.match("occurs"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OCCURS", + + // $ANTLR start PARAGRAPH + mPARAGRAPH: function() { + try { + var _type = this.PARAGRAPH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:252:29: ( 'paragraph' ) + // xquery/XQueryLexer.g:252:31: 'paragraph' + this.match("paragraph"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARAGRAPH", + + // $ANTLR start PARAGRAPHS + mPARAGRAPHS: function() { + try { + var _type = this.PARAGRAPHS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:253:29: ( 'paragraphs' ) + // xquery/XQueryLexer.g:253:31: 'paragraphs' + this.match("paragraphs"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARAGRAPHS", + + // $ANTLR start PHRASE + mPHRASE: function() { + try { + var _type = this.PHRASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:254:29: ( 'phrase' ) + // xquery/XQueryLexer.g:254:31: 'phrase' + this.match("phrase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PHRASE", + + // $ANTLR start RELATIONSHIP + mRELATIONSHIP: function() { + try { + var _type = this.RELATIONSHIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:255:29: ( 'relationship' ) + // xquery/XQueryLexer.g:255:31: 'relationship' + this.match("relationship"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RELATIONSHIP", + + // $ANTLR start SAME + mSAME: function() { + try { + var _type = this.SAME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:256:29: ( 'same' ) + // xquery/XQueryLexer.g:256:31: 'same' + this.match("same"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SAME", + + // $ANTLR start SCORE + mSCORE: function() { + try { + var _type = this.SCORE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:257:29: ( 'score' ) + // xquery/XQueryLexer.g:257:31: 'score' + this.match("score"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCORE", + + // $ANTLR start SENSITIVE + mSENSITIVE: function() { + try { + var _type = this.SENSITIVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:258:29: ( 'sensitive' ) + // xquery/XQueryLexer.g:258:31: 'sensitive' + this.match("sensitive"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENSITIVE", + + // $ANTLR start SENTENCE + mSENTENCE: function() { + try { + var _type = this.SENTENCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:259:29: ( 'sentence' ) + // xquery/XQueryLexer.g:259:31: 'sentence' + this.match("sentence"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENTENCE", + + // $ANTLR start SENTENCES + mSENTENCES: function() { + try { + var _type = this.SENTENCES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:260:29: ( 'sentences' ) + // xquery/XQueryLexer.g:260:31: 'sentences' + this.match("sentences"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENTENCES", + + // $ANTLR start STEMMING + mSTEMMING: function() { + try { + var _type = this.STEMMING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:261:29: ( 'stemming' ) + // xquery/XQueryLexer.g:261:31: 'stemming' + this.match("stemming"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STEMMING", + + // $ANTLR start STOP + mSTOP: function() { + try { + var _type = this.STOP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:262:29: ( 'stop' ) + // xquery/XQueryLexer.g:262:31: 'stop' + this.match("stop"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STOP", + + // $ANTLR start THESAURUS + mTHESAURUS: function() { + try { + var _type = this.THESAURUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:263:29: ( 'thesaurus' ) + // xquery/XQueryLexer.g:263:31: 'thesaurus' + this.match("thesaurus"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "THESAURUS", + + // $ANTLR start TIMES + mTIMES: function() { + try { + var _type = this.TIMES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:264:29: ( 'times' ) + // xquery/XQueryLexer.g:264:31: 'times' + this.match("times"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TIMES", + + // $ANTLR start UPPERCASE + mUPPERCASE: function() { + try { + var _type = this.UPPERCASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:265:29: ( 'uppercase' ) + // xquery/XQueryLexer.g:265:31: 'uppercase' + this.match("uppercase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UPPERCASE", + + // $ANTLR start USING + mUSING: function() { + try { + var _type = this.USING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:266:29: ( 'using' ) + // xquery/XQueryLexer.g:266:31: 'using' + this.match("using"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "USING", + + // $ANTLR start WEIGHT + mWEIGHT: function() { + try { + var _type = this.WEIGHT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:267:29: ( 'weight' ) + // xquery/XQueryLexer.g:267:31: 'weight' + this.match("weight"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WEIGHT", + + // $ANTLR start WILDCARDS + mWILDCARDS: function() { + try { + var _type = this.WILDCARDS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:268:29: ( 'wildcards' ) + // xquery/XQueryLexer.g:268:31: 'wildcards' + this.match("wildcards"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WILDCARDS", + + // $ANTLR start WITHOUT + mWITHOUT: function() { + try { + var _type = this.WITHOUT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:269:29: ( 'without' ) + // xquery/XQueryLexer.g:269:31: 'without' + this.match("without"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WITHOUT", + + // $ANTLR start WORD + mWORD: function() { + try { + var _type = this.WORD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:270:29: ( 'word' ) + // xquery/XQueryLexer.g:270:31: 'word' + this.match("word"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WORD", + + // $ANTLR start WORDS + mWORDS: function() { + try { + var _type = this.WORDS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:271:29: ( 'words' ) + // xquery/XQueryLexer.g:271:31: 'words' + this.match("words"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WORDS", + + // $ANTLR start BREAK + mBREAK: function() { + try { + var _type = this.BREAK; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:273:29: ( 'break' ) + // xquery/XQueryLexer.g:273:31: 'break' + this.match("break"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BREAK", + + // $ANTLR start CONTINUE + mCONTINUE: function() { + try { + var _type = this.CONTINUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:274:29: ( 'continue' ) + // xquery/XQueryLexer.g:274:31: 'continue' + this.match("continue"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTINUE", + + // $ANTLR start EXIT + mEXIT: function() { + try { + var _type = this.EXIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:275:29: ( 'exit' ) + // xquery/XQueryLexer.g:275:31: 'exit' + this.match("exit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXIT", + + // $ANTLR start LOOP + mLOOP: function() { + try { + var _type = this.LOOP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:276:29: ( 'loop' ) + // xquery/XQueryLexer.g:276:31: 'loop' + this.match("loop"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LOOP", + + // $ANTLR start RETURNING + mRETURNING: function() { + try { + var _type = this.RETURNING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:277:29: ( 'returning' ) + // xquery/XQueryLexer.g:277:31: 'returning' + this.match("returning"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RETURNING", + + // $ANTLR start WHILE + mWHILE: function() { + try { + var _type = this.WHILE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:278:29: ( 'while' ) + // xquery/XQueryLexer.g:278:31: 'while' + this.match("while"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHILE", + + // $ANTLR start CHECK + mCHECK: function() { + try { + var _type = this.CHECK; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:280:29: ( 'check' ) + // xquery/XQueryLexer.g:280:31: 'check' + this.match("check"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHECK", + + // $ANTLR start COLLECTION + mCOLLECTION: function() { + try { + var _type = this.COLLECTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:281:29: ( 'collection' ) + // xquery/XQueryLexer.g:281:31: 'collection' + this.match("collection"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLLECTION", + + // $ANTLR start CONSTRAINT + mCONSTRAINT: function() { + try { + var _type = this.CONSTRAINT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:282:29: ( 'constraint' ) + // xquery/XQueryLexer.g:282:31: 'constraint' + this.match("constraint"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONSTRAINT", + + // $ANTLR start FOREACH + mFOREACH: function() { + try { + var _type = this.FOREACH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:283:29: ( 'foreach' ) + // xquery/XQueryLexer.g:283:31: 'foreach' + this.match("foreach"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOREACH", + + // $ANTLR start FOREIGN + mFOREIGN: function() { + try { + var _type = this.FOREIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:284:29: ( 'foreign' ) + // xquery/XQueryLexer.g:284:31: 'foreign' + this.match("foreign"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOREIGN", + + // $ANTLR start INDEX + mINDEX: function() { + try { + var _type = this.INDEX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:285:29: ( 'index' ) + // xquery/XQueryLexer.g:285:31: 'index' + this.match("index"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INDEX", + + // $ANTLR start INTEGRITY + mINTEGRITY: function() { + try { + var _type = this.INTEGRITY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:286:29: ( 'integrity' ) + // xquery/XQueryLexer.g:286:31: 'integrity' + this.match("integrity"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTEGRITY", + + // $ANTLR start KEY + mKEY: function() { + try { + var _type = this.KEY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:287:29: ( 'key' ) + // xquery/XQueryLexer.g:287:31: 'key' + this.match("key"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "KEY", + + // $ANTLR start ON + mON: function() { + try { + var _type = this.ON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:288:29: ( 'on' ) + // xquery/XQueryLexer.g:288:31: 'on' + this.match("on"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ON", + + // $ANTLR start UNIQUE + mUNIQUE: function() { + try { + var _type = this.UNIQUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:289:29: ( 'unique' ) + // xquery/XQueryLexer.g:289:31: 'unique' + this.match("unique"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNIQUE", + + // $ANTLR start BINARY + mBINARY: function() { + try { + var _type = this.BINARY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:291:29: ( 'binary' ) + // xquery/XQueryLexer.g:291:31: 'binary' + this.match("binary"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BINARY", + + // $ANTLR start AMP_ER + mAMP_ER: function() { + try { + var _type = this.AMP_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:294:9: ( 'amp' ) + // xquery/XQueryLexer.g:294:11: 'amp' + this.match("amp"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AMP_ER", + + // $ANTLR start APOS_ER + mAPOS_ER: function() { + try { + var _type = this.APOS_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:295:9: ( 'apos' ) + // xquery/XQueryLexer.g:295:11: 'apos' + this.match("apos"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS_ER", + + // $ANTLR start QUOT_ER + mQUOT_ER: function() { + try { + var _type = this.QUOT_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:296:9: ( 'quot' ) + // xquery/XQueryLexer.g:296:11: 'quot' + this.match("quot"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT_ER", + + // $ANTLR start CONCAT + mCONCAT: function() { + try { + var _type = this.CONCAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:303:25: ( '||' ) + // xquery/XQueryLexer.g:303:27: '||' + this.match("||"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONCAT", + + // $ANTLR start LPAREN + mLPAREN: function() { + try { + var _type = this.LPAREN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:304:25: ( '(' ) + // xquery/XQueryLexer.g:304:27: '(' + this.match('('); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LPAREN", + + // $ANTLR start RPAREN + mRPAREN: function() { + try { + var _type = this.RPAREN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:305:25: ( ')' ) + // xquery/XQueryLexer.g:305:27: ')' + this.match(')'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RPAREN", + + // $ANTLR start DOLLAR + mDOLLAR: function() { + try { + var _type = this.DOLLAR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:306:25: ( '$' ) + // xquery/XQueryLexer.g:306:27: '$' + this.match('$'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOLLAR", + + // $ANTLR start LBRACKET + mLBRACKET: function() { + try { + var _type = this.LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:307:25: ( '{' ) + // xquery/XQueryLexer.g:307:27: '{' + this.match('{'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LBRACKET", + + // $ANTLR start RBRACKET + mRBRACKET: function() { + try { + var _type = this.RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:308:25: ( '}' ) + // xquery/XQueryLexer.g:308:27: '}' + this.match('}'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RBRACKET", + + // $ANTLR start LSQUARE + mLSQUARE: function() { + try { + var _type = this.LSQUARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:309:25: ( '[' ) + // xquery/XQueryLexer.g:309:27: '[' + this.match('['); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LSQUARE", + + // $ANTLR start RSQUARE + mRSQUARE: function() { + try { + var _type = this.RSQUARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:310:25: ( ']' ) + // xquery/XQueryLexer.g:310:27: ']' + this.match(']'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RSQUARE", + + // $ANTLR start EQUAL + mEQUAL: function() { + try { + var _type = this.EQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:311:25: ( '=' ) + // xquery/XQueryLexer.g:311:27: '=' + this.match('='); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQUAL", + + // $ANTLR start BIND + mBIND: function() { + try { + var _type = this.BIND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:312:25: ( ':=' ) + // xquery/XQueryLexer.g:312:27: ':=' + this.match(":="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BIND", + + // $ANTLR start NOTEQUAL + mNOTEQUAL: function() { + try { + var _type = this.NOTEQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:313:25: ( '!=' ) + // xquery/XQueryLexer.g:313:27: '!=' + this.match("!="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NOTEQUAL", + + // $ANTLR start ANN_PERCENT + mANN_PERCENT: function() { + try { + var _type = this.ANN_PERCENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:314:25: ( '%' ) + // xquery/XQueryLexer.g:314:27: '%' + this.match('%'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANN_PERCENT", + + // $ANTLR start HASH + mHASH: function() { + try { + var _type = this.HASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:315:25: ( '#' ) + // xquery/XQueryLexer.g:315:27: '#' + this.match('#'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "HASH", + + // $ANTLR start AMP + mAMP: function() { + try { + var _type = this.AMP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:316:25: ( '&' ) + // xquery/XQueryLexer.g:316:27: '&' + this.match('&'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AMP", + + // $ANTLR start COMMA + mCOMMA: function() { + try { + var _type = this.COMMA; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:317:25: ( ',' ) + // xquery/XQueryLexer.g:317:27: ',' + this.match(','); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COMMA", + + // $ANTLR start QUESTION + mQUESTION: function() { + try { + var _type = this.QUESTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:318:25: ( '?' ) + // xquery/XQueryLexer.g:318:27: '?' + this.match('?'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUESTION", + + // $ANTLR start STAR + mSTAR: function() { + try { + var _type = this.STAR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:319:25: ( '*' ) + // xquery/XQueryLexer.g:319:27: '*' + this.match('*'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STAR", + + // $ANTLR start PLUS + mPLUS: function() { + try { + var _type = this.PLUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:320:25: ( '+' ) + // xquery/XQueryLexer.g:320:27: '+' + this.match('+'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PLUS", + + // $ANTLR start MINUS + mMINUS: function() { + try { + var _type = this.MINUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:321:25: ( '-' ) + // xquery/XQueryLexer.g:321:27: '-' + this.match('-'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MINUS", + + // $ANTLR start SMALLER + mSMALLER: function() { + try { + var _type = this.SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:322:25: ( '<' ) + // xquery/XQueryLexer.g:322:27: '<' + this.match('<'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER", + + // $ANTLR start GREATER + mGREATER: function() { + try { + var _type = this.GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:323:25: ( '>' ) + // xquery/XQueryLexer.g:323:27: '>' + this.match('>'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER", + + // $ANTLR start SMALLEREQ + mSMALLEREQ: function() { + try { + var _type = this.SMALLEREQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:324:25: ( '<=' ) + // xquery/XQueryLexer.g:324:27: '<=' + this.match("<="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLEREQ", + + // $ANTLR start GREATEREQ + mGREATEREQ: function() { + try { + var _type = this.GREATEREQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:325:25: ( '>=' ) + // xquery/XQueryLexer.g:325:27: '>=' + this.match(">="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATEREQ", + + // $ANTLR start SMALLER_SMALLER + mSMALLER_SMALLER: function() { + try { + var _type = this.SMALLER_SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:326:25: ( '<<' ) + // xquery/XQueryLexer.g:326:27: '<<' + this.match("<<"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER_SMALLER", + + // $ANTLR start GREATER_GREATER + mGREATER_GREATER: function() { + try { + var _type = this.GREATER_GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:327:25: ( '>>' ) + // xquery/XQueryLexer.g:327:27: '>>' + this.match(">>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER_GREATER", + + // $ANTLR start SLASH + mSLASH: function() { + try { + var _type = this.SLASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:328:25: ( '/' ) + // xquery/XQueryLexer.g:328:27: '/' + this.match('/'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLASH", + + // $ANTLR start SLASH_SLASH + mSLASH_SLASH: function() { + try { + var _type = this.SLASH_SLASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:329:25: ( '//' ) + // xquery/XQueryLexer.g:329:27: '//' + this.match("//"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLASH_SLASH", + + // $ANTLR start DOT + mDOT: function() { + try { + var _type = this.DOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:330:25: ( '.' ) + // xquery/XQueryLexer.g:330:27: '.' + this.match('.'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOT", + + // $ANTLR start DOT_DOT + mDOT_DOT: function() { + try { + var _type = this.DOT_DOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:331:25: ( '..' ) + // xquery/XQueryLexer.g:331:27: '..' + this.match(".."); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOT_DOT", + + // $ANTLR start COLON + mCOLON: function() { + try { + var _type = this.COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:332:25: ( ':' ) + // xquery/XQueryLexer.g:332:27: ':' + this.match(':'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON", + + // $ANTLR start COLON_COLON + mCOLON_COLON: function() { + try { + var _type = this.COLON_COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:333:25: ( '::' ) + // xquery/XQueryLexer.g:333:27: '::' + this.match("::"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON_COLON", + + // $ANTLR start EMPTY_CLOSE_TAG + mEMPTY_CLOSE_TAG: function() { + try { + var _type = this.EMPTY_CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:334:25: ( '/>' ) + // xquery/XQueryLexer.g:334:27: '/>' + this.match("/>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_CLOSE_TAG", + + // $ANTLR start CLOSE_TAG + mCLOSE_TAG: function() { + try { + var _type = this.CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:335:25: ( '' ) + // xquery/XQueryLexer.g:341:27: '-->' + this.match("-->"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "XML_COMMENT_END", + + // $ANTLR start PI_START + mPI_START: function() { + try { + var _type = this.PI_START; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:342:25: ( '' ) + // xquery/XQueryLexer.g:343:27: '?>' + this.match("?>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PI_END", + + // $ANTLR start ATTR_SIGN + mATTR_SIGN: function() { + try { + var _type = this.ATTR_SIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:344:25: ( '@' ) + // xquery/XQueryLexer.g:344:27: '@' + this.match('@'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ATTR_SIGN", + + // $ANTLR start CHARREF_DEC + mCHARREF_DEC: function() { + try { + var _type = this.CHARREF_DEC; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:345:25: ( '&#' ) + // xquery/XQueryLexer.g:345:27: '&#' + this.match("&#"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHARREF_DEC", + + // $ANTLR start CHARREF_HEX + mCHARREF_HEX: function() { + try { + var _type = this.CHARREF_HEX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:346:25: ( '&#x' ) + // xquery/XQueryLexer.g:346:27: '&#x' + this.match("&#x"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHARREF_HEX", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:347:25: ( '\\'' ) + // xquery/XQueryLexer.g:347:27: '\\'' + this.match('\''); + if (!this.inStr) this.inStr = true; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:348:25: ( '\"' ) + // xquery/XQueryLexer.g:348:27: '\"' + this.match('\"'); + if (!this.inStr) this.inStr = true; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start L_NCName + mL_NCName: function() { + try { + var _type = this.L_NCName; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:352:9: ( NCNameStartChar ( NCNameChar )* ) + // xquery/XQueryLexer.g:352:13: NCNameStartChar ( NCNameChar )* + this.mNCNameStartChar(); + // xquery/XQueryLexer.g:352:29: ( NCNameChar )* + loop1: + do { + var alt1=2; + var LA1_0 = this.input.LA(1); + + if ( ((LA1_0>='-' && LA1_0<='.')||(LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // xquery/XQueryLexer.g:352:29: NCNameChar + this.mNCNameChar(); + + + break; + + default : + break loop1; + } + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_NCName", + + // $ANTLR start Letter + mLetter: function() { + try { + // xquery/XQueryLexer.g:355:29: ( 'a' .. 'z' | 'A' .. 'Z' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "Letter", + + // $ANTLR start HexLetter + mHexLetter: function() { + try { + // xquery/XQueryLexer.g:356:29: ( 'a' .. 'f' | 'A' .. 'F' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "HexLetter", + + // $ANTLR start Digit + mDigit: function() { + try { + // xquery/XQueryLexer.g:357:29: ( '0' .. '9' ) + // xquery/XQueryLexer.g:357:31: '0' .. '9' + this.matchRange('0','9'); + + + + } + finally { + } + }, + // $ANTLR end "Digit", + + // $ANTLR start Digits + mDigits: function() { + try { + // xquery/XQueryLexer.g:358:29: ( ( Digit )+ ) + // xquery/XQueryLexer.g:358:31: ( Digit )+ + // xquery/XQueryLexer.g:358:31: ( Digit )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/XQueryLexer.g:358:31: Digit + this.mDigit(); + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "Digits", + + // $ANTLR start NCNameStartChar + mNCNameStartChar: function() { + try { + // xquery/XQueryLexer.g:360:29: ( Letter | '_' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameStartChar", + + // $ANTLR start NCNameChar + mNCNameChar: function() { + try { + // xquery/XQueryLexer.g:361:29: ( Letter | Digit | '.' | '-' | '_' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='-' && this.input.LA(1)<='.')||(this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameChar", + + // $ANTLR start S + mS: function() { + try { + var _type = this.S; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:364:9: ( ( '\\t' | ' ' | '\\n' | '\\r' )+ ) + // xquery/XQueryLexer.g:364:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + // xquery/XQueryLexer.g:364:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||LA3_0==' ') ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + _channel = HIDDEN; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "S", + + // $ANTLR start SU + mSU: function() { + try { + // xquery/XQueryLexer.g:367:9: ( ( '\\t' | ' ' | '\\n' | '\\r' )+ ) + // xquery/XQueryLexer.g:367:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + // xquery/XQueryLexer.g:367:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + var cnt4=0; + loop4: + do { + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( ((LA4_0>='\t' && LA4_0<='\n')||LA4_0=='\r'||LA4_0==' ') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt4 >= 1 ) { + break loop4; + } + var eee = new org.antlr.runtime.EarlyExitException(4, this.input); + throw eee; + } + cnt4++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "SU", + + // $ANTLR start L_Pragma + mL_Pragma: function() { + try { + var _type = this.L_Pragma; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:378:9: ( PRAGMA_START ( SU )? L_NCName COLON L_NCName ( SU ( options {greedy=false; } : . )* )? PRAGMA_END ) + // xquery/XQueryLexer.g:378:11: PRAGMA_START ( SU )? L_NCName COLON L_NCName ( SU ( options {greedy=false; } : . )* )? PRAGMA_END + this.mPRAGMA_START(); + // xquery/XQueryLexer.g:378:24: ( SU )? + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='\t' && LA5_0<='\n')||LA5_0=='\r'||LA5_0==' ') ) { + alt5=1; + } + switch (alt5) { + case 1 : + // xquery/XQueryLexer.g:378:24: SU + this.mSU(); + + + break; + + } + + this.mL_NCName(); + this.mCOLON(); + this.mL_NCName(); + // xquery/XQueryLexer.g:378:52: ( SU ( options {greedy=false; } : . )* )? + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||LA7_0==' ') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // xquery/XQueryLexer.g:378:53: SU ( options {greedy=false; } : . )* + this.mSU(); + // xquery/XQueryLexer.g:378:56: ( options {greedy=false; } : . )* + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( (LA6_0=='#') ) { + var LA6_1 = this.input.LA(2); + + if ( (LA6_1==')') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='(')||(LA6_1>='*' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<='\"')||(LA6_0>='$' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/XQueryLexer.g:378:83: . + this.matchAny(); + + + break; + + default : + break loop6; + } + } while (true); + + + + break; + + } + + this.mPRAGMA_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_Pragma", + + // $ANTLR start L_DirCommentConstructor + mL_DirCommentConstructor: function() { + try { + var _type = this.L_DirCommentConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:388:9: ( XML_COMMENT_START ( options {greedy=false; } : ( . )* ) XML_COMMENT_END ) + // xquery/XQueryLexer.g:388:11: XML_COMMENT_START ( options {greedy=false; } : ( . )* ) XML_COMMENT_END + this.mXML_COMMENT_START(); + // xquery/XQueryLexer.g:388:29: ( options {greedy=false; } : ( . )* ) + // xquery/XQueryLexer.g:388:56: ( . )* + // xquery/XQueryLexer.g:388:56: ( . )* + loop8: + do { + var alt8=2; + var LA8_0 = this.input.LA(1); + + if ( (LA8_0=='-') ) { + var LA8_1 = this.input.LA(2); + + if ( (LA8_1=='-') ) { + var LA8_3 = this.input.LA(3); + + if ( (LA8_3=='>') ) { + alt8=2; + } + else if ( ((LA8_3>='\u0000' && LA8_3<='=')||(LA8_3>='?' && LA8_3<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_1>='\u0000' && LA8_1<=',')||(LA8_1>='.' && LA8_1<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_0>='\u0000' && LA8_0<=',')||(LA8_0>='.' && LA8_0<='\uFFFF')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // xquery/XQueryLexer.g:388:56: . + this.matchAny(); + + + break; + + default : + break loop8; + } + } while (true); + + + + + this.mXML_COMMENT_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirCommentConstructor", + + // $ANTLR start L_DirPIConstructor + mL_DirPIConstructor: function() { + try { + var _type = this.L_DirPIConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:397:9: ( PI_START ( SU )? L_NCName ( SU ( options {greedy=false; } : ( . )* ) )? PI_END ) + // xquery/XQueryLexer.g:397:11: PI_START ( SU )? L_NCName ( SU ( options {greedy=false; } : ( . )* ) )? PI_END + this.mPI_START(); + // xquery/XQueryLexer.g:397:20: ( SU )? + var alt9=2; + var LA9_0 = this.input.LA(1); + + if ( ((LA9_0>='\t' && LA9_0<='\n')||LA9_0=='\r'||LA9_0==' ') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // xquery/XQueryLexer.g:397:20: SU + this.mSU(); + + + break; + + } + + this.mL_NCName(); + // xquery/XQueryLexer.g:397:33: ( SU ( options {greedy=false; } : ( . )* ) )? + var alt11=2; + var LA11_0 = this.input.LA(1); + + if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) { + alt11=1; + } + switch (alt11) { + case 1 : + // xquery/XQueryLexer.g:397:34: SU ( options {greedy=false; } : ( . )* ) + this.mSU(); + // xquery/XQueryLexer.g:397:36: ( options {greedy=false; } : ( . )* ) + // xquery/XQueryLexer.g:397:63: ( . )* + // xquery/XQueryLexer.g:397:63: ( . )* + loop10: + do { + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0=='?') ) { + var LA10_1 = this.input.LA(2); + + if ( (LA10_1=='>') ) { + alt10=2; + } + else if ( ((LA10_1>='\u0000' && LA10_1<='=')||(LA10_1>='?' && LA10_1<='\uFFFF')) ) { + alt10=1; + } + + + } + else if ( ((LA10_0>='\u0000' && LA10_0<='>')||(LA10_0>='@' && LA10_0<='\uFFFF')) ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // xquery/XQueryLexer.g:397:63: . + this.matchAny(); + + + break; + + default : + break loop10; + } + } while (true); + + + + + + + break; + + } + + this.mPI_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirPIConstructor", + + // $ANTLR start L_IntegerLiteral + mL_IntegerLiteral: function() { + try { + var _type = this.L_IntegerLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:405:9: ( Digits ) + // xquery/XQueryLexer.g:405:13: Digits + this.mDigits(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_IntegerLiteral", + + // $ANTLR start L_DecimalLiteral + mL_DecimalLiteral: function() { + try { + var _type = this.L_DecimalLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:410:9: ( ( '.' Digits ) | ( Digits '.' ( Digit )* ) ) + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0=='.') ) { + alt13=1; + } + else if ( ((LA13_0>='0' && LA13_0<='9')) ) { + alt13=2; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 13, 0, this.input); + + throw nvae; + } + switch (alt13) { + case 1 : + // xquery/XQueryLexer.g:410:11: ( '.' Digits ) + // xquery/XQueryLexer.g:410:11: ( '.' Digits ) + // xquery/XQueryLexer.g:410:12: '.' Digits + this.match('.'); + this.mDigits(); + + + + + + break; + case 2 : + // xquery/XQueryLexer.g:410:26: ( Digits '.' ( Digit )* ) + // xquery/XQueryLexer.g:410:26: ( Digits '.' ( Digit )* ) + // xquery/XQueryLexer.g:410:27: Digits '.' ( Digit )* + this.mDigits(); + this.match('.'); + // xquery/XQueryLexer.g:410:38: ( Digit )* + loop12: + do { + var alt12=2; + var LA12_0 = this.input.LA(1); + + if ( ((LA12_0>='0' && LA12_0<='9')) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // xquery/XQueryLexer.g:410:38: Digit + this.mDigit(); + + + break; + + default : + break loop12; + } + } while (true); + + + + + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DecimalLiteral", + + // $ANTLR start L_DoubleLiteral + mL_DoubleLiteral: function() { + try { + var _type = this.L_DoubleLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:415:9: ( ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) ( 'e' | 'E' ) ( '+' | '-' )? Digits ) + // xquery/XQueryLexer.g:415:11: ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) ( 'e' | 'E' ) ( '+' | '-' )? Digits + // xquery/XQueryLexer.g:415:11: ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) + var alt16=2; + var LA16_0 = this.input.LA(1); + + if ( (LA16_0=='.') ) { + alt16=1; + } + else if ( ((LA16_0>='0' && LA16_0<='9')) ) { + alt16=2; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 16, 0, this.input); + + throw nvae; + } + switch (alt16) { + case 1 : + // xquery/XQueryLexer.g:415:12: ( '.' Digits ) + // xquery/XQueryLexer.g:415:12: ( '.' Digits ) + // xquery/XQueryLexer.g:415:13: '.' Digits + this.match('.'); + this.mDigits(); + + + + + + break; + case 2 : + // xquery/XQueryLexer.g:415:27: ( Digits ( '.' ( Digit )* )? ) + // xquery/XQueryLexer.g:415:27: ( Digits ( '.' ( Digit )* )? ) + // xquery/XQueryLexer.g:415:28: Digits ( '.' ( Digit )* )? + this.mDigits(); + // xquery/XQueryLexer.g:415:35: ( '.' ( Digit )* )? + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( (LA15_0=='.') ) { + alt15=1; + } + switch (alt15) { + case 1 : + // xquery/XQueryLexer.g:415:36: '.' ( Digit )* + this.match('.'); + // xquery/XQueryLexer.g:415:40: ( Digit )* + loop14: + do { + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( ((LA14_0>='0' && LA14_0<='9')) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // xquery/XQueryLexer.g:415:40: Digit + this.mDigit(); + + + break; + + default : + break loop14; + } + } while (true); + + + + break; + + } + + + + + + + break; + + } + + if ( this.input.LA(1)=='E'||this.input.LA(1)=='e' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + // xquery/XQueryLexer.g:415:63: ( '+' | '-' )? + var alt17=2; + var LA17_0 = this.input.LA(1); + + if ( (LA17_0=='+'||LA17_0=='-') ) { + alt17=1; + } + switch (alt17) { + case 1 : + // xquery/XQueryLexer.g: + if ( this.input.LA(1)=='+'||this.input.LA(1)=='-' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + } + + this.mDigits(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DoubleLiteral", + + // $ANTLR start L_Comment + mL_Comment: function() { + try { + var _type = this.L_Comment; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:420:9: ({...}? => '(:' ( options {greedy=false; } : L_Comment | . )* ':)' ) + // xquery/XQueryLexer.g:420:11: {...}? => '(:' ( options {greedy=false; } : L_Comment | . )* ':)' + if ( !((!this.inStr)) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_Comment", "!this.inStr"); + } + this.match("(:"); + + // xquery/XQueryLexer.g:420:33: ( options {greedy=false; } : L_Comment | . )* + loop18: + do { + var alt18=3; + var LA18_0 = this.input.LA(1); + + if ( (LA18_0==':') ) { + var LA18_1 = this.input.LA(2); + + if ( (LA18_1==')') ) { + alt18=3; + } + else if ( ((LA18_1>='\u0000' && LA18_1<='(')||(LA18_1>='*' && LA18_1<='\uFFFF')) ) { + alt18=2; + } + + + } + else if ( (LA18_0=='(') ) { + var LA18_2 = this.input.LA(2); + + if ( (LA18_2==':') ) { + var LA18_5 = this.input.LA(3); + + if ( ((!this.inStr)) ) { + alt18=1; + } + else if ( (true) ) { + alt18=2; + } + + + } + else if ( ((LA18_2>='\u0000' && LA18_2<='9')||(LA18_2>=';' && LA18_2<='\uFFFF')) ) { + alt18=2; + } + + + } + else if ( ((LA18_0>='\u0000' && LA18_0<='\'')||(LA18_0>=')' && LA18_0<='9')||(LA18_0>=';' && LA18_0<='\uFFFF')) ) { + alt18=2; + } + + + switch (alt18) { + case 1 : + // xquery/XQueryLexer.g:420:59: L_Comment + this.mL_Comment(); + + + break; + case 2 : + // xquery/XQueryLexer.g:420:71: . + this.matchAny(); + + + break; + + default : + break loop18; + } + } while (true); + + this.match(":)"); + + _channel = HIDDEN; this.addComment(this.state.tokenStartCharIndex, (this.getCharIndex()-1)); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_Comment", + + // $ANTLR start L_AnyChar + mL_AnyChar: function() { + try { + var _type = this.L_AnyChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:423:11: ( . ) + // xquery/XQueryLexer.g:423:13: . + this.matchAny(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AnyChar", + + mTokens: function() { + // xquery/XQueryLexer.g:1:8: ( ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | SWITCH | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER | CONCAT | LPAREN | RPAREN | DOLLAR | LBRACKET | RBRACKET | LSQUARE | RSQUARE | EQUAL | BIND | NOTEQUAL | ANN_PERCENT | HASH | AMP | COMMA | QUESTION | STAR | PLUS | MINUS | SMALLER | GREATER | SMALLEREQ | GREATEREQ | SMALLER_SMALLER | GREATER_GREATER | SLASH | SLASH_SLASH | DOT | DOT_DOT | COLON | COLON_COLON | EMPTY_CLOSE_TAG | CLOSE_TAG | SEMICOLON | VBAR | PRAGMA_START | PRAGMA_END | XML_COMMENT_START | XML_COMMENT_END | PI_START | PI_END | ATTR_SIGN | CHARREF_DEC | CHARREF_HEX | APOS | QUOT | L_NCName | S | L_Pragma | L_DirCommentConstructor | L_DirPIConstructor | L_IntegerLiteral | L_DecimalLiteral | L_DoubleLiteral | L_Comment | L_AnyChar ) + var alt19=260; + alt19 = this.dfa19.predict(this.input); + switch (alt19) { + case 1 : + // xquery/XQueryLexer.g:1:10: ANCESTOR + this.mANCESTOR(); + + + break; + case 2 : + // xquery/XQueryLexer.g:1:19: ANCESTOR_OR_SELF + this.mANCESTOR_OR_SELF(); + + + break; + case 3 : + // xquery/XQueryLexer.g:1:36: AND + this.mAND(); + + + break; + case 4 : + // xquery/XQueryLexer.g:1:40: AS + this.mAS(); + + + break; + case 5 : + // xquery/XQueryLexer.g:1:43: ASCENDING + this.mASCENDING(); + + + break; + case 6 : + // xquery/XQueryLexer.g:1:53: AT + this.mAT(); + + + break; + case 7 : + // xquery/XQueryLexer.g:1:56: ATTRIBUTE + this.mATTRIBUTE(); + + + break; + case 8 : + // xquery/XQueryLexer.g:1:66: BASE_URI + this.mBASE_URI(); + + + break; + case 9 : + // xquery/XQueryLexer.g:1:75: BOUNDARY_SPACE + this.mBOUNDARY_SPACE(); + + + break; + case 10 : + // xquery/XQueryLexer.g:1:90: BY + this.mBY(); + + + break; + case 11 : + // xquery/XQueryLexer.g:1:93: CASE + this.mCASE(); + + + break; + case 12 : + // xquery/XQueryLexer.g:1:98: CAST + this.mCAST(); + + + break; + case 13 : + // xquery/XQueryLexer.g:1:103: CASTABLE + this.mCASTABLE(); + + + break; + case 14 : + // xquery/XQueryLexer.g:1:112: CHILD + this.mCHILD(); + + + break; + case 15 : + // xquery/XQueryLexer.g:1:118: COLLATION + this.mCOLLATION(); + + + break; + case 16 : + // xquery/XQueryLexer.g:1:128: COMMENT + this.mCOMMENT(); + + + break; + case 17 : + // xquery/XQueryLexer.g:1:136: CONSTRUCTION + this.mCONSTRUCTION(); + + + break; + case 18 : + // xquery/XQueryLexer.g:1:149: COPY_NAMESPACES + this.mCOPY_NAMESPACES(); + + + break; + case 19 : + // xquery/XQueryLexer.g:1:165: DECLARE + this.mDECLARE(); + + + break; + case 20 : + // xquery/XQueryLexer.g:1:173: DEFAULT + this.mDEFAULT(); + + + break; + case 21 : + // xquery/XQueryLexer.g:1:181: DESCENDANT + this.mDESCENDANT(); + + + break; + case 22 : + // xquery/XQueryLexer.g:1:192: DESCENDANT_OR_SELF + this.mDESCENDANT_OR_SELF(); + + + break; + case 23 : + // xquery/XQueryLexer.g:1:211: DESCENDING + this.mDESCENDING(); + + + break; + case 24 : + // xquery/XQueryLexer.g:1:222: DIV + this.mDIV(); + + + break; + case 25 : + // xquery/XQueryLexer.g:1:226: DOCUMENT + this.mDOCUMENT(); + + + break; + case 26 : + // xquery/XQueryLexer.g:1:235: DOCUMENT_NODE + this.mDOCUMENT_NODE(); + + + break; + case 27 : + // xquery/XQueryLexer.g:1:249: ELEMENT + this.mELEMENT(); + + + break; + case 28 : + // xquery/XQueryLexer.g:1:257: ELSE + this.mELSE(); + + + break; + case 29 : + // xquery/XQueryLexer.g:1:262: EMPTY + this.mEMPTY(); + + + break; + case 30 : + // xquery/XQueryLexer.g:1:268: EMPTY_SEQUENCE + this.mEMPTY_SEQUENCE(); + + + break; + case 31 : + // xquery/XQueryLexer.g:1:283: ENCODING + this.mENCODING(); + + + break; + case 32 : + // xquery/XQueryLexer.g:1:292: EQ + this.mEQ(); + + + break; + case 33 : + // xquery/XQueryLexer.g:1:295: EVERY + this.mEVERY(); + + + break; + case 34 : + // xquery/XQueryLexer.g:1:301: EXCEPT + this.mEXCEPT(); + + + break; + case 35 : + // xquery/XQueryLexer.g:1:308: EXTERNAL + this.mEXTERNAL(); + + + break; + case 36 : + // xquery/XQueryLexer.g:1:317: FOLLOWING + this.mFOLLOWING(); + + + break; + case 37 : + // xquery/XQueryLexer.g:1:327: FOLLOWING_SIBLING + this.mFOLLOWING_SIBLING(); + + + break; + case 38 : + // xquery/XQueryLexer.g:1:345: FOR + this.mFOR(); + + + break; + case 39 : + // xquery/XQueryLexer.g:1:349: FUNCTION + this.mFUNCTION(); + + + break; + case 40 : + // xquery/XQueryLexer.g:1:358: GE + this.mGE(); + + + break; + case 41 : + // xquery/XQueryLexer.g:1:361: GREATEST + this.mGREATEST(); + + + break; + case 42 : + // xquery/XQueryLexer.g:1:370: GT + this.mGT(); + + + break; + case 43 : + // xquery/XQueryLexer.g:1:373: IDIV + this.mIDIV(); + + + break; + case 44 : + // xquery/XQueryLexer.g:1:378: IF + this.mIF(); + + + break; + case 45 : + // xquery/XQueryLexer.g:1:381: IMPORT + this.mIMPORT(); + + + break; + case 46 : + // xquery/XQueryLexer.g:1:388: IN + this.mIN(); + + + break; + case 47 : + // xquery/XQueryLexer.g:1:391: INHERIT + this.mINHERIT(); + + + break; + case 48 : + // xquery/XQueryLexer.g:1:399: INSTANCE + this.mINSTANCE(); + + + break; + case 49 : + // xquery/XQueryLexer.g:1:408: INTERSECT + this.mINTERSECT(); + + + break; + case 50 : + // xquery/XQueryLexer.g:1:418: IS + this.mIS(); + + + break; + case 51 : + // xquery/XQueryLexer.g:1:421: ITEM + this.mITEM(); + + + break; + case 52 : + // xquery/XQueryLexer.g:1:426: LAX + this.mLAX(); + + + break; + case 53 : + // xquery/XQueryLexer.g:1:430: LE + this.mLE(); + + + break; + case 54 : + // xquery/XQueryLexer.g:1:433: LEAST + this.mLEAST(); + + + break; + case 55 : + // xquery/XQueryLexer.g:1:439: LET + this.mLET(); + + + break; + case 56 : + // xquery/XQueryLexer.g:1:443: LT + this.mLT(); + + + break; + case 57 : + // xquery/XQueryLexer.g:1:446: MOD + this.mMOD(); + + + break; + case 58 : + // xquery/XQueryLexer.g:1:450: MODULE + this.mMODULE(); + + + break; + case 59 : + // xquery/XQueryLexer.g:1:457: NAMESPACE + this.mNAMESPACE(); + + + break; + case 60 : + // xquery/XQueryLexer.g:1:467: NE + this.mNE(); + + + break; + case 61 : + // xquery/XQueryLexer.g:1:470: NO_INHERIT + this.mNO_INHERIT(); + + + break; + case 62 : + // xquery/XQueryLexer.g:1:481: NO_PRESERVE + this.mNO_PRESERVE(); + + + break; + case 63 : + // xquery/XQueryLexer.g:1:493: NODE + this.mNODE(); + + + break; + case 64 : + // xquery/XQueryLexer.g:1:498: OF + this.mOF(); + + + break; + case 65 : + // xquery/XQueryLexer.g:1:501: OPTION + this.mOPTION(); + + + break; + case 66 : + // xquery/XQueryLexer.g:1:508: OR + this.mOR(); + + + break; + case 67 : + // xquery/XQueryLexer.g:1:511: ORDER + this.mORDER(); + + + break; + case 68 : + // xquery/XQueryLexer.g:1:517: ORDERED + this.mORDERED(); + + + break; + case 69 : + // xquery/XQueryLexer.g:1:525: ORDERING + this.mORDERING(); + + + break; + case 70 : + // xquery/XQueryLexer.g:1:534: PARENT + this.mPARENT(); + + + break; + case 71 : + // xquery/XQueryLexer.g:1:541: PRECEDING + this.mPRECEDING(); + + + break; + case 72 : + // xquery/XQueryLexer.g:1:551: PRECEDING_SIBLING + this.mPRECEDING_SIBLING(); + + + break; + case 73 : + // xquery/XQueryLexer.g:1:569: PRESERVE + this.mPRESERVE(); + + + break; + case 74 : + // xquery/XQueryLexer.g:1:578: PROCESSING_INSTRUCTION + this.mPROCESSING_INSTRUCTION(); + + + break; + case 75 : + // xquery/XQueryLexer.g:1:601: RETURN + this.mRETURN(); + + + break; + case 76 : + // xquery/XQueryLexer.g:1:608: SATISFIES + this.mSATISFIES(); + + + break; + case 77 : + // xquery/XQueryLexer.g:1:618: SCHEMA + this.mSCHEMA(); + + + break; + case 78 : + // xquery/XQueryLexer.g:1:625: SCHEMA_ATTRIBUTE + this.mSCHEMA_ATTRIBUTE(); + + + break; + case 79 : + // xquery/XQueryLexer.g:1:642: SCHEMA_ELEMENT + this.mSCHEMA_ELEMENT(); + + + break; + case 80 : + // xquery/XQueryLexer.g:1:657: SELF + this.mSELF(); + + + break; + case 81 : + // xquery/XQueryLexer.g:1:662: SOME + this.mSOME(); + + + break; + case 82 : + // xquery/XQueryLexer.g:1:667: STABLE + this.mSTABLE(); + + + break; + case 83 : + // xquery/XQueryLexer.g:1:674: STRICT + this.mSTRICT(); + + + break; + case 84 : + // xquery/XQueryLexer.g:1:681: STRIP + this.mSTRIP(); + + + break; + case 85 : + // xquery/XQueryLexer.g:1:687: TEXT + this.mTEXT(); + + + break; + case 86 : + // xquery/XQueryLexer.g:1:692: THEN + this.mTHEN(); + + + break; + case 87 : + // xquery/XQueryLexer.g:1:697: TO + this.mTO(); + + + break; + case 88 : + // xquery/XQueryLexer.g:1:700: TREAT + this.mTREAT(); + + + break; + case 89 : + // xquery/XQueryLexer.g:1:706: TYPESWITCH + this.mTYPESWITCH(); + + + break; + case 90 : + // xquery/XQueryLexer.g:1:717: UNION + this.mUNION(); + + + break; + case 91 : + // xquery/XQueryLexer.g:1:723: UNORDERED + this.mUNORDERED(); + + + break; + case 92 : + // xquery/XQueryLexer.g:1:733: VALIDATE + this.mVALIDATE(); + + + break; + case 93 : + // xquery/XQueryLexer.g:1:742: VARIABLE + this.mVARIABLE(); + + + break; + case 94 : + // xquery/XQueryLexer.g:1:751: VERSION + this.mVERSION(); + + + break; + case 95 : + // xquery/XQueryLexer.g:1:759: WHERE + this.mWHERE(); + + + break; + case 96 : + // xquery/XQueryLexer.g:1:765: XQUERY + this.mXQUERY(); + + + break; + case 97 : + // xquery/XQueryLexer.g:1:772: ALLOWING + this.mALLOWING(); + + + break; + case 98 : + // xquery/XQueryLexer.g:1:781: CATCH + this.mCATCH(); + + + break; + case 99 : + // xquery/XQueryLexer.g:1:787: CONTEXT + this.mCONTEXT(); + + + break; + case 100 : + // xquery/XQueryLexer.g:1:795: COUNT + this.mCOUNT(); + + + break; + case 101 : + // xquery/XQueryLexer.g:1:801: DECIMAL_FORMAT + this.mDECIMAL_FORMAT(); + + + break; + case 102 : + // xquery/XQueryLexer.g:1:816: DECIMAL_SEPARATOR + this.mDECIMAL_SEPARATOR(); + + + break; + case 103 : + // xquery/XQueryLexer.g:1:834: DIGIT + this.mDIGIT(); + + + break; + case 104 : + // xquery/XQueryLexer.g:1:840: END + this.mEND(); + + + break; + case 105 : + // xquery/XQueryLexer.g:1:844: GROUP + this.mGROUP(); + + + break; + case 106 : + // xquery/XQueryLexer.g:1:850: GROUPING_SEPARATOR + this.mGROUPING_SEPARATOR(); + + + break; + case 107 : + // xquery/XQueryLexer.g:1:869: INFINITY + this.mINFINITY(); + + + break; + case 108 : + // xquery/XQueryLexer.g:1:878: MINUS_SIGN + this.mMINUS_SIGN(); + + + break; + case 109 : + // xquery/XQueryLexer.g:1:889: NAMESPACE_NODE + this.mNAMESPACE_NODE(); + + + break; + case 110 : + // xquery/XQueryLexer.g:1:904: NAN + this.mNAN(); + + + break; + case 111 : + // xquery/XQueryLexer.g:1:908: NEXT + this.mNEXT(); + + + break; + case 112 : + // xquery/XQueryLexer.g:1:913: ONLY + this.mONLY(); + + + break; + case 113 : + // xquery/XQueryLexer.g:1:918: PATTERN_SEPARATOR + this.mPATTERN_SEPARATOR(); + + + break; + case 114 : + // xquery/XQueryLexer.g:1:936: PERCENT + this.mPERCENT(); + + + break; + case 115 : + // xquery/XQueryLexer.g:1:944: PER_MILLE + this.mPER_MILLE(); + + + break; + case 116 : + // xquery/XQueryLexer.g:1:954: PREVIOUS + this.mPREVIOUS(); + + + break; + case 117 : + // xquery/XQueryLexer.g:1:963: SLIDING + this.mSLIDING(); + + + break; + case 118 : + // xquery/XQueryLexer.g:1:971: START + this.mSTART(); + + + break; + case 119 : + // xquery/XQueryLexer.g:1:977: SWITCH + this.mSWITCH(); + + + break; + case 120 : + // xquery/XQueryLexer.g:1:984: TRY + this.mTRY(); + + + break; + case 121 : + // xquery/XQueryLexer.g:1:988: TUMBLING + this.mTUMBLING(); + + + break; + case 122 : + // xquery/XQueryLexer.g:1:997: TYPE + this.mTYPE(); + + + break; + case 123 : + // xquery/XQueryLexer.g:1:1002: WHEN + this.mWHEN(); + + + break; + case 124 : + // xquery/XQueryLexer.g:1:1007: WINDOW + this.mWINDOW(); + + + break; + case 125 : + // xquery/XQueryLexer.g:1:1014: ZERO_DIGIT + this.mZERO_DIGIT(); + + + break; + case 126 : + // xquery/XQueryLexer.g:1:1025: AFTER + this.mAFTER(); + + + break; + case 127 : + // xquery/XQueryLexer.g:1:1031: BEFORE + this.mBEFORE(); + + + break; + case 128 : + // xquery/XQueryLexer.g:1:1038: COPY + this.mCOPY(); + + + break; + case 129 : + // xquery/XQueryLexer.g:1:1043: DELETE + this.mDELETE(); + + + break; + case 130 : + // xquery/XQueryLexer.g:1:1050: FIRST + this.mFIRST(); + + + break; + case 131 : + // xquery/XQueryLexer.g:1:1056: INSERT + this.mINSERT(); + + + break; + case 132 : + // xquery/XQueryLexer.g:1:1063: INTO + this.mINTO(); + + + break; + case 133 : + // xquery/XQueryLexer.g:1:1068: LAST + this.mLAST(); + + + break; + case 134 : + // xquery/XQueryLexer.g:1:1073: MODIFY + this.mMODIFY(); + + + break; + case 135 : + // xquery/XQueryLexer.g:1:1080: NODES + this.mNODES(); + + + break; + case 136 : + // xquery/XQueryLexer.g:1:1086: RENAME + this.mRENAME(); + + + break; + case 137 : + // xquery/XQueryLexer.g:1:1093: REPLACE + this.mREPLACE(); + + + break; + case 138 : + // xquery/XQueryLexer.g:1:1101: REVALIDATION + this.mREVALIDATION(); + + + break; + case 139 : + // xquery/XQueryLexer.g:1:1114: SKIP + this.mSKIP(); + + + break; + case 140 : + // xquery/XQueryLexer.g:1:1119: UPDATING + this.mUPDATING(); + + + break; + case 141 : + // xquery/XQueryLexer.g:1:1128: VALUE + this.mVALUE(); + + + break; + case 142 : + // xquery/XQueryLexer.g:1:1134: WITH + this.mWITH(); + + + break; + case 143 : + // xquery/XQueryLexer.g:1:1139: ALL + this.mALL(); + + + break; + case 144 : + // xquery/XQueryLexer.g:1:1143: ANY + this.mANY(); + + + break; + case 145 : + // xquery/XQueryLexer.g:1:1147: CONTAINS + this.mCONTAINS(); + + + break; + case 146 : + // xquery/XQueryLexer.g:1:1156: CONTENT + this.mCONTENT(); + + + break; + case 147 : + // xquery/XQueryLexer.g:1:1164: DIACRITICS + this.mDIACRITICS(); + + + break; + case 148 : + // xquery/XQueryLexer.g:1:1175: DIFFERENT + this.mDIFFERENT(); + + + break; + case 149 : + // xquery/XQueryLexer.g:1:1185: DISTANCE + this.mDISTANCE(); + + + break; + case 150 : + // xquery/XQueryLexer.g:1:1194: ENTIRE + this.mENTIRE(); + + + break; + case 151 : + // xquery/XQueryLexer.g:1:1201: EXACTLY + this.mEXACTLY(); + + + break; + case 152 : + // xquery/XQueryLexer.g:1:1209: FROM + this.mFROM(); + + + break; + case 153 : + // xquery/XQueryLexer.g:1:1214: FT_OPTION + this.mFT_OPTION(); + + + break; + case 154 : + // xquery/XQueryLexer.g:1:1224: FTAND + this.mFTAND(); + + + break; + case 155 : + // xquery/XQueryLexer.g:1:1230: FTNOT + this.mFTNOT(); + + + break; + case 156 : + // xquery/XQueryLexer.g:1:1236: FTOR + this.mFTOR(); + + + break; + case 157 : + // xquery/XQueryLexer.g:1:1241: INSENSITIVE + this.mINSENSITIVE(); + + + break; + case 158 : + // xquery/XQueryLexer.g:1:1253: LANGUAGE + this.mLANGUAGE(); + + + break; + case 159 : + // xquery/XQueryLexer.g:1:1262: LEVELS + this.mLEVELS(); + + + break; + case 160 : + // xquery/XQueryLexer.g:1:1269: LOWERCASE + this.mLOWERCASE(); + + + break; + case 161 : + // xquery/XQueryLexer.g:1:1279: MOST + this.mMOST(); + + + break; + case 162 : + // xquery/XQueryLexer.g:1:1284: NO + this.mNO(); + + + break; + case 163 : + // xquery/XQueryLexer.g:1:1287: NOT + this.mNOT(); + + + break; + case 164 : + // xquery/XQueryLexer.g:1:1291: OCCURS + this.mOCCURS(); + + + break; + case 165 : + // xquery/XQueryLexer.g:1:1298: PARAGRAPH + this.mPARAGRAPH(); + + + break; + case 166 : + // xquery/XQueryLexer.g:1:1308: PARAGRAPHS + this.mPARAGRAPHS(); + + + break; + case 167 : + // xquery/XQueryLexer.g:1:1319: PHRASE + this.mPHRASE(); + + + break; + case 168 : + // xquery/XQueryLexer.g:1:1326: RELATIONSHIP + this.mRELATIONSHIP(); + + + break; + case 169 : + // xquery/XQueryLexer.g:1:1339: SAME + this.mSAME(); + + + break; + case 170 : + // xquery/XQueryLexer.g:1:1344: SCORE + this.mSCORE(); + + + break; + case 171 : + // xquery/XQueryLexer.g:1:1350: SENSITIVE + this.mSENSITIVE(); + + + break; + case 172 : + // xquery/XQueryLexer.g:1:1360: SENTENCE + this.mSENTENCE(); + + + break; + case 173 : + // xquery/XQueryLexer.g:1:1369: SENTENCES + this.mSENTENCES(); + + + break; + case 174 : + // xquery/XQueryLexer.g:1:1379: STEMMING + this.mSTEMMING(); + + + break; + case 175 : + // xquery/XQueryLexer.g:1:1388: STOP + this.mSTOP(); + + + break; + case 176 : + // xquery/XQueryLexer.g:1:1393: THESAURUS + this.mTHESAURUS(); + + + break; + case 177 : + // xquery/XQueryLexer.g:1:1403: TIMES + this.mTIMES(); + + + break; + case 178 : + // xquery/XQueryLexer.g:1:1409: UPPERCASE + this.mUPPERCASE(); + + + break; + case 179 : + // xquery/XQueryLexer.g:1:1419: USING + this.mUSING(); + + + break; + case 180 : + // xquery/XQueryLexer.g:1:1425: WEIGHT + this.mWEIGHT(); + + + break; + case 181 : + // xquery/XQueryLexer.g:1:1432: WILDCARDS + this.mWILDCARDS(); + + + break; + case 182 : + // xquery/XQueryLexer.g:1:1442: WITHOUT + this.mWITHOUT(); + + + break; + case 183 : + // xquery/XQueryLexer.g:1:1450: WORD + this.mWORD(); + + + break; + case 184 : + // xquery/XQueryLexer.g:1:1455: WORDS + this.mWORDS(); + + + break; + case 185 : + // xquery/XQueryLexer.g:1:1461: BREAK + this.mBREAK(); + + + break; + case 186 : + // xquery/XQueryLexer.g:1:1467: CONTINUE + this.mCONTINUE(); + + + break; + case 187 : + // xquery/XQueryLexer.g:1:1476: EXIT + this.mEXIT(); + + + break; + case 188 : + // xquery/XQueryLexer.g:1:1481: LOOP + this.mLOOP(); + + + break; + case 189 : + // xquery/XQueryLexer.g:1:1486: RETURNING + this.mRETURNING(); + + + break; + case 190 : + // xquery/XQueryLexer.g:1:1496: WHILE + this.mWHILE(); + + + break; + case 191 : + // xquery/XQueryLexer.g:1:1502: CHECK + this.mCHECK(); + + + break; + case 192 : + // xquery/XQueryLexer.g:1:1508: COLLECTION + this.mCOLLECTION(); + + + break; + case 193 : + // xquery/XQueryLexer.g:1:1519: CONSTRAINT + this.mCONSTRAINT(); + + + break; + case 194 : + // xquery/XQueryLexer.g:1:1530: FOREACH + this.mFOREACH(); + + + break; + case 195 : + // xquery/XQueryLexer.g:1:1538: FOREIGN + this.mFOREIGN(); + + + break; + case 196 : + // xquery/XQueryLexer.g:1:1546: INDEX + this.mINDEX(); + + + break; + case 197 : + // xquery/XQueryLexer.g:1:1552: INTEGRITY + this.mINTEGRITY(); + + + break; + case 198 : + // xquery/XQueryLexer.g:1:1562: KEY + this.mKEY(); + + + break; + case 199 : + // xquery/XQueryLexer.g:1:1566: ON + this.mON(); + + + break; + case 200 : + // xquery/XQueryLexer.g:1:1569: UNIQUE + this.mUNIQUE(); + + + break; + case 201 : + // xquery/XQueryLexer.g:1:1576: BINARY + this.mBINARY(); + + + break; + case 202 : + // xquery/XQueryLexer.g:1:1583: AMP_ER + this.mAMP_ER(); + + + break; + case 203 : + // xquery/XQueryLexer.g:1:1590: APOS_ER + this.mAPOS_ER(); + + + break; + case 204 : + // xquery/XQueryLexer.g:1:1598: QUOT_ER + this.mQUOT_ER(); + + + break; + case 205 : + // xquery/XQueryLexer.g:1:1606: CONCAT + this.mCONCAT(); + + + break; + case 206 : + // xquery/XQueryLexer.g:1:1613: LPAREN + this.mLPAREN(); + + + break; + case 207 : + // xquery/XQueryLexer.g:1:1620: RPAREN + this.mRPAREN(); + + + break; + case 208 : + // xquery/XQueryLexer.g:1:1627: DOLLAR + this.mDOLLAR(); + + + break; + case 209 : + // xquery/XQueryLexer.g:1:1634: LBRACKET + this.mLBRACKET(); + + + break; + case 210 : + // xquery/XQueryLexer.g:1:1643: RBRACKET + this.mRBRACKET(); + + + break; + case 211 : + // xquery/XQueryLexer.g:1:1652: LSQUARE + this.mLSQUARE(); + + + break; + case 212 : + // xquery/XQueryLexer.g:1:1660: RSQUARE + this.mRSQUARE(); + + + break; + case 213 : + // xquery/XQueryLexer.g:1:1668: EQUAL + this.mEQUAL(); + + + break; + case 214 : + // xquery/XQueryLexer.g:1:1674: BIND + this.mBIND(); + + + break; + case 215 : + // xquery/XQueryLexer.g:1:1679: NOTEQUAL + this.mNOTEQUAL(); + + + break; + case 216 : + // xquery/XQueryLexer.g:1:1688: ANN_PERCENT + this.mANN_PERCENT(); + + + break; + case 217 : + // xquery/XQueryLexer.g:1:1700: HASH + this.mHASH(); + + + break; + case 218 : + // xquery/XQueryLexer.g:1:1705: AMP + this.mAMP(); + + + break; + case 219 : + // xquery/XQueryLexer.g:1:1709: COMMA + this.mCOMMA(); + + + break; + case 220 : + // xquery/XQueryLexer.g:1:1715: QUESTION + this.mQUESTION(); + + + break; + case 221 : + // xquery/XQueryLexer.g:1:1724: STAR + this.mSTAR(); + + + break; + case 222 : + // xquery/XQueryLexer.g:1:1729: PLUS + this.mPLUS(); + + + break; + case 223 : + // xquery/XQueryLexer.g:1:1734: MINUS + this.mMINUS(); + + + break; + case 224 : + // xquery/XQueryLexer.g:1:1740: SMALLER + this.mSMALLER(); + + + break; + case 225 : + // xquery/XQueryLexer.g:1:1748: GREATER + this.mGREATER(); + + + break; + case 226 : + // xquery/XQueryLexer.g:1:1756: SMALLEREQ + this.mSMALLEREQ(); + + + break; + case 227 : + // xquery/XQueryLexer.g:1:1766: GREATEREQ + this.mGREATEREQ(); + + + break; + case 228 : + // xquery/XQueryLexer.g:1:1776: SMALLER_SMALLER + this.mSMALLER_SMALLER(); + + + break; + case 229 : + // xquery/XQueryLexer.g:1:1792: GREATER_GREATER + this.mGREATER_GREATER(); + + + break; + case 230 : + // xquery/XQueryLexer.g:1:1808: SLASH + this.mSLASH(); + + + break; + case 231 : + // xquery/XQueryLexer.g:1:1814: SLASH_SLASH + this.mSLASH_SLASH(); + + + break; + case 232 : + // xquery/XQueryLexer.g:1:1826: DOT + this.mDOT(); + + + break; + case 233 : + // xquery/XQueryLexer.g:1:1830: DOT_DOT + this.mDOT_DOT(); + + + break; + case 234 : + // xquery/XQueryLexer.g:1:1838: COLON + this.mCOLON(); + + + break; + case 235 : + // xquery/XQueryLexer.g:1:1844: COLON_COLON + this.mCOLON_COLON(); + + + break; + case 236 : + // xquery/XQueryLexer.g:1:1856: EMPTY_CLOSE_TAG + this.mEMPTY_CLOSE_TAG(); + + + break; + case 237 : + // xquery/XQueryLexer.g:1:1872: CLOSE_TAG + this.mCLOSE_TAG(); + + + break; + case 238 : + // xquery/XQueryLexer.g:1:1882: SEMICOLON + this.mSEMICOLON(); + + + break; + case 239 : + // xquery/XQueryLexer.g:1:1892: VBAR + this.mVBAR(); + + + break; + case 240 : + // xquery/XQueryLexer.g:1:1897: PRAGMA_START + this.mPRAGMA_START(); + + + break; + case 241 : + // xquery/XQueryLexer.g:1:1910: PRAGMA_END + this.mPRAGMA_END(); + + + break; + case 242 : + // xquery/XQueryLexer.g:1:1921: XML_COMMENT_START + this.mXML_COMMENT_START(); + + + break; + case 243 : + // xquery/XQueryLexer.g:1:1939: XML_COMMENT_END + this.mXML_COMMENT_END(); + + + break; + case 244 : + // xquery/XQueryLexer.g:1:1955: PI_START + this.mPI_START(); + + + break; + case 245 : + // xquery/XQueryLexer.g:1:1964: PI_END + this.mPI_END(); + + + break; + case 246 : + // xquery/XQueryLexer.g:1:1971: ATTR_SIGN + this.mATTR_SIGN(); + + + break; + case 247 : + // xquery/XQueryLexer.g:1:1981: CHARREF_DEC + this.mCHARREF_DEC(); + + + break; + case 248 : + // xquery/XQueryLexer.g:1:1993: CHARREF_HEX + this.mCHARREF_HEX(); + + + break; + case 249 : + // xquery/XQueryLexer.g:1:2005: APOS + this.mAPOS(); + + + break; + case 250 : + // xquery/XQueryLexer.g:1:2010: QUOT + this.mQUOT(); + + + break; + case 251 : + // xquery/XQueryLexer.g:1:2015: L_NCName + this.mL_NCName(); + + + break; + case 252 : + // xquery/XQueryLexer.g:1:2024: S + this.mS(); + + + break; + case 253 : + // xquery/XQueryLexer.g:1:2026: L_Pragma + this.mL_Pragma(); + + + break; + case 254 : + // xquery/XQueryLexer.g:1:2035: L_DirCommentConstructor + this.mL_DirCommentConstructor(); + + + break; + case 255 : + // xquery/XQueryLexer.g:1:2059: L_DirPIConstructor + this.mL_DirPIConstructor(); + + + break; + case 256 : + // xquery/XQueryLexer.g:1:2078: L_IntegerLiteral + this.mL_IntegerLiteral(); + + + break; + case 257 : + // xquery/XQueryLexer.g:1:2095: L_DecimalLiteral + this.mL_DecimalLiteral(); + + + break; + case 258 : + // xquery/XQueryLexer.g:1:2112: L_DoubleLiteral + this.mL_DoubleLiteral(); + + + break; + case 259 : + // xquery/XQueryLexer.g:1:2128: L_Comment + this.mL_Comment(); + + + break; + case 260 : + // xquery/XQueryLexer.g:1:2138: L_AnyChar + this.mL_AnyChar(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XQueryLexer, { + DFA19_eotS: + "\u0001\uffff\u0018\u003f\u0001\u0091\u0001\u0094\u0007\uffff\u0001"+ + "\u009e\u0001\u0037\u0001\uffff\u0001\u00a2\u0001\u00a4\u0001\uffff\u0001"+ + "\u00a7\u0002\uffff\u0001\u00ab\u0001\u00b1\u0001\u00b4\u0001\u00b7\u0001"+ + "\u00b9\u0006\uffff\u0001\u00c0\u0001\uffff\u0001\u003f\u0001\u00c8\u0001"+ + "\u00ca\u0004\u003f\u0001\uffff\u0002\u003f\u0001\u00d1\u000c\u003f\u0001"+ + "\u00ee\u0007\u003f\u0001\u00fd\u0001\u003f\u0001\u0100\u0001\u003f\u0001"+ + "\u0102\u0001\u003f\u0001\u0109\u0001\u010a\u0002\u003f\u0001\u0112\u0001"+ + "\u0113\u0004\u003f\u0001\u011b\u0001\u011f\u0001\u0120\u0001\u003f\u0001"+ + "\u0123\u0001\u0125\u0010\u003f\u0001\u0142\u0012\u003f\u0002\uffff\u0001"+ + "\u015c\u0010\uffff\u0001\u015f\u000c\uffff\u0001\u0161\u0009\uffff\u0001"+ + "\u0163\u0006\uffff\u0001\u00c0\u0001\u0163\u0001\uffff\u0001\u003f\u0001"+ + "\u0166\u0001\u0167\u0001\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u016b\u0001\u003f\u0001\u016d\u0003\u003f\u0001\uffff\u0010\u003f\u0001"+ + "\u0184\u0009\u003f\u0001\u018e\u0001\u003f\u0001\uffff\u0006\u003f\u0001"+ + "\u0197\u0007\u003f\u0001\uffff\u0002\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0006\u003f\u0002\uffff\u0001\u003f\u0001\u01ab\u0003\u003f\u0001"+ + "\u01af\u0001\u003f\u0002\uffff\u0002\u003f\u0001\u01b5\u0004\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\u01bd\u0002\uffff\u0002\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u001c\u003f\u0001\uffff\u0001\u003f\u0001\u01e5\u0013"+ + "\u003f\u0001\u01fc\u0001\u003f\u0001\u01fe\u0001\u003f\u0008\uffff\u0001"+ + "\u0163\u0001\u003f\u0002\uffff\u0003\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0001\u0206\u0005\u003f\u0001\u020c\u0001\u020e\u0007\u003f\u0001"+ + "\u021a\u0006\u003f\u0001\uffff\u0006\u003f\u0001\u0227\u0002\u003f\u0001"+ + "\uffff\u0005\u003f\u0001\u022f\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\u0235\u0003\u003f\u0001\u0239\u0002\u003f\u0001\u023c\u0005\u003f\u0001"+ + "\u0244\u0002\u003f\u0001\u0247\u0001\uffff\u0001\u0248\u0002\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\u024d\u0002\u003f\u0001\uffff\u0001\u0250\u0002"+ + "\u003f\u0001\u0253\u0002\u003f\u0001\u0257\u0001\uffff\u0002\u003f\u0001"+ + "\u025a\u0011\u003f\u0001\u026c\u0002\u003f\u0001\u026f\u0002\u003f\u0001"+ + "\u0272\u0004\u003f\u0001\u0278\u0002\u003f\u0001\u027b\u0001\u027c\u0001"+ + "\u027d\u0002\u003f\u0001\uffff\u0001\u0281\u000d\u003f\u0001\u028f\u0002"+ + "\u003f\u0001\u0293\u0002\u003f\u0001\u0297\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0001\u029a\u0001\u029b\u0004\u003f\u0001\u02a1\u0001"+ + "\uffff\u0003\u003f\u0001\u02a5\u0001\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0001\u02a8\u0001\u02a9\u0001\u02aa\u0008\u003f\u0001\uffff\u0001"+ + "\u02b4\u0005\u003f\u0001\u02ba\u0005\u003f\u0001\uffff\u0001\u02c1\u0002"+ + "\u003f\u0001\u02c4\u0003\u003f\u0001\uffff\u0004\u003f\u0001\u02cc\u0001"+ + "\uffff\u0001\u003f\u0001\u02ce\u0001\u02cf\u0001\uffff\u0001\u003f\u0001"+ + "\u02d2\u0001\uffff\u0007\u003f\u0001\uffff\u0001\u003f\u0001\u02db\u0002"+ + "\uffff\u0001\u003f\u0001\u02dd\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0001\u02e6\u0001\uffff\u0001"+ + "\u003f\u0001\u02ea\u0001\uffff\u0011\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\u02fd\u0001\uffff\u0002\u003f\u0001\uffff\u0001\u003f\u0001\u0301\u0001"+ + "\u003f\u0001\u0303\u0001\u003f\u0001\uffff\u0002\u003f\u0003\uffff\u0001"+ + "\u003f\u0001\u0308\u0001\u003f\u0001\uffff\u0001\u003f\u0001\u030b\u0001"+ + "\u030c\u0004\u003f\u0001\u0311\u0001\u003f\u0001\u0313\u0002\u003f\u0001"+ + "\u0316\u0001\uffff\u0001\u0317\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\u031c\u0001\uffff\u0002\u003f\u0003\uffff\u0004\u003f\u0001\uffff\u0002"+ + "\u003f\u0001\u0325\u0001\uffff\u0001\u0326\u0001\u003f\u0003\uffff\u0009"+ + "\u003f\u0001\uffff\u0004\u003f\u0001\u0336\u0001\uffff\u0006\u003f\u0001"+ + "\uffff\u0001\u003f\u0001\u033e\u0001\uffff\u0001\u033f\u0006\u003f\u0001"+ + "\uffff\u0001\u003f\u0002\uffff\u0002\u003f\u0001\uffff\u0001\u0349\u0002"+ + "\u003f\u0001\u034c\u0004\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u0352\u0001\u003f\u0001\u0354\u0001\u0355\u0004\u003f\u0001\uffff\u0001"+ + "\u035a\u0002\u003f\u0001\uffff\u0001\u035d\u0001\u035e\u0008\u003f\u0001"+ + "\u0367\u0001\u0369\u0001\u036a\u0004\u003f\u0001\u0370\u0001\uffff\u0002"+ + "\u003f\u0001\u0373\u0001\uffff\u0001\u0374\u0001\uffff\u0002\u003f\u0001"+ + "\u0377\u0001\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001\u037b\u0003"+ + "\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001"+ + "\u0382\u0002\u003f\u0001\u0385\u0001\uffff\u0001\u0386\u0007\u003f\u0002"+ + "\uffff\u0003\u003f\u0001\u0391\u0002\u003f\u0001\u0394\u0001\u0395\u0003"+ + "\u003f\u0001\u0399\u0001\u003f\u0001\u039b\u0001\u003f\u0001\uffff\u0004"+ + "\u003f\u0001\u03a2\u0002\u003f\u0002\uffff\u0001\u003f\u0001\u03a6\u0001"+ + "\u003f\u0001\u03a8\u0001\u03a9\u0004\u003f\u0001\uffff\u0001\u03ae\u0001"+ + "\u003f\u0001\uffff\u0005\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0004"+ + "\u003f\u0001\uffff\u0001\u03ba\u0001\u003f\u0002\uffff\u0006\u003f\u0001"+ + "\u03c2\u0001\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0001\u03c5\u0004"+ + "\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001\u003f\u0001\u03ce\u0001"+ + "\uffff\u0003\u003f\u0001\uffff\u0005\u003f\u0001\u03d7\u0001\uffff\u0001"+ + "\u03d8\u0001\u003f\u0002\uffff\u0001\u003f\u0001\u03dc\u0002\u003f\u0001"+ + "\u03df\u0001\u03e0\u0001\u003f\u0001\u03e2\u0002\u003f\u0001\uffff\u0002"+ + "\u003f\u0002\uffff\u0001\u03e7\u0001\u03e8\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0004\u003f\u0001\u03f0\u0001\u03f2\u0001\uffff\u0001"+ + "\u003f\u0001\u03f4\u0001\u03f5\u0001\uffff\u0001\u003f\u0002\uffff\u0001"+ + "\u03f7\u0001\u003f\u0001\u03f9\u0001\u003f\u0001\uffff\u0001\u03fb\u0003"+ + "\u003f\u0001\u03ff\u0001\u0400\u0005\u003f\u0001\uffff\u0001\u0406\u0003"+ + "\u003f\u0001\u040a\u0001\u040b\u0001\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0006\u003f\u0001\u0416\u0001\u0417\u0001\uffff\u0002\u003f\u0001"+ + "\u041a\u0001\u003f\u0001\u041c\u0001\u003f\u0001\u041e\u0001\u041f\u0002"+ + "\uffff\u0003\u003f\u0001\uffff\u0001\u0423\u0001\u0424\u0002\uffff\u0001"+ + "\u003f\u0001\uffff\u0001\u0426\u0003\u003f\u0002\uffff\u0006\u003f\u0001"+ + "\u0430\u0001\uffff\u0001\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0001"+ + "\u0434\u0001\uffff\u0001\u0435\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\u0438\u0001\u0439\u0002\uffff\u0001\u043a\u0001\u003f\u0001"+ + "\u043d\u0002\u003f\u0001\uffff\u0001\u0441\u0001\u003f\u0001\u0444\u0002"+ + "\uffff\u0001\u003f\u0001\u0446\u0001\u0447\u0002\u003f\u0001\u044a\u0002"+ + "\u003f\u0001\u044d\u0001\u044e\u0002\uffff\u0001\u044f\u0001\u003f\u0001"+ + "\uffff\u0001\u0451\u0001\uffff\u0001\u0452\u0002\uffff\u0001\u0453\u0002"+ + "\u003f\u0002\uffff\u0001\u003f\u0001\uffff\u0001\u0457\u0001\u003f\u0001"+ + "\u0459\u0003\u003f\u0001\u045e\u0001\u045f\u0001\u0460\u0001\uffff\u0003"+ + "\u003f\u0002\uffff\u0002\u003f\u0003\uffff\u0001\u0466\u0001\u003f\u0001"+ + "\uffff\u0001\u0468\u0001\u003f\u0001\u046a\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0001\u003f\u0002\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0003"+ + "\uffff\u0001\u0472\u0003\uffff\u0001\u0473\u0002\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0004\u003f\u0003\uffff\u0004\u003f\u0001\u047f\u0001"+ + "\uffff\u0001\u003f\u0001\uffff\u0001\u0481\u0001\uffff\u0007\u003f\u0002"+ + "\uffff\u0002\u003f\u0001\u048b\u0008\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0003\u003f\u0001\u0498\u0001\u0499\u0004\u003f\u0001\uffff\u0004"+ + "\u003f\u0001\u04a2\u0007\u003f\u0002\uffff\u0003\u003f\u0001\u04ad\u0001"+ + "\u003f\u0001\u04af\u0002\u003f\u0001\uffff\u0001\u04b2\u0002\u003f\u0001"+ + "\u04b5\u0004\u003f\u0001\u04ba\u0001\u003f\u0001\uffff\u0001\u04bc\u0001"+ + "\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0001\uffff\u0004\u003f\u0001"+ + "\uffff\u0001\u04c5\u0001\uffff\u0007\u003f\u0001\u04cd\u0001\uffff\u0001"+ + "\u04ce\u0001\u003f\u0001\u04d0\u0001\u003f\u0001\u04d2\u0001\u04d3\u0001"+ + "\u003f\u0002\uffff\u0001\u04d5\u0001\uffff\u0001\u04d6\u0002\uffff\u0001"+ + "\u003f\u0002\uffff\u0003\u003f\u0001\u04db\u0001\uffff", + DFA19_eofS: + "\u04dc\uffff", + DFA19_minS: + "\u0001\u0000\u0001\u0066\u0002\u0061\u0001\u0065\u0001\u006c\u0001"+ + "\u0069\u0001\u0065\u0001\u0064\u0001\u0061\u0001\u0069\u0001\u0061\u0001"+ + "\u0063\u0001\u0061\u0001\u0065\u0001\u0061\u0001\u0065\u0001\u006e\u0001"+ + "\u0061\u0001\u0065\u0001\u0071\u0001\u0061\u0002\u0065\u0001\u0075\u0001"+ + "\u007c\u0001\u0023\u0007\uffff\u0001\u003a\u0001\u003d\u0001\uffff\u0001"+ + "\u0029\u0001\u0023\u0001\uffff\u0001\u003e\u0002\uffff\u0001\u002d\u0001"+ + "\u0021\u0001\u003d\u0001\u002f\u0001\u002e\u0006\uffff\u0001\u002e\u0001"+ + "\uffff\u0001\u0063\u0002\u002d\u0001\u006c\u0001\u0074\u0001\u0070\u0001"+ + "\u006f\u0001\uffff\u0001\u0073\u0001\u0075\u0001\u002d\u0001\u0066\u0001"+ + "\u0065\u0001\u006e\u0001\u0073\u0001\u0065\u0001\u006c\u0001\u0063\u0001"+ + "\u0061\u0001\u0063\u0001\u0065\u0001\u0070\u0001\u0063\u0001\u002d\u0001"+ + "\u0065\u0001\u0061\u0001\u006c\u0001\u006e\u0001\u0072\u0001\u006f\u0002"+ + "\u002d\u0001\u0065\u0001\u002d\u0001\u0069\u0001\u002d\u0001\u0070\u0002"+ + "\u002d\u0001\u0065\u0001\u006e\u0002\u002d\u0001\u006f\u0001\u0064\u0001"+ + "\u006e\u0001\u006d\u0003\u002d\u0001\u0074\u0002\u002d\u0001\u0063\u0001"+ + "\u0072\u0001\u0065\u0002\u0072\u0001\u006c\u0001\u006d\u0001\u0068\u0001"+ + "\u006c\u0001\u006d\u0001\u0061\u0003\u0069\u0001\u0078\u0001\u0065\u0001"+ + "\u002d\u0001\u0065\u0001\u0070\u0002\u006d\u0001\u0069\u0001\u0064\u0001"+ + "\u0069\u0001\u006c\u0001\u0072\u0001\u0065\u0001\u006c\u0001\u0069\u0001"+ + "\u0072\u0001\u0075\u0001\u004e\u0001\u0072\u0001\u0079\u0001\u006f\u0002"+ + "\uffff\u0001\u0009\u0010\uffff\u0001\u0078\u000b\uffff\u0001\u002d\u0001"+ + "\u0009\u0009\uffff\u0001\u0030\u0006\uffff\u0001\u002e\u0001\u0030\u0001"+ + "\uffff\u0001\u0065\u0002\u002d\u0001\u0065\u0001\uffff\u0001\u0072\u0001"+ + "\uffff\u0001\u002d\u0001\u0065\u0001\u002d\u0001\u0073\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u006f\u0002\u0061\u0001\u0065\u0001\u0063\u0001"+ + "\u006c\u0001\u0063\u0001\u006c\u0001\u006d\u0001\u0073\u0001\u0079\u0001"+ + "\u006e\u0001\u0069\u0001\u0061\u0001\u0063\u0001\u0065\u0001\u002d\u0001"+ + "\u0069\u0001\u0063\u0001\u0066\u0001\u0074\u0001\u0075\u0001\u006d\u0001"+ + "\u0065\u0001\u0074\u0001\u006f\u0001\u002d\u0001\u0069\u0001\uffff\u0001"+ + "\u0072\u0002\u0065\u0001\u0063\u0001\u0074\u0001\u006c\u0001\u002d\u0001"+ + "\u0063\u0001\u0073\u0001\u006d\u0001\u006f\u0001\u006e\u0001\u006f\u0001"+ + "\u0072\u0001\uffff\u0001\u0061\u0001\u0075\u0001\uffff\u0001\u0076\u0001"+ + "\uffff\u0001\u006f\u0003\u0065\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u006d\u0001\u002d\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u002d\u0001"+ + "\u0065\u0002\uffff\u0001\u0065\u0001\u0070\u0001\u002d\u0001\u0074\u0001"+ + "\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001\u0069\u0001\u0065\u0001"+ + "\u002d\u0002\uffff\u0001\u0069\u0001\u0065\u0001\uffff\u0001\u0079\u0001"+ + "\uffff\u0001\u0075\u0001\u0061\u0001\u0074\u0002\u0063\u0001\u002d\u0001"+ + "\u0061\u0001\u0075\u0001\u0061\u0001\u006c\u0002\u0061\u0001\u0069\u0002"+ + "\u0065\u0001\u0072\u0001\u0066\u0001\u0073\u0001\u0065\u0001\u0062\u0001"+ + "\u0069\u0001\u006d\u0001\u0070\u0001\u0064\u0001\u0074\u0001\u0070\u0001"+ + "\u0074\u0001\u006e\u0001\uffff\u0001\u0061\u0001\u002d\u0001\u0065\u0001"+ + "\u0062\u0001\u0065\u0001\u006f\u0001\u0072\u0001\u0061\u0001\u0065\u0001"+ + "\u006e\u0002\u0069\u0001\u0073\u0001\u006e\u0001\u006c\u0001\u0064\u0001"+ + "\u0068\u0001\u0064\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u002d\u0001"+ + "\u006f\u0001\u002d\u0001\u0074\u0004\uffff\u0001\u002d\u0003\uffff\u0001"+ + "\u0030\u0001\u0073\u0002\uffff\u0001\u006e\u0001\u0069\u0001\u0077\u0001"+ + "\uffff\u0001\u0072\u0001\uffff\u0002\u002d\u0001\u0064\u0001\u0072\u0001"+ + "\u006b\u0001\u0072\u0002\u002d\u0001\u0068\u0001\u0064\u0001\u006b\u0001"+ + "\u0061\u0001\u0065\u0001\u0074\u0001\u0061\u0001\u002d\u0001\u0074\u0001"+ + "\u0061\u0001\u006d\u0001\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001"+ + "\u0074\u0001\u0072\u0001\u0065\u0001\u0061\u0001\u006d\u0001\u0065\u0001"+ + "\u002d\u0001\u0079\u0001\u0064\u0001\uffff\u0001\u0072\u0001\u0079\u0001"+ + "\u0070\u0001\u0072\u0001\u0074\u0001\u002d\u0001\u006f\u0001\u0061\u0001"+ + "\uffff\u0002\u0074\u0001\u002d\u0001\u0070\u0001\u0064\u0001\u0074\u0001"+ + "\u002d\u0001\u0074\u0001\u0070\u0001\u002d\u0002\u0072\u0001\u0061\u0001"+ + "\u006e\u0001\u0067\u0001\u002d\u0001\u006e\u0001\u0078\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\u0075\u0001\u0074\u0001\uffff\u0001\u006c\u0001"+ + "\u0072\u0001\u002d\u0001\u006c\u0001\u0066\u0001\uffff\u0001\u002d\u0002"+ + "\u0073\u0001\u002d\u0001\u006e\u0001\u0072\u0001\u002d\u0001\uffff\u0001"+ + "\u006f\u0001\u0072\u0001\u002d\u0001\u0072\u0001\u006e\u0001\u0067\u0003"+ + "\u0065\u0001\u0069\u0002\u0065\u0001\u006d\u0001\u0073\u0001\u0072\u0001"+ + "\u006d\u0001\u0061\u0001\u006c\u0001\u0074\u0001\u0073\u0001\u002d\u0001"+ + "\u006d\u0001\u0065\u0001\u002d\u0001\u0069\u0001\u0065\u0001\u002d\u0001"+ + "\u006c\u0001\u0074\u0001\u0063\u0001\u006d\u0001\u002d\u0001\u0069\u0001"+ + "\u0063\u0003\u002d\u0001\u0061\u0001\u0074\u0001\uffff\u0001\u002d\u0001"+ + "\u006c\u0001\u0073\u0001\u006e\u0001\u0075\u0001\u0064\u0001\u0074\u0001"+ + "\u0072\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u0061\u0001\u0069\u0001"+ + "\u0065\u0001\u002d\u0001\u0065\u0001\u006f\u0001\u002d\u0001\u0063\u0001"+ + "\u0068\u0001\u002d\u0001\u0072\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u002d\u0001\u0000\u0001\u0074\u0001\u0064\u0001\u0062\u0001\u0069\u0001"+ + "\u002d\u0001\uffff\u0001\u0075\u0001\u0061\u0001\u0065\u0001\u002d\u0001"+ + "\u0079\u0001\uffff\u0001\u0062\u0001\uffff\u0003\u002d\u0001\u0074\u0001"+ + "\u0063\u0001\u006e\u0001\u0072\u0001\u006e\u0001\u0069\u0002\u006e\u0001"+ + "\uffff\u0001\u002d\u0001\u0072\u0001\u0061\u0001\u006c\u0001\u006e\u0001"+ + "\u0065\u0001\u002d\u0001\u0069\u0001\u0072\u0001\u006e\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u002d\u0001\u0069\u0001\u0065\u0001\u002d\u0001"+ + "\u0074\u0001\u006e\u0001\u006c\u0001\uffff\u0001\u0077\u0001\u0063\u0001"+ + "\u0067\u0001\u0069\u0001\u002d\u0001\uffff\u0001\u0074\u0002\u002d\u0001"+ + "\uffff\u0001\u0065\u0001\u002d\u0001\uffff\u0001\u0074\u0001\u0069\u0001"+ + "\u006e\u0001\u0074\u0002\u0073\u0001\u0072\u0001\uffff\u0001\u0069\u0001"+ + "\u002d\u0002\uffff\u0001\u0061\u0001\u002d\u0001\u0073\u0001\u0063\u0001"+ + "\uffff\u0001\u0065\u0001\u0079\u0001\uffff\u0001\u002d\u0001\u0070\u0001"+ + "\uffff\u0001\u0068\u0001\u0065\u0001\u002d\u0001\uffff\u0001\u006e\u0001"+ + "\u002d\u0001\uffff\u0001\u0073\u0001\u0074\u0002\u0072\u0001\u0064\u0001"+ + "\u0072\u0001\u006f\u0001\u0073\u0001\u006e\u0001\u0069\u0001\u0065\u0001"+ + "\u006e\u0001\u0065\u0001\u0063\u0002\u0069\u0001\u0066\u0001\uffff\u0001"+ + "\u0061\u0001\u002d\u0001\uffff\u0001\u0074\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u002d\u0001\u0074\u0001\u002d\u0001\u0069\u0001\uffff\u0001"+ + "\u006e\u0001\u0068\u0003\uffff\u0001\u0075\u0001\u002d\u0001\u0077\u0001"+ + "\uffff\u0001\u0069\u0002\u002d\u0002\u0065\u0001\u0069\u0001\u0063\u0001"+ + "\u002d\u0001\u0061\u0001\u002d\u0001\u0062\u0001\u006f\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\u0077\u0001\u0075\u0001\uffff\u0001\u0061\u0001"+ + "\u0074\u0001\u002d\u0001\uffff\u0001\u0079\u0001\u0064\u0003\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\u0075\u0001\u006e\u0001\uffff\u0002\u0072\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0001\u006c\u0003\uffff\u0001\u0069\u0002"+ + "\u0074\u0001\u0061\u0002\u0074\u0001\u006e\u0001\u0075\u0001\u0061\u0001"+ + "\uffff\u0001\u0065\u0001\u006c\u0001\u0074\u0001\u0064\u0001\u002d\u0001"+ + "\uffff\u0001\u0074\u0001\u0065\u0001\u0063\u0001\u006e\u0001\u0074\u0001"+ + "\u0073\u0001\uffff\u0001\u006e\u0001\u002d\u0001\uffff\u0001\u002d\u0001"+ + "\u0061\u0001\u0079\u0001\u0069\u0001\u0068\u0001\u006e\u0001\u006f\u0001"+ + "\uffff\u0001\u0069\u0002\uffff\u0001\u0073\u0001\u006e\u0001\uffff\u0001"+ + "\u002d\u0001\u0074\u0001\u0063\u0001\u002d\u0001\u0069\u0001\u0065\u0001"+ + "\u0069\u0001\u0074\u0001\uffff\u0001\u0067\u0001\uffff\u0001\u002d\u0001"+ + "\u0061\u0002\u002d\u0001\u0073\u0001\u0061\u0001\u0065\u0001\u0073\u0001"+ + "\uffff\u0001\u002d\u0001\u0064\u0001\u006e\u0001\uffff\u0002\u002d\u0001"+ + "\u0061\u0001\u006e\u0001\u0069\u0001\u0076\u0001\u0075\u0001\u0073\u0001"+ + "\u0074\u0001\u006c\u0003\u002d\u0001\u0065\u0001\u0064\u0001\u006f\u0001"+ + "\u0069\u0001\u002d\u0001\uffff\u0001\u0069\u0001\u0063\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\uffff\u0001\u006e\u0001\u0067\u0001\u002d\u0001"+ + "\u0072\u0001\uffff\u0001\u0069\u0001\u006e\u0002\uffff\u0001\u002d\u0001"+ + "\u0072\u0001\u006e\u0001\u0061\u0001\uffff\u0001\u0074\u0001\uffff\u0001"+ + "\u006c\u0001\u006e\u0002\uffff\u0001\u002d\u0001\u0074\u0001\u0072\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0001\u0069\u0001\u0072\u0001\u006e\u0001"+ + "\u0074\u0001\u0067\u0001\u0069\u0001\u0079\u0002\uffff\u0001\u0065\u0001"+ + "\u006f\u0001\u0069\u0001\u002d\u0001\u0063\u0001\u0069\u0002\u002d\u0001"+ + "\u0073\u0001\u0065\u0001\u006d\u0003\u002d\u0001\u0061\u0001\uffff\u0001"+ + "\u0069\u0001\u006e\u0001\u0065\u0001\u0074\u0001\u002d\u0001\u0065\u0001"+ + "\u0067\u0002\uffff\u0001\u006c\u0001\u002d\u0001\u006e\u0002\u002d\u0001"+ + "\u006e\u0001\u006f\u0001\u0074\u0001\u0067\u0001\uffff\u0001\u002d\u0001"+ + "\u0065\u0001\uffff\u0001\u0074\u0001\u0063\u0001\u0074\u0001\u0079\u0001"+ + "\u0065\u0001\uffff\u0001\u0073\u0002\uffff\u0001\u0069\u0001\u0063\u0001"+ + "\u0072\u0001\u0065\u0001\uffff\u0001\u002d\u0001\u0067\u0002\uffff\u0001"+ + "\u0070\u0001\u002d\u0001\u006e\u0001\u0065\u0001\u0073\u0001\u0069\u0001"+ + "\u002d\u0001\u006c\u0001\uffff\u0001\u006e\u0002\uffff\u0001\u002d\u0001"+ + "\u0061\u0001\u006e\u0001\u0065\u0001\u0061\u0001\uffff\u0001\u0076\u0001"+ + "\u0065\u0002\uffff\u0001\u0067\u0001\u002d\u0001\uffff\u0001\u0075\u0001"+ + "\u0074\u0001\u0067\u0001\uffff\u0001\u0065\u0001\u0067\u0001\u0073\u0002"+ + "\u0065\u0001\u002d\u0001\uffff\u0001\u002d\u0001\u0064\u0002\uffff\u0001"+ + "\u0067\u0001\u002d\u0001\u0067\u0001\u0065\u0004\u002d\u0001\u006e\u0001"+ + "\u006f\u0001\uffff\u0001\u0074\u0001\u006e\u0002\uffff\u0002\u002d\u0001"+ + "\u0065\u0001\uffff\u0001\u0066\u0001\uffff\u0002\u006e\u0001\u0063\u0001"+ + "\u0074\u0002\u002d\u0001\uffff\u0001\u0071\u0002\u002d\u0001\uffff\u0001"+ + "\u0067\u0002\uffff\u0001\u002d\u0001\u006e\u0002\u002d\u0001\uffff\u0001"+ + "\u002d\u0001\u0069\u0001\u0074\u0001\u0079\u0002\u002d\u0001\u0065\u0001"+ + "\u0067\u0001\u0065\u0001\u0069\u0001\u0072\u0001\uffff\u0001\u002d\u0001"+ + "\u0068\u0001\u0073\u0001\u0067\u0002\u002d\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u0067\u0001\uffff\u0001\u0074\u0002\u0073\u0001\u0074\u0001"+ + "\u006c\u0001\u0065\u0002\u002d\u0001\uffff\u0001\u0073\u0001\u0063\u0001"+ + "\u002d\u0001\u0064\u0001\u002d\u0001\u0065\u0002\u002d\u0002\uffff\u0001"+ + "\u0073\u0001\u0069\u0001\u006f\u0001\uffff\u0002\u002d\u0002\uffff\u0001"+ + "\u0073\u0001\uffff\u0001\u002d\u0001\u006e\u0001\u0069\u0001\u0074\u0002"+ + "\uffff\u0001\u0073\u0001\u006f\u0001\u0065\u0001\u0074\u0001\u0067\u0001"+ + "\u0073\u0001\u002d\u0001\uffff\u0001\u006e\u0001\uffff\u0001\u0075\u0002"+ + "\uffff\u0001\u002d\u0001\uffff\u0001\u002d\u0001\uffff\u0001\u0073\u0001"+ + "\uffff\u0001\u0076\u0002\u002d\u0002\uffff\u0001\u002d\u0001\u006e\u0001"+ + "\u002d\u0001\u0074\u0001\u0076\u0001\uffff\u0001\u002d\u0001\u0065\u0001"+ + "\u002d\u0002\uffff\u0001\u0067\u0002\u002d\u0001\u0069\u0001\u0068\u0001"+ + "\u002d\u0001\u0074\u0001\u0065\u0002\u002d\u0002\uffff\u0001\u002d\u0001"+ + "\u0068\u0001\uffff\u0001\u002d\u0001\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u002d\u0001\u0074\u0001\u0072\u0002\uffff\u0001\u0070\u0001\uffff\u0001"+ + "\u002d\u0001\u006f\u0001\u002d\u0001\u0070\u0001\u0072\u0001\u0070\u0003"+ + "\u002d\u0001\uffff\u0001\u006f\u0001\u0065\u0001\u0073\u0002\uffff\u0002"+ + "\u0065\u0003\uffff\u0001\u002d\u0001\u006e\u0001\uffff\u0001\u002d\u0001"+ + "\u0065\u0001\u002d\u0001\uffff\u0001\u0070\u0001\u0073\u0001\uffff\u0001"+ + "\u002d\u0002\uffff\u0001\u006f\u0001\u0069\u0001\uffff\u0001\u0072\u0001"+ + "\u006d\u0003\uffff\u0001\u002d\u0003\uffff\u0002\u002d\u0001\u0061\u0001"+ + "\uffff\u0001\u006e\u0001\uffff\u0001\u0061\u0001\u006d\u0001\u0061\u0001"+ + "\u006f\u0003\uffff\u0001\u0064\u0001\u006e\u0001\u0069\u0001\u0070\u0001"+ + "\u002d\u0001\uffff\u0001\u006f\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u0061\u0002\u0069\u0001\u006e\u0001\u0070\u0001\u0069\u0001\u0065\u0002"+ + "\uffff\u0001\u0073\u0001\u0063\u0001\u002d\u0001\u0063\u0001\u0061\u0002"+ + "\u0072\u0001\u0065\u0001\u0063\u0001\u0062\u0001\u0061\u0001\uffff\u0001"+ + "\u0064\u0001\uffff\u0001\u0072\u0001\u0062\u0001\u006e\u0002\u002d\u0001"+ + "\u0062\u0001\u006e\u0002\u0065\u0001\uffff\u0001\u0065\u0001\u0074\u0001"+ + "\u0061\u0002\u002d\u0001\u0065\u0001\u006c\u0001\u0072\u0001\u0065\u0001"+ + "\u0061\u0001\u006c\u0001\u0073\u0002\uffff\u0001\u0075\u0001\u0074\u0001"+ + "\u006c\u0001\u002d\u0001\u0073\u0001\u002d\u0001\u0074\u0001\u0073\u0001"+ + "\uffff\u0001\u002d\u0001\u0069\u0001\u0061\u0001\u002d\u0001\u0074\u0001"+ + "\u0069\u0002\u0074\u0001\u002d\u0001\u0066\u0001\uffff\u0001\u002d\u0001"+ + "\uffff\u0001\u006f\u0001\u0065\u0001\uffff\u0001\u006e\u0001\u0074\u0001"+ + "\uffff\u0001\u006f\u0001\u006e\u0001\u0072\u0001\u0065\u0001\uffff\u0001"+ + "\u002d\u0001\uffff\u0001\u0072\u0001\u006c\u0001\u0067\u0001\u006f\u0001"+ + "\u0072\u0001\u0067\u0001\u0075\u0001\u002d\u0001\uffff\u0001\u002d\u0001"+ + "\u0066\u0001\u002d\u0001\u0072\u0002\u002d\u0001\u0063\u0002\uffff\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0002\uffff\u0001\u0074\u0002\uffff\u0001"+ + "\u0069\u0001\u006f\u0001\u006e\u0001\u002d\u0001\uffff", + DFA19_maxS: + "\u0001\uffff\u0001\u0074\u0001\u0079\u0002\u006f\u0001\u0078\u0001"+ + "\u0075\u0003\u0074\u0002\u006f\u0002\u0072\u0001\u0065\u0001\u0077\u0001"+ + "\u0079\u0001\u0073\u0001\u0065\u0001\u006f\u0001\u0071\u0001\u0061\u0002"+ + "\u0065\u0001\u0075\u0001\u007c\u0001\u003a\u0007\uffff\u0002\u003d\u0001"+ + "\uffff\u0001\u0029\u0001\u0023\u0001\uffff\u0001\u003e\u0002\uffff\u0001"+ + "\u002d\u0001\u003f\u0002\u003e\u0001\u0039\u0006\uffff\u0001\u0065\u0001"+ + "\uffff\u0001\u0079\u0002\u007a\u0001\u006c\u0001\u0074\u0001\u0070\u0001"+ + "\u006f\u0001\uffff\u0001\u0073\u0001\u0075\u0001\u007a\u0001\u0066\u0001"+ + "\u0065\u0001\u006e\u0001\u0074\u0001\u0069\u0001\u0075\u0001\u0073\u0001"+ + "\u0076\u0001\u0063\u0001\u0073\u0001\u0070\u0001\u0074\u0001\u007a\u0001"+ + "\u0065\u0001\u0074\u0001\u0072\u0001\u006e\u0001\u0072\u0002\u006f\u0001"+ + "\u007a\u0001\u006f\u0001\u007a\u0001\u0069\u0001\u007a\u0001\u0070\u0002"+ + "\u007a\u0001\u0065\u0001\u0078\u0002\u007a\u0001\u0077\u0001\u0073\u0001"+ + "\u006e\u0001\u006d\u0003\u007a\u0001\u0074\u0002\u007a\u0001\u0063\u0001"+ + "\u0074\u0001\u006f\u0002\u0072\u0001\u0076\u0001\u0074\u0001\u006f\u0001"+ + "\u006e\u0001\u006d\u0001\u0072\u0003\u0069\u0001\u0078\u0001\u0065\u0001"+ + "\u007a\u0001\u0079\u0001\u0070\u0002\u006d\u0001\u006f\u0001\u0070\u0001"+ + "\u0069\u0002\u0072\u0001\u0069\u0001\u0074\u0001\u0069\u0001\u0072\u0001"+ + "\u0075\u0001\u004e\u0001\u0072\u0001\u0079\u0001\u006f\u0002\uffff\u0001"+ + "\u007a\u0010\uffff\u0001\u0078\u000b\uffff\u0001\u002d\u0001\u007a\u0009"+ + "\uffff\u0001\u0065\u0006\uffff\u0002\u0065\u0001\uffff\u0001\u0065\u0002"+ + "\u007a\u0001\u0065\u0001\uffff\u0001\u0072\u0001\uffff\u0001\u007a\u0001"+ + "\u0065\u0001\u007a\u0001\u0073\u0001\u0065\u0001\u006e\u0001\uffff\u0001"+ + "\u006f\u0002\u0061\u0001\u0074\u0001\u0063\u0001\u006c\u0001\u0063\u0001"+ + "\u006c\u0001\u006d\u0001\u0074\u0001\u0079\u0001\u006e\u0001\u006c\u0001"+ + "\u0061\u0001\u0063\u0001\u0065\u0001\u007a\u0001\u0069\u0001\u0063\u0001"+ + "\u0066\u0001\u0074\u0001\u0075\u0001\u006d\u0001\u0065\u0001\u0074\u0001"+ + "\u006f\u0001\u007a\u0001\u0069\u0001\uffff\u0001\u0072\u0002\u0065\u0001"+ + "\u0063\u0001\u0074\u0001\u006c\u0001\u007a\u0001\u0063\u0001\u0073\u0001"+ + "\u006d\u0001\u006f\u0001\u006e\u0001\u006f\u0001\u0072\u0001\uffff\u0001"+ + "\u0061\u0001\u0075\u0001\uffff\u0001\u0076\u0001\uffff\u0001\u006f\u0001"+ + "\u0065\u0001\u0074\u0001\u006f\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u006d\u0001\u007a\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u007a\u0001"+ + "\u0065\u0002\uffff\u0001\u0065\u0001\u0070\u0001\u007a\u0001\u0074\u0001"+ + "\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001\u0070\u0001\u0065\u0001"+ + "\u007a\u0002\uffff\u0001\u0069\u0001\u0065\u0001\uffff\u0001\u0079\u0001"+ + "\uffff\u0001\u0075\u0001\u0065\u0001\u0074\u0001\u0076\u0002\u0063\u0001"+ + "\u0061\u0001\u0075\u0001\u0061\u0001\u006c\u0002\u0061\u0001\u0069\u0002"+ + "\u0065\u0001\u0072\u0001\u0066\u0001\u0074\u0001\u0065\u0001\u0072\u0001"+ + "\u0069\u0001\u006d\u0001\u0070\u0001\u0064\u0001\u0074\u0001\u0070\u0001"+ + "\u0074\u0001\u0073\u0001\uffff\u0001\u0061\u0001\u007a\u0001\u0065\u0001"+ + "\u0062\u0001\u0065\u0001\u0071\u0001\u0072\u0001\u0061\u0001\u0065\u0001"+ + "\u006e\u0001\u0075\u0001\u0069\u0001\u0073\u0001\u0072\u0001\u006c\u0001"+ + "\u0064\u0001\u0068\u0001\u0064\u0001\u0067\u0001\u0064\u0001\u0065\u0001"+ + "\u007a\u0001\u006f\u0001\u007a\u0001\u0074\u0004\uffff\u0001\u002d\u0003"+ + "\uffff\u0001\u0065\u0001\u0073\u0002\uffff\u0001\u006e\u0001\u0069\u0001"+ + "\u0077\u0001\uffff\u0001\u0072\u0001\uffff\u0001\u007a\u0001\u002d\u0001"+ + "\u0064\u0001\u0072\u0001\u006b\u0001\u0072\u0002\u007a\u0001\u0068\u0001"+ + "\u0064\u0001\u006b\u0002\u0065\u0001\u0074\u0001\u0069\u0001\u007a\u0001"+ + "\u0074\u0001\u0061\u0001\u006d\u0001\u0075\u0001\u0065\u0001\u0074\u0001"+ + "\uffff\u0001\u0074\u0001\u0072\u0001\u0065\u0001\u0061\u0001\u006d\u0001"+ + "\u0065\u0001\u007a\u0001\u0079\u0001\u0064\u0001\uffff\u0001\u0072\u0001"+ + "\u0079\u0001\u0070\u0001\u0072\u0001\u0074\u0001\u007a\u0001\u006f\u0001"+ + "\u0069\u0001\uffff\u0002\u0074\u0001\u007a\u0001\u0070\u0001\u0064\u0001"+ + "\u0074\u0001\u007a\u0001\u0074\u0001\u0070\u0001\u007a\u0002\u0072\u0001"+ + "\u0061\u0002\u0072\u0001\u007a\u0001\u006e\u0001\u0078\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\u0075\u0001\u0074\u0001\uffff\u0001\u006c\u0001"+ + "\u0072\u0001\u007a\u0001\u006c\u0001\u0066\u0001\uffff\u0001\u007a\u0002"+ + "\u0073\u0001\u007a\u0001\u006e\u0001\u0072\u0001\u007a\u0001\uffff\u0001"+ + "\u006f\u0001\u0072\u0001\u007a\u0001\u0072\u0001\u006e\u0001\u0067\u0003"+ + "\u0065\u0001\u0069\u0002\u0065\u0001\u006d\u0001\u0073\u0001\u0072\u0001"+ + "\u006d\u0001\u0061\u0001\u006c\u0001\u0074\u0001\u0073\u0001\u007a\u0001"+ + "\u006d\u0001\u0065\u0001\u007a\u0001\u0069\u0001\u0065\u0001\u007a\u0001"+ + "\u006c\u0001\u0074\u0001\u0070\u0001\u006d\u0001\u007a\u0001\u0069\u0001"+ + "\u0063\u0003\u007a\u0001\u0061\u0001\u0074\u0001\uffff\u0001\u007a\u0001"+ + "\u006c\u0001\u0073\u0001\u006e\u0001\u0075\u0001\u0064\u0001\u0074\u0001"+ + "\u0072\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u0061\u0001\u0069\u0001"+ + "\u0065\u0001\u007a\u0001\u0065\u0001\u006f\u0001\u007a\u0001\u0063\u0001"+ + "\u0068\u0001\u007a\u0001\u0072\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u0074\u0001\u0064\u0001\u0062\u0001\u0069\u0001"+ + "\u007a\u0001\uffff\u0001\u0075\u0001\u0061\u0001\u0065\u0001\u007a\u0001"+ + "\u0079\u0001\uffff\u0001\u0062\u0001\uffff\u0003\u007a\u0001\u0074\u0001"+ + "\u0063\u0001\u006e\u0001\u0072\u0001\u0078\u0001\u0069\u0002\u006e\u0001"+ + "\uffff\u0001\u007a\u0001\u0072\u0001\u0061\u0001\u006c\u0001\u006e\u0001"+ + "\u0065\u0001\u007a\u0001\u0069\u0001\u0072\u0001\u006e\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u007a\u0001\u0069\u0001\u0065\u0001\u007a\u0001"+ + "\u0074\u0001\u006e\u0001\u006c\u0001\uffff\u0001\u0077\u0001\u0063\u0001"+ + "\u0067\u0001\u0069\u0001\u007a\u0001\uffff\u0001\u0074\u0002\u007a\u0001"+ + "\uffff\u0001\u0065\u0001\u007a\u0001\uffff\u0001\u0074\u0001\u0069\u0001"+ + "\u006e\u0001\u0074\u0002\u0073\u0001\u0072\u0001\uffff\u0001\u0069\u0001"+ + "\u007a\u0002\uffff\u0001\u0061\u0001\u007a\u0001\u0073\u0001\u0063\u0001"+ + "\uffff\u0001\u0065\u0001\u0079\u0001\uffff\u0001\u002d\u0001\u0070\u0001"+ + "\uffff\u0001\u0068\u0001\u0065\u0001\u007a\u0001\uffff\u0001\u006e\u0001"+ + "\u007a\u0001\uffff\u0001\u0073\u0001\u0074\u0002\u0072\u0001\u0064\u0001"+ + "\u0072\u0001\u006f\u0001\u0073\u0001\u006e\u0001\u0069\u0001\u0065\u0001"+ + "\u006e\u0001\u0065\u0001\u0063\u0002\u0069\u0001\u0066\u0001\uffff\u0001"+ + "\u0061\u0001\u007a\u0001\uffff\u0001\u0074\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u007a\u0001\u0074\u0001\u007a\u0001\u0069\u0001\uffff\u0001"+ + "\u006e\u0001\u0068\u0003\uffff\u0001\u0075\u0001\u007a\u0001\u0077\u0001"+ + "\uffff\u0001\u0069\u0002\u007a\u0002\u0065\u0001\u0069\u0001\u0063\u0001"+ + "\u007a\u0001\u0061\u0001\u007a\u0001\u0062\u0001\u006f\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\u0077\u0001\u0075\u0001\uffff\u0001\u0061\u0001"+ + "\u0074\u0001\u007a\u0001\uffff\u0001\u0079\u0001\u0064\u0003\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\u0075\u0001\u006e\u0001\uffff\u0002\u0072\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0001\u006c\u0003\uffff\u0001\u0069\u0002"+ + "\u0074\u0001\u0075\u0002\u0074\u0001\u006e\u0001\u0075\u0001\u0061\u0001"+ + "\uffff\u0001\u0065\u0001\u006c\u0001\u0074\u0001\u0064\u0001\u007a\u0001"+ + "\uffff\u0001\u0074\u0001\u0065\u0001\u0063\u0001\u006e\u0001\u0074\u0001"+ + "\u0073\u0001\uffff\u0001\u006e\u0001\u007a\u0001\uffff\u0001\u007a\u0001"+ + "\u0061\u0001\u0079\u0001\u0069\u0001\u0068\u0001\u006e\u0001\u006f\u0001"+ + "\uffff\u0001\u0069\u0002\uffff\u0001\u0073\u0001\u006e\u0001\uffff\u0001"+ + "\u007a\u0001\u0074\u0001\u0063\u0001\u007a\u0001\u0069\u0001\u0065\u0001"+ + "\u0069\u0001\u0074\u0001\uffff\u0001\u0067\u0001\uffff\u0001\u007a\u0001"+ + "\u0061\u0002\u007a\u0001\u0073\u0001\u0061\u0001\u0065\u0001\u0073\u0001"+ + "\uffff\u0001\u007a\u0001\u0064\u0001\u006e\u0001\uffff\u0002\u007a\u0001"+ + "\u0061\u0001\u006e\u0001\u0069\u0001\u0076\u0001\u0075\u0001\u0073\u0001"+ + "\u0074\u0001\u006c\u0003\u007a\u0001\u0065\u0001\u0064\u0001\u006f\u0001"+ + "\u0069\u0001\u007a\u0001\uffff\u0001\u0069\u0001\u0063\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\uffff\u0001\u006e\u0001\u0067\u0001\u007a\u0001"+ + "\u0072\u0001\uffff\u0001\u0069\u0001\u006e\u0002\uffff\u0001\u007a\u0001"+ + "\u0072\u0001\u006e\u0001\u0061\u0001\uffff\u0001\u0074\u0001\uffff\u0001"+ + "\u006c\u0001\u006e\u0002\uffff\u0001\u007a\u0001\u0074\u0001\u0072\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0001\u0069\u0001\u0072\u0001\u006e\u0001"+ + "\u0074\u0001\u0067\u0001\u0069\u0001\u0079\u0002\uffff\u0001\u0065\u0001"+ + "\u006f\u0001\u0069\u0001\u007a\u0001\u0063\u0001\u0069\u0002\u007a\u0001"+ + "\u0073\u0001\u0065\u0001\u006d\u0001\u007a\u0001\u002d\u0001\u007a\u0001"+ + "\u0069\u0001\uffff\u0001\u0069\u0001\u006e\u0001\u0065\u0001\u0074\u0001"+ + "\u007a\u0001\u0065\u0001\u0067\u0002\uffff\u0001\u006c\u0001\u007a\u0001"+ + "\u006e\u0002\u007a\u0001\u006e\u0001\u006f\u0001\u0074\u0001\u0067\u0001"+ + "\uffff\u0001\u007a\u0001\u0065\u0001\uffff\u0001\u0074\u0001\u0063\u0001"+ + "\u0074\u0001\u0079\u0001\u0065\u0001\uffff\u0001\u0073\u0002\uffff\u0001"+ + "\u0069\u0001\u0063\u0001\u0072\u0001\u0065\u0001\uffff\u0001\u007a\u0001"+ + "\u0067\u0002\uffff\u0001\u0070\u0001\u002d\u0001\u006e\u0001\u0065\u0001"+ + "\u0073\u0001\u0069\u0001\u007a\u0001\u006c\u0001\uffff\u0001\u006e\u0002"+ + "\uffff\u0001\u007a\u0001\u0061\u0001\u006e\u0002\u0065\u0001\uffff\u0001"+ + "\u0076\u0001\u0065\u0002\uffff\u0001\u0067\u0001\u007a\u0001\uffff\u0001"+ + "\u0075\u0001\u0074\u0001\u0067\u0001\uffff\u0001\u0065\u0001\u0067\u0001"+ + "\u0073\u0002\u0065\u0001\u007a\u0001\uffff\u0001\u007a\u0001\u0064\u0002"+ + "\uffff\u0001\u0067\u0001\u007a\u0001\u0067\u0001\u0065\u0002\u007a\u0001"+ + "\u002d\u0001\u007a\u0001\u006e\u0001\u006f\u0001\uffff\u0001\u0074\u0001"+ + "\u006e\u0002\uffff\u0002\u007a\u0001\u0065\u0001\uffff\u0001\u0073\u0001"+ + "\uffff\u0002\u006e\u0001\u0063\u0001\u0074\u0002\u007a\u0001\uffff\u0001"+ + "\u0071\u0002\u007a\u0001\uffff\u0001\u0067\u0002\uffff\u0001\u007a\u0001"+ + "\u006e\u0001\u007a\u0001\u002d\u0001\uffff\u0001\u007a\u0001\u0069\u0001"+ + "\u0074\u0001\u0079\u0002\u007a\u0001\u0065\u0001\u0067\u0001\u0065\u0001"+ + "\u0069\u0001\u0072\u0001\uffff\u0001\u007a\u0001\u0068\u0001\u0073\u0001"+ + "\u0067\u0002\u007a\u0001\u006e\u0001\uffff\u0001\u0065\u0001\u0067\u0001"+ + "\uffff\u0001\u0074\u0002\u0073\u0001\u0074\u0001\u006c\u0001\u0065\u0002"+ + "\u007a\u0001\uffff\u0001\u0073\u0001\u0063\u0001\u007a\u0001\u0064\u0001"+ + "\u007a\u0001\u0065\u0002\u007a\u0002\uffff\u0001\u0073\u0001\u0069\u0001"+ + "\u006f\u0001\uffff\u0002\u007a\u0002\uffff\u0001\u0073\u0001\uffff\u0001"+ + "\u007a\u0001\u006e\u0001\u0069\u0001\u0074\u0002\uffff\u0001\u0073\u0001"+ + "\u006f\u0001\u0065\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u007a\u0001"+ + "\uffff\u0001\u006e\u0001\uffff\u0001\u0075\u0002\uffff\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\uffff\u0001\u0073\u0001\uffff\u0001\u0076\u0002"+ + "\u007a\u0002\uffff\u0001\u007a\u0001\u006e\u0001\u007a\u0001\u0074\u0001"+ + "\u0076\u0001\uffff\u0001\u007a\u0001\u0065\u0001\u007a\u0002\uffff\u0001"+ + "\u0067\u0002\u007a\u0001\u0069\u0001\u0068\u0001\u007a\u0001\u0074\u0001"+ + "\u0065\u0002\u007a\u0002\uffff\u0001\u007a\u0001\u0068\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0002\uffff\u0001\u007a\u0001\u0074\u0001"+ + "\u0072\u0002\uffff\u0001\u0070\u0001\uffff\u0001\u007a\u0001\u006f\u0001"+ + "\u007a\u0001\u0070\u0001\u0072\u0001\u0070\u0003\u007a\u0001\uffff\u0001"+ + "\u006f\u0001\u0065\u0001\u0073\u0002\uffff\u0002\u0065\u0003\uffff\u0001"+ + "\u007a\u0001\u006e\u0001\uffff\u0001\u007a\u0001\u0065\u0001\u007a\u0001"+ + "\uffff\u0001\u0070\u0001\u0073\u0001\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\uffff\u0001\u0072\u0001\u006d\u0003\uffff\u0001"+ + "\u007a\u0003\uffff\u0001\u007a\u0001\u002d\u0001\u0061\u0001\uffff\u0001"+ + "\u006e\u0001\uffff\u0001\u0061\u0001\u006d\u0001\u0061\u0001\u006f\u0003"+ + "\uffff\u0001\u0064\u0001\u006e\u0001\u0069\u0001\u0070\u0001\u007a\u0001"+ + "\uffff\u0001\u006f\u0001\uffff\u0001\u007a\u0001\uffff\u0001\u0061\u0002"+ + "\u0069\u0001\u006e\u0001\u0070\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u0073\u0001\u0063\u0001\u007a\u0001\u0063\u0001\u0061\u0002\u0072\u0001"+ + "\u0065\u0001\u0063\u0001\u0062\u0001\u0061\u0001\uffff\u0001\u0064\u0001"+ + "\uffff\u0001\u0072\u0001\u0062\u0001\u006e\u0002\u007a\u0001\u0062\u0001"+ + "\u006e\u0002\u0065\u0001\uffff\u0001\u0065\u0001\u0074\u0001\u0061\u0001"+ + "\u002d\u0001\u007a\u0001\u0065\u0001\u006c\u0001\u0072\u0001\u0065\u0001"+ + "\u0061\u0001\u006c\u0001\u0073\u0002\uffff\u0001\u0075\u0001\u0074\u0001"+ + "\u006c\u0001\u007a\u0001\u0073\u0001\u007a\u0001\u0074\u0001\u0073\u0001"+ + "\uffff\u0001\u007a\u0001\u0069\u0001\u0061\u0001\u007a\u0001\u0074\u0001"+ + "\u0069\u0002\u0074\u0001\u007a\u0001\u0066\u0001\uffff\u0001\u007a\u0001"+ + "\uffff\u0001\u006f\u0001\u0065\u0001\uffff\u0001\u006e\u0001\u0074\u0001"+ + "\uffff\u0001\u006f\u0001\u006e\u0001\u0072\u0001\u0065\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u0072\u0001\u006c\u0001\u0067\u0001\u006f\u0001"+ + "\u0072\u0001\u0067\u0001\u0075\u0001\u007a\u0001\uffff\u0001\u007a\u0001"+ + "\u0066\u0001\u007a\u0001\u0072\u0002\u007a\u0001\u0063\u0002\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0002\uffff\u0001\u0074\u0002\uffff\u0001"+ + "\u0069\u0001\u006f\u0001\u006e\u0001\u007a\u0001\uffff", + DFA19_acceptS: + "\u001b\uffff\u0001\u00cf\u0001\u00d0\u0001\u00d1\u0001\u00d2\u0001"+ + "\u00d3\u0001\u00d4\u0001\u00d5\u0002\uffff\u0001\u00d8\u0002\uffff\u0001"+ + "\u00db\u0001\uffff\u0001\u00dd\u0001\u00de\u0005\uffff\u0001\u00ee\u0001"+ + "\u00f6\u0001\u00f9\u0001\u00fa\u0001\u00fb\u0001\u00fc\u0001\uffff\u0001"+ + "\u0104\u0007\uffff\u0001\u00fb\u0050\uffff\u0001\u00cd\u0001\u00ef\u0001"+ + "\uffff\u0001\u0103\u0001\u00ce\u0001\u00cf\u0001\u00d0\u0001\u00d1\u0001"+ + "\u00d2\u0001\u00d3\u0001\u00d4\u0001\u00d5\u0001\u00d6\u0001\u00eb\u0001"+ + "\u00ea\u0001\u00d7\u0001\u00d8\u0001\u00f1\u0001\u00d9\u0001\uffff\u0001"+ + "\u00da\u0001\u00db\u0001\u00f5\u0001\u00dc\u0001\u00dd\u0001\u00de\u0001"+ + "\u00f3\u0001\u00df\u0001\u00e2\u0001\u00e4\u0001\u00ed\u0002\uffff\u0001"+ + "\u00e0\u0001\u00e3\u0001\u00e5\u0001\u00e1\u0001\u00e7\u0001\u00ec\u0001"+ + "\u00e6\u0001\u00e9\u0001\u00e8\u0001\uffff\u0001\u00ee\u0001\u00f6\u0001"+ + "\u00f9\u0001\u00fa\u0001\u00fc\u0001\u0100\u0002\uffff\u0001\u0102\u0004"+ + "\uffff\u0001\u0004\u0001\uffff\u0001\u0006\u0006\uffff\u0001\u000a\u001c"+ + "\uffff\u0001\u0020\u000e\uffff\u0001\u0028\u0002\uffff\u0001\u002a\u0001"+ + "\uffff\u0001\u002c\u0006\uffff\u0001\u002e\u0001\u0032\u0007\uffff\u0001"+ + "\u0035\u0001\u0038\u0007\uffff\u0001\u003c\u0003\uffff\u0001\u00a2\u0001"+ + "\u0040\u0002\uffff\u0001\u0042\u0001\uffff\u0001\u00c7\u001c\uffff\u0001"+ + "\u0057\u0019\uffff\u0001\u00f0\u0001\u00fd\u0001\u00f8\u0001\u00f7\u0001"+ + "\uffff\u0001\u00f4\u0001\u00ff\u0001\u0101\u0002\uffff\u0001\u0003\u0001"+ + "\u0090\u0003\uffff\u0001\u008f\u0001\uffff\u0001\u00ca\u0016\uffff\u0001"+ + "\u0018\u0009\uffff\u0001\u0068\u0008\uffff\u0001\u0026\u0013\uffff\u0001"+ + "\u0034\u0003\uffff\u0001\u0037\u0005\uffff\u0001\u0039\u0007\uffff\u0001"+ + "\u00a3\u0027\uffff\u0001\u0078\u0016\uffff\u0001\u006e\u0001\uffff\u0001"+ + "\u00c6\u0007\uffff\u0001\u00cb\u0005\uffff\u0001\u000b\u0001\uffff\u0001"+ + "\u000c\u000b\uffff\u0001\u0080\u000c\uffff\u0001\u001c\u0007\uffff\u0001"+ + "\u00bb\u0005\uffff\u0001\u0098\u0003\uffff\u0001\u009c\u0002\uffff\u0001"+ + "\u002b\u0007\uffff\u0001\u0084\u0002\uffff\u0001\u0033\u0001\u0085\u0004"+ + "\uffff\u0001\u00bc\u0002\uffff\u0001\u00a1\u0002\uffff\u0001\u006f\u0003"+ + "\uffff\u0001\u003f\u0002\uffff\u0001\u0070\u0011\uffff\u0001\u00a9\u0002"+ + "\uffff\u0001\u0050\u0002\uffff\u0001\u0051\u0005\uffff\u0001\u00af\u0002"+ + "\uffff\u0001\u008b\u0001\u0055\u0001\u0056\u0003\uffff\u0001\u007a\u000d"+ + "\uffff\u0001\u007b\u0003\uffff\u0001\u008e\u0003\uffff\u0001\u00b7\u0002"+ + "\uffff\u0001\u00cc\u0001\u00f2\u0001\u00fe\u0004\uffff\u0001\u007e\u0003"+ + "\uffff\u0001\u00b9\u0002\uffff\u0001\u0062\u0001\u000e\u0001\u00bf\u0009"+ + "\uffff\u0001\u0064\u0005\uffff\u0001\u0067\u0006\uffff\u0001\u001d\u0002"+ + "\uffff\u0001\u0021\u0007\uffff\u0001\u0082\u0001\uffff\u0001\u009a\u0001"+ + "\u009b\u0002\uffff\u0001\u0069\u0008\uffff\u0001\u00c4\u0001\uffff\u0001"+ + "\u0036\u0008\uffff\u0001\u0087\u0003\uffff\u0001\u0043\u0012\uffff\u0001"+ + "\u00aa\u0003\uffff\u0001\u0076\u0001\uffff\u0001\u0054\u0004\uffff\u0001"+ + "\u0058\u0002\uffff\u0001\u00b1\u0001\u005a\u0004\uffff\u0001\u00b3\u0001"+ + "\uffff\u0001\u008d\u0002\uffff\u0001\u005f\u0001\u00be\u0004\uffff\u0001"+ + "\u00b8\u0008\uffff\u0001\u007f\u0001\u00c9\u000f\uffff\u0001\u0081\u0007"+ + "\uffff\u0001\u0096\u0001\u0022\u0009\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u0083\u0005\uffff\u0001\u009f\u0001\uffff\u0001\u003a\u0001\u0086\u0004"+ + "\uffff\u0001\u0041\u0002\uffff\u0001\u00a4\u0001\u0046\u0008\uffff\u0001"+ + "\u00a7\u0001\uffff\u0001\u004b\u0001\u0088\u0005\uffff\u0001\u004d\u0002"+ + "\uffff\u0001\u0052\u0001\u0053\u0002\uffff\u0001\u0077\u0003\uffff\u0001"+ + "\u00c8\u0006\uffff\u0001\u007c\u0002\uffff\u0001\u00b4\u0001\u0060\u000a"+ + "\uffff\u0001\u0010\u0002\uffff\u0001\u0063\u0001\u0092\u0003\uffff\u0001"+ + "\u0013\u0001\uffff\u0001\u0014\u0006\uffff\u0001\u001b\u0003\uffff\u0001"+ + "\u0097\u0001\uffff\u0001\u00c2\u0001\u00c3\u0004\uffff\u0001\u002f\u000b"+ + "\uffff\u0001\u0044\u0007\uffff\u0001\u0072\u0002\uffff\u0001\u0089\u0008"+ + "\uffff\u0001\u0075\u0008\uffff\u0001\u005e\u0001\u00b6\u0003\uffff\u0001"+ + "\u0001\u0002\uffff\u0001\u0061\u0001\u0008\u0001\uffff\u0001\u000d\u0004"+ + "\uffff\u0001\u0091\u0001\u00ba\u0007\uffff\u0001\u0095\u0001\uffff\u0001"+ + "\u0019\u0001\uffff\u0001\u001f\u0001\u0023\u0001\uffff\u0001\u0027\u0001"+ + "\uffff\u0001\u0029\u0001\uffff\u0001\u0030\u0003\uffff\u0001\u006b\u0001"+ + "\u009e\u0005\uffff\u0001\u0045\u0003\uffff\u0001\u0049\u0001\u0074\u000a"+ + "\uffff\u0001\u00ac\u0001\u00ae\u0002\uffff\u0001\u0079\u0001\uffff\u0001"+ + "\u008c\u0001\uffff\u0001\u005c\u0001\u005d\u0003\uffff\u0001\u0005\u0001"+ + "\u0007\u0001\uffff\u0001\u000f\u0009\uffff\u0001\u0094\u0003\uffff\u0001"+ + "\u0024\u0001\u0099\u0002\uffff\u0001\u0031\u0001\u00c5\u0001\u00a0\u0002"+ + "\uffff\u0001\u003b\u0003\uffff\u0001\u00a5\u0002\uffff\u0001\u0047\u0001"+ + "\uffff\u0001\u0073\u0001\u00bd\u0002\uffff\u0001\u004c\u0002\uffff\u0001"+ + "\u00ab\u0001\u00ad\u0001\u00b0\u0001\uffff\u0001\u005b\u0001\u00b2\u0001"+ + "\u00b5\u0003\uffff\u0001\u00c0\u0001\uffff\u0001\u00c1\u0004\uffff\u0001"+ + "\u0015\u0001\u0017\u0001\u0093\u0005\uffff\u0001\u006c\u0001\uffff\u0001"+ + "\u003d\u0001\uffff\u0001\u00a6\u0007\uffff\u0001\u0059\u0001\u007d\u000b"+ + "\uffff\u0001\u009d\u0001\uffff\u0001\u003e\u0009\uffff\u0001\u0011\u000c"+ + "\uffff\u0001\u008a\u0001\u00a8\u0008\uffff\u0001\u001a\u000a\uffff\u0001"+ + "\u0009\u0001\uffff\u0001\u0065\u0002\uffff\u0001\u001e\u0002\uffff\u0001"+ + "\u006d\u0004\uffff\u0001\u004f\u0001\uffff\u0001\u0012\u0008\uffff\u0001"+ + "\u0002\u0007\uffff\u0001\u004e\u0001\u0066\u0001\uffff\u0001\u0025\u0001"+ + "\uffff\u0001\u0071\u0001\u0048\u0001\uffff\u0001\u0016\u0001\u006a\u0004"+ + "\uffff\u0001\u004a", + DFA19_specialS: + "\u0001\u0000\u0019\uffff\u0001\u0001\u01e5\uffff\u0001\u0002\u02db"+ + "\uffff}>", + DFA19_transitionS: [ + "\u0009\u0037\u0002\u0035\u0002\u0037\u0001\u0035\u0012\u0037"+ + "\u0001\u0035\u0001\u0023\u0001\u0033\u0001\u0025\u0001\u001c"+ + "\u0001\u0024\u0001\u0026\u0001\u0032\u0001\u001a\u0001\u001b"+ + "\u0001\u0029\u0001\u002a\u0001\u0027\u0001\u002b\u0001\u002f"+ + "\u0001\u002e\u000a\u0036\u0001\u0022\u0001\u0030\u0001\u002c"+ + "\u0001\u0021\u0001\u002d\u0001\u0028\u0001\u0031\u000d\u0034"+ + "\u0001\u0015\u000c\u0034\u0001\u001f\u0001\u0037\u0001\u0020"+ + "\u0001\u0037\u0001\u0034\u0001\u0037\u0001\u0001\u0001\u0002"+ + "\u0001\u0003\u0001\u0004\u0001\u0005\u0001\u0006\u0001\u0007"+ + "\u0001\u0034\u0001\u0008\u0001\u0034\u0001\u0017\u0001\u0009"+ + "\u0001\u000a\u0001\u000b\u0001\u000c\u0001\u000d\u0001\u0018"+ + "\u0001\u000e\u0001\u000f\u0001\u0010\u0001\u0011\u0001\u0012"+ + "\u0001\u0013\u0001\u0014\u0001\u0034\u0001\u0016\u0001\u001d"+ + "\u0001\u0019\u0001\u001e\uff82\u0037", + "\u0001\u003c\u0005\uffff\u0001\u003b\u0001\u003d\u0001\u0038"+ + "\u0001\uffff\u0001\u003e\u0002\uffff\u0001\u0039\u0001\u003a", + "\u0001\u0040\u0003\uffff\u0001\u0043\u0003\uffff\u0001\u0045"+ + "\u0005\uffff\u0001\u0041\u0002\uffff\u0001\u0044\u0006\uffff"+ + "\u0001\u0042", + "\u0001\u0046\u0006\uffff\u0001\u0047\u0006\uffff\u0001\u0048", + "\u0001\u0049\u0003\uffff\u0001\u004a\u0005\uffff\u0001\u004b", + "\u0001\u004c\u0001\u004d\u0001\u004e\u0002\uffff\u0001\u004f"+ + "\u0004\uffff\u0001\u0050\u0001\uffff\u0001\u0051", + "\u0001\u0054\u0005\uffff\u0001\u0052\u0002\uffff\u0001\u0055"+ + "\u0001\uffff\u0001\u0056\u0001\u0053", + "\u0001\u0057\u000c\uffff\u0001\u0058\u0001\uffff\u0001\u0059", + "\u0001\u005a\u0001\uffff\u0001\u005b\u0006\uffff\u0001\u005c"+ + "\u0001\u005d\u0004\uffff\u0001\u005e\u0001\u005f", + "\u0001\u0060\u0003\uffff\u0001\u0061\u0009\uffff\u0001\u0063"+ + "\u0004\uffff\u0001\u0062", + "\u0001\u0065\u0005\uffff\u0001\u0064", + "\u0001\u0066\u0003\uffff\u0001\u0067\u0009\uffff\u0001\u0068", + "\u0001\u006d\u0002\uffff\u0001\u0069\u0007\uffff\u0001\u006c"+ + "\u0001\uffff\u0001\u006a\u0001\uffff\u0001\u006b", + "\u0001\u006e\u0003\uffff\u0001\u0070\u0002\uffff\u0001\u0071"+ + "\u0009\uffff\u0001\u006f", + "\u0001\u0072", + "\u0001\u0073\u0001\uffff\u0001\u0074\u0001\uffff\u0001\u0075"+ + "\u0005\uffff\u0001\u007a\u0001\u0078\u0002\uffff\u0001\u0076"+ + "\u0004\uffff\u0001\u0077\u0002\uffff\u0001\u0079", + "\u0001\u007b\u0002\uffff\u0001\u007c\u0001\u0081\u0005\uffff"+ + "\u0001\u007d\u0002\uffff\u0001\u007e\u0002\uffff\u0001\u0080"+ + "\u0003\uffff\u0001\u007f", + "\u0001\u0082\u0001\uffff\u0001\u0083\u0002\uffff\u0001\u0084", + "\u0001\u0085\u0003\uffff\u0001\u0086", + "\u0001\u0089\u0002\uffff\u0001\u0087\u0001\u0088\u0005\uffff"+ + "\u0001\u008a", + "\u0001\u008b", + "\u0001\u008c", + "\u0001\u008d", + "\u0001\u008e", + "\u0001\u008f", + "\u0001\u0090", + "\u0001\u0092\u0016\uffff\u0001\u0093", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u009d\u0002\uffff\u0001\u009c", + "\u0001\u009f", + "", + "\u0001\u00a1", + "\u0001\u00a3", + "", + "\u0001\u00a6", + "", + "", + "\u0001\u00aa", + "\u0001\u00af\u000d\uffff\u0001\u00ae\u000c\uffff\u0001\u00ad"+ + "\u0001\u00ac\u0001\uffff\u0001\u00b0", + "\u0001\u00b2\u0001\u00b3", + "\u0001\u00b5\u000e\uffff\u0001\u00b6", + "\u0001\u00b8\u0001\uffff\u000a\u00ba", + "", + "", + "", + "", + "", + "", + "\u0001\u00c2\u0001\uffff\u000a\u00c1\u000b\uffff\u0001\u00c3"+ + "\u001f\uffff\u0001\u00c3", + "", + "\u0001\u00c4\u0001\u00c5\u0014\uffff\u0001\u00c6", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0002\u003f\u0001\u00c7"+ + "\u0017\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0013\u003f\u0001\u00c9"+ + "\u0006\u003f", + "\u0001\u00cb", + "\u0001\u00cc", + "\u0001\u00cd", + "\u0001\u00ce", + "", + "\u0001\u00cf", + "\u0001\u00d0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00d2", + "\u0001\u00d3", + "\u0001\u00d4", + "\u0001\u00d5\u0001\u00d6", + "\u0001\u00d8\u0003\uffff\u0001\u00d7", + "\u0001\u00d9\u0001\u00da\u0001\u00db\u0001\uffff\u0001\u00dc"+ + "\u0004\uffff\u0001\u00dd", + "\u0001\u00de\u0002\uffff\u0001\u00df\u0005\uffff\u0001\u00e1"+ + "\u0006\uffff\u0001\u00e0", + "\u0001\u00e4\u0004\uffff\u0001\u00e5\u0001\u00e3\u000b\uffff"+ + "\u0001\u00e6\u0002\uffff\u0001\u00e2", + "\u0001\u00e7", + "\u0001\u00e8\u000d\uffff\u0001\u00e9", + "\u0001\u00ea", + "\u0001\u00eb\u0001\u00ec\u000f\uffff\u0001\u00ed", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00ef", + "\u0001\u00f2\u0001\uffff\u0001\u00f0\u0005\uffff\u0001\u00f3"+ + "\u000a\uffff\u0001\u00f1", + "\u0001\u00f4\u0005\uffff\u0001\u00f5", + "\u0001\u00f6", + "\u0001\u00f7", + "\u0001\u00f8", + "\u0001\u00f9\u0033\uffff\u0001\u00fa\u000c\uffff\u0001\u00fb"+ + "\u0001\u00fc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00fe\u0009\uffff\u0001\u00ff", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0101", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0103", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f\u0001\u0108"+ + "\u0001\u003f\u0001\u0107\u0001\u003f\u0001\u0104\u000a\u003f"+ + "\u0001\u0105\u0001\u0106\u0006\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u010b", + "\u0001\u010e\u0004\uffff\u0001\u010d\u0004\uffff\u0001\u010c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0001\u010f\u0012\u003f"+ + "\u0001\u0110\u0001\u003f\u0001\u0111\u0004\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0115\u0007\uffff\u0001\u0114", + "\u0001\u0116\u000e\uffff\u0001\u0117", + "\u0001\u0118", + "\u0001\u0119", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0017\u003f\u0001\u011a"+ + "\u0002\u003f", + "\u0001\u011c\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f"+ + "\u0001\u011d\u000f\u003f\u0001\u011e\u0006\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0121", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f\u0001\u0122"+ + "\u0016\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000b\u003f\u0001\u0124"+ + "\u000e\u003f", + "\u0001\u0126", + "\u0001\u0127\u0001\uffff\u0001\u0128", + "\u0001\u0129\u0009\uffff\u0001\u012a", + "\u0001\u012b", + "\u0001\u012c", + "\u0001\u0131\u0001\uffff\u0001\u012e\u0001\uffff\u0001\u012f"+ + "\u0003\uffff\u0001\u012d\u0001\uffff\u0001\u0130", + "\u0001\u0133\u0006\uffff\u0001\u0132", + "\u0001\u0134\u0006\uffff\u0001\u0135", + "\u0001\u0136\u0001\uffff\u0001\u0137", + "\u0001\u0138", + "\u0001\u0139\u0003\uffff\u0001\u013b\u0009\uffff\u0001\u013c"+ + "\u0002\uffff\u0001\u013a", + "\u0001\u013d", + "\u0001\u013e", + "\u0001\u013f", + "\u0001\u0140", + "\u0001\u0141", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0143\u0013\uffff\u0001\u0144", + "\u0001\u0145", + "\u0001\u0146", + "\u0001\u0147", + "\u0001\u0148\u0005\uffff\u0001\u0149", + "\u0001\u014a\u000b\uffff\u0001\u014b", + "\u0001\u014c", + "\u0001\u014d\u0005\uffff\u0001\u014e", + "\u0001\u014f", + "\u0001\u0150\u0003\uffff\u0001\u0151", + "\u0001\u0154\u0001\uffff\u0001\u0152\u0005\uffff\u0001\u0153", + "\u0001\u0155", + "\u0001\u0156", + "\u0001\u0157", + "\u0001\u0158", + "\u0001\u0159", + "\u0001\u015a", + "\u0001\u015b", + "", + "", + "\u0002\u015d\u0002\uffff\u0001\u015d\u0012\uffff\u0001\u015d"+ + "\u0020\uffff\u001a\u015d\u0004\uffff\u0001\u015d\u0001\uffff"+ + "\u001a\u015d", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u015e", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u0160", + "\u0002\u0162\u0002\uffff\u0001\u0162\u0012\uffff\u0001\u0162"+ + "\u0020\uffff\u001a\u0162\u0004\uffff\u0001\u0162\u0001\uffff"+ + "\u001a\u0162", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u000a\u00ba\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "", + "", + "", + "", + "", + "", + "\u0001\u00c2\u0001\uffff\u000a\u00c1\u000b\uffff\u0001\u00c3"+ + "\u001f\uffff\u0001\u00c3", + "\u000a\u0164\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "", + "\u0001\u0165", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0168", + "", + "\u0001\u0169", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000e\u003f\u0001\u016a"+ + "\u000b\u003f", + "\u0001\u016c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u016e", + "\u0001\u016f", + "\u0001\u0170", + "", + "\u0001\u0171", + "\u0001\u0172", + "\u0001\u0173", + "\u0001\u0174\u000e\uffff\u0001\u0175", + "\u0001\u0176", + "\u0001\u0177", + "\u0001\u0178", + "\u0001\u0179", + "\u0001\u017a", + "\u0001\u017b\u0001\u017c", + "\u0001\u017d", + "\u0001\u017e", + "\u0001\u0180\u0002\uffff\u0001\u017f", + "\u0001\u0181", + "\u0001\u0182", + "\u0001\u0183", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0185", + "\u0001\u0186", + "\u0001\u0187", + "\u0001\u0188", + "\u0001\u0189", + "\u0001\u018a", + "\u0001\u018b", + "\u0001\u018c", + "\u0001\u018d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u018f", + "", + "\u0001\u0190", + "\u0001\u0191", + "\u0001\u0192", + "\u0001\u0193", + "\u0001\u0194", + "\u0001\u0195", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0004\u003f\u0001\u0196"+ + "\u0015\u003f", + "\u0001\u0198", + "\u0001\u0199", + "\u0001\u019a", + "\u0001\u019b", + "\u0001\u019c", + "\u0001\u019d", + "\u0001\u019e", + "", + "\u0001\u019f", + "\u0001\u01a0", + "", + "\u0001\u01a1", + "", + "\u0001\u01a2", + "\u0001\u01a3", + "\u0001\u01a5\u000e\uffff\u0001\u01a4", + "\u0001\u01a6\u0009\uffff\u0001\u01a7", + "\u0001\u01a8", + "\u0001\u01a9", + "", + "", + "\u0001\u01aa", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01ac", + "\u0001\u01ad", + "\u0001\u01ae", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01b0", + "", + "", + "\u0001\u01b1", + "\u0001\u01b2", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u01b4"+ + "\u000b\u003f\u0001\u01b3\u0005\u003f", + "\u0001\u01b6", + "\u0001\u01b7", + "\u0001\u01b8", + "\u0001\u01b9", + "", + "\u0001\u01ba\u0006\uffff\u0001\u01bb", + "\u0001\u01bc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u01be", + "\u0001\u01bf", + "", + "\u0001\u01c0", + "", + "\u0001\u01c1", + "\u0001\u01c3\u0003\uffff\u0001\u01c2", + "\u0001\u01c4", + "\u0001\u01c5\u000f\uffff\u0001\u01c6\u0002\uffff\u0001\u01c7", + "\u0001\u01c8", + "\u0001\u01ca\u0035\uffff\u0001\u01c9", + "\u0001\u01cb", + "\u0001\u01cc", + "\u0001\u01cd", + "\u0001\u01ce", + "\u0001\u01cf", + "\u0001\u01d0", + "\u0001\u01d1", + "\u0001\u01d2", + "\u0001\u01d3", + "\u0001\u01d4", + "\u0001\u01d5", + "\u0001\u01d6\u0001\u01d7", + "\u0001\u01d8", + "\u0001\u01d9\u000f\uffff\u0001\u01da", + "\u0001\u01db", + "\u0001\u01dc", + "\u0001\u01dd", + "\u0001\u01de", + "\u0001\u01df", + "\u0001\u01e0", + "\u0001\u01e1", + "\u0001\u01e2\u0004\uffff\u0001\u01e3", + "", + "\u0001\u01e4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01e6", + "\u0001\u01e7", + "\u0001\u01e8", + "\u0001\u01e9\u0001\uffff\u0001\u01ea", + "\u0001\u01eb", + "\u0001\u01ec", + "\u0001\u01ed", + "\u0001\u01ee", + "\u0001\u01ef\u000b\uffff\u0001\u01f0", + "\u0001\u01f1", + "\u0001\u01f2", + "\u0001\u01f4\u0003\uffff\u0001\u01f3", + "\u0001\u01f5", + "\u0001\u01f6", + "\u0001\u01f7", + "\u0001\u01f8", + "\u0001\u01f9", + "\u0001\u01fa", + "\u0001\u01fb", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01fd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01ff", + "", + "", + "", + "", + "\u0001\u0200", + "", + "", + "", + "\u000a\u0164\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "\u0001\u0201", + "", + "", + "\u0001\u0202", + "\u0001\u0203", + "\u0001\u0204", + "", + "\u0001\u0205", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0207", + "\u0001\u0208", + "\u0001\u0209", + "\u0001\u020a", + "\u0001\u020b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0001\u020d\u0019\u003f", + "\u0001\u020f", + "\u0001\u0210", + "\u0001\u0211", + "\u0001\u0212\u0003\uffff\u0001\u0213", + "\u0001\u0214", + "\u0001\u0215", + "\u0001\u0217\u0003\uffff\u0001\u0216\u0003\uffff\u0001\u0218", + "\u0001\u0219\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u021b", + "\u0001\u021c", + "\u0001\u021d", + "\u0001\u021e", + "\u0001\u021f", + "\u0001\u0220", + "", + "\u0001\u0221", + "\u0001\u0222", + "\u0001\u0223", + "\u0001\u0224", + "\u0001\u0225", + "\u0001\u0226", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0228", + "\u0001\u0229", + "", + "\u0001\u022a", + "\u0001\u022b", + "\u0001\u022c", + "\u0001\u022d", + "\u0001\u022e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0230", + "\u0001\u0231\u0007\uffff\u0001\u0232", + "", + "\u0001\u0233", + "\u0001\u0234", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0236", + "\u0001\u0237", + "\u0001\u0238", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u023a", + "\u0001\u023b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u023d", + "\u0001\u023e", + "\u0001\u023f", + "\u0001\u0241\u0003\uffff\u0001\u0240", + "\u0001\u0243\u000a\uffff\u0001\u0242", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0245", + "\u0001\u0246", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0249", + "\u0001\u024a", + "", + "\u0001\u024b", + "\u0001\u024c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u024e", + "\u0001\u024f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0251", + "\u0001\u0252", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0254", + "\u0001\u0255", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0256"+ + "\u0007\u003f", + "", + "\u0001\u0258", + "\u0001\u0259", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u025b", + "\u0001\u025c", + "\u0001\u025d", + "\u0001\u025e", + "\u0001\u025f", + "\u0001\u0260", + "\u0001\u0261", + "\u0001\u0262", + "\u0001\u0263", + "\u0001\u0264", + "\u0001\u0265", + "\u0001\u0266", + "\u0001\u0267", + "\u0001\u0268", + "\u0001\u0269", + "\u0001\u026a", + "\u0001\u026b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u026d", + "\u0001\u026e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0270", + "\u0001\u0271", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0273", + "\u0001\u0274", + "\u0001\u0275\u000c\uffff\u0001\u0276", + "\u0001\u0277", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0279", + "\u0001\u027a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u027e", + "\u0001\u027f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0280"+ + "\u0007\u003f", + "\u0001\u0282", + "\u0001\u0283", + "\u0001\u0284", + "\u0001\u0285", + "\u0001\u0286", + "\u0001\u0287", + "\u0001\u0288", + "\u0001\u0289", + "\u0001\u028a", + "\u0001\u028b", + "\u0001\u028c", + "\u0001\u028d", + "\u0001\u028e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0290", + "\u0001\u0291", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000e\u003f\u0001\u0292"+ + "\u000b\u003f", + "\u0001\u0294", + "\u0001\u0295", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0296"+ + "\u0007\u003f", + "\u0001\u0298", + "", + "\u0001\u0299", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0000\u029c", + "\u0001\u029d", + "\u0001\u029e", + "\u0001\u029f", + "\u0001\u02a0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02a2", + "\u0001\u02a3", + "\u0001\u02a4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02a6", + "", + "\u0001\u02a7", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02ab", + "\u0001\u02ac", + "\u0001\u02ad", + "\u0001\u02ae", + "\u0001\u02b0\u0009\uffff\u0001\u02af", + "\u0001\u02b1", + "\u0001\u02b2", + "\u0001\u02b3", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02b5", + "\u0001\u02b6", + "\u0001\u02b7", + "\u0001\u02b8", + "\u0001\u02b9", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02bb", + "\u0001\u02bc", + "\u0001\u02bd", + "\u0001\u02be", + "\u0001\u02bf", + "", + "\u0001\u02c0\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02c2", + "\u0001\u02c3", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02c5", + "\u0001\u02c6", + "\u0001\u02c7", + "", + "\u0001\u02c8", + "\u0001\u02c9", + "\u0001\u02ca", + "\u0001\u02cb", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02cd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02d0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u02d1"+ + "\u0011\u003f", + "", + "\u0001\u02d3", + "\u0001\u02d4", + "\u0001\u02d5", + "\u0001\u02d6", + "\u0001\u02d7", + "\u0001\u02d8", + "\u0001\u02d9", + "", + "\u0001\u02da", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u02dc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02de", + "\u0001\u02df", + "", + "\u0001\u02e0", + "\u0001\u02e1", + "", + "\u0001\u02e2", + "\u0001\u02e3", + "", + "\u0001\u02e4", + "\u0001\u02e5", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02e7", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0004\u003f\u0001\u02e8"+ + "\u0003\u003f\u0001\u02e9\u0011\u003f", + "", + "\u0001\u02eb", + "\u0001\u02ec", + "\u0001\u02ed", + "\u0001\u02ee", + "\u0001\u02ef", + "\u0001\u02f0", + "\u0001\u02f1", + "\u0001\u02f2", + "\u0001\u02f3", + "\u0001\u02f4", + "\u0001\u02f5", + "\u0001\u02f6", + "\u0001\u02f7", + "\u0001\u02f8", + "\u0001\u02f9", + "\u0001\u02fa", + "\u0001\u02fb", + "", + "\u0001\u02fc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02fe", + "\u0001\u02ff", + "", + "\u0001\u0300", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0302", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0304", + "", + "\u0001\u0305", + "\u0001\u0306", + "", + "", + "", + "\u0001\u0307", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0309", + "", + "\u0001\u030a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u030d", + "\u0001\u030e", + "\u0001\u030f", + "\u0001\u0310", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0312", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0314", + "\u0001\u0315", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0318", + "\u0001\u0319", + "", + "\u0001\u031a", + "\u0001\u031b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u031d", + "\u0001\u031e", + "", + "", + "", + "\u0001\u031f", + "\u0001\u0320", + "\u0001\u0321", + "\u0001\u0322", + "", + "\u0001\u0323", + "\u0001\u0324", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0327", + "", + "", + "", + "\u0001\u0328", + "\u0001\u0329", + "\u0001\u032a", + "\u0001\u032c\u0013\uffff\u0001\u032b", + "\u0001\u032d", + "\u0001\u032e", + "\u0001\u032f", + "\u0001\u0330", + "\u0001\u0331", + "", + "\u0001\u0332", + "\u0001\u0333", + "\u0001\u0334", + "\u0001\u0335", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0337", + "\u0001\u0338", + "\u0001\u0339", + "\u0001\u033a", + "\u0001\u033b", + "\u0001\u033c", + "", + "\u0001\u033d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0340", + "\u0001\u0341", + "\u0001\u0342", + "\u0001\u0343", + "\u0001\u0344", + "\u0001\u0345", + "", + "\u0001\u0346", + "", + "", + "\u0001\u0347", + "\u0001\u0348", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u034a", + "\u0001\u034b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u034d", + "\u0001\u034e", + "\u0001\u034f", + "\u0001\u0350", + "", + "\u0001\u0351", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0353", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0356", + "\u0001\u0357", + "\u0001\u0358", + "\u0001\u0359", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u035b", + "\u0001\u035c", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u035f", + "\u0001\u0360", + "\u0001\u0361", + "\u0001\u0362", + "\u0001\u0363", + "\u0001\u0364", + "\u0001\u0365", + "\u0001\u0366", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u0368"+ + "\u0011\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u036b", + "\u0001\u036c", + "\u0001\u036d", + "\u0001\u036e", + "\u0001\u036f\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0371", + "\u0001\u0372", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0375", + "\u0001\u0376", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0378", + "", + "\u0001\u0379", + "\u0001\u037a", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u037c", + "\u0001\u037d", + "\u0001\u037e", + "", + "\u0001\u037f", + "", + "\u0001\u0380", + "\u0001\u0381", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0383", + "\u0001\u0384", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0387", + "\u0001\u0388", + "\u0001\u0389", + "\u0001\u038a", + "\u0001\u038b", + "\u0001\u038c", + "\u0001\u038d", + "", + "", + "\u0001\u038e", + "\u0001\u038f", + "\u0001\u0390", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0392", + "\u0001\u0393", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0396", + "\u0001\u0397", + "\u0001\u0398", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u039a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u039c\u0007\uffff\u0001\u039d", + "", + "\u0001\u039e", + "\u0001\u039f", + "\u0001\u03a0", + "\u0001\u03a1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03a3", + "\u0001\u03a4", + "", + "", + "\u0001\u03a5", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03a7", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03aa", + "\u0001\u03ab", + "\u0001\u03ac", + "\u0001\u03ad", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03af", + "", + "\u0001\u03b0", + "\u0001\u03b1", + "\u0001\u03b2", + "\u0001\u03b3", + "\u0001\u03b4", + "", + "\u0001\u03b5", + "", + "", + "\u0001\u03b6", + "\u0001\u03b7", + "\u0001\u03b8", + "\u0001\u03b9", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03bb", + "", + "", + "\u0001\u03bc", + "\u0001\u03bd", + "\u0001\u03be", + "\u0001\u03bf", + "\u0001\u03c0", + "\u0001\u03c1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03c3", + "", + "\u0001\u03c4", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03c6", + "\u0001\u03c7", + "\u0001\u03c8", + "\u0001\u03c9\u0003\uffff\u0001\u03ca", + "", + "\u0001\u03cb", + "\u0001\u03cc", + "", + "", + "\u0001\u03cd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03cf", + "\u0001\u03d0", + "\u0001\u03d1", + "", + "\u0001\u03d2", + "\u0001\u03d3", + "\u0001\u03d4", + "\u0001\u03d5", + "\u0001\u03d6", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03d9", + "", + "", + "\u0001\u03da", + "\u0001\u03db\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03dd", + "\u0001\u03de", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e3", + "\u0001\u03e4", + "", + "\u0001\u03e5", + "\u0001\u03e6", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e9", + "", + "\u0001\u03ea\u000c\uffff\u0001\u03eb", + "", + "\u0001\u03ec", + "\u0001\u03ed", + "\u0001\u03ee", + "\u0001\u03ef", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03f1\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03f3", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03f6", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03f8", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03fa", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03fc", + "\u0001\u03fd", + "\u0001\u03fe", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0401", + "\u0001\u0402", + "\u0001\u0403", + "\u0001\u0404", + "\u0001\u0405", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0407", + "\u0001\u0408", + "\u0001\u0409", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u040c", + "", + "\u0001\u040d", + "\u0001\u040e", + "", + "\u0001\u040f", + "\u0001\u0410", + "\u0001\u0411", + "\u0001\u0412", + "\u0001\u0413", + "\u0001\u0414", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0415"+ + "\u0007\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0418", + "\u0001\u0419", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u041b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u041d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0420", + "\u0001\u0421", + "\u0001\u0422", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0425", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0427", + "\u0001\u0428", + "\u0001\u0429", + "", + "", + "\u0001\u042a", + "\u0001\u042b", + "\u0001\u042c", + "\u0001\u042d", + "\u0001\u042e", + "\u0001\u042f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0431", + "", + "\u0001\u0432", + "", + "", + "\u0001\u0433\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0436", + "", + "\u0001\u0437", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u043b", + "\u0001\u043c\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u043e", + "\u0001\u043f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0440"+ + "\u0007\u003f", + "\u0001\u0442", + "\u0001\u0443\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0445", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0448", + "\u0001\u0449", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u044b", + "\u0001\u044c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0450", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0454", + "\u0001\u0455", + "", + "", + "\u0001\u0456", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0458", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u045a", + "\u0001\u045b", + "\u0001\u045c", + "\u0001\u045d\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0461", + "\u0001\u0462", + "\u0001\u0463", + "", + "", + "\u0001\u0464", + "\u0001\u0465", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0467", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0469", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u046b", + "\u0001\u046c", + "", + "\u0001\u046d", + "", + "", + "\u0001\u046e", + "\u0001\u046f", + "", + "\u0001\u0470", + "\u0001\u0471", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0474", + "\u0001\u0475", + "", + "\u0001\u0476", + "", + "\u0001\u0477", + "\u0001\u0478", + "\u0001\u0479", + "\u0001\u047a", + "", + "", + "", + "\u0001\u047b", + "\u0001\u047c", + "\u0001\u047d", + "\u0001\u047e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0480", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0482", + "\u0001\u0483", + "\u0001\u0484", + "\u0001\u0485", + "\u0001\u0486", + "\u0001\u0487", + "\u0001\u0488", + "", + "", + "\u0001\u0489", + "\u0001\u048a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u048c", + "\u0001\u048d", + "\u0001\u048e", + "\u0001\u048f", + "\u0001\u0490", + "\u0001\u0491", + "\u0001\u0492", + "\u0001\u0493", + "", + "\u0001\u0494", + "", + "\u0001\u0495", + "\u0001\u0496", + "\u0001\u0497", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u049a", + "\u0001\u049b", + "\u0001\u049c", + "\u0001\u049d", + "", + "\u0001\u049e", + "\u0001\u049f", + "\u0001\u04a0", + "\u0001\u04a1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04a3", + "\u0001\u04a4", + "\u0001\u04a5", + "\u0001\u04a6", + "\u0001\u04a7", + "\u0001\u04a8", + "\u0001\u04a9", + "", + "", + "\u0001\u04aa", + "\u0001\u04ab", + "\u0001\u04ac", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04ae", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b0", + "\u0001\u04b1", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b3", + "\u0001\u04b4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b6", + "\u0001\u04b7", + "\u0001\u04b8", + "\u0001\u04b9", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04bb", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u04bd", + "\u0001\u04be", + "", + "\u0001\u04bf", + "\u0001\u04c0", + "", + "\u0001\u04c1", + "\u0001\u04c2", + "\u0001\u04c3", + "\u0001\u04c4", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u04c6", + "\u0001\u04c7", + "\u0001\u04c8", + "\u0001\u04c9", + "\u0001\u04ca", + "\u0001\u04cb", + "\u0001\u04cc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04cf", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04d1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04d4", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u04d7", + "", + "", + "\u0001\u04d8", + "\u0001\u04d9", + "\u0001\u04da", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryLexer, { + DFA19_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_eotS), + DFA19_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_eofS), + DFA19_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryLexer.DFA19_minS), + DFA19_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryLexer.DFA19_maxS), + DFA19_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_acceptS), + DFA19_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_specialS), + DFA19_transition: (function() { + var a = [], + i, + numStates = XQueryLexer.DFA19_transitionS.length; + for (i=0; i') ) {s = 45;} + + else if ( (LA19_0=='/') ) {s = 46;} + + else if ( (LA19_0=='.') ) {s = 47;} + + else if ( (LA19_0==';') ) {s = 48;} + + else if ( (LA19_0=='@') ) {s = 49;} + + else if ( (LA19_0=='\'') ) {s = 50;} + + else if ( (LA19_0=='\"') ) {s = 51;} + + else if ( ((LA19_0>='A' && LA19_0<='M')||(LA19_0>='O' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='h'||LA19_0=='j'||LA19_0=='y') ) {s = 52;} + + else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 53;} + + else if ( ((LA19_0>='0' && LA19_0<='9')) ) {s = 54;} + + else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='\\'||LA19_0=='^'||LA19_0=='`'||(LA19_0>='~' && LA19_0<='\uFFFF')) ) {s = 55;} + + if ( s>=0 ) return s; + break; + case 1 : + var LA19_26 = input.LA(1); + + + var index19_26 = input.index(); + input.rewind(); + s = -1; + if ( (LA19_26=='#') ) {s = 146;} + + else if ( (LA19_26==':') && ((!this.inStr))) {s = 147;} + + else s = 148; + + + input.seek(index19_26); + if ( s>=0 ) return s; + break; + case 2 : + var LA19_512 = input.LA(1); + + s = -1; + if ( ((LA19_512>='\u0000' && LA19_512<='\uFFFF')) ) {s = 668;} + + else s = 667; + + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 19, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.XQueryLexer = XQueryLexer; +});/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/XQDTLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all'], function(require, exports, module) { + +var org = require("./antlr3-all").org; + +var XQDTLexer = exports.XQDTLexer = function(input, state) +{ + XQDTLexer.superclass.constructor.call(this, input, state); +}; + +org.antlr.lang.extend(XQDTLexer, org.antlr.runtime.Lexer, { + + comments: [], + + addComment: function(start, stop){ this.comments.push({ start: start, stop: stop }); }, + + isWsExplicit: false, + + setIsWsExplicit: function (wsExplicit) { + //console.log("A WS: " + wsExplicit); + this.isWsExplicit = wsExplicit; + //console.log("B WS: " + wsExplicit); + }, + + addToStack: function (stack) { + stack.push(this); + }, + + rewindToIndex: function(index) { + var stream = this.input; + stream.seek(index); + } +}); + +}); +define('ace/mode/xquery/XQueryParser', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/StringLexer', 'ace/mode/xquery/XMLLexer', 'ace/mode/xquery/XQueryLexer', 'ace/mode/xquery/XQDTParser', 'ace/mode/xquery/Position'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryParser.g 2012-05-24 17:09:31 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var StringLexer = require("./StringLexer").StringLexer; +var XMLLexer = require("./XMLLexer").XMLLexer; +var XQueryLexer = require("./XQueryLexer").XQueryLexer; +var XQDTParser = require("./XQDTParser").XQDTParser; +var Position = require("./Position").Position; +var Exception = function(){}; + +var XQS = true; +var XQU = true; +var ZORBA = true; +var MLS = false; + + + +var XQueryParser = function(input, state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.isInAttr = false; + + this.errors = []; + + this.hasErrors = function(){ + return this.errors.length > 0; + }; + + this.addError = function(error){ + this.errors.push(error); + }; + + this.getErrors = function(){ + return this.errors; + }; + + this.source = null; + this.setSource = function(s){ + this.source = s; + this.highlighter.setSource(s); + }; + + this.lexerStack = new Array(); + + this.lc = function(b){ return b; }; + this.popLexer = function (){ + //console.log("popLexer"); + if(this.lexerStack.length == 0) return; + this.getTokenStream().mark(); + var oldLexer = this.getTokenStream().getTokenSource(); + var newLexer = this.lexerStack.pop(); + if(oldLexer instanceof StringLexer && newLexer instanceof XQueryLexer) { + newLexer.inStr = false; + } + this.getTokenStream().setTokenSource(newLexer); + }; + + this.pushXQueryLexer = function() { + xqueryLexer = new XQueryLexer(this.source); + this.pushLexer(xqueryLexer); + }; + + this.pushStringLexer = function(isAposStr){ + //console.log("pushStringLexer"); + var stringLexer = new StringLexer(this.source); + stringLexer.inAposStr = isAposStr; + stringLexer.inQuotStr = !isAposStr; + stringLexer.setIsWsExplicit(true); + this.pushLexer(stringLexer); + }; + + this.pushXMLLexer = function(){ + //console.log("pushXMLLexer"); + var xmlLexer = new XMLLexer(this.source); + xmlLexer.setIsWsExplicit(true); + this.pushLexer(xmlLexer); + }; + + this.pushLexer = function(lexer){ + var oldLexer = this.getTokenStream().getTokenSource(); + oldLexer.addToStack(this.lexerStack); + this.getTokenStream().setTokenSource(lexer); + }; + + this.setWsExplicit = function(isExplicit){ + this.getTokenStream().setWsExplicit(isExplicit); + }; + + this.ap = function(token) + { + this.addToken(token, "xml_pe"); + }; + + this.ax = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "xml_pe"); + }; + + this.at = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "meta.tag"); + }; + + this.av = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "variable"); + }; + + this.af = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "support.function"); + }; + + this.ao = function(t) + { + this.addToken(t, "keyword.operator"); + }; + + this.ak = function(t) + { + this.addToken(t, "keyword"); + }; + + this.ad = function(t) + { + this.addToken(t, "constant"); + }; + + this.addString = function(start, stop) + { + if(stop == undefined) { + this.addToken(start, "string"); + } else { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "string"); + } + }; + + this.ac = function(t) + { + this.addToken(t, "comment"); + }; + + this.addToken = function(k, type){ + if(org.antlr.lang.isArray(k)){ + for(i in k) + { + this.highlighter.addToken(k[i].getStartIndex(), k[i].getStopIndex(), type); + } + } else if(k != null ) { + this.highlighter.addToken(k.getStartIndex(), k.getStopIndex(), type); + } + }; + + + }).call(this); + + XQueryParser.superclass.constructor.call(this, input, state); + + this.dfa1 = new XQueryParser.DFA1(this); + this.dfa2 = new XQueryParser.DFA2(this); + this.dfa6 = new XQueryParser.DFA6(this); + this.dfa9 = new XQueryParser.DFA9(this); + this.dfa44 = new XQueryParser.DFA44(this); + this.dfa46 = new XQueryParser.DFA46(this); + this.dfa117 = new XQueryParser.DFA117(this); + this.dfa119 = new XQueryParser.DFA119(this); + this.dfa121 = new XQueryParser.DFA121(this); + this.dfa126 = new XQueryParser.DFA126(this); + this.dfa134 = new XQueryParser.DFA134(this); + this.dfa162 = new XQueryParser.DFA162(this); + this.dfa164 = new XQueryParser.DFA164(this); + this.dfa218 = new XQueryParser.DFA218(this); + this.dfa237 = new XQueryParser.DFA237(this); + this.dfa253 = new XQueryParser.DFA253(this); + + + + /* @todo only create adaptor if output=AST */ + this.adaptor = new org.antlr.runtime.tree.CommonTreeAdaptor(); + +}; + +org.antlr.lang.augmentObject(XQueryParser, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + L_QuotStringLiteralChar: 283, + L_AposStringLiteralChar: 284, + LibraryModule: 285, + MainModule: 286, + VersionDecl: 287, + VersionDeclEncoding: 288, + VersionDeclVersion: 289, + ModuleDecl: 290, + Prolog: 291, + DefaultNamespaceDecls: 292, + DefaultNamespaceDecl: 293, + Setters: 294, + Setter: 295, + NamespaceDecls: 296, + NamespaceDecl: 297, + Imports: 298, + FTOptionDecls: 299, + SchemaImport: 300, + SchemaPrefix: 301, + NamespaceName: 302, + DefaultElementNamespace: 303, + AtHints: 304, + ModuleImport: 305, + BaseURIDecl: 306, + OrderedDecls: 307, + VarDecl: 308, + VarType: 309, + VarValue: 310, + VarDefaultValue: 311, + VarVariableDecl: 312, + FunctionDecl: 313, + ParamList: 314, + ReturnType: 315, + OptionDecl: 316, + TypeDeclaration: 317, + Param: 318, + EnclosedExpr: 319, + QueryBody: 320, + UnaryExpr: 321, + DirElemConstructor: 322, + DirAttributeList: 323, + DirAttributeValue: 324, + DirElemContent: 325, + CommonContent: 326, + SequenceType: 327, + EmptySequenceTest: 328, + KindTest: 329, + ItemTest: 330, + FunctionTest: 331, + AtomicType: 332, + AtomicOrUnionType: 333, + StringLiteral: 334, + ElementContentChar: 335, + AttributeValueChar: 336, + QName: 337, + BlockExpr: 338, + BinaryTest: 339, + EXPLICITLY: 340 +}); + +(function(){ +// public class variables +var EOF= -1, + L_QuotAttrContentChar= 4, + L_AposAttrContentChar= 5, + L_ElementContentChar= 6, + L_CDataSection= 7, + L_PredefinedEntityRef= 8, + L_CharRef= 9, + ESCAPE_LBRACKET= 10, + ESCAPE_RBRACKET= 11, + ESCAPE_APOS= 12, + ESCAPE_QUOT= 13, + CDATA_START= 14, + CDATA_END= 15, + ANCESTOR= 16, + ANCESTOR_OR_SELF= 17, + AND= 18, + AS= 19, + ASCENDING= 20, + AT= 21, + ATTRIBUTE= 22, + BASE_URI= 23, + BOUNDARY_SPACE= 24, + BY= 25, + CASE= 26, + CAST= 27, + CASTABLE= 28, + CHILD= 29, + COLLATION= 30, + COMMENT= 31, + CONSTRUCTION= 32, + COPY_NAMESPACES= 33, + DECLARE= 34, + DEFAULT= 35, + DESCENDANT= 36, + DESCENDANT_OR_SELF= 37, + DESCENDING= 38, + DIV= 39, + DOCUMENT= 40, + DOCUMENT_NODE= 41, + ELEMENT= 42, + ELSE= 43, + EMPTY= 44, + EMPTY_SEQUENCE= 45, + ENCODING= 46, + EQ= 47, + EVERY= 48, + EXCEPT= 49, + EXTERNAL= 50, + FOLLOWING= 51, + FOLLOWING_SIBLING= 52, + FOR= 53, + FUNCTION= 54, + GE= 55, + GREATEST= 56, + GT= 57, + IDIV= 58, + IF= 59, + IMPORT= 60, + IN= 61, + INHERIT= 62, + INSTANCE= 63, + INTERSECT= 64, + IS= 65, + ITEM= 66, + LAX= 67, + LE= 68, + LEAST= 69, + LET= 70, + LT= 71, + MOD= 72, + MODULE= 73, + NAMESPACE= 74, + NE= 75, + NO_INHERIT= 76, + NO_PRESERVE= 77, + NODE= 78, + OF= 79, + OPTION= 80, + OR= 81, + ORDER= 82, + ORDERED= 83, + ORDERING= 84, + PARENT= 85, + PRECEDING= 86, + PRECEDING_SIBLING= 87, + PRESERVE= 88, + PROCESSING_INSTRUCTION= 89, + RETURN= 90, + SATISFIES= 91, + SCHEMA= 92, + SCHEMA_ATTRIBUTE= 93, + SCHEMA_ELEMENT= 94, + SELF= 95, + SOME= 96, + STABLE= 97, + STRICT= 98, + STRIP= 99, + TEXT= 100, + THEN= 101, + TO= 102, + TREAT= 103, + TYPESWITCH= 104, + UNION= 105, + UNORDERED= 106, + VALIDATE= 107, + VARIABLE= 108, + VERSION= 109, + WHERE= 110, + XQUERY= 111, + ALLOWING= 112, + CATCH= 113, + CONTEXT= 114, + COUNT= 115, + DECIMAL_FORMAT= 116, + DECIMAL_SEPARATOR= 117, + DIGIT= 118, + END= 119, + GROUP= 120, + GROUPING_SEPARATOR= 121, + INFINITY= 122, + MINUS_SIGN= 123, + NAMESPACE_NODE= 124, + NAN= 125, + NEXT= 126, + ONLY= 127, + PATTERN_SEPARATOR= 128, + PERCENT= 129, + PER_MILLE= 130, + PREVIOUS= 131, + SLIDING= 132, + START= 133, + SWITCH= 134, + TRY= 135, + TUMBLING= 136, + TYPE= 137, + WHEN= 138, + WINDOW= 139, + ZERO_DIGIT= 140, + AFTER= 141, + BEFORE= 142, + COPY= 143, + DELETE= 144, + FIRST= 145, + INSERT= 146, + INTO= 147, + LAST= 148, + MODIFY= 149, + NODES= 150, + RENAME= 151, + REPLACE= 152, + REVALIDATION= 153, + SKIP= 154, + UPDATING= 155, + VALUE= 156, + WITH= 157, + ALL= 158, + ANY= 159, + CONTAINS= 160, + CONTENT= 161, + DIACRITICS= 162, + DIFFERENT= 163, + DISTANCE= 164, + ENTIRE= 165, + EXACTLY= 166, + FROM= 167, + FT_OPTION= 168, + FTAND= 169, + FTNOT= 170, + FTOR= 171, + INSENSITIVE= 172, + LANGUAGE= 173, + LEVELS= 174, + LOWERCASE= 175, + MOST= 176, + NO= 177, + NOT= 178, + OCCURS= 179, + PARAGRAPH= 180, + PARAGRAPHS= 181, + PHRASE= 182, + RELATIONSHIP= 183, + SAME= 184, + SCORE= 185, + SENSITIVE= 186, + SENTENCE= 187, + SENTENCES= 188, + STEMMING= 189, + STOP= 190, + THESAURUS= 191, + TIMES= 192, + UPPERCASE= 193, + USING= 194, + WEIGHT= 195, + WILDCARDS= 196, + WITHOUT= 197, + WORD= 198, + WORDS= 199, + BREAK= 200, + CONTINUE= 201, + EXIT= 202, + LOOP= 203, + RETURNING= 204, + WHILE= 205, + CHECK= 206, + COLLECTION= 207, + CONSTRAINT= 208, + FOREACH= 209, + FOREIGN= 210, + INDEX= 211, + INTEGRITY= 212, + KEY= 213, + ON= 214, + UNIQUE= 215, + BINARY= 216, + AMP_ER= 217, + APOS_ER= 218, + QUOT_ER= 219, + CONCAT= 220, + LPAREN= 221, + RPAREN= 222, + DOLLAR= 223, + LBRACKET= 224, + RBRACKET= 225, + LSQUARE= 226, + RSQUARE= 227, + EQUAL= 228, + BIND= 229, + NOTEQUAL= 230, + ANN_PERCENT= 231, + HASH= 232, + AMP= 233, + COMMA= 234, + QUESTION= 235, + STAR= 236, + PLUS= 237, + MINUS= 238, + SMALLER= 239, + GREATER= 240, + SMALLEREQ= 241, + GREATEREQ= 242, + SMALLER_SMALLER= 243, + GREATER_GREATER= 244, + SLASH= 245, + SLASH_SLASH= 246, + DOT= 247, + DOT_DOT= 248, + COLON= 249, + COLON_COLON= 250, + EMPTY_CLOSE_TAG= 251, + CLOSE_TAG= 252, + SEMICOLON= 253, + VBAR= 254, + PRAGMA_START= 255, + PRAGMA_END= 256, + XML_COMMENT_START= 257, + XML_COMMENT_END= 258, + PI_START= 259, + PI_END= 260, + ATTR_SIGN= 261, + CHARREF_DEC= 262, + CHARREF_HEX= 263, + APOS= 264, + QUOT= 265, + NCNameStartChar= 266, + NCNameChar= 267, + L_NCName= 268, + Letter= 269, + HexLetter= 270, + Digit= 271, + Digits= 272, + S= 273, + SU= 274, + L_Pragma= 275, + L_DirCommentConstructor= 276, + L_DirPIConstructor= 277, + L_IntegerLiteral= 278, + L_DecimalLiteral= 279, + L_DoubleLiteral= 280, + L_Comment= 281, + L_AnyChar= 282, + L_QuotStringLiteralChar= 283, + L_AposStringLiteralChar= 284, + LibraryModule= 285, + MainModule= 286, + VersionDecl= 287, + VersionDeclEncoding= 288, + VersionDeclVersion= 289, + ModuleDecl= 290, + Prolog= 291, + DefaultNamespaceDecls= 292, + DefaultNamespaceDecl= 293, + Setters= 294, + Setter= 295, + NamespaceDecls= 296, + NamespaceDecl= 297, + Imports= 298, + FTOptionDecls= 299, + SchemaImport= 300, + SchemaPrefix= 301, + NamespaceName= 302, + DefaultElementNamespace= 303, + AtHints= 304, + ModuleImport= 305, + BaseURIDecl= 306, + OrderedDecls= 307, + VarDecl= 308, + VarType= 309, + VarValue= 310, + VarDefaultValue= 311, + VarVariableDecl= 312, + FunctionDecl= 313, + ParamList= 314, + ReturnType= 315, + OptionDecl= 316, + TypeDeclaration= 317, + Param= 318, + EnclosedExpr= 319, + QueryBody= 320, + UnaryExpr= 321, + DirElemConstructor= 322, + DirAttributeList= 323, + DirAttributeValue= 324, + DirElemContent= 325, + CommonContent= 326, + SequenceType= 327, + EmptySequenceTest= 328, + KindTest= 329, + ItemTest= 330, + FunctionTest= 331, + AtomicType= 332, + AtomicOrUnionType= 333, + StringLiteral= 334, + ElementContentChar= 335, + AttributeValueChar= 336, + QName= 337, + BlockExpr= 338, + BinaryTest= 339, + EXPLICITLY= 340; + +// public instance methods/vars +org.antlr.lang.extend(XQueryParser, XQDTParser, { + + setTreeAdaptor: function(adaptor) { + this.adaptor = adaptor; + }, + getTreeAdaptor: function() { + return this.adaptor; + }, + + getTokenNames: function() { return XQueryParser.tokenNames; }, + getGrammarFileName: function() { return "xquery/XQueryParser.g"; } +}); +org.antlr.lang.augmentObject(XQueryParser.prototype, { + + // inline static return class + p_Module_return: (function() { + XQueryParser.p_Module_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Module_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:295:1: p_Module : (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF ; + // $ANTLR start "p_Module" + p_Module: function() { + var retval = new XQueryParser.p_Module_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var EOF1 = null; + var vd = null; + var lm = null; + var mm = null; + + var EOF1_tree=null; + var stream_EOF=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EOF"); + var stream_p_VersionDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VersionDecl"); + var stream_p_LibraryModule=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_LibraryModule"); + var stream_p_MainModule=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_MainModule"); + try { + // xquery/XQueryParser.g:296:9: ( (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF ) + // xquery/XQueryParser.g:296:11: (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF + // xquery/XQueryParser.g:296:13: (vd= p_VersionDecl )? + var alt1=2; + alt1 = this.dfa1.predict(this.input); + switch (alt1) { + case 1 : + // xquery/XQueryParser.g:296:13: vd= p_VersionDecl + this.pushFollow(XQueryParser.FOLLOW_p_VersionDecl_in_p_Module507); + vd=this.p_VersionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VersionDecl.add(vd.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:297:13: (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) + var alt2=2; + alt2 = this.dfa2.predict(this.input); + switch (alt2) { + case 1 : + // xquery/XQueryParser.g:298:15: lm= p_LibraryModule[$vd.tree] + this.pushFollow(XQueryParser.FOLLOW_p_LibraryModule_in_p_Module540); + lm=this.p_LibraryModule((vd?vd.tree:null)); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_LibraryModule.add(lm.getTree()); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 298:44: -> + { + this.adaptor.addChild(root_0, (lm?lm.tree:null)); + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:299:15: mm= p_MainModule[$vd.tree] + this.pushFollow(XQueryParser.FOLLOW_p_MainModule_in_p_Module563); + mm=this.p_MainModule((vd?vd.tree:null)); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_MainModule.add(mm.getTree()); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 299:44: -> + { + this.adaptor.addChild(root_0, (mm?mm.tree:null)); + + } + + retval.tree = root_0;} + + break; + + } + + EOF1=this.match(this.input,EOF,XQueryParser.FOLLOW_EOF_in_p_Module587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EOF.add(EOF1); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VersionDecl_return: (function() { + XQueryParser.p_VersionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VersionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:304:1: p_VersionDecl : k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) ; + // $ANTLR start "p_VersionDecl" + p_VersionDecl: function() { + var retval = new XQueryParser.p_VersionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON2 = null; + var enc = null; + var ver = null; + + var k_tree=null; + var SEMICOLON2_tree=null; + var stream_ENCODING=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ENCODING"); + var stream_VERSION=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token VERSION"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_XQUERY=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token XQUERY"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:305:9: (k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) ) + // xquery/XQueryParser.g:305:11: k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON + k=this.match(this.input,XQUERY,XQueryParser.FOLLOW_XQUERY_in_p_VersionDecl615); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_XQUERY.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:305:35: ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( (LA4_0==ENCODING) ) { + alt4=1; + } + else if ( (LA4_0==VERSION) ) { + alt4=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 0, this.input); + + throw nvae; + } + switch (alt4) { + case 1 : + // xquery/XQueryParser.g:305:36: (k= ENCODING enc= p_StringLiteral ) + // xquery/XQueryParser.g:305:36: (k= ENCODING enc= p_StringLiteral ) + // xquery/XQueryParser.g:305:37: k= ENCODING enc= p_StringLiteral + k=this.match(this.input,ENCODING,XQueryParser.FOLLOW_ENCODING_in_p_VersionDecl623); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ENCODING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl629); + enc=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(enc.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:306:13: (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) + // xquery/XQueryParser.g:306:13: (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) + // xquery/XQueryParser.g:306:14: k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? + k=this.match(this.input,VERSION,XQueryParser.FOLLOW_VERSION_in_p_VersionDecl650); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_VERSION.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl656); + ver=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ver.getTree()); + // xquery/XQueryParser.g:306:59: (k= ENCODING enc= p_StringLiteral )? + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( (LA3_0==ENCODING) ) { + alt3=1; + } + switch (alt3) { + case 1 : + // xquery/XQueryParser.g:306:60: k= ENCODING enc= p_StringLiteral + k=this.match(this.input,ENCODING,XQueryParser.FOLLOW_ENCODING_in_p_VersionDecl661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ENCODING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl667); + enc=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(enc.getTree()); + + + break; + + } + + + + + + + break; + + } + + SEMICOLON2=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_VersionDecl673); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON2); + + + + // AST REWRITE + // elements: enc, ver + // token labels: + // rule labels: retval, ver, enc + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_ver=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ver",ver!=null?ver.tree:null); + var stream_enc=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token enc",enc!=null?enc.tree:null); + + root_0 = this.adaptor.nil(); + // 307:17: -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) + { + // xquery/XQueryParser.g:307:20: ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(VersionDecl, "VersionDecl"), root_1); + + // xquery/XQueryParser.g:307:34: ^( VersionDeclVersion ( $ver)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VersionDeclVersion, "VersionDeclVersion"), root_2); + + // xquery/XQueryParser.g:307:55: ( $ver)? + if ( stream_ver.hasNext() ) { + this.adaptor.addChild(root_2, stream_ver.nextTree()); + + } + stream_ver.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:307:62: ^( VersionDeclEncoding ( $enc)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VersionDeclEncoding, "VersionDeclEncoding"), root_2); + + // xquery/XQueryParser.g:307:84: ( $enc)? + if ( stream_enc.hasNext() ) { + this.adaptor.addChild(root_2, stream_enc.nextTree()); + + } + stream_enc.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_MainModule_return: (function() { + XQueryParser.p_MainModule_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_MainModule_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:311:1: p_MainModule[vd] : pm_Prolog pm_QueryBody -> ^( MainModule pm_Prolog ) ; + // $ANTLR start "p_MainModule" + p_MainModule: function(vd) { + var retval = new XQueryParser.p_MainModule_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_Prolog3 = null; + var pm_QueryBody4 = null; + + var stream_pm_QueryBody=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_QueryBody"); + var stream_pm_Prolog=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_Prolog"); + try { + // xquery/XQueryParser.g:312:9: ( pm_Prolog pm_QueryBody -> ^( MainModule pm_Prolog ) ) + // xquery/XQueryParser.g:312:11: pm_Prolog pm_QueryBody + this.pushFollow(XQueryParser.FOLLOW_pm_Prolog_in_p_MainModule739); + pm_Prolog3=this.pm_Prolog(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_Prolog.add(pm_Prolog3.getTree()); + this.pushFollow(XQueryParser.FOLLOW_pm_QueryBody_in_p_MainModule741); + pm_QueryBody4=this.pm_QueryBody(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_QueryBody.add(pm_QueryBody4.getTree()); + + + // AST REWRITE + // elements: pm_Prolog + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 313:17: -> ^( MainModule pm_Prolog ) + { + // xquery/XQueryParser.g:313:20: ^( MainModule pm_Prolog ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(MainModule, "MainModule"), root_1); + + this.adaptor.addChild(root_1, vd); + this.adaptor.addChild(root_1, stream_pm_Prolog.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LibraryModule_return: (function() { + XQueryParser.p_LibraryModule_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LibraryModule_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:317:1: p_LibraryModule[vd] : p_ModuleDecl pm_Prolog -> ^( LibraryModule p_ModuleDecl pm_Prolog ) ; + // $ANTLR start "p_LibraryModule" + p_LibraryModule: function(vd) { + var retval = new XQueryParser.p_LibraryModule_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ModuleDecl5 = null; + var pm_Prolog6 = null; + + var stream_pm_Prolog=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_Prolog"); + var stream_p_ModuleDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ModuleDecl"); + try { + // xquery/XQueryParser.g:318:9: ( p_ModuleDecl pm_Prolog -> ^( LibraryModule p_ModuleDecl pm_Prolog ) ) + // xquery/XQueryParser.g:318:11: p_ModuleDecl pm_Prolog + this.pushFollow(XQueryParser.FOLLOW_p_ModuleDecl_in_p_LibraryModule797); + p_ModuleDecl5=this.p_ModuleDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ModuleDecl.add(p_ModuleDecl5.getTree()); + this.pushFollow(XQueryParser.FOLLOW_pm_Prolog_in_p_LibraryModule799); + pm_Prolog6=this.pm_Prolog(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_Prolog.add(pm_Prolog6.getTree()); + + + // AST REWRITE + // elements: p_ModuleDecl, pm_Prolog + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 319:17: -> ^( LibraryModule p_ModuleDecl pm_Prolog ) + { + // xquery/XQueryParser.g:319:20: ^( LibraryModule p_ModuleDecl pm_Prolog ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(LibraryModule, "LibraryModule"), root_1); + + this.adaptor.addChild(root_1, vd); + this.adaptor.addChild(root_1, stream_p_ModuleDecl.nextTree()); + this.adaptor.addChild(root_1, stream_pm_Prolog.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ModuleDecl_return: (function() { + XQueryParser.p_ModuleDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ModuleDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:323:1: p_ModuleDecl : k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON -> ^( ModuleDecl p_NCName p_StringLiteral ) ; + // $ANTLR start "p_ModuleDecl" + p_ModuleDecl: function() { + var retval = new XQueryParser.p_ModuleDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var EQUAL8 = null; + var SEMICOLON10 = null; + var k = null; + var list_k=null; + var p_NCName7 = null; + var p_StringLiteral9 = null; + + var EQUAL8_tree=null; + var SEMICOLON10_tree=null; + var k_tree=null; + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_MODULE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MODULE"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:324:9: (k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON -> ^( ModuleDecl p_NCName p_StringLiteral ) ) + // xquery/XQueryParser.g:324:11: k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON + k=this.match(this.input,MODULE,XQueryParser.FOLLOW_MODULE_in_p_ModuleDecl855); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MODULE.add(k); + + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_ModuleDecl859); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_ModuleDecl863); + p_NCName7=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(p_NCName7.getTree()); + EQUAL8=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_ModuleDecl865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL8); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_ModuleDecl867); + p_StringLiteral9=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(p_StringLiteral9.getTree()); + SEMICOLON10=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ModuleDecl869); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON10); + + + + // AST REWRITE + // elements: p_NCName, p_StringLiteral + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 325:17: -> ^( ModuleDecl p_NCName p_StringLiteral ) + { + // xquery/XQueryParser.g:325:21: ^( ModuleDecl p_NCName p_StringLiteral ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ModuleDecl, "ModuleDecl"), root_1); + + this.adaptor.addChild(root_1, stream_p_NCName.nextTree()); + this.adaptor.addChild(root_1, stream_p_StringLiteral.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_Prolog_return: (function() { + XQueryParser.pm_Prolog_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_Prolog_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:331:1: pm_Prolog : ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) ; + // $ANTLR start "pm_Prolog" + pm_Prolog: function() { + var retval = new XQueryParser.pm_Prolog_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var list_dnd=null; + var list_s=null; + var list_nd=null; + var list_i=null; + var list_fto=null; + var list_od=null; + var dnd = null; + var s = null; + var nd = null; + var i = null; + var fto = null; + var od = null; + var stream_pm_NamespaceDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_NamespaceDecl"); + var stream_p_Import=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Import"); + var stream_p_Setter=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Setter"); + var stream_pm_DefaultNamespaceDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_DefaultNamespaceDecl"); + var stream_pg_OrderedDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_OrderedDecl"); + var stream_pm_FTOptionDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_FTOptionDecl"); + try { + // xquery/XQueryParser.g:332:9: ( ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) ) + // xquery/XQueryParser.g:332:11: ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* + // xquery/XQueryParser.g:332:11: ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* + loop6: + do { + var alt6=2; + alt6 = this.dfa6.predict(this.input); + switch (alt6) { + case 1 : + // xquery/XQueryParser.g:332:12: (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) + // xquery/XQueryParser.g:332:12: (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) + var alt5=5; + var LA5_0 = this.input.LA(1); + + if ( (LA5_0==DECLARE) ) { + var LA5_1 = this.input.LA(2); + + if ( (LA5_1==REVALIDATION) && ((this.lc(XQU)))) { + alt5=2; + } + else if ( (LA5_1==FT_OPTION) ) { + alt5=5; + } + else if ( (LA5_1==DEFAULT) ) { + var LA5_5 = this.input.LA(3); + + if ( (LA5_5==ELEMENT||LA5_5==FUNCTION) ) { + alt5=1; + } + else if ( (LA5_5==COLLATION||LA5_5==ORDER||LA5_5==DECIMAL_FORMAT) ) { + alt5=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 5, this.input); + + throw nvae; + } + } + else if ( ((LA5_1>=BASE_URI && LA5_1<=BOUNDARY_SPACE)||(LA5_1>=CONSTRUCTION && LA5_1<=COPY_NAMESPACES)||LA5_1==ORDERING||LA5_1==DECIMAL_FORMAT) ) { + alt5=2; + } + else if ( (LA5_1==NAMESPACE) ) { + alt5=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 1, this.input); + + throw nvae; + } + } + else if ( (LA5_0==IMPORT) ) { + alt5=4; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 0, this.input); + + throw nvae; + } + switch (alt5) { + case 1 : + // xquery/XQueryParser.g:332:13: dnd+= pm_DefaultNamespaceDecl + this.pushFollow(XQueryParser.FOLLOW_pm_DefaultNamespaceDecl_in_pm_Prolog928); + dnd=this.pm_DefaultNamespaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_DefaultNamespaceDecl.add(dnd.getTree()); + if (org.antlr.lang.isNull(list_dnd)) list_dnd = []; + list_dnd.push(dnd.getTree()); + + + + break; + case 2 : + // xquery/XQueryParser.g:332:44: s+= p_Setter + this.pushFollow(XQueryParser.FOLLOW_p_Setter_in_pm_Prolog934); + s=this.p_Setter(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Setter.add(s.getTree()); + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s.getTree()); + + + + break; + case 3 : + // xquery/XQueryParser.g:332:58: nd+= pm_NamespaceDecl + this.pushFollow(XQueryParser.FOLLOW_pm_NamespaceDecl_in_pm_Prolog940); + nd=this.pm_NamespaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_NamespaceDecl.add(nd.getTree()); + if (org.antlr.lang.isNull(list_nd)) list_nd = []; + list_nd.push(nd.getTree()); + + + + break; + case 4 : + // xquery/XQueryParser.g:332:81: i+= p_Import + this.pushFollow(XQueryParser.FOLLOW_p_Import_in_pm_Prolog946); + i=this.p_Import(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Import.add(i.getTree()); + if (org.antlr.lang.isNull(list_i)) list_i = []; + list_i.push(i.getTree()); + + + + break; + case 5 : + // xquery/XQueryParser.g:332:95: fto+= pm_FTOptionDecl + this.pushFollow(XQueryParser.FOLLOW_pm_FTOptionDecl_in_pm_Prolog952); + fto=this.pm_FTOptionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_FTOptionDecl.add(fto.getTree()); + if (org.antlr.lang.isNull(list_fto)) list_fto = []; + list_fto.push(fto.getTree()); + + + + break; + + } + + + + break; + + default : + break loop6; + } + } while (true); + + // xquery/XQueryParser.g:332:121: (od+= pg_OrderedDecl )* + loop7: + do { + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( (LA7_0==DECLARE) ) { + var LA7_3 = this.input.LA(2); + + if ( (LA7_3==FUNCTION||LA7_3==OPTION||LA7_3==VARIABLE||LA7_3==CONTEXT||LA7_3==UPDATING||LA7_3==COLLECTION||(LA7_3>=INDEX && LA7_3<=INTEGRITY)||LA7_3==ANN_PERCENT) ) { + alt7=1; + } + + + } + + + switch (alt7) { + case 1 : + // xquery/XQueryParser.g:332:121: od+= pg_OrderedDecl + this.pushFollow(XQueryParser.FOLLOW_pg_OrderedDecl_in_pm_Prolog959); + od=this.pg_OrderedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_OrderedDecl.add(od.getTree()); + if (org.antlr.lang.isNull(list_od)) list_od = []; + list_od.push(od.getTree()); + + + + break; + + default : + break loop7; + } + } while (true); + + + + // AST REWRITE + // elements: dnd, i, fto, nd, od, s + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: od, s, fto, nd, dnd, i + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_od=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token od",list_od); + var stream_s=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token s",list_s); + var stream_fto=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token fto",list_fto); + var stream_nd=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nd",list_nd); + var stream_dnd=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token dnd",list_dnd); + var stream_i=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token i",list_i); + root_0 = this.adaptor.nil(); + // 333:17: -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) + { + // xquery/XQueryParser.g:333:21: ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(Prolog, "Prolog"), root_1); + + // xquery/XQueryParser.g:334:33: ^( DefaultNamespaceDecls ( $dnd)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DefaultNamespaceDecls, "DefaultNamespaceDecls"), root_2); + + // xquery/XQueryParser.g:334:57: ( $dnd)* + while ( stream_dnd.hasNext() ) { + this.adaptor.addChild(root_2, stream_dnd.nextTree()); + + } + stream_dnd.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:335:33: ^( Setters ( $s)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(Setters, "Setters"), root_2); + + // xquery/XQueryParser.g:335:43: ( $s)* + while ( stream_s.hasNext() ) { + this.adaptor.addChild(root_2, stream_s.nextTree()); + + } + stream_s.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:336:33: ^( NamespaceDecls ( $nd)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceDecls, "NamespaceDecls"), root_2); + + // xquery/XQueryParser.g:336:50: ( $nd)* + while ( stream_nd.hasNext() ) { + this.adaptor.addChild(root_2, stream_nd.nextTree()); + + } + stream_nd.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:337:33: ^( Imports ( $i)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(Imports, "Imports"), root_2); + + // xquery/XQueryParser.g:337:43: ( $i)* + while ( stream_i.hasNext() ) { + this.adaptor.addChild(root_2, stream_i.nextTree()); + + } + stream_i.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:338:33: ^( FTOptionDecls ( $fto)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(FTOptionDecls, "FTOptionDecls"), root_2); + + // xquery/XQueryParser.g:338:49: ( $fto)* + while ( stream_fto.hasNext() ) { + this.adaptor.addChild(root_2, stream_fto.nextTree()); + + } + stream_fto.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:339:33: ^( OrderedDecls ( $od)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(OrderedDecls, "OrderedDecls"), root_2); + + // xquery/XQueryParser.g:339:48: ( $od)* + while ( stream_od.hasNext() ) { + this.adaptor.addChild(root_2, stream_od.nextTree()); + + } + stream_od.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_OrderedDecl_return: (function() { + XQueryParser.pg_OrderedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_OrderedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:347:1: pg_OrderedDecl : ( pm_ContextItemDecl | pm_AnnotatedDecl | pm_OptionDecl ); + // $ANTLR start "pg_OrderedDecl" + pg_OrderedDecl: function() { + var retval = new XQueryParser.pg_OrderedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_ContextItemDecl11 = null; + var pm_AnnotatedDecl12 = null; + var pm_OptionDecl13 = null; + + + try { + // xquery/XQueryParser.g:348:9: ( pm_ContextItemDecl | pm_AnnotatedDecl | pm_OptionDecl ) + var alt8=3; + var LA8_0 = this.input.LA(1); + + if ( (LA8_0==DECLARE) ) { + switch ( this.input.LA(2) ) { + case CONTEXT: + alt8=1; + break; + case FUNCTION: + case VARIABLE: + case UPDATING: + case COLLECTION: + case INDEX: + case INTEGRITY: + case ANN_PERCENT: + alt8=2; + break; + case OPTION: + alt8=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 8, 1, this.input); + + throw nvae; + } + + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 8, 0, this.input); + + throw nvae; + } + switch (alt8) { + case 1 : + // xquery/XQueryParser.g:348:11: pm_ContextItemDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ContextItemDecl_in_pg_OrderedDecl1274); + pm_ContextItemDecl11=this.pm_ContextItemDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ContextItemDecl11.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:349:11: pm_AnnotatedDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_AnnotatedDecl_in_pg_OrderedDecl1286); + pm_AnnotatedDecl12=this.pm_AnnotatedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_AnnotatedDecl12.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:350:11: pm_OptionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_OptionDecl_in_pg_OrderedDecl1298); + pm_OptionDecl13=this.pm_OptionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_OptionDecl13.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Setter_return: (function() { + XQueryParser.p_Setter_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Setter_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:358:1: p_Setter : ( pm_BoundarySpaceDecl | pm_DefaultCollationDecl | pm_BaseURIDecl | pm_ConstructionDecl | pm_OrderingModeDecl | pm_EmptyOrderDecl | {...}? => pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl ); + // $ANTLR start "p_Setter" + p_Setter: function() { + var retval = new XQueryParser.p_Setter_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_BoundarySpaceDecl14 = null; + var pm_DefaultCollationDecl15 = null; + var pm_BaseURIDecl16 = null; + var pm_ConstructionDecl17 = null; + var pm_OrderingModeDecl18 = null; + var pm_EmptyOrderDecl19 = null; + var pm_RevalidationDecl20 = null; + var pm_CopyNamespacesDecl21 = null; + var pm_DecimalFormatDecl22 = null; + + + try { + // xquery/XQueryParser.g:359:9: ( pm_BoundarySpaceDecl | pm_DefaultCollationDecl | pm_BaseURIDecl | pm_ConstructionDecl | pm_OrderingModeDecl | pm_EmptyOrderDecl | {...}? => pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl ) + var alt9=9; + alt9 = this.dfa9.predict(this.input); + switch (alt9) { + case 1 : + // xquery/XQueryParser.g:359:11: pm_BoundarySpaceDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_BoundarySpaceDecl_in_p_Setter1328); + pm_BoundarySpaceDecl14=this.pm_BoundarySpaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_BoundarySpaceDecl14.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:360:11: pm_DefaultCollationDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_DefaultCollationDecl_in_p_Setter1340); + pm_DefaultCollationDecl15=this.pm_DefaultCollationDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_DefaultCollationDecl15.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:361:11: pm_BaseURIDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_BaseURIDecl_in_p_Setter1352); + pm_BaseURIDecl16=this.pm_BaseURIDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_BaseURIDecl16.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:362:11: pm_ConstructionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ConstructionDecl_in_p_Setter1364); + pm_ConstructionDecl17=this.pm_ConstructionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ConstructionDecl17.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:363:11: pm_OrderingModeDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_OrderingModeDecl_in_p_Setter1376); + pm_OrderingModeDecl18=this.pm_OrderingModeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_OrderingModeDecl18.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:364:11: pm_EmptyOrderDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_EmptyOrderDecl_in_p_Setter1388); + pm_EmptyOrderDecl19=this.pm_EmptyOrderDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_EmptyOrderDecl19.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:365:11: {...}? => pm_RevalidationDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_Setter", "this.lc(XQU)"); + } + this.pushFollow(XQueryParser.FOLLOW_pm_RevalidationDecl_in_p_Setter1403); + pm_RevalidationDecl20=this.pm_RevalidationDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_RevalidationDecl20.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:366:11: pm_CopyNamespacesDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CopyNamespacesDecl_in_p_Setter1415); + pm_CopyNamespacesDecl21=this.pm_CopyNamespacesDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CopyNamespacesDecl21.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:367:11: pm_DecimalFormatDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_DecimalFormatDecl_in_p_Setter1427); + pm_DecimalFormatDecl22=this.pm_DecimalFormatDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_DecimalFormatDecl22.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_BoundarySpaceDecl_return: (function() { + XQueryParser.pm_BoundarySpaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_BoundarySpaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:371:1: pm_BoundarySpaceDecl : k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON ; + // $ANTLR start "pm_BoundarySpaceDecl" + pm_BoundarySpaceDecl: function() { + var retval = new XQueryParser.pm_BoundarySpaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON23 = null; + + var k_tree=null; + var SEMICOLON23_tree=null; + + try { + // xquery/XQueryParser.g:372:9: (k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON ) + // xquery/XQueryParser.g:372:11: k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_BoundarySpaceDecl1459); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BOUNDARY_SPACE,XQueryParser.FOLLOW_BOUNDARY_SPACE_in_pm_BoundarySpaceDecl1465); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:372:68: ( (k= PRESERVE ) | (k= STRIP ) ) + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0==PRESERVE) ) { + alt10=1; + } + else if ( (LA10_0==STRIP) ) { + alt10=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 0, this.input); + + throw nvae; + } + switch (alt10) { + case 1 : + // xquery/XQueryParser.g:372:70: (k= PRESERVE ) + // xquery/XQueryParser.g:372:70: (k= PRESERVE ) + // xquery/XQueryParser.g:372:71: k= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_pm_BoundarySpaceDecl1474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + case 2 : + // xquery/XQueryParser.g:372:100: (k= STRIP ) + // xquery/XQueryParser.g:372:100: (k= STRIP ) + // xquery/XQueryParser.g:372:101: k= STRIP + k=this.match(this.input,STRIP,XQueryParser.FOLLOW_STRIP_in_pm_BoundarySpaceDecl1484); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + + } + + SEMICOLON23=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_BoundarySpaceDecl1491); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON23_tree = this.adaptor.create(SEMICOLON23); + this.adaptor.addChild(root_0, SEMICOLON23_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DefaultCollationDecl_return: (function() { + XQueryParser.pm_DefaultCollationDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DefaultCollationDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:376:1: pm_DefaultCollationDecl : k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_DefaultCollationDecl" + pm_DefaultCollationDecl: function() { + var retval = new XQueryParser.pm_DefaultCollationDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON25 = null; + var p_StringLiteral24 = null; + + var k_tree=null; + var SEMICOLON25_tree=null; + + try { + // xquery/XQueryParser.g:377:9: (k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:377:11: k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DefaultCollationDecl1519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DefaultCollationDecl1525); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_pm_DefaultCollationDecl1531); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DefaultCollationDecl1535); + p_StringLiteral24=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral24.getTree()); + SEMICOLON25=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DefaultCollationDecl1537); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON25_tree = this.adaptor.create(SEMICOLON25); + this.adaptor.addChild(root_0, SEMICOLON25_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_BaseURIDecl_return: (function() { + XQueryParser.pm_BaseURIDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_BaseURIDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:381:1: pm_BaseURIDecl : k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON -> ^( BaseURIDecl $sl) ; + // $ANTLR start "pm_BaseURIDecl" + pm_BaseURIDecl: function() { + var retval = new XQueryParser.pm_BaseURIDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON26 = null; + var sl = null; + + var k_tree=null; + var SEMICOLON26_tree=null; + var stream_DECLARE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DECLARE"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_BASE_URI=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BASE_URI"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:382:9: (k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON -> ^( BaseURIDecl $sl) ) + // xquery/XQueryParser.g:382:11: k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_BaseURIDecl1573); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DECLARE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BASE_URI,XQueryParser.FOLLOW_BASE_URI_in_pm_BaseURIDecl1579); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BASE_URI.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_BaseURIDecl1585); + sl=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(sl.getTree()); + SEMICOLON26=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_BaseURIDecl1587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON26); + + + + // AST REWRITE + // elements: sl + // token labels: + // rule labels: sl, retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_sl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token sl",sl!=null?sl.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 383:17: -> ^( BaseURIDecl $sl) + { + // xquery/XQueryParser.g:383:20: ^( BaseURIDecl $sl) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(BaseURIDecl, "BaseURIDecl"), root_1); + + this.adaptor.addChild(root_1, stream_sl.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ConstructionDecl_return: (function() { + XQueryParser.pm_ConstructionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ConstructionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:387:1: pm_ConstructionDecl : k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON ; + // $ANTLR start "pm_ConstructionDecl" + pm_ConstructionDecl: function() { + var retval = new XQueryParser.pm_ConstructionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON27 = null; + + var k_tree=null; + var SEMICOLON27_tree=null; + + try { + // xquery/XQueryParser.g:388:9: (k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON ) + // xquery/XQueryParser.g:388:11: k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_ConstructionDecl1640); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONSTRUCTION,XQueryParser.FOLLOW_CONSTRUCTION_in_pm_ConstructionDecl1646); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:388:66: ( (k= STRIP | k= PRESERVE ) ) + // xquery/XQueryParser.g:388:68: (k= STRIP | k= PRESERVE ) + // xquery/XQueryParser.g:388:68: (k= STRIP | k= PRESERVE ) + var alt11=2; + var LA11_0 = this.input.LA(1); + + if ( (LA11_0==STRIP) ) { + alt11=1; + } + else if ( (LA11_0==PRESERVE) ) { + alt11=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 11, 0, this.input); + + throw nvae; + } + switch (alt11) { + case 1 : + // xquery/XQueryParser.g:388:69: k= STRIP + k=this.match(this.input,STRIP,XQueryParser.FOLLOW_STRIP_in_pm_ConstructionDecl1655); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:388:79: k= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_pm_ConstructionDecl1661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON27=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ConstructionDecl1668); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON27_tree = this.adaptor.create(SEMICOLON27); + this.adaptor.addChild(root_0, SEMICOLON27_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_OrderingModeDecl_return: (function() { + XQueryParser.pm_OrderingModeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_OrderingModeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:392:1: pm_OrderingModeDecl : k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON ; + // $ANTLR start "pm_OrderingModeDecl" + pm_OrderingModeDecl: function() { + var retval = new XQueryParser.pm_OrderingModeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON28 = null; + + var k_tree=null; + var SEMICOLON28_tree=null; + + try { + // xquery/XQueryParser.g:393:9: (k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON ) + // xquery/XQueryParser.g:393:11: k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_OrderingModeDecl1696); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ORDERING,XQueryParser.FOLLOW_ORDERING_in_pm_OrderingModeDecl1702); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:393:62: ( (k= ORDERED | k= UNORDERED ) ) + // xquery/XQueryParser.g:393:64: (k= ORDERED | k= UNORDERED ) + // xquery/XQueryParser.g:393:64: (k= ORDERED | k= UNORDERED ) + var alt12=2; + var LA12_0 = this.input.LA(1); + + if ( (LA12_0==ORDERED) ) { + alt12=1; + } + else if ( (LA12_0==UNORDERED) ) { + alt12=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 12, 0, this.input); + + throw nvae; + } + switch (alt12) { + case 1 : + // xquery/XQueryParser.g:393:65: k= ORDERED + k=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_pm_OrderingModeDecl1711); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:393:77: k= UNORDERED + k=this.match(this.input,UNORDERED,XQueryParser.FOLLOW_UNORDERED_in_pm_OrderingModeDecl1717); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON28=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_OrderingModeDecl1724); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON28_tree = this.adaptor.create(SEMICOLON28); + this.adaptor.addChild(root_0, SEMICOLON28_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_EmptyOrderDecl_return: (function() { + XQueryParser.pm_EmptyOrderDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_EmptyOrderDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:397:1: pm_EmptyOrderDecl : k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON ; + // $ANTLR start "pm_EmptyOrderDecl" + pm_EmptyOrderDecl: function() { + var retval = new XQueryParser.pm_EmptyOrderDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON29 = null; + + var k_tree=null; + var SEMICOLON29_tree=null; + + try { + // xquery/XQueryParser.g:398:9: (k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON ) + // xquery/XQueryParser.g:398:11: k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_EmptyOrderDecl1752); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_EmptyOrderDecl1758); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_pm_EmptyOrderDecl1764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_pm_EmptyOrderDecl1770); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:398:107: ( (k= GREATEST | k= LEAST ) ) + // xquery/XQueryParser.g:398:109: (k= GREATEST | k= LEAST ) + // xquery/XQueryParser.g:398:109: (k= GREATEST | k= LEAST ) + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0==GREATEST) ) { + alt13=1; + } + else if ( (LA13_0==LEAST) ) { + alt13=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 13, 0, this.input); + + throw nvae; + } + switch (alt13) { + case 1 : + // xquery/XQueryParser.g:398:110: k= GREATEST + k=this.match(this.input,GREATEST,XQueryParser.FOLLOW_GREATEST_in_pm_EmptyOrderDecl1779); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:398:123: k= LEAST + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_pm_EmptyOrderDecl1785); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON29=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_EmptyOrderDecl1792); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON29_tree = this.adaptor.create(SEMICOLON29); + this.adaptor.addChild(root_0, SEMICOLON29_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CopyNamespacesDecl_return: (function() { + XQueryParser.pm_CopyNamespacesDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CopyNamespacesDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:402:1: pm_CopyNamespacesDecl : k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON ; + // $ANTLR start "pm_CopyNamespacesDecl" + pm_CopyNamespacesDecl: function() { + var retval = new XQueryParser.pm_CopyNamespacesDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA31 = null; + var SEMICOLON33 = null; + var p_PreserveMode30 = null; + var p_InheritMode32 = null; + + var k_tree=null; + var COMMA31_tree=null; + var SEMICOLON33_tree=null; + + try { + // xquery/XQueryParser.g:403:9: (k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON ) + // xquery/XQueryParser.g:403:11: k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_CopyNamespacesDecl1820); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COPY_NAMESPACES,XQueryParser.FOLLOW_COPY_NAMESPACES_in_pm_CopyNamespacesDecl1826); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PreserveMode_in_pm_CopyNamespacesDecl1830); + p_PreserveMode30=this.p_PreserveMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PreserveMode30.getTree()); + COMMA31=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_CopyNamespacesDecl1832); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA31_tree = this.adaptor.create(COMMA31); + this.adaptor.addChild(root_0, COMMA31_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_InheritMode_in_pm_CopyNamespacesDecl1834); + p_InheritMode32=this.p_InheritMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InheritMode32.getTree()); + SEMICOLON33=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_CopyNamespacesDecl1836); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON33_tree = this.adaptor.create(SEMICOLON33); + this.adaptor.addChild(root_0, SEMICOLON33_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PreserveMode_return: (function() { + XQueryParser.p_PreserveMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PreserveMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:407:1: p_PreserveMode : (k+= PRESERVE | k+= NO_PRESERVE ) ; + // $ANTLR start "p_PreserveMode" + p_PreserveMode: function() { + var retval = new XQueryParser.p_PreserveMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:408:9: ( (k+= PRESERVE | k+= NO_PRESERVE ) ) + // xquery/XQueryParser.g:408:11: (k+= PRESERVE | k+= NO_PRESERVE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:408:11: (k+= PRESERVE | k+= NO_PRESERVE ) + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( (LA14_0==PRESERVE) ) { + alt14=1; + } + else if ( (LA14_0==NO_PRESERVE) ) { + alt14=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 14, 0, this.input); + + throw nvae; + } + switch (alt14) { + case 1 : + // xquery/XQueryParser.g:408:12: k+= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_p_PreserveMode1865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:408:26: k+= NO_PRESERVE + k=this.match(this.input,NO_PRESERVE,XQueryParser.FOLLOW_NO_PRESERVE_in_p_PreserveMode1871); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InheritMode_return: (function() { + XQueryParser.p_InheritMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InheritMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:412:1: p_InheritMode : (k+= INHERIT | k+= NO_INHERIT ) ; + // $ANTLR start "p_InheritMode" + p_InheritMode: function() { + var retval = new XQueryParser.p_InheritMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:413:9: ( (k+= INHERIT | k+= NO_INHERIT ) ) + // xquery/XQueryParser.g:413:11: (k+= INHERIT | k+= NO_INHERIT ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:413:11: (k+= INHERIT | k+= NO_INHERIT ) + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( (LA15_0==INHERIT) ) { + alt15=1; + } + else if ( (LA15_0==NO_INHERIT) ) { + alt15=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 15, 0, this.input); + + throw nvae; + } + switch (alt15) { + case 1 : + // xquery/XQueryParser.g:413:12: k+= INHERIT + k=this.match(this.input,INHERIT,XQueryParser.FOLLOW_INHERIT_in_p_InheritMode1903); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:413:25: k+= NO_INHERIT + k=this.match(this.input,NO_INHERIT,XQueryParser.FOLLOW_NO_INHERIT_in_p_InheritMode1909); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DecimalFormatDecl_return: (function() { + XQueryParser.pm_DecimalFormatDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DecimalFormatDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:417:1: pm_DecimalFormatDecl : k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON ; + // $ANTLR start "pm_DecimalFormatDecl" + pm_DecimalFormatDecl: function() { + var retval = new XQueryParser.pm_DecimalFormatDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL36 = null; + var SEMICOLON38 = null; + var p_QName34 = null; + var p_DFPropertyName35 = null; + var p_StringLiteral37 = null; + + var k_tree=null; + var EQUAL36_tree=null; + var SEMICOLON38_tree=null; + + try { + // xquery/XQueryParser.g:418:9: (k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON ) + // xquery/XQueryParser.g:418:11: k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DecimalFormatDecl1948); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:418:36: ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) + var alt16=2; + var LA16_0 = this.input.LA(1); + + if ( (LA16_0==DECIMAL_FORMAT) ) { + alt16=1; + } + else if ( (LA16_0==DEFAULT) ) { + alt16=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 16, 0, this.input); + + throw nvae; + } + switch (alt16) { + case 1 : + // xquery/XQueryParser.g:418:37: (k= DECIMAL_FORMAT p_QName ) + // xquery/XQueryParser.g:418:37: (k= DECIMAL_FORMAT p_QName ) + // xquery/XQueryParser.g:418:38: k= DECIMAL_FORMAT p_QName + k=this.match(this.input,DECIMAL_FORMAT,XQueryParser.FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1956); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_DecimalFormatDecl1960); + p_QName34=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName34.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:418:81: (k= DEFAULT k= DECIMAL_FORMAT ) + // xquery/XQueryParser.g:418:81: (k= DEFAULT k= DECIMAL_FORMAT ) + // xquery/XQueryParser.g:418:82: k= DEFAULT k= DECIMAL_FORMAT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DecimalFormatDecl1968); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DECIMAL_FORMAT,XQueryParser.FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + + } + + // xquery/XQueryParser.g:418:141: ( p_DFPropertyName EQUAL p_StringLiteral )* + loop17: + do { + var alt17=2; + var LA17_0 = this.input.LA(1); + + if ( ((LA17_0>=DECIMAL_SEPARATOR && LA17_0<=DIGIT)||(LA17_0>=GROUPING_SEPARATOR && LA17_0<=MINUS_SIGN)||LA17_0==NAN||(LA17_0>=PATTERN_SEPARATOR && LA17_0<=PER_MILLE)||LA17_0==ZERO_DIGIT) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // xquery/XQueryParser.g:418:142: p_DFPropertyName EQUAL p_StringLiteral + this.pushFollow(XQueryParser.FOLLOW_p_DFPropertyName_in_pm_DecimalFormatDecl1981); + p_DFPropertyName35=this.p_DFPropertyName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DFPropertyName35.getTree()); + EQUAL36=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_DecimalFormatDecl1983); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + EQUAL36_tree = this.adaptor.create(EQUAL36); + this.adaptor.addChild(root_0, EQUAL36_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DecimalFormatDecl1985); + p_StringLiteral37=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral37.getTree()); + + + break; + + default : + break loop17; + } + } while (true); + + SEMICOLON38=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DecimalFormatDecl1989); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON38_tree = this.adaptor.create(SEMICOLON38); + this.adaptor.addChild(root_0, SEMICOLON38_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DFPropertyName_return: (function() { + XQueryParser.p_DFPropertyName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DFPropertyName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:422:1: p_DFPropertyName : (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) ; + // $ANTLR start "p_DFPropertyName" + p_DFPropertyName: function() { + var retval = new XQueryParser.p_DFPropertyName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:423:9: ( (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) ) + // xquery/XQueryParser.g:423:11: (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:423:11: (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) + var alt18=10; + switch ( this.input.LA(1) ) { + case DECIMAL_SEPARATOR: + alt18=1; + break; + case GROUPING_SEPARATOR: + alt18=2; + break; + case INFINITY: + alt18=3; + break; + case MINUS_SIGN: + alt18=4; + break; + case NAN: + alt18=5; + break; + case PERCENT: + alt18=6; + break; + case PER_MILLE: + alt18=7; + break; + case ZERO_DIGIT: + alt18=8; + break; + case DIGIT: + alt18=9; + break; + case PATTERN_SEPARATOR: + alt18=10; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 18, 0, this.input); + + throw nvae; + } + + switch (alt18) { + case 1 : + // xquery/XQueryParser.g:423:12: k= DECIMAL_SEPARATOR + k=this.match(this.input,DECIMAL_SEPARATOR,XQueryParser.FOLLOW_DECIMAL_SEPARATOR_in_p_DFPropertyName2018); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:423:34: k= GROUPING_SEPARATOR + k=this.match(this.input,GROUPING_SEPARATOR,XQueryParser.FOLLOW_GROUPING_SEPARATOR_in_p_DFPropertyName2024); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:423:57: k= INFINITY + k=this.match(this.input,INFINITY,XQueryParser.FOLLOW_INFINITY_in_p_DFPropertyName2030); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:423:70: k= MINUS_SIGN + k=this.match(this.input,MINUS_SIGN,XQueryParser.FOLLOW_MINUS_SIGN_in_p_DFPropertyName2036); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:423:85: k= NAN + k=this.match(this.input,NAN,XQueryParser.FOLLOW_NAN_in_p_DFPropertyName2042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:423:93: k= PERCENT + k=this.match(this.input,PERCENT,XQueryParser.FOLLOW_PERCENT_in_p_DFPropertyName2048); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 7 : + // xquery/XQueryParser.g:423:105: k= PER_MILLE + k=this.match(this.input,PER_MILLE,XQueryParser.FOLLOW_PER_MILLE_in_p_DFPropertyName2054); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 8 : + // xquery/XQueryParser.g:423:119: k= ZERO_DIGIT + k=this.match(this.input,ZERO_DIGIT,XQueryParser.FOLLOW_ZERO_DIGIT_in_p_DFPropertyName2060); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 9 : + // xquery/XQueryParser.g:423:134: k= DIGIT + k=this.match(this.input,DIGIT,XQueryParser.FOLLOW_DIGIT_in_p_DFPropertyName2066); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 10 : + // xquery/XQueryParser.g:423:144: k= PATTERN_SEPARATOR + k=this.match(this.input,PATTERN_SEPARATOR,XQueryParser.FOLLOW_PATTERN_SEPARATOR_in_p_DFPropertyName2072); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Import_return: (function() { + XQueryParser.p_Import_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Import_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:427:1: p_Import : ( pm_SchemaImport | pm_ModuleImport ); + // $ANTLR start "p_Import" + p_Import: function() { + var retval = new XQueryParser.p_Import_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_SchemaImport39 = null; + var pm_ModuleImport40 = null; + + + try { + // xquery/XQueryParser.g:428:9: ( pm_SchemaImport | pm_ModuleImport ) + var alt19=2; + var LA19_0 = this.input.LA(1); + + if ( (LA19_0==IMPORT) ) { + var LA19_1 = this.input.LA(2); + + if ( (LA19_1==SCHEMA) ) { + alt19=1; + } + else if ( (LA19_1==MODULE) ) { + alt19=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 19, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 19, 0, this.input); + + throw nvae; + } + switch (alt19) { + case 1 : + // xquery/XQueryParser.g:428:11: pm_SchemaImport + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_SchemaImport_in_p_Import2101); + pm_SchemaImport39=this.pm_SchemaImport(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_SchemaImport39.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:428:29: pm_ModuleImport + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ModuleImport_in_p_Import2105); + pm_ModuleImport40=this.pm_ModuleImport(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ModuleImport40.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_SchemaImport_return: (function() { + XQueryParser.pm_SchemaImport_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_SchemaImport_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:432:1: pm_SchemaImport : k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) ; + // $ANTLR start "pm_SchemaImport" + pm_SchemaImport: function() { + var retval = new XQueryParser.pm_SchemaImport_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA41 = null; + var SEMICOLON42 = null; + var list_ah=null; + var sp = null; + var us = null; + var ah = null; + var k_tree=null; + var COMMA41_tree=null; + var SEMICOLON42_tree=null; + var stream_AT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AT"); + var stream_IMPORT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token IMPORT"); + var stream_SCHEMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SCHEMA"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_p_SchemaPrefix=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SchemaPrefix"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:433:9: (k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) ) + // xquery/XQueryParser.g:433:11: k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON + k=this.match(this.input,IMPORT,XQueryParser.FOLLOW_IMPORT_in_pm_SchemaImport2141); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_IMPORT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,SCHEMA,XQueryParser.FOLLOW_SCHEMA_in_pm_SchemaImport2147); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SCHEMA.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:433:61: (sp= p_SchemaPrefix )? + var alt20=2; + var LA20_0 = this.input.LA(1); + + if ( (LA20_0==DEFAULT||LA20_0==NAMESPACE) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // xquery/XQueryParser.g:433:61: sp= p_SchemaPrefix + this.pushFollow(XQueryParser.FOLLOW_p_SchemaPrefix_in_pm_SchemaImport2153); + sp=this.p_SchemaPrefix(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SchemaPrefix.add(sp.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2158); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + // xquery/XQueryParser.g:433:97: (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? + var alt22=2; + var LA22_0 = this.input.LA(1); + + if ( (LA22_0==AT) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // xquery/XQueryParser.g:433:98: k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_pm_SchemaImport2163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2169); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + // xquery/XQueryParser.g:433:138: ( COMMA ah+= p_StringLiteral )* + loop21: + do { + var alt21=2; + var LA21_0 = this.input.LA(1); + + if ( (LA21_0==COMMA) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // xquery/XQueryParser.g:433:139: COMMA ah+= p_StringLiteral + COMMA41=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_SchemaImport2172); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA41); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2176); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + + + break; + + default : + break loop21; + } + } while (true); + + + + break; + + } + + SEMICOLON42=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_SchemaImport2182); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON42); + + + + // AST REWRITE + // elements: sp, ah, us + // token labels: + // rule labels: retval, sp, us + // token list labels: + // rule list labels: ah + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_sp=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token sp",sp!=null?sp.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + var stream_ah=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ah",list_ah); + root_0 = this.adaptor.nil(); + // 434:17: -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) + { + // xquery/XQueryParser.g:434:20: ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SchemaImport, "SchemaImport"), root_1); + + // xquery/XQueryParser.g:434:35: ^( SchemaPrefix ( $sp)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(SchemaPrefix, "SchemaPrefix"), root_2); + + // xquery/XQueryParser.g:434:50: ( $sp)? + if ( stream_sp.hasNext() ) { + this.adaptor.addChild(root_2, stream_sp.nextTree()); + + } + stream_sp.reset(); + + this.adaptor.addChild(root_1, root_2); + } + this.adaptor.addChild(root_1, stream_us.nextTree()); + // xquery/XQueryParser.g:434:60: ^( AtHints ( $ah)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(AtHints, "AtHints"), root_2); + + // xquery/XQueryParser.g:434:70: ( $ah)* + while ( stream_ah.hasNext() ) { + this.adaptor.addChild(root_2, stream_ah.nextTree()); + + } + stream_ah.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaPrefix_return: (function() { + XQueryParser.p_SchemaPrefix_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaPrefix_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:438:1: p_SchemaPrefix : (k= NAMESPACE nn= p_NCName EQUAL -> ^( NamespaceName $nn) | k= DEFAULT k= ELEMENT k= NAMESPACE -> DefaultElementNamespace ); + // $ANTLR start "p_SchemaPrefix" + p_SchemaPrefix: function() { + var retval = new XQueryParser.p_SchemaPrefix_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL43 = null; + var nn = null; + + var k_tree=null; + var EQUAL43_tree=null; + var stream_ELEMENT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ELEMENT"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_DEFAULT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DEFAULT"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + try { + // xquery/XQueryParser.g:439:9: (k= NAMESPACE nn= p_NCName EQUAL -> ^( NamespaceName $nn) | k= DEFAULT k= ELEMENT k= NAMESPACE -> DefaultElementNamespace ) + var alt23=2; + var LA23_0 = this.input.LA(1); + + if ( (LA23_0==NAMESPACE) ) { + alt23=1; + } + else if ( (LA23_0==DEFAULT) ) { + alt23=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 23, 0, this.input); + + throw nvae; + } + switch (alt23) { + case 1 : + // xquery/XQueryParser.g:439:11: k= NAMESPACE nn= p_NCName EQUAL + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_SchemaPrefix2252); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_SchemaPrefix2258); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL43=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_SchemaPrefix2260); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL43); + + + + // AST REWRITE + // elements: nn + // token labels: + // rule labels: retval, nn + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + + root_0 = this.adaptor.nil(); + // 440:17: -> ^( NamespaceName $nn) + { + // xquery/XQueryParser.g:440:20: ^( NamespaceName $nn) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceName, "NamespaceName"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:441:11: k= DEFAULT k= ELEMENT k= NAMESPACE + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SchemaPrefix2299); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DEFAULT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_p_SchemaPrefix2305); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ELEMENT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_SchemaPrefix2311); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 442:17: -> DefaultElementNamespace + { + this.adaptor.addChild(root_0, this.adaptor.create(DefaultElementNamespace, "DefaultElementNamespace")); + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ModuleImport_return: (function() { + XQueryParser.pm_ModuleImport_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ModuleImport_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:446:1: pm_ModuleImport : k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) ; + // $ANTLR start "pm_ModuleImport" + pm_ModuleImport: function() { + var retval = new XQueryParser.pm_ModuleImport_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL44 = null; + var COMMA45 = null; + var SEMICOLON46 = null; + var list_ah=null; + var nn = null; + var us = null; + var ah = null; + var k_tree=null; + var EQUAL44_tree=null; + var COMMA45_tree=null; + var SEMICOLON46_tree=null; + var stream_AT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AT"); + var stream_IMPORT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token IMPORT"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_MODULE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MODULE"); + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:447:9: (k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) ) + // xquery/XQueryParser.g:447:11: k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON + k=this.match(this.input,IMPORT,XQueryParser.FOLLOW_IMPORT_in_pm_ModuleImport2361); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_IMPORT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,MODULE,XQueryParser.FOLLOW_MODULE_in_pm_ModuleImport2367); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MODULE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:447:59: (k= NAMESPACE nn= p_NCName EQUAL )? + var alt24=2; + var LA24_0 = this.input.LA(1); + + if ( (LA24_0==NAMESPACE) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // xquery/XQueryParser.g:447:60: k= NAMESPACE nn= p_NCName EQUAL + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_ModuleImport2374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_ModuleImport2380); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL44=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_ModuleImport2382); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL44); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2388); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + // xquery/XQueryParser.g:447:126: (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? + var alt26=2; + var LA26_0 = this.input.LA(1); + + if ( (LA26_0==AT) ) { + alt26=1; + } + switch (alt26) { + case 1 : + // xquery/XQueryParser.g:447:127: k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_pm_ModuleImport2393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2399); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + // xquery/XQueryParser.g:447:167: ( COMMA ah+= p_StringLiteral )* + loop25: + do { + var alt25=2; + var LA25_0 = this.input.LA(1); + + if ( (LA25_0==COMMA) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // xquery/XQueryParser.g:447:168: COMMA ah+= p_StringLiteral + COMMA45=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_ModuleImport2402); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA45); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2406); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + + + break; + + default : + break loop25; + } + } while (true); + + + + break; + + } + + SEMICOLON46=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ModuleImport2412); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON46); + + + + // AST REWRITE + // elements: ah, nn, us + // token labels: + // rule labels: retval, nn, us + // token list labels: + // rule list labels: ah + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + var stream_ah=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ah",list_ah); + root_0 = this.adaptor.nil(); + // 448:17: -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) + { + // xquery/XQueryParser.g:448:20: ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ModuleImport, "ModuleImport"), root_1); + + // xquery/XQueryParser.g:448:35: ^( NamespaceName ( $nn)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceName, "NamespaceName"), root_2); + + // xquery/XQueryParser.g:448:51: ( $nn)? + if ( stream_nn.hasNext() ) { + this.adaptor.addChild(root_2, stream_nn.nextTree()); + + } + stream_nn.reset(); + + this.adaptor.addChild(root_1, root_2); + } + this.adaptor.addChild(root_1, stream_us.nextTree()); + // xquery/XQueryParser.g:448:61: ^( AtHints ( $ah)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(AtHints, "AtHints"), root_2); + + // xquery/XQueryParser.g:448:71: ( $ah)* + while ( stream_ah.hasNext() ) { + this.adaptor.addChild(root_2, stream_ah.nextTree()); + + } + stream_ah.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_NamespaceDecl_return: (function() { + XQueryParser.pm_NamespaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_NamespaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:452:1: pm_NamespaceDecl : k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON -> ^( NamespaceDecl $nn $us) ; + // $ANTLR start "pm_NamespaceDecl" + pm_NamespaceDecl: function() { + var retval = new XQueryParser.pm_NamespaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL47 = null; + var SEMICOLON48 = null; + var nn = null; + var us = null; + + var k_tree=null; + var EQUAL47_tree=null; + var SEMICOLON48_tree=null; + var stream_DECLARE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DECLARE"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:453:9: (k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON -> ^( NamespaceDecl $nn $us) ) + // xquery/XQueryParser.g:453:11: k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_NamespaceDecl2481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DECLARE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_NamespaceDecl2487); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_NamespaceDecl2493); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL47=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_NamespaceDecl2495); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL47); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_NamespaceDecl2499); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + SEMICOLON48=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_NamespaceDecl2501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON48); + + + + // AST REWRITE + // elements: nn, us + // token labels: + // rule labels: retval, nn, us + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + + root_0 = this.adaptor.nil(); + // 454:17: -> ^( NamespaceDecl $nn $us) + { + // xquery/XQueryParser.g:454:20: ^( NamespaceDecl $nn $us) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceDecl, "NamespaceDecl"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + this.adaptor.addChild(root_1, stream_us.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DefaultNamespaceDecl_return: (function() { + XQueryParser.pm_DefaultNamespaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DefaultNamespaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:458:1: pm_DefaultNamespaceDecl : k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_DefaultNamespaceDecl" + pm_DefaultNamespaceDecl: function() { + var retval = new XQueryParser.pm_DefaultNamespaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON50 = null; + var p_StringLiteral49 = null; + + var k_tree=null; + var SEMICOLON50_tree=null; + + try { + // xquery/XQueryParser.g:459:9: (k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:459:11: k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DefaultNamespaceDecl2558); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DefaultNamespaceDecl2564); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:459:61: (k= ELEMENT | k= FUNCTION ) + var alt27=2; + var LA27_0 = this.input.LA(1); + + if ( (LA27_0==ELEMENT) ) { + alt27=1; + } + else if ( (LA27_0==FUNCTION) ) { + alt27=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 27, 0, this.input); + + throw nvae; + } + switch (alt27) { + case 1 : + // xquery/XQueryParser.g:459:62: k= ELEMENT + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_pm_DefaultNamespaceDecl2571); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:459:74: k= FUNCTION + k=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_pm_DefaultNamespaceDecl2577); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_DefaultNamespaceDecl2584); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DefaultNamespaceDecl2588); + p_StringLiteral49=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral49.getTree()); + SEMICOLON50=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DefaultNamespaceDecl2590); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON50_tree = this.adaptor.create(SEMICOLON50); + this.adaptor.addChild(root_0, SEMICOLON50_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_AnnotatedDecl_return: (function() { + XQueryParser.pm_AnnotatedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_AnnotatedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:463:1: pm_AnnotatedDecl : k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON ; + // $ANTLR start "pm_AnnotatedDecl" + pm_AnnotatedDecl: function() { + var retval = new XQueryParser.pm_AnnotatedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON53 = null; + var p_Annotation51 = null; + var pg_AnnotatedDecl52 = null; + + var k_tree=null; + var SEMICOLON53_tree=null; + + try { + // xquery/XQueryParser.g:464:9: (k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON ) + // xquery/XQueryParser.g:464:11: k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_AnnotatedDecl2618); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:464:36: ( p_Annotation )* + loop28: + do { + var alt28=2; + var LA28_0 = this.input.LA(1); + + if ( (LA28_0==ANN_PERCENT) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // xquery/XQueryParser.g:464:36: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_pm_AnnotatedDecl2622); + p_Annotation51=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation51.getTree()); + + + break; + + default : + break loop28; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_pg_AnnotatedDecl_in_pm_AnnotatedDecl2625); + pg_AnnotatedDecl52=this.pg_AnnotatedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_AnnotatedDecl52.getTree()); + SEMICOLON53=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_AnnotatedDecl2627); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON53_tree = this.adaptor.create(SEMICOLON53); + this.adaptor.addChild(root_0, SEMICOLON53_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_AnnotatedDecl_return: (function() { + XQueryParser.pg_AnnotatedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_AnnotatedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:466:1: pg_AnnotatedDecl : ( p_VarDecl | pm_FunctionDecl | {...}? => p_CollectionDecl | {...}? => p_IndexDecl | {...}? => p_ICDecl ); + // $ANTLR start "pg_AnnotatedDecl" + pg_AnnotatedDecl: function() { + var retval = new XQueryParser.pg_AnnotatedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_VarDecl54 = null; + var pm_FunctionDecl55 = null; + var p_CollectionDecl56 = null; + var p_IndexDecl57 = null; + var p_ICDecl58 = null; + + + try { + // xquery/XQueryParser.g:467:9: ( p_VarDecl | pm_FunctionDecl | {...}? => p_CollectionDecl | {...}? => p_IndexDecl | {...}? => p_ICDecl ) + var alt29=5; + var LA29_0 = this.input.LA(1); + + if ( (LA29_0==VARIABLE) ) { + alt29=1; + } + else if ( (LA29_0==UPDATING) && ((this.lc(XQU)))) { + alt29=2; + } + else if ( (LA29_0==FUNCTION) ) { + alt29=2; + } + else if ( (LA29_0==COLLECTION) && ((this.lc(ZORBA)))) { + alt29=3; + } + else if ( (LA29_0==INDEX) && ((this.lc(ZORBA)))) { + alt29=4; + } + else if ( (LA29_0==INTEGRITY) && ((this.lc(ZORBA)))) { + alt29=5; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 29, 0, this.input); + + throw nvae; + } + switch (alt29) { + case 1 : + // xquery/XQueryParser.g:467:11: p_VarDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDecl_in_pg_AnnotatedDecl2651); + p_VarDecl54=this.p_VarDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDecl54.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:468:11: pm_FunctionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_FunctionDecl_in_pg_AnnotatedDecl2663); + pm_FunctionDecl55=this.pm_FunctionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_FunctionDecl55.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:469:11: {...}? => p_CollectionDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_CollectionDecl_in_pg_AnnotatedDecl2678); + p_CollectionDecl56=this.p_CollectionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CollectionDecl56.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:470:11: {...}? => p_IndexDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexDecl_in_pg_AnnotatedDecl2693); + p_IndexDecl57=this.p_IndexDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexDecl57.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:471:11: {...}? => p_ICDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICDecl_in_pg_AnnotatedDecl2708); + p_ICDecl58=this.p_ICDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICDecl58.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Annotation_return: (function() { + XQueryParser.p_Annotation_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Annotation_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:475:1: p_Annotation : ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? ; + // $ANTLR start "p_Annotation" + p_Annotation: function() { + var retval = new XQueryParser.p_Annotation_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ANN_PERCENT59 = null; + var LPAREN61 = null; + var COMMA63 = null; + var RPAREN65 = null; + var p_QName60 = null; + var p_Literal62 = null; + var p_Literal64 = null; + + var ANN_PERCENT59_tree=null; + var LPAREN61_tree=null; + var COMMA63_tree=null; + var RPAREN65_tree=null; + + try { + // xquery/XQueryParser.g:476:9: ( ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? ) + // xquery/XQueryParser.g:476:11: ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? + root_0 = this.adaptor.nil(); + + ANN_PERCENT59=this.match(this.input,ANN_PERCENT,XQueryParser.FOLLOW_ANN_PERCENT_in_p_Annotation2734); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANN_PERCENT59_tree = this.adaptor.create(ANN_PERCENT59); + this.adaptor.addChild(root_0, ANN_PERCENT59_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_Annotation2736); + p_QName60=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName60.getTree()); + // xquery/XQueryParser.g:476:31: ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? + var alt31=2; + var LA31_0 = this.input.LA(1); + + if ( (LA31_0==LPAREN) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // xquery/XQueryParser.g:476:32: LPAREN p_Literal ( COMMA p_Literal )* RPAREN + LPAREN61=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_Annotation2739); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN61_tree = this.adaptor.create(LPAREN61); + this.adaptor.addChild(root_0, LPAREN61_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_Annotation2741); + p_Literal62=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal62.getTree()); + // xquery/XQueryParser.g:476:49: ( COMMA p_Literal )* + loop30: + do { + var alt30=2; + var LA30_0 = this.input.LA(1); + + if ( (LA30_0==COMMA) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // xquery/XQueryParser.g:476:50: COMMA p_Literal + COMMA63=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_Annotation2744); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA63_tree = this.adaptor.create(COMMA63); + this.adaptor.addChild(root_0, COMMA63_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_Annotation2746); + p_Literal64=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal64.getTree()); + + + break; + + default : + break loop30; + } + } while (true); + + RPAREN65=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_Annotation2750); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN65_tree = this.adaptor.create(RPAREN65); + this.adaptor.addChild(root_0, RPAREN65_tree); + } + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDecl_return: (function() { + XQueryParser.p_VarDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:480:1: p_VarDecl : k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) ; + // $ANTLR start "p_VarDecl" + p_VarDecl: function() { + var retval = new XQueryParser.p_VarDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var BIND66 = null; + var BIND67 = null; + var qn = null; + var td = null; + var vv = null; + var vdv = null; + + var k_tree=null; + var d_tree=null; + var BIND66_tree=null; + var BIND67_tree=null; + var stream_DOLLAR=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DOLLAR"); + var stream_EXTERNAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EXTERNAL"); + var stream_VARIABLE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token VARIABLE"); + var stream_BIND=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BIND"); + var stream_p_TypeDeclaration=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_TypeDeclaration"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + var stream_p_VarDefaultValue=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VarDefaultValue"); + var stream_p_VarValue=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VarValue"); + try { + // xquery/XQueryParser.g:481:9: (k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) ) + // xquery/XQueryParser.g:481:11: k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) + k=this.match(this.input,VARIABLE,XQueryParser.FOLLOW_VARIABLE_in_p_VarDecl2780); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_VARIABLE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDecl2786); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DOLLAR.add(d); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_VarDecl2790); + qn=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(qn.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (qn?qn.stop:null)); + } + // xquery/XQueryParser.g:481:86: (td= p_TypeDeclaration )? + var alt32=2; + var LA32_0 = this.input.LA(1); + + if ( (LA32_0==AS) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // xquery/XQueryParser.g:481:86: td= p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDecl2796); + td=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_TypeDeclaration.add(td.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:481:106: ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) + var alt34=2; + var LA34_0 = this.input.LA(1); + + if ( (LA34_0==BIND) ) { + alt34=1; + } + else if ( (LA34_0==EXTERNAL) ) { + alt34=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 34, 0, this.input); + + throw nvae; + } + switch (alt34) { + case 1 : + // xquery/XQueryParser.g:481:107: ( BIND vv= p_VarValue ) + // xquery/XQueryParser.g:481:107: ( BIND vv= p_VarValue ) + // xquery/XQueryParser.g:481:108: BIND vv= p_VarValue + BIND66=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDecl2801); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BIND.add(BIND66); + + this.pushFollow(XQueryParser.FOLLOW_p_VarValue_in_p_VarDecl2805); + vv=this.p_VarValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VarValue.add(vv.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:481:130: (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) + // xquery/XQueryParser.g:481:130: (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) + // xquery/XQueryParser.g:481:131: k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_p_VarDecl2813); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EXTERNAL.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:481:157: ( BIND vdv= p_VarDefaultValue )? + var alt33=2; + var LA33_0 = this.input.LA(1); + + if ( (LA33_0==BIND) ) { + alt33=1; + } + switch (alt33) { + case 1 : + // xquery/XQueryParser.g:481:158: BIND vdv= p_VarDefaultValue + BIND67=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDecl2818); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BIND.add(BIND67); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDefaultValue_in_p_VarDecl2822); + vdv=this.p_VarDefaultValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VarDefaultValue.add(vdv.getTree()); + + + break; + + } + + + + + + + break; + + } + + + + // AST REWRITE + // elements: qn, vdv, td, vv + // token labels: + // rule labels: qn, vv, retval, vdv, td + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_vv=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token vv",vv!=null?vv.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_vdv=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token vdv",vdv!=null?vdv.tree:null); + var stream_td=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token td",td!=null?td.tree:null); + + root_0 = this.adaptor.nil(); + // 482:17: -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) + { + // xquery/XQueryParser.g:482:20: ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(VarDecl, "VarDecl"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:482:34: ^( VarType ( $td)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VarType, "VarType"), root_2); + + // xquery/XQueryParser.g:482:44: ( $td)? + if ( stream_td.hasNext() ) { + this.adaptor.addChild(root_2, stream_td.nextTree()); + + } + stream_td.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:482:50: ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VarValue, "VarValue"), root_2); + + // xquery/XQueryParser.g:482:61: ( $vv)? + if ( stream_vv.hasNext() ) { + this.adaptor.addChild(root_2, stream_vv.nextTree()); + + } + stream_vv.reset(); + // xquery/XQueryParser.g:482:66: ^( VarDefaultValue ( $vdv)? ) + { + var root_3 = this.adaptor.nil(); + root_3 = this.adaptor.becomeRoot(this.adaptor.create(VarDefaultValue, "VarDefaultValue"), root_3); + + // xquery/XQueryParser.g:482:84: ( $vdv)? + if ( stream_vdv.hasNext() ) { + this.adaptor.addChild(root_3, stream_vdv.nextTree()); + + } + stream_vdv.reset(); + + this.adaptor.addChild(root_2, root_3); + } + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarValue_return: (function() { + XQueryParser.p_VarValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:486:1: p_VarValue : p_ExprSingle[true] ; + // $ANTLR start "p_VarValue" + p_VarValue: function() { + var retval = new XQueryParser.p_VarValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle68 = null; + + + try { + // xquery/XQueryParser.g:487:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:487:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarValue2901); + p_ExprSingle68=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle68.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDefaultValue_return: (function() { + XQueryParser.p_VarDefaultValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDefaultValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:491:1: p_VarDefaultValue : p_ExprSingle[true] ; + // $ANTLR start "p_VarDefaultValue" + p_VarDefaultValue: function() { + var retval = new XQueryParser.p_VarDefaultValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle69 = null; + + + try { + // xquery/XQueryParser.g:492:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:492:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDefaultValue2928); + p_ExprSingle69=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle69.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ContextItemDecl_return: (function() { + XQueryParser.pm_ContextItemDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ContextItemDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:496:1: pm_ContextItemDecl : k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON ; + // $ANTLR start "pm_ContextItemDecl" + pm_ContextItemDecl: function() { + var retval = new XQueryParser.pm_ContextItemDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var BIND71 = null; + var BIND73 = null; + var SEMICOLON75 = null; + var p_ItemType70 = null; + var p_VarValue72 = null; + var p_VarDefaultValue74 = null; + + var k_tree=null; + var BIND71_tree=null; + var BIND73_tree=null; + var SEMICOLON75_tree=null; + + try { + // xquery/XQueryParser.g:497:9: (k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON ) + // xquery/XQueryParser.g:497:11: k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_ContextItemDecl2957); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONTEXT,XQueryParser.FOLLOW_CONTEXT_in_pm_ContextItemDecl2963); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ITEM,XQueryParser.FOLLOW_ITEM_in_pm_ContextItemDecl2969); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:497:83: (k= AS p_ItemType )? + var alt35=2; + var LA35_0 = this.input.LA(1); + + if ( (LA35_0==AS) ) { + alt35=1; + } + switch (alt35) { + case 1 : + // xquery/XQueryParser.g:497:84: k= AS p_ItemType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_pm_ContextItemDecl2976); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_pm_ContextItemDecl2980); + p_ItemType70=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ItemType70.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:497:117: ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) + var alt37=2; + var LA37_0 = this.input.LA(1); + + if ( (LA37_0==BIND) ) { + alt37=1; + } + else if ( (LA37_0==EXTERNAL) ) { + alt37=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 37, 0, this.input); + + throw nvae; + } + switch (alt37) { + case 1 : + // xquery/XQueryParser.g:497:118: ( BIND p_VarValue ) + // xquery/XQueryParser.g:497:118: ( BIND p_VarValue ) + // xquery/XQueryParser.g:497:119: BIND p_VarValue + BIND71=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_pm_ContextItemDecl2986); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND71_tree = this.adaptor.create(BIND71); + this.adaptor.addChild(root_0, BIND71_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarValue_in_pm_ContextItemDecl2988); + p_VarValue72=this.p_VarValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarValue72.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:497:138: (k= EXTERNAL ( BIND p_VarDefaultValue )? ) + // xquery/XQueryParser.g:497:138: (k= EXTERNAL ( BIND p_VarDefaultValue )? ) + // xquery/XQueryParser.g:497:139: k= EXTERNAL ( BIND p_VarDefaultValue )? + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_pm_ContextItemDecl2996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:497:165: ( BIND p_VarDefaultValue )? + var alt36=2; + var LA36_0 = this.input.LA(1); + + if ( (LA36_0==BIND) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // xquery/XQueryParser.g:497:166: BIND p_VarDefaultValue + BIND73=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_pm_ContextItemDecl3001); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND73_tree = this.adaptor.create(BIND73); + this.adaptor.addChild(root_0, BIND73_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarDefaultValue_in_pm_ContextItemDecl3003); + p_VarDefaultValue74=this.p_VarDefaultValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDefaultValue74.getTree()); + + + break; + + } + + + + + + + break; + + } + + SEMICOLON75=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ContextItemDecl3009); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON75_tree = this.adaptor.create(SEMICOLON75); + this.adaptor.addChild(root_0, SEMICOLON75_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FunctionDecl_return: (function() { + XQueryParser.pm_FunctionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FunctionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:502:1: pm_FunctionDecl : ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) ; + // $ANTLR start "pm_FunctionDecl" + pm_FunctionDecl: function() { + var retval = new XQueryParser.pm_FunctionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN76 = null; + var RPAREN77 = null; + var LBRACKET78 = null; + var RBRACKET79 = null; + var qn = null; + var pl = null; + var st = null; + var soe = null; + + var k_tree=null; + var LPAREN76_tree=null; + var RPAREN77_tree=null; + var LBRACKET78_tree=null; + var RBRACKET79_tree=null; + var stream_FUNCTION=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token FUNCTION"); + var stream_LBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LBRACKET"); + var stream_AS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AS"); + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_EXTERNAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EXTERNAL"); + var stream_RBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RBRACKET"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_UPDATING=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token UPDATING"); + var stream_p_StatementsAndOptionalExpr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StatementsAndOptionalExpr"); + var stream_p_ParamList=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ParamList"); + var stream_pg_FQName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_FQName"); + var stream_p_SequenceType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SequenceType"); + try { + // xquery/XQueryParser.g:503:9: ( ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) ) + // xquery/XQueryParser.g:503:11: ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) + // xquery/XQueryParser.g:503:11: ({...}? =>k= UPDATING )? + var alt38=2; + var LA38_0 = this.input.LA(1); + + if ( (LA38_0==UPDATING) && ((this.lc(XQU)))) { + alt38=1; + } + switch (alt38) { + case 1 : + // xquery/XQueryParser.g:503:12: {...}? =>k= UPDATING + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pm_FunctionDecl", "this.lc(XQU)"); + } + k=this.match(this.input,UPDATING,XQueryParser.FOLLOW_UPDATING_in_pm_FunctionDecl3042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_UPDATING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + k=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_pm_FunctionDecl3050); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_FUNCTION.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_pg_FQName_in_pm_FunctionDecl3056); + qn=this.pg_FQName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_FQName.add(qn.getTree()); + LPAREN76=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_pm_FunctionDecl3058); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN76); + + // xquery/XQueryParser.g:503:106: (pl= p_ParamList )? + var alt39=2; + var LA39_0 = this.input.LA(1); + + if ( (LA39_0==DOLLAR) ) { + alt39=1; + } + switch (alt39) { + case 1 : + // xquery/XQueryParser.g:503:106: pl= p_ParamList + this.pushFollow(XQueryParser.FOLLOW_p_ParamList_in_pm_FunctionDecl3062); + pl=this.p_ParamList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ParamList.add(pl.getTree()); + + + break; + + } + + RPAREN77=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_pm_FunctionDecl3065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN77); + + // xquery/XQueryParser.g:503:127: (k= AS st= p_SequenceType )? + var alt40=2; + var LA40_0 = this.input.LA(1); + + if ( (LA40_0==AS) ) { + alt40=1; + } + switch (alt40) { + case 1 : + // xquery/XQueryParser.g:503:128: k= AS st= p_SequenceType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_pm_FunctionDecl3070); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AS.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_pm_FunctionDecl3076); + st=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SequenceType.add(st.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:503:168: ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) + var alt41=2; + var LA41_0 = this.input.LA(1); + + if ( (LA41_0==LBRACKET) ) { + alt41=1; + } + else if ( (LA41_0==EXTERNAL) ) { + alt41=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 41, 0, this.input); + + throw nvae; + } + switch (alt41) { + case 1 : + // xquery/XQueryParser.g:503:169: LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET + LBRACKET78=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_FunctionDecl3081); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LBRACKET.add(LBRACKET78); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_FunctionDecl3085); + soe=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StatementsAndOptionalExpr.add(soe.getTree()); + RBRACKET79=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_FunctionDecl3087); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RBRACKET.add(RBRACKET79); + + + + break; + case 2 : + // xquery/XQueryParser.g:503:221: k= EXTERNAL + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_pm_FunctionDecl3093); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EXTERNAL.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + + + // AST REWRITE + // elements: qn, soe, st, pl + // token labels: + // rule labels: soe, qn, retval, pl, st + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_soe=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token soe",soe!=null?soe.tree:null); + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_pl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token pl",pl!=null?pl.tree:null); + var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null); + + root_0 = this.adaptor.nil(); + // 504:17: -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) + { + // xquery/XQueryParser.g:504:20: ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(FunctionDecl, "FunctionDecl"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:504:39: ^( ParamList ( $pl)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(ParamList, "ParamList"), root_2); + + // xquery/XQueryParser.g:504:51: ( $pl)? + if ( stream_pl.hasNext() ) { + this.adaptor.addChild(root_2, stream_pl.nextTree()); + + } + stream_pl.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:504:57: ^( ReturnType ( $st)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(ReturnType, "ReturnType"), root_2); + + // xquery/XQueryParser.g:504:70: ( $st)? + if ( stream_st.hasNext() ) { + this.adaptor.addChild(root_2, stream_st.nextTree()); + + } + stream_st.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:504:76: ( $soe)? + if ( stream_soe.hasNext() ) { + this.adaptor.addChild(root_1, stream_soe.nextTree()); + + } + stream_soe.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParamList_return: (function() { + XQueryParser.p_ParamList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParamList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:508:1: p_ParamList : p+= p_Param ( COMMA p+= p_Param )* -> ( $p)+ ; + // $ANTLR start "p_ParamList" + p_ParamList: function() { + var retval = new XQueryParser.p_ParamList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA80 = null; + var list_p=null; + var p = null; + var COMMA80_tree=null; + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_p_Param=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Param"); + try { + // xquery/XQueryParser.g:509:9: (p+= p_Param ( COMMA p+= p_Param )* -> ( $p)+ ) + // xquery/XQueryParser.g:509:11: p+= p_Param ( COMMA p+= p_Param )* + this.pushFollow(XQueryParser.FOLLOW_p_Param_in_p_ParamList3170); + p=this.p_Param(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Param.add(p.getTree()); + if (org.antlr.lang.isNull(list_p)) list_p = []; + list_p.push(p.getTree()); + + // xquery/XQueryParser.g:509:22: ( COMMA p+= p_Param )* + loop42: + do { + var alt42=2; + var LA42_0 = this.input.LA(1); + + if ( (LA42_0==COMMA) ) { + alt42=1; + } + + + switch (alt42) { + case 1 : + // xquery/XQueryParser.g:509:23: COMMA p+= p_Param + COMMA80=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ParamList3173); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA80); + + this.pushFollow(XQueryParser.FOLLOW_p_Param_in_p_ParamList3177); + p=this.p_Param(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Param.add(p.getTree()); + if (org.antlr.lang.isNull(list_p)) list_p = []; + list_p.push(p.getTree()); + + + + break; + + default : + break loop42; + } + } while (true); + + + + // AST REWRITE + // elements: p + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: p + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_p=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token p",list_p); + root_0 = this.adaptor.nil(); + // 510:17: -> ( $p)+ + { + if ( !(stream_p.hasNext()) ) { + throw new org.antlr.runtime.tree.RewriteEarlyExitException(); + } + while ( stream_p.hasNext() ) { + this.adaptor.addChild(root_0, stream_p.nextTree()); + + } + stream_p.reset(); + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Param_return: (function() { + XQueryParser.p_Param_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Param_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:514:1: p_Param : d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? -> ^( Param $qn ( $td)? ) ; + // $ANTLR start "p_Param" + p_Param: function() { + var retval = new XQueryParser.p_Param_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var qn = null; + var td = null; + + var d_tree=null; + var stream_DOLLAR=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DOLLAR"); + var stream_p_TypeDeclaration=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_TypeDeclaration"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:515:9: (d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? -> ^( Param $qn ( $td)? ) ) + // xquery/XQueryParser.g:515:11: d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_Param3237); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DOLLAR.add(d); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_Param3241); + qn=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(qn.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (qn?qn.stop:null)); + } + // xquery/XQueryParser.g:515:60: (td= p_TypeDeclaration )? + var alt43=2; + var LA43_0 = this.input.LA(1); + + if ( (LA43_0==AS) ) { + alt43=1; + } + switch (alt43) { + case 1 : + // xquery/XQueryParser.g:515:60: td= p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_Param3247); + td=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_TypeDeclaration.add(td.getTree()); + + + break; + + } + + + + // AST REWRITE + // elements: qn, td + // token labels: + // rule labels: qn, retval, td + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_td=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token td",td!=null?td.tree:null); + + root_0 = this.adaptor.nil(); + // 516:17: -> ^( Param $qn ( $td)? ) + { + // xquery/XQueryParser.g:516:20: ^( Param $qn ( $td)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(Param, "Param"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:516:32: ( $td)? + if ( stream_td.hasNext() ) { + this.adaptor.addChild(root_1, stream_td.nextTree()); + + } + stream_td.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FunctionBody_return: (function() { + XQueryParser.pm_FunctionBody_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FunctionBody_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:520:1: pm_FunctionBody : p_EnclosedExpr ; + // $ANTLR start "pm_FunctionBody" + pm_FunctionBody: function() { + var retval = new XQueryParser.pm_FunctionBody_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_EnclosedExpr81 = null; + + + try { + // xquery/XQueryParser.g:521:9: ( p_EnclosedExpr ) + // xquery/XQueryParser.g:521:11: p_EnclosedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_EnclosedExpr_in_pm_FunctionBody3303); + p_EnclosedExpr81=this.p_EnclosedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_EnclosedExpr81.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_EnclosedExpr_return: (function() { + XQueryParser.p_EnclosedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_EnclosedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:526:1: p_EnclosedExpr : LBRACKET p_Expr[true,true] RBRACKET -> ^( EnclosedExpr p_Expr ) ; + // $ANTLR start "p_EnclosedExpr" + p_EnclosedExpr: function() { + var retval = new XQueryParser.p_EnclosedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET82 = null; + var RBRACKET84 = null; + var p_Expr83 = null; + + var LBRACKET82_tree=null; + var RBRACKET84_tree=null; + var stream_LBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LBRACKET"); + var stream_RBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RBRACKET"); + var stream_p_Expr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Expr"); + try { + // xquery/XQueryParser.g:527:9: ( LBRACKET p_Expr[true,true] RBRACKET -> ^( EnclosedExpr p_Expr ) ) + // xquery/XQueryParser.g:527:11: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET82=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_EnclosedExpr3330); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LBRACKET.add(LBRACKET82); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_EnclosedExpr3332); + p_Expr83=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Expr.add(p_Expr83.getTree()); + RBRACKET84=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_EnclosedExpr3335); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RBRACKET.add(RBRACKET84); + + + + // AST REWRITE + // elements: p_Expr + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 528:17: -> ^( EnclosedExpr p_Expr ) + { + // xquery/XQueryParser.g:528:20: ^( EnclosedExpr p_Expr ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(EnclosedExpr, "EnclosedExpr"), root_1); + + this.adaptor.addChild(root_1, stream_p_Expr.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_OptionDecl_return: (function() { + XQueryParser.pm_OptionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_OptionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:532:1: pm_OptionDecl : k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_OptionDecl" + pm_OptionDecl: function() { + var retval = new XQueryParser.pm_OptionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON87 = null; + var p_QName85 = null; + var p_StringLiteral86 = null; + + var k_tree=null; + var SEMICOLON87_tree=null; + + try { + // xquery/XQueryParser.g:533:9: (k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:533:11: k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_OptionDecl3387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,OPTION,XQueryParser.FOLLOW_OPTION_in_pm_OptionDecl3393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_OptionDecl3397); + p_QName85=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName85.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_OptionDecl3399); + p_StringLiteral86=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral86.getTree()); + SEMICOLON87=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_OptionDecl3401); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON87_tree = this.adaptor.create(SEMICOLON87); + this.adaptor.addChild(root_0, SEMICOLON87_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_QueryBody_return: (function() { + XQueryParser.pm_QueryBody_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_QueryBody_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:537:1: pm_QueryBody : ({...}? => p_Program | p_Expr[true,true] ); + // $ANTLR start "pm_QueryBody" + pm_QueryBody: function() { + var retval = new XQueryParser.pm_QueryBody_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Program88 = null; + var p_Expr89 = null; + + + try { + // xquery/XQueryParser.g:538:9: ({...}? => p_Program | p_Expr[true,true] ) + var alt44=2; + alt44 = this.dfa44.predict(this.input); + switch (alt44) { + case 1 : + // xquery/XQueryParser.g:538:11: {...}? => p_Program + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pm_QueryBody", "this.lc(XQS)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_Program_in_pm_QueryBody3430); + p_Program88=this.p_Program(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Program88.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:539:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_QueryBody3442); + p_Expr89=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr89.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Expr_return: (function() { + XQueryParser.p_Expr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Expr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:549:1: p_Expr[strict, allowConcat] : es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* ; + // $ANTLR start "p_Expr" + p_Expr: function(strict, allowConcat) { + var retval = new XQueryParser.p_Expr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA90 = null; + var es = null; + var p_ExprSingle91 = null; + + var COMMA90_tree=null; + + try { + // xquery/XQueryParser.g:550:9: (es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* ) + // xquery/XQueryParser.g:550:11: es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Expr3478); + es=this.p_ExprSingle(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, es.getTree()); + if ( this.state.backtracking===0 ) { + if (!allowConcat) throw new Exception(); + } + // xquery/XQueryParser.g:551:11: ( COMMA p_ExprSingle[$strict] )* + loop45: + do { + var alt45=2; + var LA45_0 = this.input.LA(1); + + if ( (LA45_0==COMMA) ) { + alt45=1; + } + + + switch (alt45) { + case 1 : + // xquery/XQueryParser.g:551:12: COMMA p_ExprSingle[$strict] + COMMA90=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_Expr3494); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA90_tree = this.adaptor.create(COMMA90); + this.adaptor.addChild(root_0, COMMA90_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Expr3496); + p_ExprSingle91=this.p_ExprSingle(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle91.getTree()); + + + break; + + default : + break loop45; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (e) { + + if(e instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch1"); + reportError(e); + recover(this.input, e); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), e); + } else if(e instanceof Exception) { + //console.log("catch2"); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, es.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw e; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_ExprSingle_return: (function() { + XQueryParser.p_ExprSingle_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExprSingle_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:573:1: p_ExprSingle[strict] : ( ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple ); + // $ANTLR start "p_ExprSingle" + p_ExprSingle: function(strict) { + var retval = new XQueryParser.p_ExprSingle_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FLWORHybrid92 = null; + var p_IfHybrid93 = null; + var p_SwitchHybrid94 = null; + var p_TypeswitchHybrid95 = null; + var p_TryCatchHybrid96 = null; + var p_ExprSimple97 = null; + + + try { + // xquery/XQueryParser.g:574:9: ( ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple ) + var alt46=6; + alt46 = this.dfa46.predict(this.input); + switch (alt46) { + case 1 : + // xquery/XQueryParser.g:574:11: ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FLWORHybrid_in_p_ExprSingle3563); + p_FLWORHybrid92=this.p_FLWORHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FLWORHybrid92.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:575:11: ( IF LPAREN )=> p_IfHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IfHybrid_in_p_ExprSingle3593); + p_IfHybrid93=this.p_IfHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IfHybrid93.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:576:11: ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SwitchHybrid_in_p_ExprSingle3619); + p_SwitchHybrid94=this.p_SwitchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchHybrid94.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:577:11: ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TypeswitchHybrid_in_p_ExprSingle3641); + p_TypeswitchHybrid95=this.p_TypeswitchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeswitchHybrid95.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:578:11: ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TryCatchHybrid_in_p_ExprSingle3668); + p_TryCatchHybrid96=this.p_TryCatchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryCatchHybrid96.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:579:11: p_ExprSimple + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSimple_in_p_ExprSingle3681); + p_ExprSimple97=this.p_ExprSimple(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSimple97.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FLWORHybrid_return: (function() { + XQueryParser.p_FLWORHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FLWORHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:583:1: p_FLWORHybrid[strict] : p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] ; + // $ANTLR start "p_FLWORHybrid" + p_FLWORHybrid: function(strict) { + var retval = new XQueryParser.p_FLWORHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause98 = null; + var p_IntermediateClause99 = null; + var p_ReturnHybrid100 = null; + + + try { + // xquery/XQueryParser.g:584:9: ( p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] ) + // xquery/XQueryParser.g:584:11: p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_FLWORHybrid3708); + p_InitialClause98=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause98.getTree()); + // xquery/XQueryParser.g:584:27: ( p_IntermediateClause )* + loop47: + do { + var alt47=2; + var LA47_0 = this.input.LA(1); + + if ( (LA47_0==FOR||LA47_0==LET||LA47_0==ORDER||LA47_0==STABLE||LA47_0==WHERE||LA47_0==COUNT||LA47_0==GROUP) ) { + alt47=1; + } + + + switch (alt47) { + case 1 : + // xquery/XQueryParser.g:584:27: p_IntermediateClause + this.pushFollow(XQueryParser.FOLLOW_p_IntermediateClause_in_p_FLWORHybrid3710); + p_IntermediateClause99=this.p_IntermediateClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntermediateClause99.getTree()); + + + break; + + default : + break loop47; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ReturnHybrid_in_p_FLWORHybrid3713); + p_ReturnHybrid100=this.p_ReturnHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReturnHybrid100.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InitialClause_return: (function() { + XQueryParser.p_InitialClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InitialClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:588:1: p_InitialClause : ( p_ForClause | p_LetClause | p_WindowClause ); + // $ANTLR start "p_InitialClause" + p_InitialClause: function() { + var retval = new XQueryParser.p_InitialClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ForClause101 = null; + var p_LetClause102 = null; + var p_WindowClause103 = null; + + + try { + // xquery/XQueryParser.g:589:9: ( p_ForClause | p_LetClause | p_WindowClause ) + var alt48=3; + var LA48_0 = this.input.LA(1); + + if ( (LA48_0==FOR) ) { + var LA48_1 = this.input.LA(2); + + if ( (LA48_1==DOLLAR) ) { + alt48=1; + } + else if ( (LA48_1==SLIDING||LA48_1==TUMBLING) ) { + alt48=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 48, 1, this.input); + + throw nvae; + } + } + else if ( (LA48_0==LET) ) { + alt48=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 48, 0, this.input); + + throw nvae; + } + switch (alt48) { + case 1 : + // xquery/XQueryParser.g:589:11: p_ForClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ForClause_in_p_InitialClause3740); + p_ForClause101=this.p_ForClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForClause101.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:589:25: p_LetClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_LetClause_in_p_InitialClause3744); + p_LetClause102=this.p_LetClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetClause102.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:589:39: p_WindowClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WindowClause_in_p_InitialClause3748); + p_WindowClause103=this.p_WindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowClause103.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IntermediateClause_return: (function() { + XQueryParser.p_IntermediateClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IntermediateClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:593:1: p_IntermediateClause : ( p_InitialClause | p_WhereClause | p_GroupByClause | p_OrderByClause | p_CountClause ); + // $ANTLR start "p_IntermediateClause" + p_IntermediateClause: function() { + var retval = new XQueryParser.p_IntermediateClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause104 = null; + var p_WhereClause105 = null; + var p_GroupByClause106 = null; + var p_OrderByClause107 = null; + var p_CountClause108 = null; + + + try { + // xquery/XQueryParser.g:594:9: ( p_InitialClause | p_WhereClause | p_GroupByClause | p_OrderByClause | p_CountClause ) + var alt49=5; + switch ( this.input.LA(1) ) { + case FOR: + case LET: + alt49=1; + break; + case WHERE: + alt49=2; + break; + case GROUP: + alt49=3; + break; + case ORDER: + case STABLE: + alt49=4; + break; + case COUNT: + alt49=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 49, 0, this.input); + + throw nvae; + } + + switch (alt49) { + case 1 : + // xquery/XQueryParser.g:594:11: p_InitialClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_IntermediateClause3774); + p_InitialClause104=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause104.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:594:29: p_WhereClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WhereClause_in_p_IntermediateClause3778); + p_WhereClause105=this.p_WhereClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WhereClause105.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:594:45: p_GroupByClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_GroupByClause_in_p_IntermediateClause3782); + p_GroupByClause106=this.p_GroupByClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupByClause106.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:594:63: p_OrderByClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderByClause_in_p_IntermediateClause3786); + p_OrderByClause107=this.p_OrderByClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderByClause107.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:594:81: p_CountClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CountClause_in_p_IntermediateClause3790); + p_CountClause108=this.p_CountClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CountClause108.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StringConcatExpr_return: (function() { + XQueryParser.p_StringConcatExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StringConcatExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:598:1: p_StringConcatExpr : p_RangeExpr (o= CONCAT p_RangeExpr )* ; + // $ANTLR start "p_StringConcatExpr" + p_StringConcatExpr: function() { + var retval = new XQueryParser.p_StringConcatExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_RangeExpr109 = null; + var p_RangeExpr110 = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:599:4: ( p_RangeExpr (o= CONCAT p_RangeExpr )* ) + // xquery/XQueryParser.g:599:6: p_RangeExpr (o= CONCAT p_RangeExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RangeExpr_in_p_StringConcatExpr3811); + p_RangeExpr109=this.p_RangeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RangeExpr109.getTree()); + // xquery/XQueryParser.g:599:18: (o= CONCAT p_RangeExpr )* + loop50: + do { + var alt50=2; + var LA50_0 = this.input.LA(1); + + if ( (LA50_0==CONCAT) ) { + alt50=1; + } + + + switch (alt50) { + case 1 : + // xquery/XQueryParser.g:599:20: o= CONCAT p_RangeExpr + o=this.match(this.input,CONCAT,XQueryParser.FOLLOW_CONCAT_in_p_StringConcatExpr3817); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + this.pushFollow(XQueryParser.FOLLOW_p_RangeExpr_in_p_StringConcatExpr3821); + p_RangeExpr110=this.p_RangeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RangeExpr110.getTree()); + + + break; + + default : + break loop50; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForClause_return: (function() { + XQueryParser.p_ForClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:604:1: p_ForClause : k= FOR p_ForBinding ( COMMA p_ForBinding )* ; + // $ANTLR start "p_ForClause" + p_ForClause: function() { + var retval = new XQueryParser.p_ForClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA112 = null; + var p_ForBinding111 = null; + var p_ForBinding113 = null; + + var k_tree=null; + var COMMA112_tree=null; + + try { + // xquery/XQueryParser.g:605:9: (k= FOR p_ForBinding ( COMMA p_ForBinding )* ) + // xquery/XQueryParser.g:605:11: k= FOR p_ForBinding ( COMMA p_ForBinding )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_p_ForClause3848); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ForBinding_in_p_ForClause3852); + p_ForBinding111=this.p_ForBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForBinding111.getTree()); + // xquery/XQueryParser.g:605:45: ( COMMA p_ForBinding )* + loop51: + do { + var alt51=2; + var LA51_0 = this.input.LA(1); + + if ( (LA51_0==COMMA) ) { + alt51=1; + } + + + switch (alt51) { + case 1 : + // xquery/XQueryParser.g:605:46: COMMA p_ForBinding + COMMA112=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ForClause3855); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA112_tree = this.adaptor.create(COMMA112); + this.adaptor.addChild(root_0, COMMA112_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ForBinding_in_p_ForClause3857); + p_ForBinding113=this.p_ForBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForBinding113.getTree()); + + + break; + + default : + break loop51; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForBinding_return: (function() { + XQueryParser.p_ForBinding_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForBinding_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:609:1: p_ForBinding : s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] ; + // $ANTLR start "p_ForBinding" + p_ForBinding: function() { + var retval = new XQueryParser.p_ForBinding_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var k = null; + var v = null; + var p_TypeDeclaration114 = null; + var p_AllowingEmpty115 = null; + var p_PositionalVar116 = null; + var p_FTScoreVar117 = null; + var p_ExprSingle118 = null; + + var s_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:610:9: (s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] ) + // xquery/XQueryParser.g:610:11: s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + s=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ForBinding3887); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_ForBinding3891); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(s, (v?v.stop:null)); + } + // xquery/XQueryParser.g:610:58: ( p_TypeDeclaration )? + var alt52=2; + var LA52_0 = this.input.LA(1); + + if ( (LA52_0==AS) ) { + alt52=1; + } + switch (alt52) { + case 1 : + // xquery/XQueryParser.g:610:58: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_ForBinding3895); + p_TypeDeclaration114=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration114.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:77: ( p_AllowingEmpty )? + var alt53=2; + var LA53_0 = this.input.LA(1); + + if ( (LA53_0==ALLOWING) ) { + alt53=1; + } + switch (alt53) { + case 1 : + // xquery/XQueryParser.g:610:77: p_AllowingEmpty + this.pushFollow(XQueryParser.FOLLOW_p_AllowingEmpty_in_p_ForBinding3898); + p_AllowingEmpty115=this.p_AllowingEmpty(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AllowingEmpty115.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:94: ( p_PositionalVar )? + var alt54=2; + var LA54_0 = this.input.LA(1); + + if ( (LA54_0==AT) ) { + alt54=1; + } + switch (alt54) { + case 1 : + // xquery/XQueryParser.g:610:94: p_PositionalVar + this.pushFollow(XQueryParser.FOLLOW_p_PositionalVar_in_p_ForBinding3901); + p_PositionalVar116=this.p_PositionalVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PositionalVar116.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:111: ( p_FTScoreVar )? + var alt55=2; + var LA55_0 = this.input.LA(1); + + if ( (LA55_0==SCORE) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // xquery/XQueryParser.g:610:111: p_FTScoreVar + this.pushFollow(XQueryParser.FOLLOW_p_FTScoreVar_in_p_ForBinding3904); + p_FTScoreVar117=this.p_FTScoreVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScoreVar117.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_ForBinding3909); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ForBinding3913); + p_ExprSingle118=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle118.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AllowingEmpty_return: (function() { + XQueryParser.p_AllowingEmpty_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AllowingEmpty_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:614:1: p_AllowingEmpty : k= ALLOWING k= EMPTY ; + // $ANTLR start "p_AllowingEmpty" + p_AllowingEmpty: function() { + var retval = new XQueryParser.p_AllowingEmpty_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:615:9: (k= ALLOWING k= EMPTY ) + // xquery/XQueryParser.g:615:11: k= ALLOWING k= EMPTY + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ALLOWING,XQueryParser.FOLLOW_ALLOWING_in_p_AllowingEmpty3942); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_p_AllowingEmpty3948); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PositionalVar_return: (function() { + XQueryParser.p_PositionalVar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PositionalVar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:619:1: p_PositionalVar : k= AT d= DOLLAR v= p_VarName ; + // $ANTLR start "p_PositionalVar" + p_PositionalVar: function() { + var retval = new XQueryParser.p_PositionalVar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:620:9: (k= AT d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:620:11: k= AT d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_PositionalVar3978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_PositionalVar3984); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_PositionalVar3988); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LetClause_return: (function() { + XQueryParser.p_LetClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LetClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:624:1: p_LetClause : k= LET p_LetBinding ( COMMA p_LetBinding )* ; + // $ANTLR start "p_LetClause" + p_LetClause: function() { + var retval = new XQueryParser.p_LetClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA120 = null; + var p_LetBinding119 = null; + var p_LetBinding121 = null; + + var k_tree=null; + var COMMA120_tree=null; + + try { + // xquery/XQueryParser.g:625:9: (k= LET p_LetBinding ( COMMA p_LetBinding )* ) + // xquery/XQueryParser.g:625:11: k= LET p_LetBinding ( COMMA p_LetBinding )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,LET,XQueryParser.FOLLOW_LET_in_p_LetClause4018); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_LetBinding_in_p_LetClause4022); + p_LetBinding119=this.p_LetBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetBinding119.getTree()); + // xquery/XQueryParser.g:625:45: ( COMMA p_LetBinding )* + loop56: + do { + var alt56=2; + var LA56_0 = this.input.LA(1); + + if ( (LA56_0==COMMA) ) { + alt56=1; + } + + + switch (alt56) { + case 1 : + // xquery/XQueryParser.g:625:46: COMMA p_LetBinding + COMMA120=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_LetClause4025); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA120_tree = this.adaptor.create(COMMA120); + this.adaptor.addChild(root_0, COMMA120_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_LetBinding_in_p_LetClause4027); + p_LetBinding121=this.p_LetBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetBinding121.getTree()); + + + break; + + default : + break loop56; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LetBinding_return: (function() { + XQueryParser.p_LetBinding_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LetBinding_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:630:1: p_LetBinding : ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] ; + // $ANTLR start "p_LetBinding" + p_LetBinding: function() { + var retval = new XQueryParser.p_LetBinding_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var BIND124 = null; + var v = null; + var p_TypeDeclaration122 = null; + var p_FTScoreVar123 = null; + var p_ExprSingle125 = null; + + var d_tree=null; + var BIND124_tree=null; + + try { + // xquery/XQueryParser.g:631:9: ( ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] ) + // xquery/XQueryParser.g:631:11: ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:631:11: ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) + var alt58=2; + var LA58_0 = this.input.LA(1); + + if ( (LA58_0==DOLLAR) ) { + alt58=1; + } + else if ( (LA58_0==SCORE) ) { + alt58=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 58, 0, this.input); + + throw nvae; + } + switch (alt58) { + case 1 : + // xquery/XQueryParser.g:631:13: (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) + // xquery/XQueryParser.g:631:13: (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) + // xquery/XQueryParser.g:631:14: d= DOLLAR v= p_VarName ( p_TypeDeclaration )? + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_LetBinding4061); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_LetBinding4065); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:631:59: ( p_TypeDeclaration )? + var alt57=2; + var LA57_0 = this.input.LA(1); + + if ( (LA57_0==AS) ) { + alt57=1; + } + switch (alt57) { + case 1 : + // xquery/XQueryParser.g:631:59: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_LetBinding4069); + p_TypeDeclaration122=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration122.getTree()); + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:631:81: p_FTScoreVar + this.pushFollow(XQueryParser.FOLLOW_p_FTScoreVar_in_p_LetBinding4075); + p_FTScoreVar123=this.p_FTScoreVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScoreVar123.getTree()); + + + break; + + } + + BIND124=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_LetBinding4079); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND124_tree = this.adaptor.create(BIND124); + this.adaptor.addChild(root_0, BIND124_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_LetBinding4081); + p_ExprSingle125=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle125.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowClause_return: (function() { + XQueryParser.p_WindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:635:1: p_WindowClause : k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) ; + // $ANTLR start "p_WindowClause" + p_WindowClause: function() { + var retval = new XQueryParser.p_WindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_TumblingWindowClause126 = null; + var p_SlidingWindowClause127 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:636:9: (k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) ) + // xquery/XQueryParser.g:636:11: k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_p_WindowClause4110); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:636:32: ( p_TumblingWindowClause | p_SlidingWindowClause ) + var alt59=2; + var LA59_0 = this.input.LA(1); + + if ( (LA59_0==TUMBLING) ) { + alt59=1; + } + else if ( (LA59_0==SLIDING) ) { + alt59=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 59, 0, this.input); + + throw nvae; + } + switch (alt59) { + case 1 : + // xquery/XQueryParser.g:636:33: p_TumblingWindowClause + this.pushFollow(XQueryParser.FOLLOW_p_TumblingWindowClause_in_p_WindowClause4115); + p_TumblingWindowClause126=this.p_TumblingWindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TumblingWindowClause126.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:636:58: p_SlidingWindowClause + this.pushFollow(XQueryParser.FOLLOW_p_SlidingWindowClause_in_p_WindowClause4119); + p_SlidingWindowClause127=this.p_SlidingWindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SlidingWindowClause127.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TumblingWindowClause_return: (function() { + XQueryParser.p_TumblingWindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TumblingWindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:640:1: p_TumblingWindowClause : k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ; + // $ANTLR start "p_TumblingWindowClause" + p_TumblingWindowClause: function() { + var retval = new XQueryParser.p_TumblingWindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_TypeDeclaration128 = null; + var p_ExprSingle129 = null; + var p_WindowStartCondition130 = null; + var p_WindowEndCondition131 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:641:9: (k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ) + // xquery/XQueryParser.g:641:11: k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TUMBLING,XQueryParser.FOLLOW_TUMBLING_in_p_TumblingWindowClause4156); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_TumblingWindowClause4162); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TumblingWindowClause4168); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TumblingWindowClause4172); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:641:106: ( p_TypeDeclaration )? + var alt60=2; + var LA60_0 = this.input.LA(1); + + if ( (LA60_0==AS) ) { + alt60=1; + } + switch (alt60) { + case 1 : + // xquery/XQueryParser.g:641:106: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_TumblingWindowClause4176); + p_TypeDeclaration128=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration128.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_TumblingWindowClause4181); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TumblingWindowClause4185); + p_ExprSingle129=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle129.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_WindowStartCondition_in_p_TumblingWindowClause4188); + p_WindowStartCondition130=this.p_WindowStartCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowStartCondition130.getTree()); + // xquery/XQueryParser.g:641:187: ( p_WindowEndCondition )? + var alt61=2; + var LA61_0 = this.input.LA(1); + + if ( (LA61_0==END||LA61_0==ONLY) ) { + alt61=1; + } + switch (alt61) { + case 1 : + // xquery/XQueryParser.g:641:187: p_WindowEndCondition + this.pushFollow(XQueryParser.FOLLOW_p_WindowEndCondition_in_p_TumblingWindowClause4190); + p_WindowEndCondition131=this.p_WindowEndCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowEndCondition131.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SlidingWindowClause_return: (function() { + XQueryParser.p_SlidingWindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SlidingWindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:645:1: p_SlidingWindowClause : k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ; + // $ANTLR start "p_SlidingWindowClause" + p_SlidingWindowClause: function() { + var retval = new XQueryParser.p_SlidingWindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_TypeDeclaration132 = null; + var p_ExprSingle133 = null; + var p_WindowStartCondition134 = null; + var p_WindowEndCondition135 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:646:9: (k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ) + // xquery/XQueryParser.g:646:11: k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SLIDING,XQueryParser.FOLLOW_SLIDING_in_p_SlidingWindowClause4219); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_SlidingWindowClause4225); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_SlidingWindowClause4231); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_SlidingWindowClause4235); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:646:107: ( p_TypeDeclaration )? + var alt62=2; + var LA62_0 = this.input.LA(1); + + if ( (LA62_0==AS) ) { + alt62=1; + } + switch (alt62) { + case 1 : + // xquery/XQueryParser.g:646:107: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_SlidingWindowClause4239); + p_TypeDeclaration132=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration132.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_SlidingWindowClause4244); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SlidingWindowClause4248); + p_ExprSingle133=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle133.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_WindowStartCondition_in_p_SlidingWindowClause4251); + p_WindowStartCondition134=this.p_WindowStartCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowStartCondition134.getTree()); + // xquery/XQueryParser.g:646:188: ( p_WindowEndCondition )? + var alt63=2; + var LA63_0 = this.input.LA(1); + + if ( (LA63_0==END||LA63_0==ONLY) ) { + alt63=1; + } + switch (alt63) { + case 1 : + // xquery/XQueryParser.g:646:188: p_WindowEndCondition + this.pushFollow(XQueryParser.FOLLOW_p_WindowEndCondition_in_p_SlidingWindowClause4253); + p_WindowEndCondition135=this.p_WindowEndCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowEndCondition135.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowStartCondition_return: (function() { + XQueryParser.p_WindowStartCondition_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowStartCondition_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:650:1: p_WindowStartCondition : k= START p_WindowVars k= WHEN p_ExprSingle[true] ; + // $ANTLR start "p_WindowStartCondition" + p_WindowStartCondition: function() { + var retval = new XQueryParser.p_WindowStartCondition_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_WindowVars136 = null; + var p_ExprSingle137 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:651:9: (k= START p_WindowVars k= WHEN p_ExprSingle[true] ) + // xquery/XQueryParser.g:651:11: k= START p_WindowVars k= WHEN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,START,XQueryParser.FOLLOW_START_in_p_WindowStartCondition4282); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_WindowVars_in_p_WindowStartCondition4286); + p_WindowVars136=this.p_WindowVars(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowVars136.getTree()); + k=this.match(this.input,WHEN,XQueryParser.FOLLOW_WHEN_in_p_WindowStartCondition4290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WindowStartCondition4294); + p_ExprSingle137=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle137.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowEndCondition_return: (function() { + XQueryParser.p_WindowEndCondition_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowEndCondition_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:655:1: p_WindowEndCondition : (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] ; + // $ANTLR start "p_WindowEndCondition" + p_WindowEndCondition: function() { + var retval = new XQueryParser.p_WindowEndCondition_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_WindowVars138 = null; + var p_ExprSingle139 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:656:9: ( (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] ) + // xquery/XQueryParser.g:656:11: (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:656:11: (k= ONLY )? + var alt64=2; + var LA64_0 = this.input.LA(1); + + if ( (LA64_0==ONLY) ) { + alt64=1; + } + switch (alt64) { + case 1 : + // xquery/XQueryParser.g:656:12: k= ONLY + k=this.match(this.input,ONLY,XQueryParser.FOLLOW_ONLY_in_p_WindowEndCondition4324); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + k=this.match(this.input,END,XQueryParser.FOLLOW_END_in_p_WindowEndCondition4332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_WindowVars_in_p_WindowEndCondition4336); + p_WindowVars138=this.p_WindowVars(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowVars138.getTree()); + k=this.match(this.input,WHEN,XQueryParser.FOLLOW_WHEN_in_p_WindowEndCondition4340); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WindowEndCondition4344); + p_ExprSingle139=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle139.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowVars_return: (function() { + XQueryParser.p_WindowVars_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowVars_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:660:1: p_WindowVars : (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? ; + // $ANTLR start "p_WindowVars" + p_WindowVars: function() { + var retval = new XQueryParser.p_WindowVars_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var DOLLAR141 = null; + var DOLLAR143 = null; + var v = null; + var p_PositionalVar140 = null; + var p_PreviousItem142 = null; + var p_NextItem144 = null; + + var d_tree=null; + var k_tree=null; + var DOLLAR141_tree=null; + var DOLLAR143_tree=null; + + try { + // xquery/XQueryParser.g:661:9: ( (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? ) + // xquery/XQueryParser.g:661:11: (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:661:11: (d= DOLLAR v= p_CurrentItem )? + var alt65=2; + var LA65_0 = this.input.LA(1); + + if ( (LA65_0==DOLLAR) ) { + alt65=1; + } + switch (alt65) { + case 1 : + // xquery/XQueryParser.g:661:12: d= DOLLAR v= p_CurrentItem + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_CurrentItem_in_p_WindowVars4378); + v=this.p_CurrentItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + // xquery/XQueryParser.g:661:65: ( p_PositionalVar )? + var alt66=2; + var LA66_0 = this.input.LA(1); + + if ( (LA66_0==AT) ) { + alt66=1; + } + switch (alt66) { + case 1 : + // xquery/XQueryParser.g:661:65: p_PositionalVar + this.pushFollow(XQueryParser.FOLLOW_p_PositionalVar_in_p_WindowVars4384); + p_PositionalVar140=this.p_PositionalVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PositionalVar140.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:661:82: (k= PREVIOUS DOLLAR p_PreviousItem )? + var alt67=2; + var LA67_0 = this.input.LA(1); + + if ( (LA67_0==PREVIOUS) ) { + alt67=1; + } + switch (alt67) { + case 1 : + // xquery/XQueryParser.g:661:83: k= PREVIOUS DOLLAR p_PreviousItem + k=this.match(this.input,PREVIOUS,XQueryParser.FOLLOW_PREVIOUS_in_p_WindowVars4390); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + DOLLAR141=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4394); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOLLAR141_tree = this.adaptor.create(DOLLAR141); + this.adaptor.addChild(root_0, DOLLAR141_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_PreviousItem_in_p_WindowVars4396); + p_PreviousItem142=this.p_PreviousItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PreviousItem142.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:661:133: (k= NEXT DOLLAR p_NextItem )? + var alt68=2; + var LA68_0 = this.input.LA(1); + + if ( (LA68_0==NEXT) ) { + alt68=1; + } + switch (alt68) { + case 1 : + // xquery/XQueryParser.g:661:134: k= NEXT DOLLAR p_NextItem + k=this.match(this.input,NEXT,XQueryParser.FOLLOW_NEXT_in_p_WindowVars4403); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + DOLLAR143=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4407); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOLLAR143_tree = this.adaptor.create(DOLLAR143); + this.adaptor.addChild(root_0, DOLLAR143_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NextItem_in_p_WindowVars4409); + p_NextItem144=this.p_NextItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NextItem144.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CurrentItem_return: (function() { + XQueryParser.p_CurrentItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CurrentItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:665:1: p_CurrentItem : p_QName ; + // $ANTLR start "p_CurrentItem" + p_CurrentItem: function() { + var retval = new XQueryParser.p_CurrentItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName145 = null; + + + try { + // xquery/XQueryParser.g:666:9: ( p_QName ) + // xquery/XQueryParser.g:666:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_CurrentItem4437); + p_QName145=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName145.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PreviousItem_return: (function() { + XQueryParser.p_PreviousItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PreviousItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:670:1: p_PreviousItem : p_QName ; + // $ANTLR start "p_PreviousItem" + p_PreviousItem: function() { + var retval = new XQueryParser.p_PreviousItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName146 = null; + + + try { + // xquery/XQueryParser.g:671:9: ( p_QName ) + // xquery/XQueryParser.g:671:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_PreviousItem4463); + p_QName146=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName146.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NextItem_return: (function() { + XQueryParser.p_NextItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NextItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:675:1: p_NextItem : p_QName ; + // $ANTLR start "p_NextItem" + p_NextItem: function() { + var retval = new XQueryParser.p_NextItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName147 = null; + + + try { + // xquery/XQueryParser.g:676:9: ( p_QName ) + // xquery/XQueryParser.g:676:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NextItem4489); + p_QName147=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName147.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CountClause_return: (function() { + XQueryParser.p_CountClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CountClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:680:1: p_CountClause : k= COUNT d= DOLLAR v= p_VarName ; + // $ANTLR start "p_CountClause" + p_CountClause: function() { + var retval = new XQueryParser.p_CountClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:681:9: (k= COUNT d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:681:11: k= COUNT d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COUNT,XQueryParser.FOLLOW_COUNT_in_p_CountClause4517); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CountClause4523); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CountClause4527); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WhereClause_return: (function() { + XQueryParser.p_WhereClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WhereClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:685:1: p_WhereClause : k= WHERE p_ExprSingle[true] ; + // $ANTLR start "p_WhereClause" + p_WhereClause: function() { + var retval = new XQueryParser.p_WhereClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ExprSingle148 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:686:9: (k= WHERE p_ExprSingle[true] ) + // xquery/XQueryParser.g:686:11: k= WHERE p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WHERE,XQueryParser.FOLLOW_WHERE_in_p_WhereClause4565); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WhereClause4569); + p_ExprSingle148=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle148.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupByClause_return: (function() { + XQueryParser.p_GroupByClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupByClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:690:1: p_GroupByClause : k= GROUP k= BY p_GroupingSpecList ; + // $ANTLR start "p_GroupByClause" + p_GroupByClause: function() { + var retval = new XQueryParser.p_GroupByClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_GroupingSpecList149 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:691:9: (k= GROUP k= BY p_GroupingSpecList ) + // xquery/XQueryParser.g:691:11: k= GROUP k= BY p_GroupingSpecList + root_0 = this.adaptor.nil(); + + k=this.match(this.input,GROUP,XQueryParser.FOLLOW_GROUP_in_p_GroupByClause4598); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_GroupByClause4604); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpecList_in_p_GroupByClause4608); + p_GroupingSpecList149=this.p_GroupingSpecList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpecList149.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupingSpecList_return: (function() { + XQueryParser.p_GroupingSpecList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupingSpecList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:695:1: p_GroupingSpecList : p_GroupingSpec ( COMMA p_GroupingSpec )* ; + // $ANTLR start "p_GroupingSpecList" + p_GroupingSpecList: function() { + var retval = new XQueryParser.p_GroupingSpecList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA151 = null; + var p_GroupingSpec150 = null; + var p_GroupingSpec152 = null; + + var COMMA151_tree=null; + + try { + // xquery/XQueryParser.g:696:9: ( p_GroupingSpec ( COMMA p_GroupingSpec )* ) + // xquery/XQueryParser.g:696:11: p_GroupingSpec ( COMMA p_GroupingSpec )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4634); + p_GroupingSpec150=this.p_GroupingSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpec150.getTree()); + // xquery/XQueryParser.g:696:26: ( COMMA p_GroupingSpec )* + loop69: + do { + var alt69=2; + var LA69_0 = this.input.LA(1); + + if ( (LA69_0==COMMA) ) { + alt69=1; + } + + + switch (alt69) { + case 1 : + // xquery/XQueryParser.g:696:27: COMMA p_GroupingSpec + COMMA151=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_GroupingSpecList4637); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA151_tree = this.adaptor.create(COMMA151); + this.adaptor.addChild(root_0, COMMA151_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4639); + p_GroupingSpec152=this.p_GroupingSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpec152.getTree()); + + + break; + + default : + break loop69; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupingSpec_return: (function() { + XQueryParser.p_GroupingSpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupingSpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:700:1: p_GroupingSpec : d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? ; + // $ANTLR start "p_GroupingSpec" + p_GroupingSpec: function() { + var retval = new XQueryParser.p_GroupingSpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var v = null; + var p_StringLiteral153 = null; + + var d_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:701:9: (d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? ) + // xquery/XQueryParser.g:701:11: d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_GroupingSpec4669); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_GroupingSpec4673); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:701:58: (k= COLLATION p_StringLiteral )? + var alt70=2; + var LA70_0 = this.input.LA(1); + + if ( (LA70_0==COLLATION) ) { + alt70=1; + } + switch (alt70) { + case 1 : + // xquery/XQueryParser.g:701:59: k= COLLATION p_StringLiteral + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_GroupingSpec4680); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_GroupingSpec4684); + p_StringLiteral153=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral153.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderByClause_return: (function() { + XQueryParser.p_OrderByClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderByClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:705:1: p_OrderByClause : ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList ; + // $ANTLR start "p_OrderByClause" + p_OrderByClause: function() { + var retval = new XQueryParser.p_OrderByClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_OrderSpecList154 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:706:9: ( ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList ) + // xquery/XQueryParser.g:706:11: ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:706:11: ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) + var alt71=2; + var LA71_0 = this.input.LA(1); + + if ( (LA71_0==ORDER) ) { + alt71=1; + } + else if ( (LA71_0==STABLE) ) { + alt71=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 71, 0, this.input); + + throw nvae; + } + switch (alt71) { + case 1 : + // xquery/XQueryParser.g:706:12: (k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:12: (k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:13: k+= ORDER k+= BY + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_p_OrderByClause4716); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_OrderByClause4720); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:706:31: (k+= STABLE k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:31: (k+= STABLE k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:32: k+= STABLE k+= ORDER k+= BY + k=this.match(this.input,STABLE,XQueryParser.FOLLOW_STABLE_in_p_OrderByClause4728); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_p_OrderByClause4732); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_OrderByClause4736); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpecList_in_p_OrderByClause4742); + p_OrderSpecList154=this.p_OrderSpecList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpecList154.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderSpecList_return: (function() { + XQueryParser.p_OrderSpecList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderSpecList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:710:1: p_OrderSpecList : p_OrderSpec ( COMMA p_OrderSpec )* ; + // $ANTLR start "p_OrderSpecList" + p_OrderSpecList: function() { + var retval = new XQueryParser.p_OrderSpecList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA156 = null; + var p_OrderSpec155 = null; + var p_OrderSpec157 = null; + + var COMMA156_tree=null; + + try { + // xquery/XQueryParser.g:711:9: ( p_OrderSpec ( COMMA p_OrderSpec )* ) + // xquery/XQueryParser.g:711:11: p_OrderSpec ( COMMA p_OrderSpec )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpec_in_p_OrderSpecList4768); + p_OrderSpec155=this.p_OrderSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpec155.getTree()); + // xquery/XQueryParser.g:711:23: ( COMMA p_OrderSpec )* + loop72: + do { + var alt72=2; + var LA72_0 = this.input.LA(1); + + if ( (LA72_0==COMMA) ) { + alt72=1; + } + + + switch (alt72) { + case 1 : + // xquery/XQueryParser.g:711:24: COMMA p_OrderSpec + COMMA156=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_OrderSpecList4771); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA156_tree = this.adaptor.create(COMMA156); + this.adaptor.addChild(root_0, COMMA156_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpec_in_p_OrderSpecList4773); + p_OrderSpec157=this.p_OrderSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpec157.getTree()); + + + break; + + default : + break loop72; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderSpec_return: (function() { + XQueryParser.p_OrderSpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderSpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:715:1: p_OrderSpec : p_ExprSingle[true] p_OrderModifier ; + // $ANTLR start "p_OrderSpec" + p_OrderSpec: function() { + var retval = new XQueryParser.p_OrderSpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle158 = null; + var p_OrderModifier159 = null; + + + try { + // xquery/XQueryParser.g:716:9: ( p_ExprSingle[true] p_OrderModifier ) + // xquery/XQueryParser.g:716:11: p_ExprSingle[true] p_OrderModifier + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_OrderSpec4801); + p_ExprSingle158=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle158.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_OrderModifier_in_p_OrderSpec4804); + p_OrderModifier159=this.p_OrderModifier(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderModifier159.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderModifier_return: (function() { + XQueryParser.p_OrderModifier_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderModifier_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:720:1: p_OrderModifier : (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? ; + // $ANTLR start "p_OrderModifier" + p_OrderModifier: function() { + var retval = new XQueryParser.p_OrderModifier_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringLiteral160 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:721:9: ( (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? ) + // xquery/XQueryParser.g:721:11: (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:721:11: (k+= ASCENDING | k+= DESCENDING )? + var alt73=3; + var LA73_0 = this.input.LA(1); + + if ( (LA73_0==ASCENDING) ) { + alt73=1; + } + else if ( (LA73_0==DESCENDING) ) { + alt73=2; + } + switch (alt73) { + case 1 : + // xquery/XQueryParser.g:721:12: k+= ASCENDING + k=this.match(this.input,ASCENDING,XQueryParser.FOLLOW_ASCENDING_in_p_OrderModifier4833); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:721:27: k+= DESCENDING + k=this.match(this.input,DESCENDING,XQueryParser.FOLLOW_DESCENDING_in_p_OrderModifier4839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + // xquery/XQueryParser.g:721:43: (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? + var alt75=2; + var LA75_0 = this.input.LA(1); + + if ( (LA75_0==EMPTY) ) { + alt75=1; + } + switch (alt75) { + case 1 : + // xquery/XQueryParser.g:721:44: k+= EMPTY (k+= GREATEST | k+= LEAST ) + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_p_OrderModifier4846); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:721:53: (k+= GREATEST | k+= LEAST ) + var alt74=2; + var LA74_0 = this.input.LA(1); + + if ( (LA74_0==GREATEST) ) { + alt74=1; + } + else if ( (LA74_0==LEAST) ) { + alt74=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 74, 0, this.input); + + throw nvae; + } + switch (alt74) { + case 1 : + // xquery/XQueryParser.g:721:54: k+= GREATEST + k=this.match(this.input,GREATEST,XQueryParser.FOLLOW_GREATEST_in_p_OrderModifier4851); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:721:68: k+= LEAST + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_OrderModifier4857); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + break; + + } + + // xquery/XQueryParser.g:721:80: (k+= COLLATION p_StringLiteral )? + var alt76=2; + var LA76_0 = this.input.LA(1); + + if ( (LA76_0==COLLATION) ) { + alt76=1; + } + switch (alt76) { + case 1 : + // xquery/XQueryParser.g:721:81: k+= COLLATION p_StringLiteral + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_OrderModifier4865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_OrderModifier4867); + p_StringLiteral160=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral160.getTree()); + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReturnHybrid_return: (function() { + XQueryParser.p_ReturnHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReturnHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:725:1: p_ReturnHybrid[strict] : k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_ReturnHybrid" + p_ReturnHybrid: function(strict) { + var retval = new XQueryParser.p_ReturnHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_Hybrid161 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:726:9: (k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:726:11: k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_ReturnHybrid4900); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_ReturnHybrid4904); + p_Hybrid161=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid161.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuantifiedExpr_return: (function() { + XQueryParser.p_QuantifiedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuantifiedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:730:1: p_QuantifiedExpr : (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] ; + // $ANTLR start "p_QuantifiedExpr" + p_QuantifiedExpr: function() { + var retval = new XQueryParser.p_QuantifiedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var e = null; + var COMMA164 = null; + var v = null; + var w = null; + var p_TypeDeclaration162 = null; + var p_ExprSingle163 = null; + var p_TypeDeclaration165 = null; + var p_ExprSingle166 = null; + var p_ExprSingle167 = null; + + var k_tree=null; + var d_tree=null; + var e_tree=null; + var COMMA164_tree=null; + + try { + // xquery/XQueryParser.g:731:9: ( (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] ) + // xquery/XQueryParser.g:731:11: (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:731:11: (k= SOME | k= EVERY ) + var alt77=2; + var LA77_0 = this.input.LA(1); + + if ( (LA77_0==SOME) ) { + alt77=1; + } + else if ( (LA77_0==EVERY) ) { + alt77=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 77, 0, this.input); + + throw nvae; + } + switch (alt77) { + case 1 : + // xquery/XQueryParser.g:731:12: k= SOME + k=this.match(this.input,SOME,XQueryParser.FOLLOW_SOME_in_p_QuantifiedExpr4934); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:731:21: k= EVERY + k=this.match(this.input,EVERY,XQueryParser.FOLLOW_EVERY_in_p_QuantifiedExpr4940); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_QuantifiedExpr4947); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_QuantifiedExpr4951); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:731:92: ( p_TypeDeclaration )? + var alt78=2; + var LA78_0 = this.input.LA(1); + + if ( (LA78_0==AS) ) { + alt78=1; + } + switch (alt78) { + case 1 : + // xquery/XQueryParser.g:731:92: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4955); + p_TypeDeclaration162=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration162.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_QuantifiedExpr4960); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4964); + p_ExprSingle163=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle163.getTree()); + // xquery/XQueryParser.g:731:150: ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* + loop80: + do { + var alt80=2; + var LA80_0 = this.input.LA(1); + + if ( (LA80_0==COMMA) ) { + alt80=1; + } + + + switch (alt80) { + case 1 : + // xquery/XQueryParser.g:731:151: COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] + COMMA164=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_QuantifiedExpr4968); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA164_tree = this.adaptor.create(COMMA164); + this.adaptor.addChild(root_0, COMMA164_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_QuantifiedExpr4972); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_QuantifiedExpr4976); + w=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + // xquery/XQueryParser.g:731:200: ( p_TypeDeclaration )? + var alt79=2; + var LA79_0 = this.input.LA(1); + + if ( (LA79_0==AS) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // xquery/XQueryParser.g:731:200: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4980); + p_TypeDeclaration165=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration165.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_QuantifiedExpr4985); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4989); + p_ExprSingle166=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle166.getTree()); + + + break; + + default : + break loop80; + } + } while (true); + + k=this.match(this.input,SATISFIES,XQueryParser.FOLLOW_SATISFIES_in_p_QuantifiedExpr4996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr5000); + p_ExprSingle167=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle167.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchHybrid_return: (function() { + XQueryParser.p_SwitchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:735:1: p_SwitchHybrid[strict] : k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_SwitchHybrid" + p_SwitchHybrid: function(strict) { + var retval = new XQueryParser.p_SwitchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN168 = null; + var RPAREN170 = null; + var p_Expr169 = null; + var p_SwitchCaseHybrid171 = null; + var p_Hybrid172 = null; + + var k_tree=null; + var LPAREN168_tree=null; + var RPAREN170_tree=null; + + try { + // xquery/XQueryParser.g:736:9: (k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:736:11: k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_p_SwitchHybrid5030); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN168=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SwitchHybrid5034); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN168_tree = this.adaptor.create(LPAREN168); + this.adaptor.addChild(root_0, LPAREN168_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_SwitchHybrid5036); + p_Expr169=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr169.getTree()); + RPAREN170=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SwitchHybrid5039); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN170_tree = this.adaptor.create(RPAREN170); + this.adaptor.addChild(root_0, RPAREN170_tree); + } + // xquery/XQueryParser.g:736:67: ( p_SwitchCaseHybrid[$strict] )+ + var cnt81=0; + loop81: + do { + var alt81=2; + var LA81_0 = this.input.LA(1); + + if ( (LA81_0==CASE) ) { + alt81=1; + } + + + switch (alt81) { + case 1 : + // xquery/XQueryParser.g:736:67: p_SwitchCaseHybrid[$strict] + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseHybrid_in_p_SwitchHybrid5041); + p_SwitchCaseHybrid171=this.p_SwitchCaseHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseHybrid171.getTree()); + + + break; + + default : + if ( cnt81 >= 1 ) { + break loop81; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(81, this.input); + throw eee; + } + cnt81++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SwitchHybrid5047); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchHybrid5053); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchHybrid5057); + p_Hybrid172=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid172.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseHybrid_return: (function() { + XQueryParser.p_SwitchCaseHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:740:1: p_SwitchCaseHybrid[strict] : (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_SwitchCaseHybrid" + p_SwitchCaseHybrid: function(strict) { + var retval = new XQueryParser.p_SwitchCaseHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_SwitchCaseOperand173 = null; + var p_Hybrid174 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:741:9: ( (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:741:11: (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:741:11: (k= CASE p_SwitchCaseOperand )+ + var cnt82=0; + loop82: + do { + var alt82=2; + var LA82_0 = this.input.LA(1); + + if ( (LA82_0==CASE) ) { + alt82=1; + } + + + switch (alt82) { + case 1 : + // xquery/XQueryParser.g:741:12: k= CASE p_SwitchCaseOperand + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_SwitchCaseHybrid5088); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseHybrid5092); + p_SwitchCaseOperand173=this.p_SwitchCaseOperand(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseOperand173.getTree()); + + + break; + + default : + if ( cnt82 >= 1 ) { + break loop82; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(82, this.input); + throw eee; + } + cnt82++; + } while (true); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchCaseHybrid5098); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchCaseHybrid5102); + p_Hybrid174=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid174.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseOperand_return: (function() { + XQueryParser.p_SwitchCaseOperand_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseOperand_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:745:1: p_SwitchCaseOperand : p_ExprSingle[true] ; + // $ANTLR start "p_SwitchCaseOperand" + p_SwitchCaseOperand: function() { + var retval = new XQueryParser.p_SwitchCaseOperand_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle175 = null; + + + try { + // xquery/XQueryParser.g:746:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:746:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SwitchCaseOperand5129); + p_ExprSingle175=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle175.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeswitchHybrid_return: (function() { + XQueryParser.p_TypeswitchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeswitchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:750:1: p_TypeswitchHybrid[strict] : k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_TypeswitchHybrid" + p_TypeswitchHybrid: function(strict) { + var retval = new XQueryParser.p_TypeswitchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var LPAREN176 = null; + var RPAREN178 = null; + var v = null; + var p_Expr177 = null; + var p_CaseHybrid179 = null; + var p_Hybrid180 = null; + + var k_tree=null; + var d_tree=null; + var LPAREN176_tree=null; + var RPAREN178_tree=null; + + try { + // xquery/XQueryParser.g:751:9: (k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:751:11: k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_p_TypeswitchHybrid5159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN176=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypeswitchHybrid5163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN176_tree = this.adaptor.create(LPAREN176); + this.adaptor.addChild(root_0, LPAREN176_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TypeswitchHybrid5165); + p_Expr177=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr177.getTree()); + RPAREN178=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypeswitchHybrid5168); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN178_tree = this.adaptor.create(RPAREN178); + this.adaptor.addChild(root_0, RPAREN178_tree); + } + // xquery/XQueryParser.g:751:71: ( p_CaseHybrid[$strict] )+ + var cnt83=0; + loop83: + do { + var alt83=2; + var LA83_0 = this.input.LA(1); + + if ( (LA83_0==CASE) ) { + alt83=1; + } + + + switch (alt83) { + case 1 : + // xquery/XQueryParser.g:751:71: p_CaseHybrid[$strict] + this.pushFollow(XQueryParser.FOLLOW_p_CaseHybrid_in_p_TypeswitchHybrid5170); + p_CaseHybrid179=this.p_CaseHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CaseHybrid179.getTree()); + + + break; + + default : + if ( cnt83 >= 1 ) { + break loop83; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(83, this.input); + throw eee; + } + cnt83++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_TypeswitchHybrid5176); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:751:119: (d= DOLLAR v= p_VarName )? + var alt84=2; + var LA84_0 = this.input.LA(1); + + if ( (LA84_0==DOLLAR) ) { + alt84=1; + } + switch (alt84) { + case 1 : + // xquery/XQueryParser.g:751:120: d= DOLLAR v= p_VarName + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TypeswitchHybrid5183); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TypeswitchHybrid5187); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TypeswitchHybrid5195); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_TypeswitchHybrid5199); + p_Hybrid180=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid180.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CaseHybrid_return: (function() { + XQueryParser.p_CaseHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CaseHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:755:1: p_CaseHybrid[strict] : k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] ; + // $ANTLR start "p_CaseHybrid" + p_CaseHybrid: function(strict) { + var retval = new XQueryParser.p_CaseHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_SequenceTypeUnion181 = null; + var p_ExprSingle182 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:756:9: (k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] ) + // xquery/XQueryParser.g:756:11: k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_CaseHybrid5229); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:756:33: (d= DOLLAR v= p_VarName k= AS )? + var alt85=2; + var LA85_0 = this.input.LA(1); + + if ( (LA85_0==DOLLAR) ) { + alt85=1; + } + switch (alt85) { + case 1 : + // xquery/XQueryParser.g:756:34: d= DOLLAR v= p_VarName k= AS + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CaseHybrid5236); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CaseHybrid5240); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CaseHybrid5246); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceTypeUnion_in_p_CaseHybrid5252); + p_SequenceTypeUnion181=this.p_SequenceTypeUnion(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceTypeUnion181.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_CaseHybrid5256); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_CaseHybrid5260); + p_ExprSingle182=this.p_ExprSingle(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle182.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SequenceTypeUnion_return: (function() { + XQueryParser.p_SequenceTypeUnion_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SequenceTypeUnion_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:760:1: p_SequenceTypeUnion : p_SequenceType ( VBAR p_SequenceType )* ; + // $ANTLR start "p_SequenceTypeUnion" + p_SequenceTypeUnion: function() { + var retval = new XQueryParser.p_SequenceTypeUnion_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var VBAR184 = null; + var p_SequenceType183 = null; + var p_SequenceType185 = null; + + var VBAR184_tree=null; + + try { + // xquery/XQueryParser.g:761:9: ( p_SequenceType ( VBAR p_SequenceType )* ) + // xquery/XQueryParser.g:761:11: p_SequenceType ( VBAR p_SequenceType )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5287); + p_SequenceType183=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType183.getTree()); + // xquery/XQueryParser.g:761:26: ( VBAR p_SequenceType )* + loop86: + do { + var alt86=2; + var LA86_0 = this.input.LA(1); + + if ( (LA86_0==VBAR) ) { + alt86=1; + } + + + switch (alt86) { + case 1 : + // xquery/XQueryParser.g:761:27: VBAR p_SequenceType + VBAR184=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_SequenceTypeUnion5290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR184_tree = this.adaptor.create(VBAR184); + this.adaptor.addChild(root_0, VBAR184_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5292); + p_SequenceType185=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType185.getTree()); + + + break; + + default : + break loop86; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IfHybrid_return: (function() { + XQueryParser.p_IfHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IfHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:765:1: p_IfHybrid[strict] : k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] ; + // $ANTLR start "p_IfHybrid" + p_IfHybrid: function(strict) { + var retval = new XQueryParser.p_IfHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN186 = null; + var RPAREN188 = null; + var p_Expr187 = null; + var p_Hybrid189 = null; + var p_Hybrid190 = null; + + var k_tree=null; + var LPAREN186_tree=null; + var RPAREN188_tree=null; + + try { + // xquery/XQueryParser.g:766:9: (k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:766:11: k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_p_IfHybrid5323); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN186=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_IfHybrid5327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN186_tree = this.adaptor.create(LPAREN186); + this.adaptor.addChild(root_0, LPAREN186_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_IfHybrid5329); + p_Expr187=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr187.getTree()); + RPAREN188=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_IfHybrid5332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN188_tree = this.adaptor.create(RPAREN188); + this.adaptor.addChild(root_0, RPAREN188_tree); + } + k=this.match(this.input,THEN,XQueryParser.FOLLOW_THEN_in_p_IfHybrid5336); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfHybrid5340); + p_Hybrid189=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid189.getTree()); + k=this.match(this.input,ELSE,XQueryParser.FOLLOW_ELSE_in_p_IfHybrid5345); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfHybrid5349); + p_Hybrid190=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid190.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchExpr_return: (function() { + XQueryParser.p_TryCatchExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:770:1: p_TryCatchExpr : p_TryClause ( p_CatchClause )+ ; + // $ANTLR start "p_TryCatchExpr" + p_TryCatchExpr: function() { + var retval = new XQueryParser.p_TryCatchExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_TryClause191 = null; + var p_CatchClause192 = null; + + + try { + // xquery/XQueryParser.g:771:9: ( p_TryClause ( p_CatchClause )+ ) + // xquery/XQueryParser.g:771:11: p_TryClause ( p_CatchClause )+ + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TryClause_in_p_TryCatchExpr5376); + p_TryClause191=this.p_TryClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryClause191.getTree()); + // xquery/XQueryParser.g:771:23: ( p_CatchClause )+ + var cnt87=0; + loop87: + do { + var alt87=2; + var LA87_0 = this.input.LA(1); + + if ( (LA87_0==CATCH) ) { + alt87=1; + } + + + switch (alt87) { + case 1 : + // xquery/XQueryParser.g:771:23: p_CatchClause + this.pushFollow(XQueryParser.FOLLOW_p_CatchClause_in_p_TryCatchExpr5378); + p_CatchClause192=this.p_CatchClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchClause192.getTree()); + + + break; + + default : + if ( cnt87 >= 1 ) { + break loop87; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(87, this.input); + throw eee; + } + cnt87++; + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryClause_return: (function() { + XQueryParser.p_TryClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:775:1: p_TryClause : k= TRY LBRACKET p_TryTargetExpr RBRACKET ; + // $ANTLR start "p_TryClause" + p_TryClause: function() { + var retval = new XQueryParser.p_TryClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET193 = null; + var RBRACKET195 = null; + var p_TryTargetExpr194 = null; + + var k_tree=null; + var LBRACKET193_tree=null; + var RBRACKET195_tree=null; + + try { + // xquery/XQueryParser.g:776:9: (k= TRY LBRACKET p_TryTargetExpr RBRACKET ) + // xquery/XQueryParser.g:776:11: k= TRY LBRACKET p_TryTargetExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryClause5407); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET193=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_TryClause5411); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET193_tree = this.adaptor.create(LBRACKET193); + this.adaptor.addChild(root_0, LBRACKET193_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TryTargetExpr_in_p_TryClause5413); + p_TryTargetExpr194=this.p_TryTargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryTargetExpr194.getTree()); + RBRACKET195=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_TryClause5415); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET195_tree = this.adaptor.create(RBRACKET195); + this.adaptor.addChild(root_0, RBRACKET195_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryTargetExpr_return: (function() { + XQueryParser.p_TryTargetExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryTargetExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:780:1: p_TryTargetExpr : p_Expr[false,false] ; + // $ANTLR start "p_TryTargetExpr" + p_TryTargetExpr: function() { + var retval = new XQueryParser.p_TryTargetExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr196 = null; + + + try { + // xquery/XQueryParser.g:781:9: ( p_Expr[false,false] ) + // xquery/XQueryParser.g:781:11: p_Expr[false,false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TryTargetExpr5441); + p_Expr196=this.p_Expr(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr196.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CatchClause_return: (function() { + XQueryParser.p_CatchClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CatchClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:785:1: p_CatchClause : k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET ; + // $ANTLR start "p_CatchClause" + p_CatchClause: function() { + var retval = new XQueryParser.p_CatchClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET198 = null; + var RBRACKET200 = null; + var p_CatchErrorList197 = null; + var p_Expr199 = null; + + var k_tree=null; + var LBRACKET198_tree=null; + var RBRACKET200_tree=null; + + try { + // xquery/XQueryParser.g:786:9: (k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET ) + // xquery/XQueryParser.g:786:11: k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_CatchClause5470); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_CatchClause5474); + p_CatchErrorList197=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList197.getTree()); + LBRACKET198=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CatchClause5476); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET198_tree = this.adaptor.create(LBRACKET198); + this.adaptor.addChild(root_0, LBRACKET198_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CatchClause5478); + p_Expr199=this.p_Expr(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr199.getTree()); + RBRACKET200=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CatchClause5481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET200_tree = this.adaptor.create(RBRACKET200); + this.adaptor.addChild(root_0, RBRACKET200_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CatchErrorList_return: (function() { + XQueryParser.p_CatchErrorList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CatchErrorList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:790:1: p_CatchErrorList : ( p_NameTest ( VBAR p_NameTest )* | {...}? => () ); + // $ANTLR start "p_CatchErrorList" + p_CatchErrorList: function() { + var retval = new XQueryParser.p_CatchErrorList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var VBAR202 = null; + var p_NameTest201 = null; + var p_NameTest203 = null; + + var VBAR202_tree=null; + + try { + // xquery/XQueryParser.g:791:9: ( p_NameTest ( VBAR p_NameTest )* | {...}? => () ) + var alt89=2; + var LA89_0 = this.input.LA(1); + + if ( ((LA89_0>=ANCESTOR && LA89_0<=SKIP)||(LA89_0>=VALUE && LA89_0<=QUOT_ER)||LA89_0==STAR||(LA89_0>=APOS && LA89_0<=QUOT)||LA89_0==L_NCName||LA89_0==EXPLICITLY) ) { + alt89=1; + } + else if ( (LA89_0==LBRACKET) && ((this.lc(MLS)))) { + alt89=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 89, 0, this.input); + + throw nvae; + } + switch (alt89) { + case 1 : + // xquery/XQueryParser.g:791:11: p_NameTest ( VBAR p_NameTest )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_CatchErrorList5507); + p_NameTest201=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest201.getTree()); + // xquery/XQueryParser.g:791:22: ( VBAR p_NameTest )* + loop88: + do { + var alt88=2; + var LA88_0 = this.input.LA(1); + + if ( (LA88_0==VBAR) ) { + alt88=1; + } + + + switch (alt88) { + case 1 : + // xquery/XQueryParser.g:791:23: VBAR p_NameTest + VBAR202=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_CatchErrorList5510); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR202_tree = this.adaptor.create(VBAR202); + this.adaptor.addChild(root_0, VBAR202_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_CatchErrorList5512); + p_NameTest203=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest203.getTree()); + + + break; + + default : + break loop88; + } + } while (true); + + + + break; + case 2 : + // xquery/XQueryParser.g:792:11: {...}? => () + root_0 = this.adaptor.nil(); + + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_CatchErrorList", "this.lc(MLS)"); + } + // xquery/XQueryParser.g:792:29: () + // xquery/XQueryParser.g:792:43: + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrExpr_return: (function() { + XQueryParser.p_OrExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:796:1: p_OrExpr : p_AndExpr (k= OR p_AndExpr )* ; + // $ANTLR start "p_OrExpr" + p_OrExpr: function() { + var retval = new XQueryParser.p_OrExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AndExpr204 = null; + var p_AndExpr205 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:797:9: ( p_AndExpr (k= OR p_AndExpr )* ) + // xquery/XQueryParser.g:797:11: p_AndExpr (k= OR p_AndExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AndExpr_in_p_OrExpr5557); + p_AndExpr204=this.p_AndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AndExpr204.getTree()); + // xquery/XQueryParser.g:797:21: (k= OR p_AndExpr )* + loop90: + do { + var alt90=2; + var LA90_0 = this.input.LA(1); + + if ( (LA90_0==OR) ) { + alt90=1; + } + + + switch (alt90) { + case 1 : + // xquery/XQueryParser.g:797:23: k= OR p_AndExpr + k=this.match(this.input,OR,XQueryParser.FOLLOW_OR_in_p_OrExpr5563); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AndExpr_in_p_OrExpr5567); + p_AndExpr205=this.p_AndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AndExpr205.getTree()); + + + break; + + default : + break loop90; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AndExpr_return: (function() { + XQueryParser.p_AndExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AndExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:801:1: p_AndExpr : p_ComparisonExpr (k= AND p_ComparisonExpr )* ; + // $ANTLR start "p_AndExpr" + p_AndExpr: function() { + var retval = new XQueryParser.p_AndExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ComparisonExpr206 = null; + var p_ComparisonExpr207 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:802:9: ( p_ComparisonExpr (k= AND p_ComparisonExpr )* ) + // xquery/XQueryParser.g:802:11: p_ComparisonExpr (k= AND p_ComparisonExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ComparisonExpr_in_p_AndExpr5596); + p_ComparisonExpr206=this.p_ComparisonExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComparisonExpr206.getTree()); + // xquery/XQueryParser.g:802:28: (k= AND p_ComparisonExpr )* + loop91: + do { + var alt91=2; + var LA91_0 = this.input.LA(1); + + if ( (LA91_0==AND) ) { + alt91=1; + } + + + switch (alt91) { + case 1 : + // xquery/XQueryParser.g:802:30: k= AND p_ComparisonExpr + k=this.match(this.input,AND,XQueryParser.FOLLOW_AND_in_p_AndExpr5602); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ComparisonExpr_in_p_AndExpr5606); + p_ComparisonExpr207=this.p_ComparisonExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComparisonExpr207.getTree()); + + + break; + + default : + break loop91; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ComparisonExpr_return: (function() { + XQueryParser.p_ComparisonExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ComparisonExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:807:1: p_ComparisonExpr : p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? ; + // $ANTLR start "p_ComparisonExpr" + p_ComparisonExpr: function() { + var retval = new XQueryParser.p_ComparisonExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTContainsExpr208 = null; + var p_ValueComp209 = null; + var p_GeneralComp210 = null; + var p_NodeComp211 = null; + var p_FTContainsExpr212 = null; + + + try { + // xquery/XQueryParser.g:808:9: ( p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? ) + // xquery/XQueryParser.g:808:11: p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5636); + p_FTContainsExpr208=this.p_FTContainsExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContainsExpr208.getTree()); + // xquery/XQueryParser.g:808:28: ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? + var alt93=2; + var LA93_0 = this.input.LA(1); + + if ( (LA93_0==EQ||LA93_0==GE||LA93_0==GT||LA93_0==IS||LA93_0==LE||LA93_0==LT||LA93_0==NE||LA93_0==EQUAL||LA93_0==NOTEQUAL||(LA93_0>=SMALLER && LA93_0<=GREATER_GREATER)) ) { + alt93=1; + } + switch (alt93) { + case 1 : + // xquery/XQueryParser.g:808:30: ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr + // xquery/XQueryParser.g:808:30: ( p_ValueComp | p_GeneralComp | p_NodeComp ) + var alt92=3; + switch ( this.input.LA(1) ) { + case EQ: + case GE: + case GT: + case LE: + case LT: + case NE: + alt92=1; + break; + case EQUAL: + case NOTEQUAL: + case SMALLER: + case GREATER: + case SMALLEREQ: + case GREATEREQ: + alt92=2; + break; + case IS: + case SMALLER_SMALLER: + case GREATER_GREATER: + alt92=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 92, 0, this.input); + + throw nvae; + } + + switch (alt92) { + case 1 : + // xquery/XQueryParser.g:808:31: p_ValueComp + this.pushFollow(XQueryParser.FOLLOW_p_ValueComp_in_p_ComparisonExpr5641); + p_ValueComp209=this.p_ValueComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValueComp209.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:808:45: p_GeneralComp + this.pushFollow(XQueryParser.FOLLOW_p_GeneralComp_in_p_ComparisonExpr5645); + p_GeneralComp210=this.p_GeneralComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GeneralComp210.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:808:61: p_NodeComp + this.pushFollow(XQueryParser.FOLLOW_p_NodeComp_in_p_ComparisonExpr5649); + p_NodeComp211=this.p_NodeComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeComp211.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5652); + p_FTContainsExpr212=this.p_FTContainsExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContainsExpr212.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RangeExpr_return: (function() { + XQueryParser.p_RangeExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RangeExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:812:1: p_RangeExpr : p_AdditiveExpr (k= TO p_AdditiveExpr )? ; + // $ANTLR start "p_RangeExpr" + p_RangeExpr: function() { + var retval = new XQueryParser.p_RangeExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AdditiveExpr213 = null; + var p_AdditiveExpr214 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:813:9: ( p_AdditiveExpr (k= TO p_AdditiveExpr )? ) + // xquery/XQueryParser.g:813:11: p_AdditiveExpr (k= TO p_AdditiveExpr )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_RangeExpr5681); + p_AdditiveExpr213=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr213.getTree()); + // xquery/XQueryParser.g:813:26: (k= TO p_AdditiveExpr )? + var alt94=2; + var LA94_0 = this.input.LA(1); + + if ( (LA94_0==TO) ) { + alt94=1; + } + switch (alt94) { + case 1 : + // xquery/XQueryParser.g:813:28: k= TO p_AdditiveExpr + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_RangeExpr5687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_RangeExpr5691); + p_AdditiveExpr214=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr214.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AdditiveExpr_return: (function() { + XQueryParser.p_AdditiveExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AdditiveExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:817:1: p_AdditiveExpr : p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* ; + // $ANTLR start "p_AdditiveExpr" + p_AdditiveExpr: function() { + var retval = new XQueryParser.p_AdditiveExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_MultiplicativeExpr215 = null; + var p_MultiplicativeExpr216 = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:818:9: ( p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* ) + // xquery/XQueryParser.g:818:11: p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5720); + p_MultiplicativeExpr215=this.p_MultiplicativeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_MultiplicativeExpr215.getTree()); + // xquery/XQueryParser.g:818:32: ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* + loop96: + do { + var alt96=2; + var LA96_0 = this.input.LA(1); + + if ( ((LA96_0>=PLUS && LA96_0<=MINUS)) ) { + alt96=1; + } + + + switch (alt96) { + case 1 : + // xquery/XQueryParser.g:818:34: (o= PLUS | o= MINUS ) p_MultiplicativeExpr + // xquery/XQueryParser.g:818:34: (o= PLUS | o= MINUS ) + var alt95=2; + var LA95_0 = this.input.LA(1); + + if ( (LA95_0==PLUS) ) { + alt95=1; + } + else if ( (LA95_0==MINUS) ) { + alt95=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 95, 0, this.input); + + throw nvae; + } + switch (alt95) { + case 1 : + // xquery/XQueryParser.g:818:35: o= PLUS + o=this.match(this.input,PLUS,XQueryParser.FOLLOW_PLUS_in_p_AdditiveExpr5727); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:818:59: o= MINUS + o=this.match(this.input,MINUS,XQueryParser.FOLLOW_MINUS_in_p_AdditiveExpr5735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5740); + p_MultiplicativeExpr216=this.p_MultiplicativeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_MultiplicativeExpr216.getTree()); + + + break; + + default : + break loop96; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_MultiplicativeExpr_return: (function() { + XQueryParser.p_MultiplicativeExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_MultiplicativeExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:822:1: p_MultiplicativeExpr : p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* ; + // $ANTLR start "p_MultiplicativeExpr" + p_MultiplicativeExpr: function() { + var retval = new XQueryParser.p_MultiplicativeExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var k = null; + var p_UnionExpr217 = null; + var p_UnionExpr218 = null; + + var o_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:823:9: ( p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* ) + // xquery/XQueryParser.g:823:11: p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5769); + p_UnionExpr217=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr217.getTree()); + // xquery/XQueryParser.g:823:23: ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* + loop99: + do { + var alt99=2; + var LA99_0 = this.input.LA(1); + + if ( (LA99_0==DIV||LA99_0==IDIV||LA99_0==MOD||LA99_0==STAR) ) { + alt99=1; + } + + + switch (alt99) { + case 1 : + // xquery/XQueryParser.g:823:25: (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr + // xquery/XQueryParser.g:823:25: (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) + var alt98=2; + var LA98_0 = this.input.LA(1); + + if ( (LA98_0==STAR) ) { + alt98=1; + } + else if ( (LA98_0==DIV||LA98_0==IDIV||LA98_0==MOD) ) { + alt98=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 98, 0, this.input); + + throw nvae; + } + switch (alt98) { + case 1 : + // xquery/XQueryParser.g:823:26: o= STAR + o=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_MultiplicativeExpr5776); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:823:50: (k= DIV | k= IDIV | k= MOD ) + // xquery/XQueryParser.g:823:50: (k= DIV | k= IDIV | k= MOD ) + var alt97=3; + switch ( this.input.LA(1) ) { + case DIV: + alt97=1; + break; + case IDIV: + alt97=2; + break; + case MOD: + alt97=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 97, 0, this.input); + + throw nvae; + } + + switch (alt97) { + case 1 : + // xquery/XQueryParser.g:823:51: k= DIV + k=this.match(this.input,DIV,XQueryParser.FOLLOW_DIV_in_p_MultiplicativeExpr5785); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:823:59: k= IDIV + k=this.match(this.input,IDIV,XQueryParser.FOLLOW_IDIV_in_p_MultiplicativeExpr5791); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:823:68: k= MOD + k=this.match(this.input,MOD,XQueryParser.FOLLOW_MOD_in_p_MultiplicativeExpr5797); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5803); + p_UnionExpr218=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr218.getTree()); + + + break; + + default : + break loop99; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnionExpr_return: (function() { + XQueryParser.p_UnionExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnionExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:827:1: p_UnionExpr : p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* ; + // $ANTLR start "p_UnionExpr" + p_UnionExpr: function() { + var retval = new XQueryParser.p_UnionExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var VBAR220 = null; + var p_IntersectExceptExpr219 = null; + var p_IntersectExceptExpr221 = null; + + var k_tree=null; + var VBAR220_tree=null; + + try { + // xquery/XQueryParser.g:828:9: ( p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* ) + // xquery/XQueryParser.g:828:11: p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5832); + p_IntersectExceptExpr219=this.p_IntersectExceptExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntersectExceptExpr219.getTree()); + // xquery/XQueryParser.g:828:33: ( (k= UNION | VBAR ) p_IntersectExceptExpr )* + loop101: + do { + var alt101=2; + var LA101_0 = this.input.LA(1); + + if ( (LA101_0==UNION||LA101_0==VBAR) ) { + alt101=1; + } + + + switch (alt101) { + case 1 : + // xquery/XQueryParser.g:828:35: (k= UNION | VBAR ) p_IntersectExceptExpr + // xquery/XQueryParser.g:828:35: (k= UNION | VBAR ) + var alt100=2; + var LA100_0 = this.input.LA(1); + + if ( (LA100_0==UNION) ) { + alt100=1; + } + else if ( (LA100_0==VBAR) ) { + alt100=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 100, 0, this.input); + + throw nvae; + } + switch (alt100) { + case 1 : + // xquery/XQueryParser.g:828:36: k= UNION + k=this.match(this.input,UNION,XQueryParser.FOLLOW_UNION_in_p_UnionExpr5839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:828:61: VBAR + VBAR220=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_UnionExpr5845); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR220_tree = this.adaptor.create(VBAR220); + this.adaptor.addChild(root_0, VBAR220_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5848); + p_IntersectExceptExpr221=this.p_IntersectExceptExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntersectExceptExpr221.getTree()); + + + break; + + default : + break loop101; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IntersectExceptExpr_return: (function() { + XQueryParser.p_IntersectExceptExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IntersectExceptExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:832:1: p_IntersectExceptExpr : p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* ; + // $ANTLR start "p_IntersectExceptExpr" + p_IntersectExceptExpr: function() { + var retval = new XQueryParser.p_IntersectExceptExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_InstanceofExpr222 = null; + var p_InstanceofExpr223 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:833:9: ( p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* ) + // xquery/XQueryParser.g:833:11: p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5877); + p_InstanceofExpr222=this.p_InstanceofExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InstanceofExpr222.getTree()); + // xquery/XQueryParser.g:833:28: ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* + loop103: + do { + var alt103=2; + var LA103_0 = this.input.LA(1); + + if ( (LA103_0==EXCEPT||LA103_0==INTERSECT) ) { + alt103=1; + } + + + switch (alt103) { + case 1 : + // xquery/XQueryParser.g:833:30: (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr + // xquery/XQueryParser.g:833:30: (k= INTERSECT | k= EXCEPT ) + var alt102=2; + var LA102_0 = this.input.LA(1); + + if ( (LA102_0==INTERSECT) ) { + alt102=1; + } + else if ( (LA102_0==EXCEPT) ) { + alt102=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 102, 0, this.input); + + throw nvae; + } + switch (alt102) { + case 1 : + // xquery/XQueryParser.g:833:31: k= INTERSECT + k=this.match(this.input,INTERSECT,XQueryParser.FOLLOW_INTERSECT_in_p_IntersectExceptExpr5884); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:833:45: k= EXCEPT + k=this.match(this.input,EXCEPT,XQueryParser.FOLLOW_EXCEPT_in_p_IntersectExceptExpr5890); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5895); + p_InstanceofExpr223=this.p_InstanceofExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InstanceofExpr223.getTree()); + + + break; + + default : + break loop103; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InstanceofExpr_return: (function() { + XQueryParser.p_InstanceofExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InstanceofExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:837:1: p_InstanceofExpr : p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? ; + // $ANTLR start "p_InstanceofExpr" + p_InstanceofExpr: function() { + var retval = new XQueryParser.p_InstanceofExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_TreatExpr224 = null; + var p_SequenceType225 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:838:9: ( p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? ) + // xquery/XQueryParser.g:838:11: p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TreatExpr_in_p_InstanceofExpr5924); + p_TreatExpr224=this.p_TreatExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TreatExpr224.getTree()); + // xquery/XQueryParser.g:838:23: (k= INSTANCE k= OF p_SequenceType )? + var alt104=2; + var LA104_0 = this.input.LA(1); + + if ( (LA104_0==INSTANCE) ) { + alt104=1; + } + switch (alt104) { + case 1 : + // xquery/XQueryParser.g:838:25: k= INSTANCE k= OF p_SequenceType + k=this.match(this.input,INSTANCE,XQueryParser.FOLLOW_INSTANCE_in_p_InstanceofExpr5930); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,OF,XQueryParser.FOLLOW_OF_in_p_InstanceofExpr5936); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_InstanceofExpr5940); + p_SequenceType225=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType225.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TreatExpr_return: (function() { + XQueryParser.p_TreatExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TreatExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:842:1: p_TreatExpr : p_CastableExpr (k= TREAT k= AS p_SequenceType )? ; + // $ANTLR start "p_TreatExpr" + p_TreatExpr: function() { + var retval = new XQueryParser.p_TreatExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_CastableExpr226 = null; + var p_SequenceType227 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:843:9: ( p_CastableExpr (k= TREAT k= AS p_SequenceType )? ) + // xquery/XQueryParser.g:843:11: p_CastableExpr (k= TREAT k= AS p_SequenceType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CastableExpr_in_p_TreatExpr5968); + p_CastableExpr226=this.p_CastableExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CastableExpr226.getTree()); + // xquery/XQueryParser.g:843:26: (k= TREAT k= AS p_SequenceType )? + var alt105=2; + var LA105_0 = this.input.LA(1); + + if ( (LA105_0==TREAT) ) { + alt105=1; + } + switch (alt105) { + case 1 : + // xquery/XQueryParser.g:843:28: k= TREAT k= AS p_SequenceType + k=this.match(this.input,TREAT,XQueryParser.FOLLOW_TREAT_in_p_TreatExpr5974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TreatExpr5980); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TreatExpr5984); + p_SequenceType227=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType227.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CastableExpr_return: (function() { + XQueryParser.p_CastableExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CastableExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:847:1: p_CastableExpr : p_CastExpr (k= CASTABLE k= AS p_SingleType )? ; + // $ANTLR start "p_CastableExpr" + p_CastableExpr: function() { + var retval = new XQueryParser.p_CastableExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_CastExpr228 = null; + var p_SingleType229 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:848:9: ( p_CastExpr (k= CASTABLE k= AS p_SingleType )? ) + // xquery/XQueryParser.g:848:11: p_CastExpr (k= CASTABLE k= AS p_SingleType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CastExpr_in_p_CastableExpr6021); + p_CastExpr228=this.p_CastExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CastExpr228.getTree()); + // xquery/XQueryParser.g:848:22: (k= CASTABLE k= AS p_SingleType )? + var alt106=2; + var LA106_0 = this.input.LA(1); + + if ( (LA106_0==CASTABLE) ) { + alt106=1; + } + switch (alt106) { + case 1 : + // xquery/XQueryParser.g:848:24: k= CASTABLE k= AS p_SingleType + k=this.match(this.input,CASTABLE,XQueryParser.FOLLOW_CASTABLE_in_p_CastableExpr6027); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CastableExpr6033); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SingleType_in_p_CastableExpr6037); + p_SingleType229=this.p_SingleType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SingleType229.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CastExpr_return: (function() { + XQueryParser.p_CastExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CastExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:852:1: p_CastExpr : p_UnaryExpr (k= CAST k= AS p_SingleType )? ; + // $ANTLR start "p_CastExpr" + p_CastExpr: function() { + var retval = new XQueryParser.p_CastExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_UnaryExpr230 = null; + var p_SingleType231 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:853:9: ( p_UnaryExpr (k= CAST k= AS p_SingleType )? ) + // xquery/XQueryParser.g:853:11: p_UnaryExpr (k= CAST k= AS p_SingleType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnaryExpr_in_p_CastExpr6074); + p_UnaryExpr230=this.p_UnaryExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnaryExpr230.getTree()); + // xquery/XQueryParser.g:853:23: (k= CAST k= AS p_SingleType )? + var alt107=2; + var LA107_0 = this.input.LA(1); + + if ( (LA107_0==CAST) ) { + alt107=1; + } + switch (alt107) { + case 1 : + // xquery/XQueryParser.g:853:25: k= CAST k= AS p_SingleType + k=this.match(this.input,CAST,XQueryParser.FOLLOW_CAST_in_p_CastExpr6080); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CastExpr6086); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SingleType_in_p_CastExpr6090); + p_SingleType231=this.p_SingleType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SingleType231.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnaryExpr_return: (function() { + XQueryParser.p_UnaryExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnaryExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:857:1: p_UnaryExpr : (o= PLUS | o= MINUS )* p_ValueExpr -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) ; + // $ANTLR start "p_UnaryExpr" + p_UnaryExpr: function() { + var retval = new XQueryParser.p_UnaryExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_ValueExpr232 = null; + + var o_tree=null; + var stream_PLUS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token PLUS"); + var stream_MINUS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MINUS"); + var stream_p_ValueExpr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ValueExpr"); + try { + // xquery/XQueryParser.g:858:9: ( (o= PLUS | o= MINUS )* p_ValueExpr -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) ) + // xquery/XQueryParser.g:858:11: (o= PLUS | o= MINUS )* p_ValueExpr + // xquery/XQueryParser.g:858:11: (o= PLUS | o= MINUS )* + loop108: + do { + var alt108=3; + var LA108_0 = this.input.LA(1); + + if ( (LA108_0==PLUS) ) { + alt108=1; + } + else if ( (LA108_0==MINUS) ) { + alt108=2; + } + + + switch (alt108) { + case 1 : + // xquery/XQueryParser.g:858:12: o= PLUS + o=this.match(this.input,PLUS,XQueryParser.FOLLOW_PLUS_in_p_UnaryExpr6122); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_PLUS.add(o); + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:858:36: o= MINUS + o=this.match(this.input,MINUS,XQueryParser.FOLLOW_MINUS_in_p_UnaryExpr6130); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MINUS.add(o); + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + + default : + break loop108; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ValueExpr_in_p_UnaryExpr6135); + p_ValueExpr232=this.p_ValueExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ValueExpr.add(p_ValueExpr232.getTree()); + + + // AST REWRITE + // elements: PLUS, p_ValueExpr + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 859:17: -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) + { + // xquery/XQueryParser.g:859:20: ^( UnaryExpr ( PLUS )* p_ValueExpr ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(UnaryExpr, "UnaryExpr"), root_1); + + // xquery/XQueryParser.g:859:32: ( PLUS )* + while ( stream_PLUS.hasNext() ) { + this.adaptor.addChild(root_1, stream_PLUS.nextNode()); + + } + stream_PLUS.reset(); + this.adaptor.addChild(root_1, stream_p_ValueExpr.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValueExpr_return: (function() { + XQueryParser.p_ValueExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValueExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:863:1: p_ValueExpr : ( ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr | p_PathExpr | p_ExtensionExpr ); + // $ANTLR start "p_ValueExpr" + p_ValueExpr: function() { + var retval = new XQueryParser.p_ValueExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ValidateExpr233 = null; + var p_PathExpr234 = null; + var p_ExtensionExpr235 = null; + + + try { + // xquery/XQueryParser.g:864:9: ( ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr | p_PathExpr | p_ExtensionExpr ) + var alt109=3; + switch ( this.input.LA(1) ) { + case VALIDATE: + var LA109_1 = this.input.LA(2); + + if ( (LA109_1==LAX) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==STRICT) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==TYPE) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==LBRACKET) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==EOF||(LA109_1>=AND && LA109_1<=ASCENDING)||(LA109_1>=CASE && LA109_1<=CASTABLE)||LA109_1==COLLATION||LA109_1==DEFAULT||(LA109_1>=DESCENDING && LA109_1<=DIV)||LA109_1==EMPTY||LA109_1==EQ||LA109_1==EXCEPT||LA109_1==FOR||LA109_1==GE||(LA109_1>=GT && LA109_1<=IDIV)||(LA109_1>=INSTANCE && LA109_1<=IS)||LA109_1==LE||(LA109_1>=LET && LA109_1<=MOD)||LA109_1==NE||(LA109_1>=OR && LA109_1<=ORDER)||(LA109_1>=RETURN && LA109_1<=SATISFIES)||LA109_1==STABLE||(LA109_1>=TO && LA109_1<=TREAT)||LA109_1==UNION||LA109_1==WHERE||LA109_1==COUNT||(LA109_1>=END && LA109_1<=GROUP)||LA109_1==ONLY||LA109_1==START||(LA109_1>=AFTER && LA109_1<=BEFORE)||LA109_1==INTO||LA109_1==MODIFY||LA109_1==WITH||LA109_1==CONTAINS||LA109_1==PARAGRAPHS||LA109_1==SENTENCES||LA109_1==TIMES||LA109_1==WORDS||(LA109_1>=CONCAT && LA109_1<=RPAREN)||(LA109_1>=RBRACKET && LA109_1<=EQUAL)||LA109_1==NOTEQUAL||LA109_1==COMMA||(LA109_1>=STAR && LA109_1<=SLASH_SLASH)||LA109_1==COLON||(LA109_1>=SEMICOLON && LA109_1<=VBAR)) ) { + alt109=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 109, 1, this.input); + + throw nvae; + } + break; + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case UPDATING: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case LPAREN: + case DOLLAR: + case LBRACKET: + case STAR: + case SMALLER: + case SLASH: + case SLASH_SLASH: + case DOT: + case DOT_DOT: + case ATTR_SIGN: + case APOS: + case QUOT: + case L_NCName: + case L_DirCommentConstructor: + case L_DirPIConstructor: + case L_IntegerLiteral: + case L_DecimalLiteral: + case L_DoubleLiteral: + case EXPLICITLY: + alt109=2; + break; + case L_Pragma: + alt109=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 109, 0, this.input); + + throw nvae; + } + + switch (alt109) { + case 1 : + // xquery/XQueryParser.g:864:11: ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ValidateExpr_in_p_ValueExpr6205); + p_ValidateExpr233=this.p_ValidateExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValidateExpr233.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:865:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ValueExpr6217); + p_PathExpr234=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr234.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:866:11: p_ExtensionExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExtensionExpr_in_p_ValueExpr6229); + p_ExtensionExpr235=this.p_ExtensionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExtensionExpr235.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GeneralComp_return: (function() { + XQueryParser.p_GeneralComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GeneralComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:870:1: p_GeneralComp : (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) ; + // $ANTLR start "p_GeneralComp" + p_GeneralComp: function() { + var retval = new XQueryParser.p_GeneralComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:871:9: ( (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) ) + // xquery/XQueryParser.g:871:11: (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:871:11: (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) + var alt110=6; + switch ( this.input.LA(1) ) { + case EQUAL: + alt110=1; + break; + case NOTEQUAL: + alt110=2; + break; + case SMALLER: + alt110=3; + break; + case SMALLEREQ: + alt110=4; + break; + case GREATER: + alt110=5; + break; + case GREATEREQ: + alt110=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 110, 0, this.input); + + throw nvae; + } + + switch (alt110) { + case 1 : + // xquery/XQueryParser.g:871:12: o= EQUAL + o=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_GeneralComp6258); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:871:22: o= NOTEQUAL + o=this.match(this.input,NOTEQUAL,XQueryParser.FOLLOW_NOTEQUAL_in_p_GeneralComp6264); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:871:35: o= SMALLER + o=this.match(this.input,SMALLER,XQueryParser.FOLLOW_SMALLER_in_p_GeneralComp6270); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:871:47: o= SMALLEREQ + o=this.match(this.input,SMALLEREQ,XQueryParser.FOLLOW_SMALLEREQ_in_p_GeneralComp6276); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:871:61: o= GREATER + o=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_GeneralComp6282); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:871:73: o= GREATEREQ + o=this.match(this.input,GREATEREQ,XQueryParser.FOLLOW_GREATEREQ_in_p_GeneralComp6288); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValueComp_return: (function() { + XQueryParser.p_ValueComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValueComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:875:1: p_ValueComp : (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) ; + // $ANTLR start "p_ValueComp" + p_ValueComp: function() { + var retval = new XQueryParser.p_ValueComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:876:9: ( (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) ) + // xquery/XQueryParser.g:876:11: (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:876:11: (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) + var alt111=6; + switch ( this.input.LA(1) ) { + case EQ: + alt111=1; + break; + case NE: + alt111=2; + break; + case LT: + alt111=3; + break; + case LE: + alt111=4; + break; + case GT: + alt111=5; + break; + case GE: + alt111=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 111, 0, this.input); + + throw nvae; + } + + switch (alt111) { + case 1 : + // xquery/XQueryParser.g:876:12: k= EQ + k=this.match(this.input,EQ,XQueryParser.FOLLOW_EQ_in_p_ValueComp6320); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:876:19: k= NE + k=this.match(this.input,NE,XQueryParser.FOLLOW_NE_in_p_ValueComp6326); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:876:26: k= LT + k=this.match(this.input,LT,XQueryParser.FOLLOW_LT_in_p_ValueComp6332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:876:33: k= LE + k=this.match(this.input,LE,XQueryParser.FOLLOW_LE_in_p_ValueComp6338); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:876:40: k= GT + k=this.match(this.input,GT,XQueryParser.FOLLOW_GT_in_p_ValueComp6344); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:876:47: k= GE + k=this.match(this.input,GE,XQueryParser.FOLLOW_GE_in_p_ValueComp6350); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NodeComp_return: (function() { + XQueryParser.p_NodeComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NodeComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:880:1: p_NodeComp : (k= IS | SMALLER_SMALLER | GREATER_GREATER ); + // $ANTLR start "p_NodeComp" + p_NodeComp: function() { + var retval = new XQueryParser.p_NodeComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SMALLER_SMALLER236 = null; + var GREATER_GREATER237 = null; + + var k_tree=null; + var SMALLER_SMALLER236_tree=null; + var GREATER_GREATER237_tree=null; + + try { + // xquery/XQueryParser.g:881:9: (k= IS | SMALLER_SMALLER | GREATER_GREATER ) + var alt112=3; + switch ( this.input.LA(1) ) { + case IS: + alt112=1; + break; + case SMALLER_SMALLER: + alt112=2; + break; + case GREATER_GREATER: + alt112=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 112, 0, this.input); + + throw nvae; + } + + switch (alt112) { + case 1 : + // xquery/XQueryParser.g:881:11: k= IS + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IS,XQueryParser.FOLLOW_IS_in_p_NodeComp6381); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:881:33: SMALLER_SMALLER + root_0 = this.adaptor.nil(); + + SMALLER_SMALLER236=this.match(this.input,SMALLER_SMALLER,XQueryParser.FOLLOW_SMALLER_SMALLER_in_p_NodeComp6387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SMALLER_SMALLER236_tree = this.adaptor.create(SMALLER_SMALLER236); + this.adaptor.addChild(root_0, SMALLER_SMALLER236_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:881:51: GREATER_GREATER + root_0 = this.adaptor.nil(); + + GREATER_GREATER237=this.match(this.input,GREATER_GREATER,XQueryParser.FOLLOW_GREATER_GREATER_in_p_NodeComp6391); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + GREATER_GREATER237_tree = this.adaptor.create(GREATER_GREATER237); + this.adaptor.addChild(root_0, GREATER_GREATER237_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValidateExpr_return: (function() { + XQueryParser.p_ValidateExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValidateExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:885:1: p_ValidateExpr : k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_ValidateExpr" + p_ValidateExpr: function() { + var retval = new XQueryParser.p_ValidateExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET240 = null; + var RBRACKET242 = null; + var p_ValidationMode238 = null; + var p_TypeName239 = null; + var p_Expr241 = null; + + var k_tree=null; + var LBRACKET240_tree=null; + var RBRACKET242_tree=null; + + try { + // xquery/XQueryParser.g:886:9: (k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:886:11: k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,VALIDATE,XQueryParser.FOLLOW_VALIDATE_in_p_ValidateExpr6419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:886:37: ( p_ValidationMode | k= TYPE p_TypeName )? + var alt113=3; + var LA113_0 = this.input.LA(1); + + if ( (LA113_0==LAX||LA113_0==STRICT) ) { + alt113=1; + } + else if ( (LA113_0==TYPE) ) { + alt113=2; + } + switch (alt113) { + case 1 : + // xquery/XQueryParser.g:886:39: p_ValidationMode + this.pushFollow(XQueryParser.FOLLOW_p_ValidationMode_in_p_ValidateExpr6425); + p_ValidationMode238=this.p_ValidationMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValidationMode238.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:886:58: k= TYPE p_TypeName + k=this.match(this.input,TYPE,XQueryParser.FOLLOW_TYPE_in_p_ValidateExpr6431); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_ValidateExpr6435); + p_TypeName239=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName239.getTree()); + + + break; + + } + + LBRACKET240=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_ValidateExpr6440); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET240_tree = this.adaptor.create(LBRACKET240); + this.adaptor.addChild(root_0, LBRACKET240_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ValidateExpr6442); + p_Expr241=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr241.getTree()); + RBRACKET242=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_ValidateExpr6445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET242_tree = this.adaptor.create(RBRACKET242); + this.adaptor.addChild(root_0, RBRACKET242_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValidationMode_return: (function() { + XQueryParser.p_ValidationMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValidationMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:890:1: p_ValidationMode : (k= LAX | k= STRICT ) ; + // $ANTLR start "p_ValidationMode" + p_ValidationMode: function() { + var retval = new XQueryParser.p_ValidationMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:891:9: ( (k= LAX | k= STRICT ) ) + // xquery/XQueryParser.g:891:11: (k= LAX | k= STRICT ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:891:11: (k= LAX | k= STRICT ) + var alt114=2; + var LA114_0 = this.input.LA(1); + + if ( (LA114_0==LAX) ) { + alt114=1; + } + else if ( (LA114_0==STRICT) ) { + alt114=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 114, 0, this.input); + + throw nvae; + } + switch (alt114) { + case 1 : + // xquery/XQueryParser.g:891:12: k= LAX + k=this.match(this.input,LAX,XQueryParser.FOLLOW_LAX_in_p_ValidationMode6474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:891:20: k= STRICT + k=this.match(this.input,STRICT,XQueryParser.FOLLOW_STRICT_in_p_ValidationMode6480); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExtensionExpr_return: (function() { + XQueryParser.p_ExtensionExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExtensionExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:895:1: p_ExtensionExpr : ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET ; + // $ANTLR start "p_ExtensionExpr" + p_ExtensionExpr: function() { + var retval = new XQueryParser.p_ExtensionExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_Pragma243 = null; + var LBRACKET244 = null; + var RBRACKET246 = null; + var p_Expr245 = null; + + var L_Pragma243_tree=null; + var LBRACKET244_tree=null; + var RBRACKET246_tree=null; + + try { + // xquery/XQueryParser.g:896:9: ( ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET ) + // xquery/XQueryParser.g:896:11: ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:896:11: ( L_Pragma )+ + var cnt115=0; + loop115: + do { + var alt115=2; + var LA115_0 = this.input.LA(1); + + if ( (LA115_0==L_Pragma) ) { + alt115=1; + } + + + switch (alt115) { + case 1 : + // xquery/XQueryParser.g:896:11: L_Pragma + L_Pragma243=this.match(this.input,L_Pragma,XQueryParser.FOLLOW_L_Pragma_in_p_ExtensionExpr6509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_Pragma243_tree = this.adaptor.create(L_Pragma243); + this.adaptor.addChild(root_0, L_Pragma243_tree); + } + + + break; + + default : + if ( cnt115 >= 1 ) { + break loop115; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(115, this.input); + throw eee; + } + cnt115++; + } while (true); + + LBRACKET244=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_ExtensionExpr6512); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET244_tree = this.adaptor.create(LBRACKET244); + this.adaptor.addChild(root_0, LBRACKET244_tree); + } + // xquery/XQueryParser.g:896:30: ( p_Expr[true,true] )? + var alt116=2; + var LA116_0 = this.input.LA(1); + + if ( ((LA116_0>=ANCESTOR && LA116_0<=QUOT_ER)||LA116_0==LPAREN||(LA116_0>=DOLLAR && LA116_0<=LBRACKET)||(LA116_0>=STAR && LA116_0<=SMALLER)||(LA116_0>=SLASH && LA116_0<=DOT_DOT)||LA116_0==ATTR_SIGN||(LA116_0>=APOS && LA116_0<=QUOT)||LA116_0==L_NCName||(LA116_0>=L_Pragma && LA116_0<=L_DoubleLiteral)||LA116_0==EXPLICITLY) ) { + alt116=1; + } + switch (alt116) { + case 1 : + // xquery/XQueryParser.g:896:30: p_Expr[true,true] + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ExtensionExpr6514); + p_Expr245=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr245.getTree()); + + + break; + + } + + RBRACKET246=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_ExtensionExpr6518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET246_tree = this.adaptor.create(RBRACKET246); + this.adaptor.addChild(root_0, RBRACKET246_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PathExpr_return: (function() { + XQueryParser.p_PathExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PathExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:908:1: p_PathExpr : ( ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr ); + // $ANTLR start "p_PathExpr" + p_PathExpr: function() { + var retval = new XQueryParser.p_PathExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SLASH247 = null; + var SLASH249 = null; + var SLASH_SLASH250 = null; + var p_RelativePathExpr248 = null; + var p_RelativePathExpr251 = null; + var p_RelativePathExpr252 = null; + + var SLASH247_tree=null; + var SLASH249_tree=null; + var SLASH_SLASH250_tree=null; + + try { + // xquery/XQueryParser.g:909:9: ( ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr ) + var alt117=4; + alt117 = this.dfa117.predict(this.input); + switch (alt117) { + case 1 : + // xquery/XQueryParser.g:909:11: ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:909:41: ( SLASH p_RelativePathExpr ) + // xquery/XQueryParser.g:909:42: SLASH p_RelativePathExpr + SLASH247=this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_p_PathExpr6561); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH247_tree = this.adaptor.create(SLASH247); + this.adaptor.addChild(root_0, SLASH247_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6563); + p_RelativePathExpr248=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr248.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:910:11: SLASH + root_0 = this.adaptor.nil(); + + SLASH249=this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_p_PathExpr6576); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH249_tree = this.adaptor.create(SLASH249); + this.adaptor.addChild(root_0, SLASH249_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:911:11: SLASH_SLASH p_RelativePathExpr + root_0 = this.adaptor.nil(); + + SLASH_SLASH250=this.match(this.input,SLASH_SLASH,XQueryParser.FOLLOW_SLASH_SLASH_in_p_PathExpr6588); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH_SLASH250_tree = this.adaptor.create(SLASH_SLASH250); + this.adaptor.addChild(root_0, SLASH_SLASH250_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6590); + p_RelativePathExpr251=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr251.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:912:11: p_RelativePathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6602); + p_RelativePathExpr252=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr252.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RelativePathExpr_return: (function() { + XQueryParser.p_RelativePathExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RelativePathExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:916:1: p_RelativePathExpr : p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* ; + // $ANTLR start "p_RelativePathExpr" + p_RelativePathExpr: function() { + var retval = new XQueryParser.p_RelativePathExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set254 = null; + var p_StepExpr253 = null; + var p_StepExpr255 = null; + + var set254_tree=null; + + try { + // xquery/XQueryParser.g:917:9: ( p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* ) + // xquery/XQueryParser.g:917:11: p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StepExpr_in_p_RelativePathExpr6630); + p_StepExpr253=this.p_StepExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StepExpr253.getTree()); + // xquery/XQueryParser.g:917:22: ( ( SLASH | SLASH_SLASH ) p_StepExpr )* + loop118: + do { + var alt118=2; + var LA118_0 = this.input.LA(1); + + if ( ((LA118_0>=SLASH && LA118_0<=SLASH_SLASH)) ) { + alt118=1; + } + + + switch (alt118) { + case 1 : + // xquery/XQueryParser.g:917:23: ( SLASH | SLASH_SLASH ) p_StepExpr + set254=this.input.LT(1); + if ( (this.input.LA(1)>=SLASH && this.input.LA(1)<=SLASH_SLASH) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set254)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.pushFollow(XQueryParser.FOLLOW_p_StepExpr_in_p_RelativePathExpr6641); + p_StepExpr255=this.p_StepExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StepExpr255.getTree()); + + + break; + + default : + break loop118; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StepExpr_return: (function() { + XQueryParser.p_StepExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StepExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:921:1: p_StepExpr : ( ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep ); + // $ANTLR start "p_StepExpr" + p_StepExpr: function() { + var retval = new XQueryParser.p_StepExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PostfixExpr256 = null; + var p_PostfixExpr257 = null; + var p_AxisStep258 = null; + var p_PostfixExpr259 = null; + var p_PostfixExpr260 = null; + var p_AxisStep261 = null; + + + try { + // xquery/XQueryParser.g:922:9: ( ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep ) + var alt119=6; + alt119 = this.dfa119.predict(this.input); + switch (alt119) { + case 1 : + // xquery/XQueryParser.g:922:11: ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6695); + p_PostfixExpr256=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr256.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:923:11: ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6809); + p_PostfixExpr257=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr257.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:928:11: ( p_KindTest )=> p_AxisStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AxisStep_in_p_StepExpr6827); + p_AxisStep258=this.p_AxisStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AxisStep258.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:929:11: ( p_QName LPAREN )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6848); + p_PostfixExpr259=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr259.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:930:11: ( p_PrimaryExpr )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6866); + p_PostfixExpr260=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr260.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:931:11: p_AxisStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AxisStep_in_p_StepExpr6878); + p_AxisStep261=this.p_AxisStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AxisStep261.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AxisStep_return: (function() { + XQueryParser.p_AxisStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AxisStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:935:1: p_AxisStep : ( p_ReverseStep | p_ForwardStep ) p_PredicateList ; + // $ANTLR start "p_AxisStep" + p_AxisStep: function() { + var retval = new XQueryParser.p_AxisStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ReverseStep262 = null; + var p_ForwardStep263 = null; + var p_PredicateList264 = null; + + + try { + // xquery/XQueryParser.g:936:9: ( ( p_ReverseStep | p_ForwardStep ) p_PredicateList ) + // xquery/XQueryParser.g:936:11: ( p_ReverseStep | p_ForwardStep ) p_PredicateList + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:936:11: ( p_ReverseStep | p_ForwardStep ) + var alt120=2; + switch ( this.input.LA(1) ) { + case PARENT: + var LA120_1 = this.input.LA(2); + + if ( (LA120_1==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_1==EOF||(LA120_1>=AND && LA120_1<=ASCENDING)||(LA120_1>=BY && LA120_1<=CASTABLE)||LA120_1==COLLATION||LA120_1==DEFAULT||(LA120_1>=DESCENDING && LA120_1<=DIV)||LA120_1==EMPTY||LA120_1==EQ||LA120_1==EXCEPT||LA120_1==FOR||LA120_1==GE||(LA120_1>=GT && LA120_1<=IDIV)||(LA120_1>=INSTANCE && LA120_1<=IS)||LA120_1==LE||(LA120_1>=LET && LA120_1<=MOD)||LA120_1==NE||(LA120_1>=OR && LA120_1<=ORDER)||(LA120_1>=RETURN && LA120_1<=SATISFIES)||LA120_1==STABLE||(LA120_1>=TO && LA120_1<=TREAT)||LA120_1==UNION||LA120_1==WHERE||LA120_1==COUNT||(LA120_1>=END && LA120_1<=GROUP)||LA120_1==ONLY||LA120_1==START||(LA120_1>=AFTER && LA120_1<=BEFORE)||LA120_1==INTO||LA120_1==MODIFY||LA120_1==WITH||LA120_1==CONTAINS||LA120_1==PARAGRAPHS||LA120_1==SENTENCES||LA120_1==TIMES||LA120_1==WORDS||LA120_1==CONCAT||LA120_1==RPAREN||(LA120_1>=RBRACKET && LA120_1<=EQUAL)||LA120_1==NOTEQUAL||LA120_1==COMMA||(LA120_1>=STAR && LA120_1<=SLASH_SLASH)||LA120_1==COLON||(LA120_1>=SEMICOLON && LA120_1<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 1, this.input); + + throw nvae; + } + break; + case ANCESTOR: + var LA120_2 = this.input.LA(2); + + if ( (LA120_2==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_2==EOF||(LA120_2>=AND && LA120_2<=ASCENDING)||(LA120_2>=BY && LA120_2<=CASTABLE)||LA120_2==COLLATION||LA120_2==DEFAULT||(LA120_2>=DESCENDING && LA120_2<=DIV)||LA120_2==EMPTY||LA120_2==EQ||LA120_2==EXCEPT||LA120_2==FOR||LA120_2==GE||(LA120_2>=GT && LA120_2<=IDIV)||(LA120_2>=INSTANCE && LA120_2<=IS)||LA120_2==LE||(LA120_2>=LET && LA120_2<=MOD)||LA120_2==NE||(LA120_2>=OR && LA120_2<=ORDER)||(LA120_2>=RETURN && LA120_2<=SATISFIES)||LA120_2==STABLE||(LA120_2>=TO && LA120_2<=TREAT)||LA120_2==UNION||LA120_2==WHERE||LA120_2==COUNT||(LA120_2>=END && LA120_2<=GROUP)||LA120_2==ONLY||LA120_2==START||(LA120_2>=AFTER && LA120_2<=BEFORE)||LA120_2==INTO||LA120_2==MODIFY||LA120_2==WITH||LA120_2==CONTAINS||LA120_2==PARAGRAPHS||LA120_2==SENTENCES||LA120_2==TIMES||LA120_2==WORDS||LA120_2==CONCAT||LA120_2==RPAREN||(LA120_2>=RBRACKET && LA120_2<=EQUAL)||LA120_2==NOTEQUAL||LA120_2==COMMA||(LA120_2>=STAR && LA120_2<=SLASH_SLASH)||LA120_2==COLON||(LA120_2>=SEMICOLON && LA120_2<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 2, this.input); + + throw nvae; + } + break; + case PRECEDING_SIBLING: + var LA120_3 = this.input.LA(2); + + if ( (LA120_3==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_3==EOF||(LA120_3>=AND && LA120_3<=ASCENDING)||(LA120_3>=BY && LA120_3<=CASTABLE)||LA120_3==COLLATION||LA120_3==DEFAULT||(LA120_3>=DESCENDING && LA120_3<=DIV)||LA120_3==EMPTY||LA120_3==EQ||LA120_3==EXCEPT||LA120_3==FOR||LA120_3==GE||(LA120_3>=GT && LA120_3<=IDIV)||(LA120_3>=INSTANCE && LA120_3<=IS)||LA120_3==LE||(LA120_3>=LET && LA120_3<=MOD)||LA120_3==NE||(LA120_3>=OR && LA120_3<=ORDER)||(LA120_3>=RETURN && LA120_3<=SATISFIES)||LA120_3==STABLE||(LA120_3>=TO && LA120_3<=TREAT)||LA120_3==UNION||LA120_3==WHERE||LA120_3==COUNT||(LA120_3>=END && LA120_3<=GROUP)||LA120_3==ONLY||LA120_3==START||(LA120_3>=AFTER && LA120_3<=BEFORE)||LA120_3==INTO||LA120_3==MODIFY||LA120_3==WITH||LA120_3==CONTAINS||LA120_3==PARAGRAPHS||LA120_3==SENTENCES||LA120_3==TIMES||LA120_3==WORDS||LA120_3==CONCAT||LA120_3==RPAREN||(LA120_3>=RBRACKET && LA120_3<=EQUAL)||LA120_3==NOTEQUAL||LA120_3==COMMA||(LA120_3>=STAR && LA120_3<=SLASH_SLASH)||LA120_3==COLON||(LA120_3>=SEMICOLON && LA120_3<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 3, this.input); + + throw nvae; + } + break; + case PRECEDING: + var LA120_4 = this.input.LA(2); + + if ( (LA120_4==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_4==EOF||(LA120_4>=AND && LA120_4<=ASCENDING)||(LA120_4>=BY && LA120_4<=CASTABLE)||LA120_4==COLLATION||LA120_4==DEFAULT||(LA120_4>=DESCENDING && LA120_4<=DIV)||LA120_4==EMPTY||LA120_4==EQ||LA120_4==EXCEPT||LA120_4==FOR||LA120_4==GE||(LA120_4>=GT && LA120_4<=IDIV)||(LA120_4>=INSTANCE && LA120_4<=IS)||LA120_4==LE||(LA120_4>=LET && LA120_4<=MOD)||LA120_4==NE||(LA120_4>=OR && LA120_4<=ORDER)||(LA120_4>=RETURN && LA120_4<=SATISFIES)||LA120_4==STABLE||(LA120_4>=TO && LA120_4<=TREAT)||LA120_4==UNION||LA120_4==WHERE||LA120_4==COUNT||(LA120_4>=END && LA120_4<=GROUP)||LA120_4==ONLY||LA120_4==START||(LA120_4>=AFTER && LA120_4<=BEFORE)||LA120_4==INTO||LA120_4==MODIFY||LA120_4==WITH||LA120_4==CONTAINS||LA120_4==PARAGRAPHS||LA120_4==SENTENCES||LA120_4==TIMES||LA120_4==WORDS||LA120_4==CONCAT||LA120_4==RPAREN||(LA120_4>=RBRACKET && LA120_4<=EQUAL)||LA120_4==NOTEQUAL||LA120_4==COMMA||(LA120_4>=STAR && LA120_4<=SLASH_SLASH)||LA120_4==COLON||(LA120_4>=SEMICOLON && LA120_4<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 4, this.input); + + throw nvae; + } + break; + case ANCESTOR_OR_SELF: + var LA120_5 = this.input.LA(2); + + if ( (LA120_5==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_5==EOF||(LA120_5>=AND && LA120_5<=ASCENDING)||(LA120_5>=BY && LA120_5<=CASTABLE)||LA120_5==COLLATION||LA120_5==DEFAULT||(LA120_5>=DESCENDING && LA120_5<=DIV)||LA120_5==EMPTY||LA120_5==EQ||LA120_5==EXCEPT||LA120_5==FOR||LA120_5==GE||(LA120_5>=GT && LA120_5<=IDIV)||(LA120_5>=INSTANCE && LA120_5<=IS)||LA120_5==LE||(LA120_5>=LET && LA120_5<=MOD)||LA120_5==NE||(LA120_5>=OR && LA120_5<=ORDER)||(LA120_5>=RETURN && LA120_5<=SATISFIES)||LA120_5==STABLE||(LA120_5>=TO && LA120_5<=TREAT)||LA120_5==UNION||LA120_5==WHERE||LA120_5==COUNT||(LA120_5>=END && LA120_5<=GROUP)||LA120_5==ONLY||LA120_5==START||(LA120_5>=AFTER && LA120_5<=BEFORE)||LA120_5==INTO||LA120_5==MODIFY||LA120_5==WITH||LA120_5==CONTAINS||LA120_5==PARAGRAPHS||LA120_5==SENTENCES||LA120_5==TIMES||LA120_5==WORDS||LA120_5==CONCAT||LA120_5==RPAREN||(LA120_5>=RBRACKET && LA120_5<=EQUAL)||LA120_5==NOTEQUAL||LA120_5==COMMA||(LA120_5>=STAR && LA120_5<=SLASH_SLASH)||LA120_5==COLON||(LA120_5>=SEMICOLON && LA120_5<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 5, this.input); + + throw nvae; + } + break; + case DOT_DOT: + alt120=1; + break; + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case STAR: + case ATTR_SIGN: + case APOS: + case QUOT: + case L_NCName: + case EXPLICITLY: + alt120=2; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 0, this.input); + + throw nvae; + } + + switch (alt120) { + case 1 : + // xquery/XQueryParser.g:936:12: p_ReverseStep + this.pushFollow(XQueryParser.FOLLOW_p_ReverseStep_in_p_AxisStep6905); + p_ReverseStep262=this.p_ReverseStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReverseStep262.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:936:28: p_ForwardStep + this.pushFollow(XQueryParser.FOLLOW_p_ForwardStep_in_p_AxisStep6909); + p_ForwardStep263=this.p_ForwardStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForwardStep263.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_PredicateList_in_p_AxisStep6912); + p_PredicateList264=this.p_PredicateList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PredicateList264.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForwardStep_return: (function() { + XQueryParser.p_ForwardStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForwardStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:940:1: p_ForwardStep : ( p_ForwardAxis p_NodeTest | p_AbbrevForwardStep ); + // $ANTLR start "p_ForwardStep" + p_ForwardStep: function() { + var retval = new XQueryParser.p_ForwardStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ForwardAxis265 = null; + var p_NodeTest266 = null; + var p_AbbrevForwardStep267 = null; + + + try { + // xquery/XQueryParser.g:941:9: ( p_ForwardAxis p_NodeTest | p_AbbrevForwardStep ) + var alt121=2; + alt121 = this.dfa121.predict(this.input); + switch (alt121) { + case 1 : + // xquery/XQueryParser.g:941:11: p_ForwardAxis p_NodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ForwardAxis_in_p_ForwardStep6938); + p_ForwardAxis265=this.p_ForwardAxis(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForwardAxis265.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_ForwardStep6940); + p_NodeTest266=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest266.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:942:11: p_AbbrevForwardStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AbbrevForwardStep_in_p_ForwardStep6952); + p_AbbrevForwardStep267=this.p_AbbrevForwardStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AbbrevForwardStep267.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForwardAxis_return: (function() { + XQueryParser.p_ForwardAxis_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForwardAxis_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:946:1: p_ForwardAxis : ( CHILD COLON_COLON | DESCENDANT COLON_COLON | ATTRIBUTE COLON_COLON | SELF COLON_COLON | DESCENDANT_OR_SELF COLON_COLON | FOLLOWING_SIBLING COLON_COLON | FOLLOWING COLON_COLON ); + // $ANTLR start "p_ForwardAxis" + p_ForwardAxis: function() { + var retval = new XQueryParser.p_ForwardAxis_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var CHILD268 = null; + var COLON_COLON269 = null; + var DESCENDANT270 = null; + var COLON_COLON271 = null; + var ATTRIBUTE272 = null; + var COLON_COLON273 = null; + var SELF274 = null; + var COLON_COLON275 = null; + var DESCENDANT_OR_SELF276 = null; + var COLON_COLON277 = null; + var FOLLOWING_SIBLING278 = null; + var COLON_COLON279 = null; + var FOLLOWING280 = null; + var COLON_COLON281 = null; + + var CHILD268_tree=null; + var COLON_COLON269_tree=null; + var DESCENDANT270_tree=null; + var COLON_COLON271_tree=null; + var ATTRIBUTE272_tree=null; + var COLON_COLON273_tree=null; + var SELF274_tree=null; + var COLON_COLON275_tree=null; + var DESCENDANT_OR_SELF276_tree=null; + var COLON_COLON277_tree=null; + var FOLLOWING_SIBLING278_tree=null; + var COLON_COLON279_tree=null; + var FOLLOWING280_tree=null; + var COLON_COLON281_tree=null; + + try { + // xquery/XQueryParser.g:947:9: ( CHILD COLON_COLON | DESCENDANT COLON_COLON | ATTRIBUTE COLON_COLON | SELF COLON_COLON | DESCENDANT_OR_SELF COLON_COLON | FOLLOWING_SIBLING COLON_COLON | FOLLOWING COLON_COLON ) + var alt122=7; + switch ( this.input.LA(1) ) { + case CHILD: + alt122=1; + break; + case DESCENDANT: + alt122=2; + break; + case ATTRIBUTE: + alt122=3; + break; + case SELF: + alt122=4; + break; + case DESCENDANT_OR_SELF: + alt122=5; + break; + case FOLLOWING_SIBLING: + alt122=6; + break; + case FOLLOWING: + alt122=7; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 122, 0, this.input); + + throw nvae; + } + + switch (alt122) { + case 1 : + // xquery/XQueryParser.g:947:11: CHILD COLON_COLON + root_0 = this.adaptor.nil(); + + CHILD268=this.match(this.input,CHILD,XQueryParser.FOLLOW_CHILD_in_p_ForwardAxis6978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + CHILD268_tree = this.adaptor.create(CHILD268); + this.adaptor.addChild(root_0, CHILD268_tree); + } + COLON_COLON269=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis6980); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON269_tree = this.adaptor.create(COLON_COLON269); + this.adaptor.addChild(root_0, COLON_COLON269_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:948:11: DESCENDANT COLON_COLON + root_0 = this.adaptor.nil(); + + DESCENDANT270=this.match(this.input,DESCENDANT,XQueryParser.FOLLOW_DESCENDANT_in_p_ForwardAxis6992); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DESCENDANT270_tree = this.adaptor.create(DESCENDANT270); + this.adaptor.addChild(root_0, DESCENDANT270_tree); + } + COLON_COLON271=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis6994); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON271_tree = this.adaptor.create(COLON_COLON271); + this.adaptor.addChild(root_0, COLON_COLON271_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:949:11: ATTRIBUTE COLON_COLON + root_0 = this.adaptor.nil(); + + ATTRIBUTE272=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_p_ForwardAxis7006); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTRIBUTE272_tree = this.adaptor.create(ATTRIBUTE272); + this.adaptor.addChild(root_0, ATTRIBUTE272_tree); + } + COLON_COLON273=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7008); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON273_tree = this.adaptor.create(COLON_COLON273); + this.adaptor.addChild(root_0, COLON_COLON273_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:950:11: SELF COLON_COLON + root_0 = this.adaptor.nil(); + + SELF274=this.match(this.input,SELF,XQueryParser.FOLLOW_SELF_in_p_ForwardAxis7020); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SELF274_tree = this.adaptor.create(SELF274); + this.adaptor.addChild(root_0, SELF274_tree); + } + COLON_COLON275=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7022); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON275_tree = this.adaptor.create(COLON_COLON275); + this.adaptor.addChild(root_0, COLON_COLON275_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:951:11: DESCENDANT_OR_SELF COLON_COLON + root_0 = this.adaptor.nil(); + + DESCENDANT_OR_SELF276=this.match(this.input,DESCENDANT_OR_SELF,XQueryParser.FOLLOW_DESCENDANT_OR_SELF_in_p_ForwardAxis7034); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DESCENDANT_OR_SELF276_tree = this.adaptor.create(DESCENDANT_OR_SELF276); + this.adaptor.addChild(root_0, DESCENDANT_OR_SELF276_tree); + } + COLON_COLON277=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7036); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON277_tree = this.adaptor.create(COLON_COLON277); + this.adaptor.addChild(root_0, COLON_COLON277_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:952:11: FOLLOWING_SIBLING COLON_COLON + root_0 = this.adaptor.nil(); + + FOLLOWING_SIBLING278=this.match(this.input,FOLLOWING_SIBLING,XQueryParser.FOLLOW_FOLLOWING_SIBLING_in_p_ForwardAxis7048); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FOLLOWING_SIBLING278_tree = this.adaptor.create(FOLLOWING_SIBLING278); + this.adaptor.addChild(root_0, FOLLOWING_SIBLING278_tree); + } + COLON_COLON279=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7050); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON279_tree = this.adaptor.create(COLON_COLON279); + this.adaptor.addChild(root_0, COLON_COLON279_tree); + } + + + break; + case 7 : + // xquery/XQueryParser.g:953:11: FOLLOWING COLON_COLON + root_0 = this.adaptor.nil(); + + FOLLOWING280=this.match(this.input,FOLLOWING,XQueryParser.FOLLOW_FOLLOWING_in_p_ForwardAxis7062); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FOLLOWING280_tree = this.adaptor.create(FOLLOWING280); + this.adaptor.addChild(root_0, FOLLOWING280_tree); + } + COLON_COLON281=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7064); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON281_tree = this.adaptor.create(COLON_COLON281); + this.adaptor.addChild(root_0, COLON_COLON281_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AbbrevForwardStep_return: (function() { + XQueryParser.p_AbbrevForwardStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AbbrevForwardStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:957:1: p_AbbrevForwardStep : ( ATTR_SIGN )? p_NodeTest ; + // $ANTLR start "p_AbbrevForwardStep" + p_AbbrevForwardStep: function() { + var retval = new XQueryParser.p_AbbrevForwardStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ATTR_SIGN282 = null; + var p_NodeTest283 = null; + + var ATTR_SIGN282_tree=null; + + try { + // xquery/XQueryParser.g:958:9: ( ( ATTR_SIGN )? p_NodeTest ) + // xquery/XQueryParser.g:958:11: ( ATTR_SIGN )? p_NodeTest + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:958:11: ( ATTR_SIGN )? + var alt123=2; + var LA123_0 = this.input.LA(1); + + if ( (LA123_0==ATTR_SIGN) ) { + alt123=1; + } + switch (alt123) { + case 1 : + // xquery/XQueryParser.g:958:11: ATTR_SIGN + ATTR_SIGN282=this.match(this.input,ATTR_SIGN,XQueryParser.FOLLOW_ATTR_SIGN_in_p_AbbrevForwardStep7090); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTR_SIGN282_tree = this.adaptor.create(ATTR_SIGN282); + this.adaptor.addChild(root_0, ATTR_SIGN282_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_AbbrevForwardStep7093); + p_NodeTest283=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest283.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReverseStep_return: (function() { + XQueryParser.p_ReverseStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReverseStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:962:1: p_ReverseStep : ( p_ReverseAxis p_NodeTest | p_AbbrevReverseStep ); + // $ANTLR start "p_ReverseStep" + p_ReverseStep: function() { + var retval = new XQueryParser.p_ReverseStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ReverseAxis284 = null; + var p_NodeTest285 = null; + var p_AbbrevReverseStep286 = null; + + + try { + // xquery/XQueryParser.g:963:9: ( p_ReverseAxis p_NodeTest | p_AbbrevReverseStep ) + var alt124=2; + var LA124_0 = this.input.LA(1); + + if ( ((LA124_0>=ANCESTOR && LA124_0<=ANCESTOR_OR_SELF)||(LA124_0>=PARENT && LA124_0<=PRECEDING_SIBLING)) ) { + alt124=1; + } + else if ( (LA124_0==DOT_DOT) ) { + alt124=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 124, 0, this.input); + + throw nvae; + } + switch (alt124) { + case 1 : + // xquery/XQueryParser.g:963:11: p_ReverseAxis p_NodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ReverseAxis_in_p_ReverseStep7119); + p_ReverseAxis284=this.p_ReverseAxis(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReverseAxis284.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_ReverseStep7121); + p_NodeTest285=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest285.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:964:11: p_AbbrevReverseStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AbbrevReverseStep_in_p_ReverseStep7133); + p_AbbrevReverseStep286=this.p_AbbrevReverseStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AbbrevReverseStep286.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReverseAxis_return: (function() { + XQueryParser.p_ReverseAxis_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReverseAxis_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:968:1: p_ReverseAxis : ( PARENT COLON_COLON | ANCESTOR COLON_COLON | PRECEDING_SIBLING COLON_COLON | PRECEDING COLON_COLON | ANCESTOR_OR_SELF COLON_COLON ); + // $ANTLR start "p_ReverseAxis" + p_ReverseAxis: function() { + var retval = new XQueryParser.p_ReverseAxis_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var PARENT287 = null; + var COLON_COLON288 = null; + var ANCESTOR289 = null; + var COLON_COLON290 = null; + var PRECEDING_SIBLING291 = null; + var COLON_COLON292 = null; + var PRECEDING293 = null; + var COLON_COLON294 = null; + var ANCESTOR_OR_SELF295 = null; + var COLON_COLON296 = null; + + var PARENT287_tree=null; + var COLON_COLON288_tree=null; + var ANCESTOR289_tree=null; + var COLON_COLON290_tree=null; + var PRECEDING_SIBLING291_tree=null; + var COLON_COLON292_tree=null; + var PRECEDING293_tree=null; + var COLON_COLON294_tree=null; + var ANCESTOR_OR_SELF295_tree=null; + var COLON_COLON296_tree=null; + + try { + // xquery/XQueryParser.g:969:9: ( PARENT COLON_COLON | ANCESTOR COLON_COLON | PRECEDING_SIBLING COLON_COLON | PRECEDING COLON_COLON | ANCESTOR_OR_SELF COLON_COLON ) + var alt125=5; + switch ( this.input.LA(1) ) { + case PARENT: + alt125=1; + break; + case ANCESTOR: + alt125=2; + break; + case PRECEDING_SIBLING: + alt125=3; + break; + case PRECEDING: + alt125=4; + break; + case ANCESTOR_OR_SELF: + alt125=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 125, 0, this.input); + + throw nvae; + } + + switch (alt125) { + case 1 : + // xquery/XQueryParser.g:969:11: PARENT COLON_COLON + root_0 = this.adaptor.nil(); + + PARENT287=this.match(this.input,PARENT,XQueryParser.FOLLOW_PARENT_in_p_ReverseAxis7159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PARENT287_tree = this.adaptor.create(PARENT287); + this.adaptor.addChild(root_0, PARENT287_tree); + } + COLON_COLON288=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7161); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON288_tree = this.adaptor.create(COLON_COLON288); + this.adaptor.addChild(root_0, COLON_COLON288_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:970:11: ANCESTOR COLON_COLON + root_0 = this.adaptor.nil(); + + ANCESTOR289=this.match(this.input,ANCESTOR,XQueryParser.FOLLOW_ANCESTOR_in_p_ReverseAxis7173); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANCESTOR289_tree = this.adaptor.create(ANCESTOR289); + this.adaptor.addChild(root_0, ANCESTOR289_tree); + } + COLON_COLON290=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7175); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON290_tree = this.adaptor.create(COLON_COLON290); + this.adaptor.addChild(root_0, COLON_COLON290_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:971:11: PRECEDING_SIBLING COLON_COLON + root_0 = this.adaptor.nil(); + + PRECEDING_SIBLING291=this.match(this.input,PRECEDING_SIBLING,XQueryParser.FOLLOW_PRECEDING_SIBLING_in_p_ReverseAxis7187); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PRECEDING_SIBLING291_tree = this.adaptor.create(PRECEDING_SIBLING291); + this.adaptor.addChild(root_0, PRECEDING_SIBLING291_tree); + } + COLON_COLON292=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7189); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON292_tree = this.adaptor.create(COLON_COLON292); + this.adaptor.addChild(root_0, COLON_COLON292_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:972:11: PRECEDING COLON_COLON + root_0 = this.adaptor.nil(); + + PRECEDING293=this.match(this.input,PRECEDING,XQueryParser.FOLLOW_PRECEDING_in_p_ReverseAxis7201); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PRECEDING293_tree = this.adaptor.create(PRECEDING293); + this.adaptor.addChild(root_0, PRECEDING293_tree); + } + COLON_COLON294=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7203); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON294_tree = this.adaptor.create(COLON_COLON294); + this.adaptor.addChild(root_0, COLON_COLON294_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:973:11: ANCESTOR_OR_SELF COLON_COLON + root_0 = this.adaptor.nil(); + + ANCESTOR_OR_SELF295=this.match(this.input,ANCESTOR_OR_SELF,XQueryParser.FOLLOW_ANCESTOR_OR_SELF_in_p_ReverseAxis7215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANCESTOR_OR_SELF295_tree = this.adaptor.create(ANCESTOR_OR_SELF295); + this.adaptor.addChild(root_0, ANCESTOR_OR_SELF295_tree); + } + COLON_COLON296=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7217); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON296_tree = this.adaptor.create(COLON_COLON296); + this.adaptor.addChild(root_0, COLON_COLON296_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AbbrevReverseStep_return: (function() { + XQueryParser.p_AbbrevReverseStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AbbrevReverseStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:977:1: p_AbbrevReverseStep : DOT_DOT ; + // $ANTLR start "p_AbbrevReverseStep" + p_AbbrevReverseStep: function() { + var retval = new XQueryParser.p_AbbrevReverseStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOT_DOT297 = null; + + var DOT_DOT297_tree=null; + + try { + // xquery/XQueryParser.g:978:9: ( DOT_DOT ) + // xquery/XQueryParser.g:978:11: DOT_DOT + root_0 = this.adaptor.nil(); + + DOT_DOT297=this.match(this.input,DOT_DOT,XQueryParser.FOLLOW_DOT_DOT_in_p_AbbrevReverseStep7243); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOT_DOT297_tree = this.adaptor.create(DOT_DOT297); + this.adaptor.addChild(root_0, DOT_DOT297_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NodeTest_return: (function() { + XQueryParser.p_NodeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NodeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:982:1: p_NodeTest : ( p_KindTest | p_NameTest ); + // $ANTLR start "p_NodeTest" + p_NodeTest: function() { + var retval = new XQueryParser.p_NodeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_KindTest298 = null; + var p_NameTest299 = null; + + + try { + // xquery/XQueryParser.g:983:9: ( p_KindTest | p_NameTest ) + var alt126=2; + alt126 = this.dfa126.predict(this.input); + switch (alt126) { + case 1 : + // xquery/XQueryParser.g:983:11: p_KindTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_NodeTest7269); + p_KindTest298=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_KindTest298.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:983:24: p_NameTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_NodeTest7273); + p_NameTest299=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest299.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NameTest_return: (function() { + XQueryParser.p_NameTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NameTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:987:1: p_NameTest : ( ( p_Wildcard )=> p_Wildcard | ( p_NCName COLON )=> p_QName | ( p_NCName )=> p_QName ); + // $ANTLR start "p_NameTest" + p_NameTest: function() { + var retval = new XQueryParser.p_NameTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Wildcard300 = null; + var p_QName301 = null; + var p_QName302 = null; + + + try { + // xquery/XQueryParser.g:988:9: ( ( p_Wildcard )=> p_Wildcard | ( p_NCName COLON )=> p_QName | ( p_NCName )=> p_QName ) + var alt127=3; + var LA127_0 = this.input.LA(1); + + if ( (LA127_0==STAR) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( ((LA127_0>=ANCESTOR && LA127_0<=SKIP)||(LA127_0>=VALUE && LA127_0<=QUOT_ER)||LA127_0==L_NCName||LA127_0==EXPLICITLY) ) { + var LA127_2 = this.input.LA(2); + + if ( (LA127_2==COLON) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( (this.synpred14_XQueryParser()) ) { + alt127=2; + } + else if ( (this.synpred15_XQueryParser()) ) { + alt127=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 127, 2, this.input); + + throw nvae; + } + } + else if ( (LA127_0==QUOT) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( (LA127_0==APOS) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 127, 0, this.input); + + throw nvae; + } + switch (alt127) { + case 1 : + // xquery/XQueryParser.g:988:11: ( p_Wildcard )=> p_Wildcard + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Wildcard_in_p_NameTest7305); + p_Wildcard300=this.p_Wildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Wildcard300.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:989:11: ( p_NCName COLON )=> p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NameTest7326); + p_QName301=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName301.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:990:11: ( p_NCName )=> p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NameTest7344); + p_QName302=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName302.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Wildcard_return: (function() { + XQueryParser.p_Wildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Wildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:994:1: p_Wildcard : ( STAR ( COLON p_NCName )? | p_NCName COLON STAR | p_StringLiteral COLON STAR ); + // $ANTLR start "p_Wildcard" + p_Wildcard: function() { + var retval = new XQueryParser.p_Wildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR303 = null; + var COLON304 = null; + var COLON307 = null; + var STAR308 = null; + var COLON310 = null; + var STAR311 = null; + var p_NCName305 = null; + var p_NCName306 = null; + var p_StringLiteral309 = null; + + var STAR303_tree=null; + var COLON304_tree=null; + var COLON307_tree=null; + var STAR308_tree=null; + var COLON310_tree=null; + var STAR311_tree=null; + + this.setWsExplicit(true); + try { + // xquery/XQueryParser.g:995:9: ( STAR ( COLON p_NCName )? | p_NCName COLON STAR | p_StringLiteral COLON STAR ) + var alt129=3; + switch ( this.input.LA(1) ) { + case STAR: + alt129=1; + break; + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case L_NCName: + case EXPLICITLY: + alt129=2; + break; + case APOS: + case QUOT: + alt129=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 129, 0, this.input); + + throw nvae; + } + + switch (alt129) { + case 1 : + // xquery/XQueryParser.g:995:11: STAR ( COLON p_NCName )? + root_0 = this.adaptor.nil(); + + STAR303=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR303_tree = this.adaptor.create(STAR303); + this.adaptor.addChild(root_0, STAR303_tree); + } + // xquery/XQueryParser.g:995:16: ( COLON p_NCName )? + var alt128=2; + var LA128_0 = this.input.LA(1); + + if ( (LA128_0==COLON) ) { + alt128=1; + } + switch (alt128) { + case 1 : + // xquery/XQueryParser.g:995:17: COLON p_NCName + COLON304=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7377); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON304_tree = this.adaptor.create(COLON304); + this.adaptor.addChild(root_0, COLON304_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Wildcard7379); + p_NCName305=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName305.getTree()); + + + break; + + } + + + + break; + case 2 : + // xquery/XQueryParser.g:996:11: p_NCName COLON STAR + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Wildcard7393); + p_NCName306=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName306.getTree()); + COLON307=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7395); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON307_tree = this.adaptor.create(COLON307); + this.adaptor.addChild(root_0, COLON307_tree); + } + STAR308=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR308_tree = this.adaptor.create(STAR308); + this.adaptor.addChild(root_0, STAR308_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:997:11: p_StringLiteral COLON STAR + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_Wildcard7409); + p_StringLiteral309=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral309.getTree()); + COLON310=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7411); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON310_tree = this.adaptor.create(COLON310); + this.adaptor.addChild(root_0, COLON310_tree); + } + STAR311=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7413); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR311_tree = this.adaptor.create(STAR311); + this.adaptor.addChild(root_0, STAR311_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.setWsExplicit(false); + } + return retval; + }, + + // inline static return class + p_PostfixExpr_return: (function() { + XQueryParser.p_PostfixExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PostfixExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1002:1: p_PostfixExpr : p_PrimaryExpr ( p_Predicate )* ; + // $ANTLR start "p_PostfixExpr" + p_PostfixExpr: function() { + var retval = new XQueryParser.p_PostfixExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PrimaryExpr312 = null; + var p_Predicate313 = null; + + + try { + // xquery/XQueryParser.g:1003:9: ( p_PrimaryExpr ( p_Predicate )* ) + // xquery/XQueryParser.g:1003:11: p_PrimaryExpr ( p_Predicate )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PrimaryExpr_in_p_PostfixExpr7451); + p_PrimaryExpr312=this.p_PrimaryExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PrimaryExpr312.getTree()); + // xquery/XQueryParser.g:1003:25: ( p_Predicate )* + loop130: + do { + var alt130=2; + var LA130_0 = this.input.LA(1); + + if ( (LA130_0==LSQUARE) ) { + alt130=1; + } + + + switch (alt130) { + case 1 : + // xquery/XQueryParser.g:1003:26: p_Predicate + this.pushFollow(XQueryParser.FOLLOW_p_Predicate_in_p_PostfixExpr7454); + p_Predicate313=this.p_Predicate(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Predicate313.getTree()); + + + break; + + default : + break loop130; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ArgumentList_return: (function() { + XQueryParser.p_ArgumentList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ArgumentList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1010:1: p_ArgumentList : LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN ; + // $ANTLR start "p_ArgumentList" + p_ArgumentList: function() { + var retval = new XQueryParser.p_ArgumentList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN314 = null; + var COMMA316 = null; + var RPAREN318 = null; + var p_Argument315 = null; + var p_Argument317 = null; + + var LPAREN314_tree=null; + var COMMA316_tree=null; + var RPAREN318_tree=null; + + try { + // xquery/XQueryParser.g:1011:9: ( LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN ) + // xquery/XQueryParser.g:1011:11: LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN + root_0 = this.adaptor.nil(); + + LPAREN314=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ArgumentList7495); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN314_tree = this.adaptor.create(LPAREN314); + this.adaptor.addChild(root_0, LPAREN314_tree); + } + // xquery/XQueryParser.g:1011:18: ( p_Argument ( COMMA p_Argument )* )? + var alt132=2; + var LA132_0 = this.input.LA(1); + + if ( ((LA132_0>=ANCESTOR && LA132_0<=QUOT_ER)||LA132_0==LPAREN||(LA132_0>=DOLLAR && LA132_0<=LBRACKET)||(LA132_0>=QUESTION && LA132_0<=SMALLER)||(LA132_0>=SLASH && LA132_0<=DOT_DOT)||LA132_0==ATTR_SIGN||(LA132_0>=APOS && LA132_0<=QUOT)||LA132_0==L_NCName||(LA132_0>=L_Pragma && LA132_0<=L_DoubleLiteral)||LA132_0==EXPLICITLY) ) { + alt132=1; + } + switch (alt132) { + case 1 : + // xquery/XQueryParser.g:1011:19: p_Argument ( COMMA p_Argument )* + this.pushFollow(XQueryParser.FOLLOW_p_Argument_in_p_ArgumentList7498); + p_Argument315=this.p_Argument(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Argument315.getTree()); + // xquery/XQueryParser.g:1011:30: ( COMMA p_Argument )* + loop131: + do { + var alt131=2; + var LA131_0 = this.input.LA(1); + + if ( (LA131_0==COMMA) ) { + alt131=1; + } + + + switch (alt131) { + case 1 : + // xquery/XQueryParser.g:1011:31: COMMA p_Argument + COMMA316=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ArgumentList7501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA316_tree = this.adaptor.create(COMMA316); + this.adaptor.addChild(root_0, COMMA316_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Argument_in_p_ArgumentList7503); + p_Argument317=this.p_Argument(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Argument317.getTree()); + + + break; + + default : + break loop131; + } + } while (true); + + + + break; + + } + + RPAREN318=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ArgumentList7509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN318_tree = this.adaptor.create(RPAREN318); + this.adaptor.addChild(root_0, RPAREN318_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PredicateList_return: (function() { + XQueryParser.p_PredicateList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PredicateList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1015:1: p_PredicateList : ( p_Predicate )* ; + // $ANTLR start "p_PredicateList" + p_PredicateList: function() { + var retval = new XQueryParser.p_PredicateList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Predicate319 = null; + + + try { + // xquery/XQueryParser.g:1016:9: ( ( p_Predicate )* ) + // xquery/XQueryParser.g:1016:11: ( p_Predicate )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1016:11: ( p_Predicate )* + loop133: + do { + var alt133=2; + var LA133_0 = this.input.LA(1); + + if ( (LA133_0==LSQUARE) ) { + alt133=1; + } + + + switch (alt133) { + case 1 : + // xquery/XQueryParser.g:1016:11: p_Predicate + this.pushFollow(XQueryParser.FOLLOW_p_Predicate_in_p_PredicateList7535); + p_Predicate319=this.p_Predicate(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Predicate319.getTree()); + + + break; + + default : + break loop133; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Predicate_return: (function() { + XQueryParser.p_Predicate_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Predicate_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1020:1: p_Predicate : LSQUARE p_Expr[true,true] RSQUARE ; + // $ANTLR start "p_Predicate" + p_Predicate: function() { + var retval = new XQueryParser.p_Predicate_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LSQUARE320 = null; + var RSQUARE322 = null; + var p_Expr321 = null; + + var LSQUARE320_tree=null; + var RSQUARE322_tree=null; + + try { + // xquery/XQueryParser.g:1021:9: ( LSQUARE p_Expr[true,true] RSQUARE ) + // xquery/XQueryParser.g:1021:11: LSQUARE p_Expr[true,true] RSQUARE + root_0 = this.adaptor.nil(); + + LSQUARE320=this.match(this.input,LSQUARE,XQueryParser.FOLLOW_LSQUARE_in_p_Predicate7562); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LSQUARE320_tree = this.adaptor.create(LSQUARE320); + this.adaptor.addChild(root_0, LSQUARE320_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_Predicate7564); + p_Expr321=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr321.getTree()); + RSQUARE322=this.match(this.input,RSQUARE,XQueryParser.FOLLOW_RSQUARE_in_p_Predicate7567); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RSQUARE322_tree = this.adaptor.create(RSQUARE322); + this.adaptor.addChild(root_0, RSQUARE322_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PrimaryExpr_return: (function() { + XQueryParser.p_PrimaryExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PrimaryExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1026:1: p_PrimaryExpr : ( ( LPAREN )=> p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr ); + // $ANTLR start "p_PrimaryExpr" + p_PrimaryExpr: function() { + var retval = new XQueryParser.p_PrimaryExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ParenthesizedExpr323 = null; + var p_Literal324 = null; + var p_VarRef325 = null; + var p_ContextItemExpr326 = null; + var p_FunctionCall327 = null; + var p_OrderedExpr328 = null; + var p_UnorderedExpr329 = null; + var p_Constructor330 = null; + var p_BlockExpr331 = null; + + + try { + // xquery/XQueryParser.g:1027:9: ( ( LPAREN )=> p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr ) + var alt134=9; + alt134 = this.dfa134.predict(this.input); + switch (alt134) { + case 1 : + // xquery/XQueryParser.g:1027:11: ( LPAREN )=> p_ParenthesizedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ParenthesizedExpr_in_p_PrimaryExpr7600); + p_ParenthesizedExpr323=this.p_ParenthesizedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ParenthesizedExpr323.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1028:11: p_Literal + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_PrimaryExpr7612); + p_Literal324=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal324.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1029:11: p_VarRef + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarRef_in_p_PrimaryExpr7624); + p_VarRef325=this.p_VarRef(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarRef325.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1030:11: p_ContextItemExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ContextItemExpr_in_p_PrimaryExpr7636); + p_ContextItemExpr326=this.p_ContextItemExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ContextItemExpr326.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1031:11: p_FunctionCall + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FunctionCall_in_p_PrimaryExpr7648); + p_FunctionCall327=this.p_FunctionCall(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FunctionCall327.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1032:11: p_OrderedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderedExpr_in_p_PrimaryExpr7660); + p_OrderedExpr328=this.p_OrderedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderedExpr328.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1033:11: p_UnorderedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnorderedExpr_in_p_PrimaryExpr7672); + p_UnorderedExpr329=this.p_UnorderedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnorderedExpr329.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1034:11: p_Constructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Constructor_in_p_PrimaryExpr7684); + p_Constructor330=this.p_Constructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Constructor330.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:1037:11: p_BlockExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_BlockExpr_in_p_PrimaryExpr7698); + p_BlockExpr331=this.p_BlockExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockExpr331.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Literal_return: (function() { + XQueryParser.p_Literal_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Literal_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1041:1: p_Literal : ( p_NumericLiteral | p_StringLiteral ); + // $ANTLR start "p_Literal" + p_Literal: function() { + var retval = new XQueryParser.p_Literal_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_NumericLiteral332 = null; + var p_StringLiteral333 = null; + + + try { + // xquery/XQueryParser.g:1042:9: ( p_NumericLiteral | p_StringLiteral ) + var alt135=2; + var LA135_0 = this.input.LA(1); + + if ( ((LA135_0>=L_IntegerLiteral && LA135_0<=L_DoubleLiteral)) ) { + alt135=1; + } + else if ( ((LA135_0>=APOS && LA135_0<=QUOT)) ) { + alt135=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 135, 0, this.input); + + throw nvae; + } + switch (alt135) { + case 1 : + // xquery/XQueryParser.g:1042:11: p_NumericLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NumericLiteral_in_p_Literal7724); + p_NumericLiteral332=this.p_NumericLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NumericLiteral332.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1042:30: p_StringLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_Literal7728); + p_StringLiteral333=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral333.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NumericLiteral_return: (function() { + XQueryParser.p_NumericLiteral_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NumericLiteral_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1046:1: p_NumericLiteral : (d+= L_IntegerLiteral | d+= L_DecimalLiteral | d+= L_DoubleLiteral ); + // $ANTLR start "p_NumericLiteral" + p_NumericLiteral: function() { + var retval = new XQueryParser.p_NumericLiteral_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var list_d=null; + + var d_tree=null; + + try { + // xquery/XQueryParser.g:1047:9: (d+= L_IntegerLiteral | d+= L_DecimalLiteral | d+= L_DoubleLiteral ) + var alt136=3; + switch ( this.input.LA(1) ) { + case L_IntegerLiteral: + alt136=1; + break; + case L_DecimalLiteral: + alt136=2; + break; + case L_DoubleLiteral: + alt136=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 136, 0, this.input); + + throw nvae; + } + + switch (alt136) { + case 1 : + // xquery/XQueryParser.g:1047:11: d+= L_IntegerLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_NumericLiteral7756); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1047:48: d+= L_DecimalLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_DecimalLiteral,XQueryParser.FOLLOW_L_DecimalLiteral_in_p_NumericLiteral7764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1047:85: d+= L_DoubleLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_DoubleLiteral,XQueryParser.FOLLOW_L_DoubleLiteral_in_p_NumericLiteral7772); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarRef_return: (function() { + XQueryParser.p_VarRef_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarRef_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1051:1: p_VarRef : d= DOLLAR v= p_VarName ; + // $ANTLR start "p_VarRef" + p_VarRef: function() { + var retval = new XQueryParser.p_VarRef_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var v = null; + + var d_tree=null; + + try { + // xquery/XQueryParser.g:1052:9: (d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:1052:11: d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarRef7810); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarRef7814); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarName_return: (function() { + XQueryParser.p_VarName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1056:1: p_VarName : p_QName ; + // $ANTLR start "p_VarName" + p_VarName: function() { + var retval = new XQueryParser.p_VarName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName334 = null; + + + try { + // xquery/XQueryParser.g:1057:9: ( p_QName ) + // xquery/XQueryParser.g:1057:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_VarName7842); + p_QName334=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName334.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParenthesizedExpr_return: (function() { + XQueryParser.p_ParenthesizedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParenthesizedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1061:1: p_ParenthesizedExpr : LPAREN ( p_Expr[true,true] )? RPAREN ; + // $ANTLR start "p_ParenthesizedExpr" + p_ParenthesizedExpr: function() { + var retval = new XQueryParser.p_ParenthesizedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN335 = null; + var RPAREN337 = null; + var p_Expr336 = null; + + var LPAREN335_tree=null; + var RPAREN337_tree=null; + + try { + // xquery/XQueryParser.g:1062:9: ( LPAREN ( p_Expr[true,true] )? RPAREN ) + // xquery/XQueryParser.g:1062:11: LPAREN ( p_Expr[true,true] )? RPAREN + root_0 = this.adaptor.nil(); + + LPAREN335=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ParenthesizedExpr7868); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN335_tree = this.adaptor.create(LPAREN335); + this.adaptor.addChild(root_0, LPAREN335_tree); + } + // xquery/XQueryParser.g:1062:18: ( p_Expr[true,true] )? + var alt137=2; + var LA137_0 = this.input.LA(1); + + if ( ((LA137_0>=ANCESTOR && LA137_0<=QUOT_ER)||LA137_0==LPAREN||(LA137_0>=DOLLAR && LA137_0<=LBRACKET)||(LA137_0>=STAR && LA137_0<=SMALLER)||(LA137_0>=SLASH && LA137_0<=DOT_DOT)||LA137_0==ATTR_SIGN||(LA137_0>=APOS && LA137_0<=QUOT)||LA137_0==L_NCName||(LA137_0>=L_Pragma && LA137_0<=L_DoubleLiteral)||LA137_0==EXPLICITLY) ) { + alt137=1; + } + switch (alt137) { + case 1 : + // xquery/XQueryParser.g:1062:18: p_Expr[true,true] + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ParenthesizedExpr7870); + p_Expr336=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr336.getTree()); + + + break; + + } + + RPAREN337=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ParenthesizedExpr7874); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN337_tree = this.adaptor.create(RPAREN337); + this.adaptor.addChild(root_0, RPAREN337_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ContextItemExpr_return: (function() { + XQueryParser.p_ContextItemExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ContextItemExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1066:1: p_ContextItemExpr : DOT ; + // $ANTLR start "p_ContextItemExpr" + p_ContextItemExpr: function() { + var retval = new XQueryParser.p_ContextItemExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOT338 = null; + + var DOT338_tree=null; + + try { + // xquery/XQueryParser.g:1067:9: ( DOT ) + // xquery/XQueryParser.g:1067:11: DOT + root_0 = this.adaptor.nil(); + + DOT338=this.match(this.input,DOT,XQueryParser.FOLLOW_DOT_in_p_ContextItemExpr7900); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOT338_tree = this.adaptor.create(DOT338); + this.adaptor.addChild(root_0, DOT338_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderedExpr_return: (function() { + XQueryParser.p_OrderedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1071:1: p_OrderedExpr : k= ORDERED LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_OrderedExpr" + p_OrderedExpr: function() { + var retval = new XQueryParser.p_OrderedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET339 = null; + var RBRACKET341 = null; + var p_Expr340 = null; + + var k_tree=null; + var LBRACKET339_tree=null; + var RBRACKET341_tree=null; + + try { + // xquery/XQueryParser.g:1072:9: (k= ORDERED LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1072:11: k= ORDERED LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_p_OrderedExpr7928); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET339=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_OrderedExpr7932); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET339_tree = this.adaptor.create(LBRACKET339); + this.adaptor.addChild(root_0, LBRACKET339_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_OrderedExpr7934); + p_Expr340=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr340.getTree()); + RBRACKET341=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_OrderedExpr7937); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET341_tree = this.adaptor.create(RBRACKET341); + this.adaptor.addChild(root_0, RBRACKET341_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnorderedExpr_return: (function() { + XQueryParser.p_UnorderedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnorderedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1076:1: p_UnorderedExpr : k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_UnorderedExpr" + p_UnorderedExpr: function() { + var retval = new XQueryParser.p_UnorderedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET342 = null; + var RBRACKET344 = null; + var p_Expr343 = null; + + var k_tree=null; + var LBRACKET342_tree=null; + var RBRACKET344_tree=null; + + try { + // xquery/XQueryParser.g:1077:9: (k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1077:11: k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,UNORDERED,XQueryParser.FOLLOW_UNORDERED_in_p_UnorderedExpr7965); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET342=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_UnorderedExpr7969); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET342_tree = this.adaptor.create(LBRACKET342); + this.adaptor.addChild(root_0, LBRACKET342_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_UnorderedExpr7971); + p_Expr343=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr343.getTree()); + RBRACKET344=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_UnorderedExpr7974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET344_tree = this.adaptor.create(RBRACKET344); + this.adaptor.addChild(root_0, RBRACKET344_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FunctionCall_return: (function() { + XQueryParser.p_FunctionCall_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FunctionCall_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1082:1: p_FunctionCall : f= pg_FQName p_ArgumentList ; + // $ANTLR start "p_FunctionCall" + p_FunctionCall: function() { + var retval = new XQueryParser.p_FunctionCall_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var f = null; + var p_ArgumentList345 = null; + + + try { + // xquery/XQueryParser.g:1083:9: (f= pg_FQName p_ArgumentList ) + // xquery/XQueryParser.g:1083:11: f= pg_FQName p_ArgumentList + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_FQName_in_p_FunctionCall8003); + f=this.pg_FQName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, f.getTree()); + if ( this.state.backtracking===0 ) { + this.af((f?f.start:null), (f?f.stop:null)); + } + this.pushFollow(XQueryParser.FOLLOW_p_ArgumentList_in_p_FunctionCall8008); + p_ArgumentList345=this.p_ArgumentList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ArgumentList345.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Argument_return: (function() { + XQueryParser.p_Argument_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Argument_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1087:1: p_Argument : ( p_ExprSingle[true] | p_ArgumentPlaceholder ); + // $ANTLR start "p_Argument" + p_Argument: function() { + var retval = new XQueryParser.p_Argument_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle346 = null; + var p_ArgumentPlaceholder347 = null; + + + try { + // xquery/XQueryParser.g:1088:9: ( p_ExprSingle[true] | p_ArgumentPlaceholder ) + var alt138=2; + var LA138_0 = this.input.LA(1); + + if ( ((LA138_0>=ANCESTOR && LA138_0<=QUOT_ER)||LA138_0==LPAREN||(LA138_0>=DOLLAR && LA138_0<=LBRACKET)||(LA138_0>=STAR && LA138_0<=SMALLER)||(LA138_0>=SLASH && LA138_0<=DOT_DOT)||LA138_0==ATTR_SIGN||(LA138_0>=APOS && LA138_0<=QUOT)||LA138_0==L_NCName||(LA138_0>=L_Pragma && LA138_0<=L_DoubleLiteral)||LA138_0==EXPLICITLY) ) { + alt138=1; + } + else if ( (LA138_0==QUESTION) ) { + alt138=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 138, 0, this.input); + + throw nvae; + } + switch (alt138) { + case 1 : + // xquery/XQueryParser.g:1088:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Argument8034); + p_ExprSingle346=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle346.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1088:32: p_ArgumentPlaceholder + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ArgumentPlaceholder_in_p_Argument8039); + p_ArgumentPlaceholder347=this.p_ArgumentPlaceholder(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ArgumentPlaceholder347.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ArgumentPlaceholder_return: (function() { + XQueryParser.p_ArgumentPlaceholder_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ArgumentPlaceholder_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1092:1: p_ArgumentPlaceholder : QUESTION ; + // $ANTLR start "p_ArgumentPlaceholder" + p_ArgumentPlaceholder: function() { + var retval = new XQueryParser.p_ArgumentPlaceholder_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUESTION348 = null; + + var QUESTION348_tree=null; + + try { + // xquery/XQueryParser.g:1093:9: ( QUESTION ) + // xquery/XQueryParser.g:1093:11: QUESTION + root_0 = this.adaptor.nil(); + + QUESTION348=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_ArgumentPlaceholder8065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION348_tree = this.adaptor.create(QUESTION348); + this.adaptor.addChild(root_0, QUESTION348_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Constructor_return: (function() { + XQueryParser.p_Constructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Constructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1097:1: p_Constructor : ( p_DirectConstructor | p_ComputedConstructor ); + // $ANTLR start "p_Constructor" + p_Constructor: function() { + var retval = new XQueryParser.p_Constructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirectConstructor349 = null; + var p_ComputedConstructor350 = null; + + + try { + // xquery/XQueryParser.g:1098:9: ( p_DirectConstructor | p_ComputedConstructor ) + var alt139=2; + var LA139_0 = this.input.LA(1); + + if ( (LA139_0==SMALLER||(LA139_0>=L_DirCommentConstructor && LA139_0<=L_DirPIConstructor)) ) { + alt139=1; + } + else if ( (LA139_0==ATTRIBUTE||LA139_0==COMMENT||LA139_0==DOCUMENT||LA139_0==ELEMENT||LA139_0==NAMESPACE||LA139_0==PROCESSING_INSTRUCTION||LA139_0==TEXT) ) { + alt139=2; + } + else if ( (LA139_0==BINARY) && ((this.lc(MLS)))) { + alt139=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 139, 0, this.input); + + throw nvae; + } + switch (alt139) { + case 1 : + // xquery/XQueryParser.g:1098:11: p_DirectConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirectConstructor_in_p_Constructor8091); + p_DirectConstructor349=this.p_DirectConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirectConstructor349.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1099:11: p_ComputedConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ComputedConstructor_in_p_Constructor8103); + p_ComputedConstructor350=this.p_ComputedConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComputedConstructor350.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirectConstructor_return: (function() { + XQueryParser.p_DirectConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirectConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1103:1: p_DirectConstructor : ( p_DirElemConstructor | p_DirCommentConstructor | p_DirPIConstructor ); + // $ANTLR start "p_DirectConstructor" + p_DirectConstructor: function() { + var retval = new XQueryParser.p_DirectConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirElemConstructor351 = null; + var p_DirCommentConstructor352 = null; + var p_DirPIConstructor353 = null; + + + try { + // xquery/XQueryParser.g:1104:9: ( p_DirElemConstructor | p_DirCommentConstructor | p_DirPIConstructor ) + var alt140=3; + switch ( this.input.LA(1) ) { + case SMALLER: + alt140=1; + break; + case L_DirCommentConstructor: + alt140=2; + break; + case L_DirPIConstructor: + alt140=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 140, 0, this.input); + + throw nvae; + } + + switch (alt140) { + case 1 : + // xquery/XQueryParser.g:1104:11: p_DirElemConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirElemConstructor_in_p_DirectConstructor8129); + p_DirElemConstructor351=this.p_DirElemConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirElemConstructor351.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1105:11: p_DirCommentConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirCommentConstructor_in_p_DirectConstructor8141); + p_DirCommentConstructor352=this.p_DirCommentConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirCommentConstructor352.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1106:11: p_DirPIConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirPIConstructor_in_p_DirectConstructor8153); + p_DirPIConstructor353=this.p_DirPIConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirPIConstructor353.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirElemConstructor_return: (function() { + XQueryParser.p_DirElemConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirElemConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1110:1: p_DirElemConstructor : SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) ; + // $ANTLR start "p_DirElemConstructor" + p_DirElemConstructor: function() { + var retval = new XQueryParser.p_DirElemConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SMALLER354 = null; + var EMPTY_CLOSE_TAG356 = null; + var GREATER357 = null; + var CLOSE_TAG359 = null; + var S360 = null; + var GREATER361 = null; + var ts = null; + var te = null; + var p_DirAttributeList355 = null; + var pm_DirElemContent358 = null; + + var SMALLER354_tree=null; + var EMPTY_CLOSE_TAG356_tree=null; + var GREATER357_tree=null; + var CLOSE_TAG359_tree=null; + var S360_tree=null; + var GREATER361_tree=null; + var stream_CLOSE_TAG=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token CLOSE_TAG"); + var stream_GREATER=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token GREATER"); + var stream_S=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token S"); + var stream_EMPTY_CLOSE_TAG=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EMPTY_CLOSE_TAG"); + var stream_SMALLER=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SMALLER"); + var stream_p_DirAttributeList=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_DirAttributeList"); + var stream_pm_DirElemContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_DirElemContent"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:1111:9: ( SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) ) + // xquery/XQueryParser.g:1111:11: SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) + SMALLER354=this.match(this.input,SMALLER,XQueryParser.FOLLOW_SMALLER_in_p_DirElemConstructor8180); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SMALLER.add(SMALLER354); + + if ( this.state.backtracking===0 ) { + this.pushXMLLexer(); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirElemConstructor8196); + ts=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(ts.getTree()); + if ( this.state.backtracking===0 ) { + this.at((ts?ts.start:null), (ts?ts.stop:null)); + } + this.pushFollow(XQueryParser.FOLLOW_p_DirAttributeList_in_p_DirElemConstructor8201); + p_DirAttributeList355=this.p_DirAttributeList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_DirAttributeList.add(p_DirAttributeList355.getTree()); + // xquery/XQueryParser.g:1113:11: ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) + var alt143=2; + var LA143_0 = this.input.LA(1); + + if ( (LA143_0==EMPTY_CLOSE_TAG) ) { + alt143=1; + } + else if ( (LA143_0==GREATER) ) { + alt143=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 143, 0, this.input); + + throw nvae; + } + switch (alt143) { + case 1 : + // xquery/XQueryParser.g:1113:12: EMPTY_CLOSE_TAG + EMPTY_CLOSE_TAG356=this.match(this.input,EMPTY_CLOSE_TAG,XQueryParser.FOLLOW_EMPTY_CLOSE_TAG_in_p_DirElemConstructor8215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EMPTY_CLOSE_TAG.add(EMPTY_CLOSE_TAG356); + + + + break; + case 2 : + // xquery/XQueryParser.g:1113:30: ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) + // xquery/XQueryParser.g:1113:30: ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) + // xquery/XQueryParser.g:1113:31: GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER + GREATER357=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_DirElemConstructor8220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_GREATER.add(GREATER357); + + // xquery/XQueryParser.g:1113:39: ( pm_DirElemContent )* + loop141: + do { + var alt141=2; + var LA141_0 = this.input.LA(1); + + if ( ((LA141_0>=L_ElementContentChar && LA141_0<=ESCAPE_RBRACKET)||LA141_0==LBRACKET||LA141_0==SMALLER||(LA141_0>=L_DirCommentConstructor && LA141_0<=L_DirPIConstructor)) ) { + alt141=1; + } + + + switch (alt141) { + case 1 : + // xquery/XQueryParser.g:1113:39: pm_DirElemContent + this.pushFollow(XQueryParser.FOLLOW_pm_DirElemContent_in_p_DirElemConstructor8222); + pm_DirElemContent358=this.pm_DirElemContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_DirElemContent.add(pm_DirElemContent358.getTree()); + + + break; + + default : + break loop141; + } + } while (true); + + CLOSE_TAG359=this.match(this.input,CLOSE_TAG,XQueryParser.FOLLOW_CLOSE_TAG_in_p_DirElemConstructor8225); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_CLOSE_TAG.add(CLOSE_TAG359); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirElemConstructor8229); + te=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(te.getTree()); + if ( this.state.backtracking===0 ) { + this.at((te?te.start:null), (te?te.stop:null)); + } + // xquery/XQueryParser.g:1113:111: ( S )? + var alt142=2; + var LA142_0 = this.input.LA(1); + + if ( (LA142_0==S) ) { + alt142=1; + } + switch (alt142) { + case 1 : + // xquery/XQueryParser.g:1113:111: S + S360=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirElemConstructor8233); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_S.add(S360); + + + + break; + + } + + GREATER361=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_DirElemConstructor8236); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_GREATER.add(GREATER361); + + + + + + + break; + + } + + + + // AST REWRITE + // elements: pm_DirElemContent, p_DirAttributeList + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1114:17: -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) + { + // xquery/XQueryParser.g:1114:20: ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirElemConstructor, "DirElemConstructor"), root_1); + + // xquery/XQueryParser.g:1114:41: ^( DirAttributeList ( p_DirAttributeList )* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeList, "DirAttributeList"), root_2); + + // xquery/XQueryParser.g:1114:60: ( p_DirAttributeList )* + while ( stream_p_DirAttributeList.hasNext() ) { + this.adaptor.addChild(root_2, stream_p_DirAttributeList.nextTree()); + + } + stream_p_DirAttributeList.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:1114:81: ^( DirElemContent ( pm_DirElemContent )* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DirElemContent, "DirElemContent"), root_2); + + // xquery/XQueryParser.g:1114:98: ( pm_DirElemContent )* + while ( stream_pm_DirElemContent.hasNext() ) { + this.adaptor.addChild(root_2, stream_pm_DirElemContent.nextTree()); + + } + stream_pm_DirElemContent.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.popLexer(); + } + return retval; + }, + + // inline static return class + p_DirAttributeList_return: (function() { + XQueryParser.p_DirAttributeList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirAttributeList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1119:1: p_DirAttributeList : ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* ; + // $ANTLR start "p_DirAttributeList" + p_DirAttributeList: function() { + var retval = new XQueryParser.p_DirAttributeList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var S362 = null; + var S363 = null; + var EQUAL364 = null; + var S365 = null; + var t = null; + var v = null; + + var S362_tree=null; + var S363_tree=null; + var EQUAL364_tree=null; + var S365_tree=null; + + try { + // xquery/XQueryParser.g:1120:9: ( ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* ) + // xquery/XQueryParser.g:1120:11: ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1120:11: ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* + loop147: + do { + var alt147=2; + var LA147_0 = this.input.LA(1); + + if ( (LA147_0==S) ) { + alt147=1; + } + + + switch (alt147) { + case 1 : + // xquery/XQueryParser.g:1120:12: S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? + S362=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8313); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S362_tree = this.adaptor.create(S362); + this.adaptor.addChild(root_0, S362_tree); + } + // xquery/XQueryParser.g:1120:14: (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? + var alt146=2; + var LA146_0 = this.input.LA(1); + + if ( ((LA146_0>=ANCESTOR && LA146_0<=SKIP)||(LA146_0>=VALUE && LA146_0<=QUOT_ER)||LA146_0==L_NCName||LA146_0==EXPLICITLY) ) { + alt146=1; + } + switch (alt146) { + case 1 : + // xquery/XQueryParser.g:1120:15: t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirAttributeList8318); + t=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, t.getTree()); + if ( this.state.backtracking===0 ) { + this.at((t?t.start:null), (t?t.stop:null)); + } + // xquery/XQueryParser.g:1120:55: ( S )? + var alt144=2; + var LA144_0 = this.input.LA(1); + + if ( (LA144_0==S) ) { + alt144=1; + } + switch (alt144) { + case 1 : + // xquery/XQueryParser.g:1120:55: S + S363=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8322); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S363_tree = this.adaptor.create(S363); + this.adaptor.addChild(root_0, S363_tree); + } + + + break; + + } + + EQUAL364=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_DirAttributeList8325); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + EQUAL364_tree = this.adaptor.create(EQUAL364); + this.adaptor.addChild(root_0, EQUAL364_tree); + } + // xquery/XQueryParser.g:1120:64: ( S )? + var alt145=2; + var LA145_0 = this.input.LA(1); + + if ( (LA145_0==S) ) { + alt145=1; + } + switch (alt145) { + case 1 : + // xquery/XQueryParser.g:1120:64: S + S365=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S365_tree = this.adaptor.create(S365); + this.adaptor.addChild(root_0, S365_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_DirAttributeValue_in_p_DirAttributeList8332); + v=this.p_DirAttributeValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + + + break; + + } + + + + break; + + default : + break loop147; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirAttributeValue_return: (function() { + XQueryParser.p_DirAttributeValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirAttributeValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1124:1: p_DirAttributeValue : ( (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) | (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) ); + // $ANTLR start "p_DirAttributeValue" + p_DirAttributeValue: function() { + var retval = new XQueryParser.p_DirAttributeValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var list_s=null; + var p_QuotAttrValueContent366 = null; + var p_AposAttrValueContent367 = null; + + var s_tree=null; + var stream_ESCAPE_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ESCAPE_QUOT"); + var stream_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token APOS"); + var stream_ESCAPE_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ESCAPE_APOS"); + var stream_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token QUOT"); + var stream_p_QuotAttrValueContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QuotAttrValueContent"); + var stream_p_AposAttrValueContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_AposAttrValueContent"); + try { + // xquery/XQueryParser.g:1125:9: ( (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) | (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) ) + var alt150=2; + var LA150_0 = this.input.LA(1); + + if ( (LA150_0==QUOT) ) { + alt150=1; + } + else if ( (LA150_0==APOS) ) { + alt150=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 150, 0, this.input); + + throw nvae; + } + switch (alt150) { + case 1 : + // xquery/XQueryParser.g:1125:11: (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) + // xquery/XQueryParser.g:1125:11: (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) + // xquery/XQueryParser.g:1125:12: s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8366); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = true; + } + // xquery/XQueryParser.g:1125:45: (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* + loop148: + do { + var alt148=4; + switch ( this.input.LA(1) ) { + case ESCAPE_QUOT: + alt148=1; + break; + case APOS: + alt148=2; + break; + case L_QuotAttrContentChar: + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt148=3; + break; + + } + + switch (alt148) { + case 1 : + // xquery/XQueryParser.g:1125:46: s+= ESCAPE_QUOT + s=this.match(this.input,ESCAPE_QUOT,XQueryParser.FOLLOW_ESCAPE_QUOT_in_p_DirAttributeValue8373); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ESCAPE_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 2 : + // xquery/XQueryParser.g:1125:63: s+= APOS + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8379); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 3 : + // xquery/XQueryParser.g:1125:73: p_QuotAttrValueContent + this.pushFollow(XQueryParser.FOLLOW_p_QuotAttrValueContent_in_p_DirAttributeValue8383); + p_QuotAttrValueContent366=this.p_QuotAttrValueContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QuotAttrValueContent.add(p_QuotAttrValueContent366.getTree()); + + + break; + + default : + break loop148; + } + } while (true); + + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8389); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = false; + } + + + + if ( this.state.backtracking===0 ) { + this.addToken(list_s, "string"); + } + + + // AST REWRITE + // elements: p_QuotAttrValueContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1126:17: -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) + { + // xquery/XQueryParser.g:1126:20: ^( DirAttributeValue ( p_QuotAttrValueContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeValue, "DirAttributeValue"), root_1); + + // xquery/XQueryParser.g:1126:40: ( p_QuotAttrValueContent )* + while ( stream_p_QuotAttrValueContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_p_QuotAttrValueContent.nextTree()); + + } + stream_p_QuotAttrValueContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1127:11: (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) + // xquery/XQueryParser.g:1127:11: (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) + // xquery/XQueryParser.g:1127:12: s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8434); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = true; + } + // xquery/XQueryParser.g:1127:46: (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* + loop149: + do { + var alt149=4; + switch ( this.input.LA(1) ) { + case ESCAPE_APOS: + alt149=1; + break; + case QUOT: + alt149=2; + break; + case L_AposAttrContentChar: + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt149=3; + break; + + } + + switch (alt149) { + case 1 : + // xquery/XQueryParser.g:1127:47: s+= ESCAPE_APOS + s=this.match(this.input,ESCAPE_APOS,XQueryParser.FOLLOW_ESCAPE_APOS_in_p_DirAttributeValue8441); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ESCAPE_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 2 : + // xquery/XQueryParser.g:1127:64: s+= QUOT + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8447); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 3 : + // xquery/XQueryParser.g:1127:74: p_AposAttrValueContent + this.pushFollow(XQueryParser.FOLLOW_p_AposAttrValueContent_in_p_DirAttributeValue8451); + p_AposAttrValueContent367=this.p_AposAttrValueContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_AposAttrValueContent.add(p_AposAttrValueContent367.getTree()); + + + break; + + default : + break loop149; + } + } while (true); + + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = false; + } + + + + if ( this.state.backtracking===0 ) { + this.addToken(list_s, "string"); + } + + + // AST REWRITE + // elements: p_AposAttrValueContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1128:17: -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) + { + // xquery/XQueryParser.g:1128:20: ^( DirAttributeValue ( p_AposAttrValueContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeValue, "DirAttributeValue"), root_1); + + // xquery/XQueryParser.g:1128:40: ( p_AposAttrValueContent )* + while ( stream_p_AposAttrValueContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_p_AposAttrValueContent.nextTree()); + + } + stream_p_AposAttrValueContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuotAttrValueContent_return: (function() { + XQueryParser.p_QuotAttrValueContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuotAttrValueContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1132:1: p_QuotAttrValueContent : (s= p_QuotAttrContentChar | pm_CommonContent ); + // $ANTLR start "p_QuotAttrValueContent" + p_QuotAttrValueContent: function() { + var retval = new XQueryParser.p_QuotAttrValueContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var pm_CommonContent368 = null; + + + try { + // xquery/XQueryParser.g:1133:9: (s= p_QuotAttrContentChar | pm_CommonContent ) + var alt151=2; + var LA151_0 = this.input.LA(1); + + if ( (LA151_0==L_QuotAttrContentChar) ) { + alt151=1; + } + else if ( ((LA151_0>=L_PredefinedEntityRef && LA151_0<=ESCAPE_RBRACKET)||LA151_0==LBRACKET) ) { + alt151=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 151, 0, this.input); + + throw nvae; + } + switch (alt151) { + case 1 : + // xquery/XQueryParser.g:1133:11: s= p_QuotAttrContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QuotAttrContentChar_in_p_QuotAttrValueContent8515); + s=this.p_QuotAttrContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, s.getTree()); + if ( this.state.backtracking===0 ) { + this.addString((s?s.start:null), (s?s.stop:null)); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1133:76: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_p_QuotAttrValueContent8521); + pm_CommonContent368=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent368.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AposAttrValueContent_return: (function() { + XQueryParser.p_AposAttrValueContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AposAttrValueContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1137:1: p_AposAttrValueContent : (s= p_AposAttrContentChar | pm_CommonContent ); + // $ANTLR start "p_AposAttrValueContent" + p_AposAttrValueContent: function() { + var retval = new XQueryParser.p_AposAttrValueContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var pm_CommonContent369 = null; + + + try { + // xquery/XQueryParser.g:1138:9: (s= p_AposAttrContentChar | pm_CommonContent ) + var alt152=2; + var LA152_0 = this.input.LA(1); + + if ( (LA152_0==L_AposAttrContentChar) ) { + alt152=1; + } + else if ( ((LA152_0>=L_PredefinedEntityRef && LA152_0<=ESCAPE_RBRACKET)||LA152_0==LBRACKET) ) { + alt152=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 152, 0, this.input); + + throw nvae; + } + switch (alt152) { + case 1 : + // xquery/XQueryParser.g:1138:11: s= p_AposAttrContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AposAttrContentChar_in_p_AposAttrValueContent8549); + s=this.p_AposAttrContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, s.getTree()); + if ( this.state.backtracking===0 ) { + this.addString((s?s.start:null), (s?s.stop:null)); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1138:76: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_p_AposAttrValueContent8555); + pm_CommonContent369=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent369.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DirElemContent_return: (function() { + XQueryParser.pm_DirElemContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DirElemContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1142:1: pm_DirElemContent : ( p_DirectConstructor | p_CDataSection | pm_CommonContent | p_ElementContentChar ); + // $ANTLR start "pm_DirElemContent" + pm_DirElemContent: function() { + var retval = new XQueryParser.pm_DirElemContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirectConstructor370 = null; + var p_CDataSection371 = null; + var pm_CommonContent372 = null; + var p_ElementContentChar373 = null; + + + try { + // xquery/XQueryParser.g:1143:9: ( p_DirectConstructor | p_CDataSection | pm_CommonContent | p_ElementContentChar ) + var alt153=4; + switch ( this.input.LA(1) ) { + case SMALLER: + case L_DirCommentConstructor: + case L_DirPIConstructor: + alt153=1; + break; + case L_CDataSection: + alt153=2; + break; + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt153=3; + break; + case L_ElementContentChar: + alt153=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 153, 0, this.input); + + throw nvae; + } + + switch (alt153) { + case 1 : + // xquery/XQueryParser.g:1143:11: p_DirectConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirectConstructor_in_pm_DirElemContent8581); + p_DirectConstructor370=this.p_DirectConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirectConstructor370.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1144:11: p_CDataSection + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CDataSection_in_pm_DirElemContent8593); + p_CDataSection371=this.p_CDataSection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CDataSection371.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1145:11: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_pm_DirElemContent8605); + pm_CommonContent372=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent372.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1146:11: p_ElementContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementContentChar_in_pm_DirElemContent8617); + p_ElementContentChar373=this.p_ElementContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementContentChar373.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CommonContent_return: (function() { + XQueryParser.pm_CommonContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CommonContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1152:1: pm_CommonContent : ( L_PredefinedEntityRef | L_CharRef | s= ESCAPE_LBRACKET | s= ESCAPE_RBRACKET | pg_EnclosedExprXml ); + // $ANTLR start "pm_CommonContent" + pm_CommonContent: function() { + var retval = new XQueryParser.pm_CommonContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var L_PredefinedEntityRef374 = null; + var L_CharRef375 = null; + var pg_EnclosedExprXml376 = null; + + var s_tree=null; + var L_PredefinedEntityRef374_tree=null; + var L_CharRef375_tree=null; + + try { + // xquery/XQueryParser.g:1153:9: ( L_PredefinedEntityRef | L_CharRef | s= ESCAPE_LBRACKET | s= ESCAPE_RBRACKET | pg_EnclosedExprXml ) + var alt154=5; + switch ( this.input.LA(1) ) { + case L_PredefinedEntityRef: + alt154=1; + break; + case L_CharRef: + alt154=2; + break; + case ESCAPE_LBRACKET: + alt154=3; + break; + case ESCAPE_RBRACKET: + alt154=4; + break; + case LBRACKET: + alt154=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 154, 0, this.input); + + throw nvae; + } + + switch (alt154) { + case 1 : + // xquery/XQueryParser.g:1153:11: L_PredefinedEntityRef + root_0 = this.adaptor.nil(); + + L_PredefinedEntityRef374=this.match(this.input,L_PredefinedEntityRef,XQueryParser.FOLLOW_L_PredefinedEntityRef_in_pm_CommonContent8645); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_PredefinedEntityRef374_tree = this.adaptor.create(L_PredefinedEntityRef374); + this.adaptor.addChild(root_0, L_PredefinedEntityRef374_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1154:11: L_CharRef + root_0 = this.adaptor.nil(); + + L_CharRef375=this.match(this.input,L_CharRef,XQueryParser.FOLLOW_L_CharRef_in_pm_CommonContent8657); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_CharRef375_tree = this.adaptor.create(L_CharRef375); + this.adaptor.addChild(root_0, L_CharRef375_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1155:11: s= ESCAPE_LBRACKET + root_0 = this.adaptor.nil(); + + s=this.match(this.input,ESCAPE_LBRACKET,XQueryParser.FOLLOW_ESCAPE_LBRACKET_in_pm_CommonContent8671); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + if ( this.state.backtracking===0 ) { + if(this.isInAttr) { this.addToken(s, "string"); } + } + + + break; + case 4 : + // xquery/XQueryParser.g:1156:11: s= ESCAPE_RBRACKET + root_0 = this.adaptor.nil(); + + s=this.match(this.input,ESCAPE_RBRACKET,XQueryParser.FOLLOW_ESCAPE_RBRACKET_in_pm_CommonContent8687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + if ( this.state.backtracking===0 ) { + if(this.isInAttr) { this.addToken(s, "string"); } + } + + + break; + case 5 : + // xquery/XQueryParser.g:1157:11: pg_EnclosedExprXml + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_EnclosedExprXml_in_pm_CommonContent8701); + pg_EnclosedExprXml376=this.pg_EnclosedExprXml(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_EnclosedExprXml376.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_EnclosedExprXml_return: (function() { + XQueryParser.pg_EnclosedExprXml_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_EnclosedExprXml_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1165:1: pg_EnclosedExprXml : LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pg_EnclosedExprXml" + pg_EnclosedExprXml: function() { + var retval = new XQueryParser.pg_EnclosedExprXml_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET377 = null; + var RBRACKET379 = null; + var p_StatementsAndOptionalExpr378 = null; + + var LBRACKET377_tree=null; + var RBRACKET379_tree=null; + + try { + // xquery/XQueryParser.g:1166:9: ( LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1166:13: LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET377=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pg_EnclosedExprXml8733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET377_tree = this.adaptor.create(LBRACKET377); + this.adaptor.addChild(root_0, LBRACKET377_tree); + } + if ( this.state.backtracking===0 ) { + this.pushXQueryLexer(); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pg_EnclosedExprXml8749); + p_StatementsAndOptionalExpr378=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr378.getTree()); + RBRACKET379=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pg_EnclosedExprXml8763); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET379_tree = this.adaptor.create(RBRACKET379); + this.adaptor.addChild(root_0, RBRACKET379_tree); + } + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirCommentConstructor_return: (function() { + XQueryParser.p_DirCommentConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirCommentConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1173:1: p_DirCommentConstructor : c= L_DirCommentConstructor ; + // $ANTLR start "p_DirCommentConstructor" + p_DirCommentConstructor: function() { + var retval = new XQueryParser.p_DirCommentConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var c = null; + + var c_tree=null; + + try { + // xquery/XQueryParser.g:1174:9: (c= L_DirCommentConstructor ) + // xquery/XQueryParser.g:1174:11: c= L_DirCommentConstructor + root_0 = this.adaptor.nil(); + + c=this.match(this.input,L_DirCommentConstructor,XQueryParser.FOLLOW_L_DirCommentConstructor_in_p_DirCommentConstructor8794); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + c_tree = this.adaptor.create(c); + this.adaptor.addChild(root_0, c_tree); + } + if ( this.state.backtracking===0 ) { + this.ac(c); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirPIConstructor_return: (function() { + XQueryParser.p_DirPIConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirPIConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1181:1: p_DirPIConstructor : p= L_DirPIConstructor ; + // $ANTLR start "p_DirPIConstructor" + p_DirPIConstructor: function() { + var retval = new XQueryParser.p_DirPIConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p = null; + + var p_tree=null; + + try { + // xquery/XQueryParser.g:1182:9: (p= L_DirPIConstructor ) + // xquery/XQueryParser.g:1182:11: p= L_DirPIConstructor + root_0 = this.adaptor.nil(); + + p=this.match(this.input,L_DirPIConstructor,XQueryParser.FOLLOW_L_DirPIConstructor_in_p_DirPIConstructor8830); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + p_tree = this.adaptor.create(p); + this.adaptor.addChild(root_0, p_tree); + } + if ( this.state.backtracking===0 ) { + this.ap(p); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CDataSection_return: (function() { + XQueryParser.p_CDataSection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CDataSection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1189:1: p_CDataSection : c= L_CDataSection ; + // $ANTLR start "p_CDataSection" + p_CDataSection: function() { + var retval = new XQueryParser.p_CDataSection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var c = null; + + var c_tree=null; + + try { + // xquery/XQueryParser.g:1190:9: (c= L_CDataSection ) + // xquery/XQueryParser.g:1190:11: c= L_CDataSection + root_0 = this.adaptor.nil(); + + c=this.match(this.input,L_CDataSection,XQueryParser.FOLLOW_L_CDataSection_in_p_CDataSection8867); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + c_tree = this.adaptor.create(c); + this.adaptor.addChild(root_0, c_tree); + } + if ( this.state.backtracking===0 ) { + this.ac(c); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ComputedConstructor_return: (function() { + XQueryParser.p_ComputedConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ComputedConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1197:1: p_ComputedConstructor : ( pm_CompDocConstructor | pm_CompElemConstructor | pm_CompAttrConstructor | p_CompNamespaceConstructor | p_CompTextConstructor | pm_CompCommentConstructor | pm_CompPIConstructor | {...}? => p_CompBinaryConstructor ); + // $ANTLR start "p_ComputedConstructor" + p_ComputedConstructor: function() { + var retval = new XQueryParser.p_ComputedConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_CompDocConstructor380 = null; + var pm_CompElemConstructor381 = null; + var pm_CompAttrConstructor382 = null; + var p_CompNamespaceConstructor383 = null; + var p_CompTextConstructor384 = null; + var pm_CompCommentConstructor385 = null; + var pm_CompPIConstructor386 = null; + var p_CompBinaryConstructor387 = null; + + + try { + // xquery/XQueryParser.g:1198:9: ( pm_CompDocConstructor | pm_CompElemConstructor | pm_CompAttrConstructor | p_CompNamespaceConstructor | p_CompTextConstructor | pm_CompCommentConstructor | pm_CompPIConstructor | {...}? => p_CompBinaryConstructor ) + var alt155=8; + var LA155_0 = this.input.LA(1); + + if ( (LA155_0==DOCUMENT) ) { + alt155=1; + } + else if ( (LA155_0==ELEMENT) ) { + alt155=2; + } + else if ( (LA155_0==ATTRIBUTE) ) { + alt155=3; + } + else if ( (LA155_0==NAMESPACE) ) { + alt155=4; + } + else if ( (LA155_0==TEXT) ) { + alt155=5; + } + else if ( (LA155_0==COMMENT) ) { + alt155=6; + } + else if ( (LA155_0==PROCESSING_INSTRUCTION) ) { + alt155=7; + } + else if ( (LA155_0==BINARY) && ((this.lc(MLS)))) { + alt155=8; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 155, 0, this.input); + + throw nvae; + } + switch (alt155) { + case 1 : + // xquery/XQueryParser.g:1198:11: pm_CompDocConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompDocConstructor_in_p_ComputedConstructor8901); + pm_CompDocConstructor380=this.pm_CompDocConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompDocConstructor380.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1199:11: pm_CompElemConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompElemConstructor_in_p_ComputedConstructor8913); + pm_CompElemConstructor381=this.pm_CompElemConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompElemConstructor381.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1200:11: pm_CompAttrConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompAttrConstructor_in_p_ComputedConstructor8925); + pm_CompAttrConstructor382=this.pm_CompAttrConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompAttrConstructor382.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1201:11: p_CompNamespaceConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CompNamespaceConstructor_in_p_ComputedConstructor8937); + p_CompNamespaceConstructor383=this.p_CompNamespaceConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompNamespaceConstructor383.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1202:11: p_CompTextConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CompTextConstructor_in_p_ComputedConstructor8949); + p_CompTextConstructor384=this.p_CompTextConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompTextConstructor384.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1203:11: pm_CompCommentConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompCommentConstructor_in_p_ComputedConstructor8961); + pm_CompCommentConstructor385=this.pm_CompCommentConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompCommentConstructor385.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1204:11: pm_CompPIConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompPIConstructor_in_p_ComputedConstructor8973); + pm_CompPIConstructor386=this.pm_CompPIConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompPIConstructor386.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1205:11: {...}? => p_CompBinaryConstructor + root_0 = this.adaptor.nil(); + + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ComputedConstructor", "this.lc(MLS)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_CompBinaryConstructor_in_p_ComputedConstructor8988); + p_CompBinaryConstructor387=this.p_CompBinaryConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompBinaryConstructor387.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompDocConstructor_return: (function() { + XQueryParser.pm_CompDocConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompDocConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1210:1: pm_CompDocConstructor : k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompDocConstructor" + pm_CompDocConstructor: function() { + var retval = new XQueryParser.pm_CompDocConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET388 = null; + var RBRACKET390 = null; + var p_StatementsAndOptionalExpr389 = null; + + var k_tree=null; + var LBRACKET388_tree=null; + var RBRACKET390_tree=null; + + try { + // xquery/XQueryParser.g:1211:9: (k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1211:11: k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DOCUMENT,XQueryParser.FOLLOW_DOCUMENT_in_pm_CompDocConstructor9017); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET388=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompDocConstructor9021); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET388_tree = this.adaptor.create(LBRACKET388); + this.adaptor.addChild(root_0, LBRACKET388_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompDocConstructor9023); + p_StatementsAndOptionalExpr389=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr389.getTree()); + RBRACKET390=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompDocConstructor9025); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET390_tree = this.adaptor.create(RBRACKET390); + this.adaptor.addChild(root_0, RBRACKET390_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompElemConstructor_return: (function() { + XQueryParser.pm_CompElemConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompElemConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1215:1: pm_CompElemConstructor : k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET ; + // $ANTLR start "pm_CompElemConstructor" + pm_CompElemConstructor: function() { + var retval = new XQueryParser.pm_CompElemConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET392 = null; + var RBRACKET394 = null; + var LBRACKET395 = null; + var RBRACKET397 = null; + var p_QName391 = null; + var p_Expr393 = null; + var pm_ContentExpr396 = null; + + var k_tree=null; + var LBRACKET392_tree=null; + var RBRACKET394_tree=null; + var LBRACKET395_tree=null; + var RBRACKET397_tree=null; + + try { + // xquery/XQueryParser.g:1216:9: (k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET ) + // xquery/XQueryParser.g:1216:11: k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_pm_CompElemConstructor9061); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1216:36: ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt156=2; + var LA156_0 = this.input.LA(1); + + if ( ((LA156_0>=ANCESTOR && LA156_0<=SKIP)||(LA156_0>=VALUE && LA156_0<=QUOT_ER)||LA156_0==L_NCName||LA156_0==EXPLICITLY) ) { + alt156=1; + } + else if ( (LA156_0==LBRACKET) ) { + alt156=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 156, 0, this.input); + + throw nvae; + } + switch (alt156) { + case 1 : + // xquery/XQueryParser.g:1216:37: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_CompElemConstructor9066); + p_QName391=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName391.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1216:47: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1216:47: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1216:48: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET392=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompElemConstructor9071); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET392_tree = this.adaptor.create(LBRACKET392); + this.adaptor.addChild(root_0, LBRACKET392_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompElemConstructor9073); + p_Expr393=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr393.getTree()); + RBRACKET394=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompElemConstructor9076); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET394_tree = this.adaptor.create(RBRACKET394); + this.adaptor.addChild(root_0, RBRACKET394_tree); + } + + + + + + break; + + } + + LBRACKET395=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompElemConstructor9080); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET395_tree = this.adaptor.create(LBRACKET395); + this.adaptor.addChild(root_0, LBRACKET395_tree); + } + this.pushFollow(XQueryParser.FOLLOW_pm_ContentExpr_in_pm_CompElemConstructor9082); + pm_ContentExpr396=this.pm_ContentExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ContentExpr396.getTree()); + RBRACKET397=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompElemConstructor9084); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET397_tree = this.adaptor.create(RBRACKET397); + this.adaptor.addChild(root_0, RBRACKET397_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ContentExpr_return: (function() { + XQueryParser.pm_ContentExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ContentExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1221:1: pm_ContentExpr : p_StatementsAndOptionalExpr ; + // $ANTLR start "pm_ContentExpr" + pm_ContentExpr: function() { + var retval = new XQueryParser.pm_ContentExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_StatementsAndOptionalExpr398 = null; + + + try { + // xquery/XQueryParser.g:1222:9: ( p_StatementsAndOptionalExpr ) + // xquery/XQueryParser.g:1222:11: p_StatementsAndOptionalExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_ContentExpr9111); + p_StatementsAndOptionalExpr398=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr398.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompAttrConstructor_return: (function() { + XQueryParser.pm_CompAttrConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompAttrConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1227:1: pm_CompAttrConstructor : k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompAttrConstructor" + pm_CompAttrConstructor: function() { + var retval = new XQueryParser.pm_CompAttrConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET400 = null; + var RBRACKET402 = null; + var LBRACKET403 = null; + var RBRACKET405 = null; + var p_QName399 = null; + var p_Expr401 = null; + var p_StatementsAndOptionalExpr404 = null; + + var k_tree=null; + var LBRACKET400_tree=null; + var RBRACKET402_tree=null; + var LBRACKET403_tree=null; + var RBRACKET405_tree=null; + + try { + // xquery/XQueryParser.g:1228:9: (k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1228:11: k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_pm_CompAttrConstructor9140); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1228:38: ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt157=2; + var LA157_0 = this.input.LA(1); + + if ( ((LA157_0>=ANCESTOR && LA157_0<=SKIP)||(LA157_0>=VALUE && LA157_0<=QUOT_ER)||LA157_0==L_NCName||LA157_0==EXPLICITLY) ) { + alt157=1; + } + else if ( (LA157_0==LBRACKET) ) { + alt157=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 157, 0, this.input); + + throw nvae; + } + switch (alt157) { + case 1 : + // xquery/XQueryParser.g:1228:39: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_CompAttrConstructor9145); + p_QName399=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName399.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1228:49: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1228:49: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1228:50: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET400=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompAttrConstructor9150); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET400_tree = this.adaptor.create(LBRACKET400); + this.adaptor.addChild(root_0, LBRACKET400_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompAttrConstructor9152); + p_Expr401=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr401.getTree()); + RBRACKET402=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompAttrConstructor9155); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET402_tree = this.adaptor.create(RBRACKET402); + this.adaptor.addChild(root_0, RBRACKET402_tree); + } + + + + + + break; + + } + + LBRACKET403=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompAttrConstructor9159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET403_tree = this.adaptor.create(LBRACKET403); + this.adaptor.addChild(root_0, LBRACKET403_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompAttrConstructor9161); + p_StatementsAndOptionalExpr404=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr404.getTree()); + RBRACKET405=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompAttrConstructor9163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET405_tree = this.adaptor.create(RBRACKET405); + this.adaptor.addChild(root_0, RBRACKET405_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompNamespaceConstructor_return: (function() { + XQueryParser.p_CompNamespaceConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompNamespaceConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1232:1: p_CompNamespaceConstructor : k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET ; + // $ANTLR start "p_CompNamespaceConstructor" + p_CompNamespaceConstructor: function() { + var retval = new XQueryParser.p_CompNamespaceConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET407 = null; + var RBRACKET409 = null; + var LBRACKET410 = null; + var RBRACKET412 = null; + var p_Prefix406 = null; + var p_PrefixExpr408 = null; + var p_URIExpr411 = null; + + var k_tree=null; + var LBRACKET407_tree=null; + var RBRACKET409_tree=null; + var LBRACKET410_tree=null; + var RBRACKET412_tree=null; + + try { + // xquery/XQueryParser.g:1233:9: (k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET ) + // xquery/XQueryParser.g:1233:11: k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_CompNamespaceConstructor9191); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1233:38: ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) + var alt158=2; + var LA158_0 = this.input.LA(1); + + if ( ((LA158_0>=ANCESTOR && LA158_0<=SKIP)||(LA158_0>=VALUE && LA158_0<=QUOT_ER)||LA158_0==L_NCName||LA158_0==EXPLICITLY) ) { + alt158=1; + } + else if ( (LA158_0==LBRACKET) ) { + alt158=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 158, 0, this.input); + + throw nvae; + } + switch (alt158) { + case 1 : + // xquery/XQueryParser.g:1233:39: p_Prefix + this.pushFollow(XQueryParser.FOLLOW_p_Prefix_in_p_CompNamespaceConstructor9196); + p_Prefix406=this.p_Prefix(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Prefix406.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1233:50: ( LBRACKET p_PrefixExpr RBRACKET ) + // xquery/XQueryParser.g:1233:50: ( LBRACKET p_PrefixExpr RBRACKET ) + // xquery/XQueryParser.g:1233:51: LBRACKET p_PrefixExpr RBRACKET + LBRACKET407=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9201); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET407_tree = this.adaptor.create(LBRACKET407); + this.adaptor.addChild(root_0, LBRACKET407_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_PrefixExpr_in_p_CompNamespaceConstructor9203); + p_PrefixExpr408=this.p_PrefixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PrefixExpr408.getTree()); + RBRACKET409=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9205); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET409_tree = this.adaptor.create(RBRACKET409); + this.adaptor.addChild(root_0, RBRACKET409_tree); + } + + + + + + break; + + } + + LBRACKET410=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9209); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET410_tree = this.adaptor.create(LBRACKET410); + this.adaptor.addChild(root_0, LBRACKET410_tree); + } + // xquery/XQueryParser.g:1233:93: ( p_URIExpr )? + var alt159=2; + var LA159_0 = this.input.LA(1); + + if ( ((LA159_0>=ANCESTOR && LA159_0<=QUOT_ER)||LA159_0==LPAREN||(LA159_0>=DOLLAR && LA159_0<=LBRACKET)||(LA159_0>=STAR && LA159_0<=SMALLER)||(LA159_0>=SLASH && LA159_0<=DOT_DOT)||LA159_0==ATTR_SIGN||(LA159_0>=APOS && LA159_0<=QUOT)||LA159_0==L_NCName||(LA159_0>=L_Pragma && LA159_0<=L_DoubleLiteral)||LA159_0==EXPLICITLY) ) { + alt159=1; + } + switch (alt159) { + case 1 : + // xquery/XQueryParser.g:1233:93: p_URIExpr + this.pushFollow(XQueryParser.FOLLOW_p_URIExpr_in_p_CompNamespaceConstructor9211); + p_URIExpr411=this.p_URIExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_URIExpr411.getTree()); + + + break; + + } + + RBRACKET412=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9214); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET412_tree = this.adaptor.create(RBRACKET412); + this.adaptor.addChild(root_0, RBRACKET412_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Prefix_return: (function() { + XQueryParser.p_Prefix_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Prefix_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1237:1: p_Prefix : p_NCName ; + // $ANTLR start "p_Prefix" + p_Prefix: function() { + var retval = new XQueryParser.p_Prefix_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_NCName413 = null; + + + try { + // xquery/XQueryParser.g:1238:9: ( p_NCName ) + // xquery/XQueryParser.g:1238:11: p_NCName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Prefix9240); + p_NCName413=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName413.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PrefixExpr_return: (function() { + XQueryParser.p_PrefixExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PrefixExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1242:1: p_PrefixExpr : p_Expr[true,true] ; + // $ANTLR start "p_PrefixExpr" + p_PrefixExpr: function() { + var retval = new XQueryParser.p_PrefixExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr414 = null; + + + try { + // xquery/XQueryParser.g:1243:9: ( p_Expr[true,true] ) + // xquery/XQueryParser.g:1243:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_PrefixExpr9266); + p_Expr414=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr414.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_URIExpr_return: (function() { + XQueryParser.p_URIExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_URIExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1247:1: p_URIExpr : p_Expr[true,true] ; + // $ANTLR start "p_URIExpr" + p_URIExpr: function() { + var retval = new XQueryParser.p_URIExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr415 = null; + + + try { + // xquery/XQueryParser.g:1248:9: ( p_Expr[true,true] ) + // xquery/XQueryParser.g:1248:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_URIExpr9293); + p_Expr415=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr415.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompTextConstructor_return: (function() { + XQueryParser.p_CompTextConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompTextConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1252:1: p_CompTextConstructor : k= TEXT LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_CompTextConstructor" + p_CompTextConstructor: function() { + var retval = new XQueryParser.p_CompTextConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET416 = null; + var RBRACKET418 = null; + var p_Expr417 = null; + + var k_tree=null; + var LBRACKET416_tree=null; + var RBRACKET418_tree=null; + + try { + // xquery/XQueryParser.g:1253:9: (k= TEXT LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1253:11: k= TEXT LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_CompTextConstructor9322); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET416=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompTextConstructor9326); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET416_tree = this.adaptor.create(LBRACKET416); + this.adaptor.addChild(root_0, LBRACKET416_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CompTextConstructor9328); + p_Expr417=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr417.getTree()); + RBRACKET418=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompTextConstructor9331); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET418_tree = this.adaptor.create(RBRACKET418); + this.adaptor.addChild(root_0, RBRACKET418_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompBinaryConstructor_return: (function() { + XQueryParser.p_CompBinaryConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompBinaryConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1257:1: p_CompBinaryConstructor : k= BINARY LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_CompBinaryConstructor" + p_CompBinaryConstructor: function() { + var retval = new XQueryParser.p_CompBinaryConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET419 = null; + var RBRACKET421 = null; + var p_Expr420 = null; + + var k_tree=null; + var LBRACKET419_tree=null; + var RBRACKET421_tree=null; + + try { + // xquery/XQueryParser.g:1258:9: (k= BINARY LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1258:11: k= BINARY LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,BINARY,XQueryParser.FOLLOW_BINARY_in_p_CompBinaryConstructor9359); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET419=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompBinaryConstructor9363); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET419_tree = this.adaptor.create(LBRACKET419); + this.adaptor.addChild(root_0, LBRACKET419_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CompBinaryConstructor9365); + p_Expr420=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr420.getTree()); + RBRACKET421=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompBinaryConstructor9368); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET421_tree = this.adaptor.create(RBRACKET421); + this.adaptor.addChild(root_0, RBRACKET421_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompCommentConstructor_return: (function() { + XQueryParser.pm_CompCommentConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompCommentConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1263:1: pm_CompCommentConstructor : k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompCommentConstructor" + pm_CompCommentConstructor: function() { + var retval = new XQueryParser.pm_CompCommentConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET422 = null; + var RBRACKET424 = null; + var p_StatementsAndOptionalExpr423 = null; + + var k_tree=null; + var LBRACKET422_tree=null; + var RBRACKET424_tree=null; + + try { + // xquery/XQueryParser.g:1264:9: (k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1264:11: k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COMMENT,XQueryParser.FOLLOW_COMMENT_in_pm_CompCommentConstructor9397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET422=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompCommentConstructor9401); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET422_tree = this.adaptor.create(LBRACKET422); + this.adaptor.addChild(root_0, LBRACKET422_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompCommentConstructor9403); + p_StatementsAndOptionalExpr423=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr423.getTree()); + RBRACKET424=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompCommentConstructor9405); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET424_tree = this.adaptor.create(RBRACKET424); + this.adaptor.addChild(root_0, RBRACKET424_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompPIConstructor_return: (function() { + XQueryParser.pm_CompPIConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompPIConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1269:1: pm_CompPIConstructor : k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompPIConstructor" + pm_CompPIConstructor: function() { + var retval = new XQueryParser.pm_CompPIConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET426 = null; + var RBRACKET428 = null; + var LBRACKET429 = null; + var RBRACKET431 = null; + var p_NCName425 = null; + var p_Expr427 = null; + var p_StatementsAndOptionalExpr430 = null; + + var k_tree=null; + var LBRACKET426_tree=null; + var RBRACKET428_tree=null; + var LBRACKET429_tree=null; + var RBRACKET431_tree=null; + + try { + // xquery/XQueryParser.g:1270:9: (k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1270:11: k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,PROCESSING_INSTRUCTION,XQueryParser.FOLLOW_PROCESSING_INSTRUCTION_in_pm_CompPIConstructor9434); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1270:51: ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt160=2; + var LA160_0 = this.input.LA(1); + + if ( ((LA160_0>=ANCESTOR && LA160_0<=SKIP)||(LA160_0>=VALUE && LA160_0<=QUOT_ER)||LA160_0==L_NCName||LA160_0==EXPLICITLY) ) { + alt160=1; + } + else if ( (LA160_0==LBRACKET) ) { + alt160=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 160, 0, this.input); + + throw nvae; + } + switch (alt160) { + case 1 : + // xquery/XQueryParser.g:1270:52: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_CompPIConstructor9439); + p_NCName425=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName425.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1270:63: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1270:63: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1270:64: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET426=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompPIConstructor9444); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET426_tree = this.adaptor.create(LBRACKET426); + this.adaptor.addChild(root_0, LBRACKET426_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompPIConstructor9446); + p_Expr427=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr427.getTree()); + RBRACKET428=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompPIConstructor9449); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET428_tree = this.adaptor.create(RBRACKET428); + this.adaptor.addChild(root_0, RBRACKET428_tree); + } + + + + + + break; + + } + + LBRACKET429=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompPIConstructor9453); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET429_tree = this.adaptor.create(LBRACKET429); + this.adaptor.addChild(root_0, LBRACKET429_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompPIConstructor9455); + p_StatementsAndOptionalExpr430=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr430.getTree()); + RBRACKET431=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompPIConstructor9457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET431_tree = this.adaptor.create(RBRACKET431); + this.adaptor.addChild(root_0, RBRACKET431_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SingleType_return: (function() { + XQueryParser.p_SingleType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SingleType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1292:1: p_SingleType : p_AtomicOrUnionType ( QUESTION )? ; + // $ANTLR start "p_SingleType" + p_SingleType: function() { + var retval = new XQueryParser.p_SingleType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUESTION433 = null; + var p_AtomicOrUnionType432 = null; + + var QUESTION433_tree=null; + + try { + // xquery/XQueryParser.g:1293:9: ( p_AtomicOrUnionType ( QUESTION )? ) + // xquery/XQueryParser.g:1293:11: p_AtomicOrUnionType ( QUESTION )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AtomicOrUnionType_in_p_SingleType9501); + p_AtomicOrUnionType432=this.p_AtomicOrUnionType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicOrUnionType432.getTree()); + // xquery/XQueryParser.g:1293:31: ( QUESTION )? + var alt161=2; + var LA161_0 = this.input.LA(1); + + if ( (LA161_0==QUESTION) ) { + alt161=1; + } + switch (alt161) { + case 1 : + // xquery/XQueryParser.g:1293:31: QUESTION + QUESTION433=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_SingleType9503); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION433_tree = this.adaptor.create(QUESTION433); + this.adaptor.addChild(root_0, QUESTION433_tree); + } + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeDeclaration_return: (function() { + XQueryParser.p_TypeDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1297:1: p_TypeDeclaration : k= AS st= p_SequenceType -> ^( TypeDeclaration $st) ; + // $ANTLR start "p_TypeDeclaration" + p_TypeDeclaration: function() { + var retval = new XQueryParser.p_TypeDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var st = null; + + var k_tree=null; + var stream_AS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AS"); + var stream_p_SequenceType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SequenceType"); + try { + // xquery/XQueryParser.g:1298:9: (k= AS st= p_SequenceType -> ^( TypeDeclaration $st) ) + // xquery/XQueryParser.g:1298:11: k= AS st= p_SequenceType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TypeDeclaration9532); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AS.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypeDeclaration9538); + st=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SequenceType.add(st.getTree()); + + + // AST REWRITE + // elements: st + // token labels: + // rule labels: retval, st + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null); + + root_0 = this.adaptor.nil(); + // 1299:17: -> ^( TypeDeclaration $st) + { + // xquery/XQueryParser.g:1299:20: ^( TypeDeclaration $st) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(TypeDeclaration, "TypeDeclaration"), root_1); + + this.adaptor.addChild(root_1, stream_st.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SequenceType_return: (function() { + XQueryParser.p_SequenceType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SequenceType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1303:1: p_SequenceType : (k= EMPTY_SEQUENCE l= LPAREN r= RPAREN -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) | it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? -> ^( SequenceType $it ( $oi)? ) ); + // $ANTLR start "p_SequenceType" + p_SequenceType: function() { + var retval = new XQueryParser.p_SequenceType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var l = null; + var r = null; + var it = null; + var oi = null; + + var k_tree=null; + var l_tree=null; + var r_tree=null; + var stream_EMPTY_SEQUENCE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EMPTY_SEQUENCE"); + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_p_ItemType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ItemType"); + var stream_p_OccurrenceIndicator=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_OccurrenceIndicator"); + try { + // xquery/XQueryParser.g:1304:9: (k= EMPTY_SEQUENCE l= LPAREN r= RPAREN -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) | it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? -> ^( SequenceType $it ( $oi)? ) ) + var alt163=2; + var LA163_0 = this.input.LA(1); + + if ( (LA163_0==EMPTY_SEQUENCE) ) { + var LA163_1 = this.input.LA(2); + + if ( (LA163_1==LPAREN) ) { + alt163=1; + } + else if ( (LA163_1==EOF||(LA163_1>=AND && LA163_1<=AT)||LA163_1==CASE||LA163_1==COLLATION||LA163_1==DEFAULT||(LA163_1>=DESCENDING && LA163_1<=DIV)||LA163_1==EMPTY||LA163_1==EQ||(LA163_1>=EXCEPT && LA163_1<=EXTERNAL)||LA163_1==FOR||LA163_1==GE||(LA163_1>=GT && LA163_1<=IDIV)||LA163_1==IN||(LA163_1>=INSTANCE && LA163_1<=IS)||LA163_1==LE||(LA163_1>=LET && LA163_1<=MOD)||LA163_1==NE||(LA163_1>=OR && LA163_1<=ORDER)||(LA163_1>=RETURN && LA163_1<=SATISFIES)||LA163_1==STABLE||LA163_1==TO||LA163_1==UNION||LA163_1==WHERE||LA163_1==ALLOWING||LA163_1==COUNT||(LA163_1>=END && LA163_1<=GROUP)||LA163_1==ONLY||LA163_1==START||(LA163_1>=AFTER && LA163_1<=BEFORE)||LA163_1==INTO||LA163_1==MODIFY||LA163_1==WITH||LA163_1==CONTAINS||LA163_1==PARAGRAPHS||LA163_1==SCORE||LA163_1==SENTENCES||LA163_1==TIMES||LA163_1==WORDS||LA163_1==CONCAT||LA163_1==RPAREN||(LA163_1>=LBRACKET && LA163_1<=RBRACKET)||(LA163_1>=RSQUARE && LA163_1<=NOTEQUAL)||(LA163_1>=COMMA && LA163_1<=GREATER_GREATER)||LA163_1==COLON||(LA163_1>=SEMICOLON && LA163_1<=VBAR)) ) { + alt163=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 163, 1, this.input); + + throw nvae; + } + } + else if ( ((LA163_0>=ANCESTOR && LA163_0<=EMPTY)||(LA163_0>=ENCODING && LA163_0<=SKIP)||(LA163_0>=VALUE && LA163_0<=QUOT_ER)||LA163_0==LPAREN||LA163_0==L_NCName||LA163_0==EXPLICITLY) ) { + alt163=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 163, 0, this.input); + + throw nvae; + } + switch (alt163) { + case 1 : + // xquery/XQueryParser.g:1304:11: k= EMPTY_SEQUENCE l= LPAREN r= RPAREN + k=this.match(this.input,EMPTY_SEQUENCE,XQueryParser.FOLLOW_EMPTY_SEQUENCE_in_p_SequenceType9591); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EMPTY_SEQUENCE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + l=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SequenceType9597); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(l); + + r=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SequenceType9601); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(r); + + + + // AST REWRITE + // elements: r, k, l + // token labels: r, l, k + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_r=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token r",r); + var stream_l=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token l",l); + var stream_k=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token k",k); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1305:17: -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) + { + // xquery/XQueryParser.g:1305:20: ^( SequenceType ^( EmptySequenceTest $k $l $r) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SequenceType, "SequenceType"), root_1); + + // xquery/XQueryParser.g:1305:35: ^( EmptySequenceTest $k $l $r) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(EmptySequenceTest, "EmptySequenceTest"), root_2); + + this.adaptor.addChild(root_2, stream_k.nextNode()); + this.adaptor.addChild(root_2, stream_l.nextNode()); + this.adaptor.addChild(root_2, stream_r.nextNode()); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1306:11: it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_p_SequenceType9650); + it=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ItemType.add(it.getTree()); + // xquery/XQueryParser.g:1306:25: ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? + var alt162=2; + alt162 = this.dfa162.predict(this.input); + switch (alt162) { + case 1 : + // xquery/XQueryParser.g:1306:26: ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_SequenceType9661); + oi=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_OccurrenceIndicator.add(oi.getTree()); + + + break; + + } + + + + // AST REWRITE + // elements: oi, it + // token labels: + // rule labels: retval, it, oi + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_it=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token it",it!=null?it.tree:null); + var stream_oi=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token oi",oi!=null?oi.tree:null); + + root_0 = this.adaptor.nil(); + // 1307:17: -> ^( SequenceType $it ( $oi)? ) + { + // xquery/XQueryParser.g:1307:20: ^( SequenceType $it ( $oi)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SequenceType, "SequenceType"), root_1); + + this.adaptor.addChild(root_1, stream_it.nextTree()); + // xquery/XQueryParser.g:1307:39: ( $oi)? + if ( stream_oi.hasNext() ) { + this.adaptor.addChild(root_1, stream_oi.nextTree()); + + } + stream_oi.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OccurrenceIndicator_return: (function() { + XQueryParser.p_OccurrenceIndicator_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OccurrenceIndicator_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1311:1: p_OccurrenceIndicator : ( QUESTION | STAR | PLUS ); + // $ANTLR start "p_OccurrenceIndicator" + p_OccurrenceIndicator: function() { + var retval = new XQueryParser.p_OccurrenceIndicator_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set434 = null; + + var set434_tree=null; + + try { + // xquery/XQueryParser.g:1312:9: ( QUESTION | STAR | PLUS ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set434=this.input.LT(1); + if ( (this.input.LA(1)>=QUESTION && this.input.LA(1)<=PLUS) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set434)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ItemType_return: (function() { + XQueryParser.p_ItemType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ItemType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1316:1: p_ItemType : ( p_KindTest -> ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType ); + // $ANTLR start "p_ItemType" + p_ItemType: function() { + var retval = new XQueryParser.p_ItemType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var BINARY436 = null; + var LPAREN437 = null; + var RPAREN438 = null; + var ITEM439 = null; + var LPAREN440 = null; + var RPAREN441 = null; + var p_KindTest435 = null; + var p_AtomicOrUnionType442 = null; + var p_ParenthesizedItemType443 = null; + + var BINARY436_tree=null; + var LPAREN437_tree=null; + var RPAREN438_tree=null; + var ITEM439_tree=null; + var LPAREN440_tree=null; + var RPAREN441_tree=null; + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_ITEM=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ITEM"); + var stream_BINARY=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BINARY"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_p_KindTest=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_KindTest"); + try { + // xquery/XQueryParser.g:1317:9: ( p_KindTest -> ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType ) + var alt164=5; + alt164 = this.dfa164.predict(this.input); + switch (alt164) { + case 1 : + // xquery/XQueryParser.g:1317:11: p_KindTest + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_ItemType9763); + p_KindTest435=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_KindTest.add(p_KindTest435.getTree()); + + + // AST REWRITE + // elements: p_KindTest + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1318:17: -> ^( KindTest p_KindTest ) + { + // xquery/XQueryParser.g:1318:20: ^( KindTest p_KindTest ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(KindTest, "KindTest"), root_1); + + this.adaptor.addChild(root_1, stream_p_KindTest.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1319:11: {...}? => ( BINARY LPAREN RPAREN ) + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ItemType", "this.lc(MLS)"); + } + // xquery/XQueryParser.g:1319:29: ( BINARY LPAREN RPAREN ) + // xquery/XQueryParser.g:1319:30: BINARY LPAREN RPAREN + BINARY436=this.match(this.input,BINARY,XQueryParser.FOLLOW_BINARY_in_p_ItemType9803); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BINARY.add(BINARY436); + + LPAREN437=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ItemType9805); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN437); + + RPAREN438=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ItemType9807); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN438); + + + + + + + // AST REWRITE + // elements: RPAREN, BINARY, LPAREN + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1320:17: -> ^( BinaryTest BINARY LPAREN RPAREN ) + { + // xquery/XQueryParser.g:1320:20: ^( BinaryTest BINARY LPAREN RPAREN ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(BinaryTest, "BinaryTest"), root_1); + + this.adaptor.addChild(root_1, stream_BINARY.nextNode()); + this.adaptor.addChild(root_1, stream_LPAREN.nextNode()); + this.adaptor.addChild(root_1, stream_RPAREN.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 3 : + // xquery/XQueryParser.g:1321:11: ( ITEM LPAREN RPAREN ) + // xquery/XQueryParser.g:1321:11: ( ITEM LPAREN RPAREN ) + // xquery/XQueryParser.g:1321:12: ITEM LPAREN RPAREN + ITEM439=this.match(this.input,ITEM,XQueryParser.FOLLOW_ITEM_in_p_ItemType9849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ITEM.add(ITEM439); + + LPAREN440=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ItemType9851); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN440); + + RPAREN441=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ItemType9853); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN441); + + + + + + + // AST REWRITE + // elements: LPAREN, ITEM, RPAREN + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1322:17: -> ^( ItemTest ITEM LPAREN RPAREN ) + { + // xquery/XQueryParser.g:1322:20: ^( ItemTest ITEM LPAREN RPAREN ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ItemTest, "ItemTest"), root_1); + + this.adaptor.addChild(root_1, stream_ITEM.nextNode()); + this.adaptor.addChild(root_1, stream_LPAREN.nextNode()); + this.adaptor.addChild(root_1, stream_RPAREN.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 4 : + // xquery/XQueryParser.g:1326:11: p_AtomicOrUnionType + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AtomicOrUnionType_in_p_ItemType9897); + p_AtomicOrUnionType442=this.p_AtomicOrUnionType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicOrUnionType442.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1327:11: p_ParenthesizedItemType + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ParenthesizedItemType_in_p_ItemType9909); + p_ParenthesizedItemType443=this.p_ParenthesizedItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ParenthesizedItemType443.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AtomicOrUnionType_return: (function() { + XQueryParser.p_AtomicOrUnionType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AtomicOrUnionType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1331:1: p_AtomicOrUnionType : p_QName -> ^( AtomicOrUnionType p_QName ) ; + // $ANTLR start "p_AtomicOrUnionType" + p_AtomicOrUnionType: function() { + var retval = new XQueryParser.p_AtomicOrUnionType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName444 = null; + + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:1332:9: ( p_QName -> ^( AtomicOrUnionType p_QName ) ) + // xquery/XQueryParser.g:1332:11: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AtomicOrUnionType9935); + p_QName444=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(p_QName444.getTree()); + + + // AST REWRITE + // elements: p_QName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1333:17: -> ^( AtomicOrUnionType p_QName ) + { + // xquery/XQueryParser.g:1333:20: ^( AtomicOrUnionType p_QName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AtomicOrUnionType, "AtomicOrUnionType"), root_1); + + this.adaptor.addChild(root_1, stream_p_QName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_KindTest_return: (function() { + XQueryParser.p_KindTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_KindTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1337:1: p_KindTest : ( p_DocumentTest | p_ElementTest | p_AttributeTest | p_SchemaElementTest | p_SchemaAttributeTest | p_PITest | p_CommentTest | p_TextTest | p_NamespaceNodeTest | p_AnyKindTest ); + // $ANTLR start "p_KindTest" + p_KindTest: function() { + var retval = new XQueryParser.p_KindTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DocumentTest445 = null; + var p_ElementTest446 = null; + var p_AttributeTest447 = null; + var p_SchemaElementTest448 = null; + var p_SchemaAttributeTest449 = null; + var p_PITest450 = null; + var p_CommentTest451 = null; + var p_TextTest452 = null; + var p_NamespaceNodeTest453 = null; + var p_AnyKindTest454 = null; + + + try { + // xquery/XQueryParser.g:1338:9: ( p_DocumentTest | p_ElementTest | p_AttributeTest | p_SchemaElementTest | p_SchemaAttributeTest | p_PITest | p_CommentTest | p_TextTest | p_NamespaceNodeTest | p_AnyKindTest ) + var alt165=10; + switch ( this.input.LA(1) ) { + case DOCUMENT_NODE: + alt165=1; + break; + case ELEMENT: + alt165=2; + break; + case ATTRIBUTE: + alt165=3; + break; + case SCHEMA_ELEMENT: + alt165=4; + break; + case SCHEMA_ATTRIBUTE: + alt165=5; + break; + case PROCESSING_INSTRUCTION: + alt165=6; + break; + case COMMENT: + alt165=7; + break; + case TEXT: + alt165=8; + break; + case NAMESPACE_NODE: + alt165=9; + break; + case NODE: + alt165=10; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 165, 0, this.input); + + throw nvae; + } + + switch (alt165) { + case 1 : + // xquery/XQueryParser.g:1338:11: p_DocumentTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DocumentTest_in_p_KindTest9985); + p_DocumentTest445=this.p_DocumentTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DocumentTest445.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1339:11: p_ElementTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementTest_in_p_KindTest9997); + p_ElementTest446=this.p_ElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementTest446.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1340:11: p_AttributeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeTest_in_p_KindTest10009); + p_AttributeTest447=this.p_AttributeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeTest447.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1341:11: p_SchemaElementTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SchemaElementTest_in_p_KindTest10021); + p_SchemaElementTest448=this.p_SchemaElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaElementTest448.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1342:11: p_SchemaAttributeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SchemaAttributeTest_in_p_KindTest10033); + p_SchemaAttributeTest449=this.p_SchemaAttributeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaAttributeTest449.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1343:11: p_PITest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PITest_in_p_KindTest10045); + p_PITest450=this.p_PITest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PITest450.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1344:11: p_CommentTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CommentTest_in_p_KindTest10057); + p_CommentTest451=this.p_CommentTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CommentTest451.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1345:11: p_TextTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TextTest_in_p_KindTest10069); + p_TextTest452=this.p_TextTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TextTest452.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:1346:11: p_NamespaceNodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NamespaceNodeTest_in_p_KindTest10081); + p_NamespaceNodeTest453=this.p_NamespaceNodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NamespaceNodeTest453.getTree()); + + + break; + case 10 : + // xquery/XQueryParser.g:1347:11: p_AnyKindTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AnyKindTest_in_p_KindTest10093); + p_AnyKindTest454=this.p_AnyKindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AnyKindTest454.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AnyKindTest_return: (function() { + XQueryParser.p_AnyKindTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AnyKindTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1351:1: p_AnyKindTest : NODE LPAREN RPAREN ; + // $ANTLR start "p_AnyKindTest" + p_AnyKindTest: function() { + var retval = new XQueryParser.p_AnyKindTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var NODE455 = null; + var LPAREN456 = null; + var RPAREN457 = null; + + var NODE455_tree=null; + var LPAREN456_tree=null; + var RPAREN457_tree=null; + + try { + // xquery/XQueryParser.g:1352:9: ( NODE LPAREN RPAREN ) + // xquery/XQueryParser.g:1352:11: NODE LPAREN RPAREN + root_0 = this.adaptor.nil(); + + NODE455=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_AnyKindTest10119); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + NODE455_tree = this.adaptor.create(NODE455); + this.adaptor.addChild(root_0, NODE455_tree); + } + LPAREN456=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AnyKindTest10121); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN456_tree = this.adaptor.create(LPAREN456); + this.adaptor.addChild(root_0, LPAREN456_tree); + } + RPAREN457=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AnyKindTest10123); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN457_tree = this.adaptor.create(RPAREN457); + this.adaptor.addChild(root_0, RPAREN457_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DocumentTest_return: (function() { + XQueryParser.p_DocumentTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DocumentTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1356:1: p_DocumentTest : DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN ; + // $ANTLR start "p_DocumentTest" + p_DocumentTest: function() { + var retval = new XQueryParser.p_DocumentTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOCUMENT_NODE458 = null; + var LPAREN459 = null; + var RPAREN462 = null; + var p_ElementTest460 = null; + var p_SchemaElementTest461 = null; + + var DOCUMENT_NODE458_tree=null; + var LPAREN459_tree=null; + var RPAREN462_tree=null; + + try { + // xquery/XQueryParser.g:1357:9: ( DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN ) + // xquery/XQueryParser.g:1357:11: DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN + root_0 = this.adaptor.nil(); + + DOCUMENT_NODE458=this.match(this.input,DOCUMENT_NODE,XQueryParser.FOLLOW_DOCUMENT_NODE_in_p_DocumentTest10149); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOCUMENT_NODE458_tree = this.adaptor.create(DOCUMENT_NODE458); + this.adaptor.addChild(root_0, DOCUMENT_NODE458_tree); + } + LPAREN459=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_DocumentTest10151); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN459_tree = this.adaptor.create(LPAREN459); + this.adaptor.addChild(root_0, LPAREN459_tree); + } + // xquery/XQueryParser.g:1357:32: ( p_ElementTest | p_SchemaElementTest )? + var alt166=3; + var LA166_0 = this.input.LA(1); + + if ( (LA166_0==ELEMENT) ) { + alt166=1; + } + else if ( (LA166_0==SCHEMA_ELEMENT) ) { + alt166=2; + } + switch (alt166) { + case 1 : + // xquery/XQueryParser.g:1357:33: p_ElementTest + this.pushFollow(XQueryParser.FOLLOW_p_ElementTest_in_p_DocumentTest10154); + p_ElementTest460=this.p_ElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementTest460.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1357:49: p_SchemaElementTest + this.pushFollow(XQueryParser.FOLLOW_p_SchemaElementTest_in_p_DocumentTest10158); + p_SchemaElementTest461=this.p_SchemaElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaElementTest461.getTree()); + + + break; + + } + + RPAREN462=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_DocumentTest10162); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN462_tree = this.adaptor.create(RPAREN462); + this.adaptor.addChild(root_0, RPAREN462_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TextTest_return: (function() { + XQueryParser.p_TextTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TextTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1361:1: p_TextTest : TEXT LPAREN RPAREN ; + // $ANTLR start "p_TextTest" + p_TextTest: function() { + var retval = new XQueryParser.p_TextTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var TEXT463 = null; + var LPAREN464 = null; + var RPAREN465 = null; + + var TEXT463_tree=null; + var LPAREN464_tree=null; + var RPAREN465_tree=null; + + try { + // xquery/XQueryParser.g:1362:9: ( TEXT LPAREN RPAREN ) + // xquery/XQueryParser.g:1362:11: TEXT LPAREN RPAREN + root_0 = this.adaptor.nil(); + + TEXT463=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_TextTest10188); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + TEXT463_tree = this.adaptor.create(TEXT463); + this.adaptor.addChild(root_0, TEXT463_tree); + } + LPAREN464=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TextTest10190); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN464_tree = this.adaptor.create(LPAREN464); + this.adaptor.addChild(root_0, LPAREN464_tree); + } + RPAREN465=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TextTest10192); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN465_tree = this.adaptor.create(RPAREN465); + this.adaptor.addChild(root_0, RPAREN465_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CommentTest_return: (function() { + XQueryParser.p_CommentTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CommentTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1366:1: p_CommentTest : COMMENT LPAREN RPAREN ; + // $ANTLR start "p_CommentTest" + p_CommentTest: function() { + var retval = new XQueryParser.p_CommentTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMENT466 = null; + var LPAREN467 = null; + var RPAREN468 = null; + + var COMMENT466_tree=null; + var LPAREN467_tree=null; + var RPAREN468_tree=null; + + try { + // xquery/XQueryParser.g:1367:9: ( COMMENT LPAREN RPAREN ) + // xquery/XQueryParser.g:1367:11: COMMENT LPAREN RPAREN + root_0 = this.adaptor.nil(); + + COMMENT466=this.match(this.input,COMMENT,XQueryParser.FOLLOW_COMMENT_in_p_CommentTest10218); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMENT466_tree = this.adaptor.create(COMMENT466); + this.adaptor.addChild(root_0, COMMENT466_tree); + } + LPAREN467=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_CommentTest10220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN467_tree = this.adaptor.create(LPAREN467); + this.adaptor.addChild(root_0, LPAREN467_tree); + } + RPAREN468=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_CommentTest10222); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN468_tree = this.adaptor.create(RPAREN468); + this.adaptor.addChild(root_0, RPAREN468_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NamespaceNodeTest_return: (function() { + XQueryParser.p_NamespaceNodeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NamespaceNodeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1371:1: p_NamespaceNodeTest : NAMESPACE_NODE LPAREN RPAREN ; + // $ANTLR start "p_NamespaceNodeTest" + p_NamespaceNodeTest: function() { + var retval = new XQueryParser.p_NamespaceNodeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var NAMESPACE_NODE469 = null; + var LPAREN470 = null; + var RPAREN471 = null; + + var NAMESPACE_NODE469_tree=null; + var LPAREN470_tree=null; + var RPAREN471_tree=null; + + try { + // xquery/XQueryParser.g:1372:9: ( NAMESPACE_NODE LPAREN RPAREN ) + // xquery/XQueryParser.g:1372:11: NAMESPACE_NODE LPAREN RPAREN + root_0 = this.adaptor.nil(); + + NAMESPACE_NODE469=this.match(this.input,NAMESPACE_NODE,XQueryParser.FOLLOW_NAMESPACE_NODE_in_p_NamespaceNodeTest10248); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + NAMESPACE_NODE469_tree = this.adaptor.create(NAMESPACE_NODE469); + this.adaptor.addChild(root_0, NAMESPACE_NODE469_tree); + } + LPAREN470=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_NamespaceNodeTest10250); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN470_tree = this.adaptor.create(LPAREN470); + this.adaptor.addChild(root_0, LPAREN470_tree); + } + RPAREN471=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_NamespaceNodeTest10252); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN471_tree = this.adaptor.create(RPAREN471); + this.adaptor.addChild(root_0, RPAREN471_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PITest_return: (function() { + XQueryParser.p_PITest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PITest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1376:1: p_PITest : PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN ; + // $ANTLR start "p_PITest" + p_PITest: function() { + var retval = new XQueryParser.p_PITest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var PROCESSING_INSTRUCTION472 = null; + var LPAREN473 = null; + var RPAREN476 = null; + var p_NCName474 = null; + var p_StringLiteral475 = null; + + var PROCESSING_INSTRUCTION472_tree=null; + var LPAREN473_tree=null; + var RPAREN476_tree=null; + + try { + // xquery/XQueryParser.g:1377:9: ( PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN ) + // xquery/XQueryParser.g:1377:11: PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN + root_0 = this.adaptor.nil(); + + PROCESSING_INSTRUCTION472=this.match(this.input,PROCESSING_INSTRUCTION,XQueryParser.FOLLOW_PROCESSING_INSTRUCTION_in_p_PITest10278); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PROCESSING_INSTRUCTION472_tree = this.adaptor.create(PROCESSING_INSTRUCTION472); + this.adaptor.addChild(root_0, PROCESSING_INSTRUCTION472_tree); + } + LPAREN473=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_PITest10280); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN473_tree = this.adaptor.create(LPAREN473); + this.adaptor.addChild(root_0, LPAREN473_tree); + } + // xquery/XQueryParser.g:1377:41: ( p_NCName | p_StringLiteral )? + var alt167=3; + var LA167_0 = this.input.LA(1); + + if ( ((LA167_0>=ANCESTOR && LA167_0<=SKIP)||(LA167_0>=VALUE && LA167_0<=QUOT_ER)||LA167_0==L_NCName||LA167_0==EXPLICITLY) ) { + alt167=1; + } + else if ( ((LA167_0>=APOS && LA167_0<=QUOT)) ) { + alt167=2; + } + switch (alt167) { + case 1 : + // xquery/XQueryParser.g:1377:42: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_PITest10283); + p_NCName474=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName474.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1377:53: p_StringLiteral + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_PITest10287); + p_StringLiteral475=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral475.getTree()); + + + break; + + } + + RPAREN476=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_PITest10291); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN476_tree = this.adaptor.create(RPAREN476); + this.adaptor.addChild(root_0, RPAREN476_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeTest_return: (function() { + XQueryParser.p_AttributeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1381:1: p_AttributeTest : ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN ; + // $ANTLR start "p_AttributeTest" + p_AttributeTest: function() { + var retval = new XQueryParser.p_AttributeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ATTRIBUTE477 = null; + var LPAREN478 = null; + var COMMA480 = null; + var RPAREN482 = null; + var p_AttribNameOrWildcard479 = null; + var p_TypeName481 = null; + + var ATTRIBUTE477_tree=null; + var LPAREN478_tree=null; + var COMMA480_tree=null; + var RPAREN482_tree=null; + + try { + // xquery/XQueryParser.g:1382:9: ( ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN ) + // xquery/XQueryParser.g:1382:11: ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN + root_0 = this.adaptor.nil(); + + ATTRIBUTE477=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_p_AttributeTest10317); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTRIBUTE477_tree = this.adaptor.create(ATTRIBUTE477); + this.adaptor.addChild(root_0, ATTRIBUTE477_tree); + } + LPAREN478=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AttributeTest10319); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN478_tree = this.adaptor.create(LPAREN478); + this.adaptor.addChild(root_0, LPAREN478_tree); + } + // xquery/XQueryParser.g:1382:28: ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? + var alt169=2; + var LA169_0 = this.input.LA(1); + + if ( ((LA169_0>=ANCESTOR && LA169_0<=SKIP)||(LA169_0>=VALUE && LA169_0<=QUOT_ER)||LA169_0==STAR||LA169_0==L_NCName||LA169_0==EXPLICITLY) ) { + alt169=1; + } + switch (alt169) { + case 1 : + // xquery/XQueryParser.g:1382:29: p_AttribNameOrWildcard ( COMMA p_TypeName )? + this.pushFollow(XQueryParser.FOLLOW_p_AttribNameOrWildcard_in_p_AttributeTest10322); + p_AttribNameOrWildcard479=this.p_AttribNameOrWildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttribNameOrWildcard479.getTree()); + // xquery/XQueryParser.g:1382:52: ( COMMA p_TypeName )? + var alt168=2; + var LA168_0 = this.input.LA(1); + + if ( (LA168_0==COMMA) ) { + alt168=1; + } + switch (alt168) { + case 1 : + // xquery/XQueryParser.g:1382:53: COMMA p_TypeName + COMMA480=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_AttributeTest10325); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA480_tree = this.adaptor.create(COMMA480); + this.adaptor.addChild(root_0, COMMA480_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_AttributeTest10327); + p_TypeName481=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName481.getTree()); + + + break; + + } + + + + break; + + } + + RPAREN482=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AttributeTest10333); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN482_tree = this.adaptor.create(RPAREN482); + this.adaptor.addChild(root_0, RPAREN482_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttribNameOrWildcard_return: (function() { + XQueryParser.p_AttribNameOrWildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttribNameOrWildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1386:1: p_AttribNameOrWildcard : ( p_AttributeName | STAR ); + // $ANTLR start "p_AttribNameOrWildcard" + p_AttribNameOrWildcard: function() { + var retval = new XQueryParser.p_AttribNameOrWildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR484 = null; + var p_AttributeName483 = null; + + var STAR484_tree=null; + + try { + // xquery/XQueryParser.g:1387:9: ( p_AttributeName | STAR ) + var alt170=2; + var LA170_0 = this.input.LA(1); + + if ( ((LA170_0>=ANCESTOR && LA170_0<=SKIP)||(LA170_0>=VALUE && LA170_0<=QUOT_ER)||LA170_0==L_NCName||LA170_0==EXPLICITLY) ) { + alt170=1; + } + else if ( (LA170_0==STAR) ) { + alt170=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 170, 0, this.input); + + throw nvae; + } + switch (alt170) { + case 1 : + // xquery/XQueryParser.g:1387:11: p_AttributeName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeName_in_p_AttribNameOrWildcard10361); + p_AttributeName483=this.p_AttributeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeName483.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1387:29: STAR + root_0 = this.adaptor.nil(); + + STAR484=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_AttribNameOrWildcard10365); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR484_tree = this.adaptor.create(STAR484); + this.adaptor.addChild(root_0, STAR484_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaAttributeTest_return: (function() { + XQueryParser.p_SchemaAttributeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaAttributeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1391:1: p_SchemaAttributeTest : SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN ; + // $ANTLR start "p_SchemaAttributeTest" + p_SchemaAttributeTest: function() { + var retval = new XQueryParser.p_SchemaAttributeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SCHEMA_ATTRIBUTE485 = null; + var LPAREN486 = null; + var RPAREN488 = null; + var p_AttributeDeclaration487 = null; + + var SCHEMA_ATTRIBUTE485_tree=null; + var LPAREN486_tree=null; + var RPAREN488_tree=null; + + try { + // xquery/XQueryParser.g:1392:9: ( SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN ) + // xquery/XQueryParser.g:1392:11: SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN + root_0 = this.adaptor.nil(); + + SCHEMA_ATTRIBUTE485=this.match(this.input,SCHEMA_ATTRIBUTE,XQueryParser.FOLLOW_SCHEMA_ATTRIBUTE_in_p_SchemaAttributeTest10391); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SCHEMA_ATTRIBUTE485_tree = this.adaptor.create(SCHEMA_ATTRIBUTE485); + this.adaptor.addChild(root_0, SCHEMA_ATTRIBUTE485_tree); + } + LPAREN486=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SchemaAttributeTest10393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN486_tree = this.adaptor.create(LPAREN486); + this.adaptor.addChild(root_0, LPAREN486_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_AttributeDeclaration_in_p_SchemaAttributeTest10395); + p_AttributeDeclaration487=this.p_AttributeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeDeclaration487.getTree()); + RPAREN488=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SchemaAttributeTest10397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN488_tree = this.adaptor.create(RPAREN488); + this.adaptor.addChild(root_0, RPAREN488_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeDeclaration_return: (function() { + XQueryParser.p_AttributeDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1396:1: p_AttributeDeclaration : p_AttributeName ; + // $ANTLR start "p_AttributeDeclaration" + p_AttributeDeclaration: function() { + var retval = new XQueryParser.p_AttributeDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_AttributeName489 = null; + + + try { + // xquery/XQueryParser.g:1397:9: ( p_AttributeName ) + // xquery/XQueryParser.g:1397:11: p_AttributeName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeName_in_p_AttributeDeclaration10423); + p_AttributeName489=this.p_AttributeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeName489.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementTest_return: (function() { + XQueryParser.p_ElementTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1401:1: p_ElementTest : ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN ; + // $ANTLR start "p_ElementTest" + p_ElementTest: function() { + var retval = new XQueryParser.p_ElementTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ELEMENT490 = null; + var LPAREN491 = null; + var COMMA493 = null; + var QUESTION495 = null; + var RPAREN496 = null; + var p_ElementNameOrWildcard492 = null; + var p_TypeName494 = null; + + var ELEMENT490_tree=null; + var LPAREN491_tree=null; + var COMMA493_tree=null; + var QUESTION495_tree=null; + var RPAREN496_tree=null; + + try { + // xquery/XQueryParser.g:1402:9: ( ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN ) + // xquery/XQueryParser.g:1402:11: ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN + root_0 = this.adaptor.nil(); + + ELEMENT490=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_p_ElementTest10449); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ELEMENT490_tree = this.adaptor.create(ELEMENT490); + this.adaptor.addChild(root_0, ELEMENT490_tree); + } + LPAREN491=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ElementTest10451); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN491_tree = this.adaptor.create(LPAREN491); + this.adaptor.addChild(root_0, LPAREN491_tree); + } + // xquery/XQueryParser.g:1402:26: ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? + var alt173=2; + var LA173_0 = this.input.LA(1); + + if ( ((LA173_0>=ANCESTOR && LA173_0<=SKIP)||(LA173_0>=VALUE && LA173_0<=QUOT_ER)||LA173_0==STAR||LA173_0==L_NCName||LA173_0==EXPLICITLY) ) { + alt173=1; + } + switch (alt173) { + case 1 : + // xquery/XQueryParser.g:1402:27: p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? + this.pushFollow(XQueryParser.FOLLOW_p_ElementNameOrWildcard_in_p_ElementTest10454); + p_ElementNameOrWildcard492=this.p_ElementNameOrWildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementNameOrWildcard492.getTree()); + // xquery/XQueryParser.g:1402:51: ( COMMA p_TypeName ( QUESTION )? )? + var alt172=2; + var LA172_0 = this.input.LA(1); + + if ( (LA172_0==COMMA) ) { + alt172=1; + } + switch (alt172) { + case 1 : + // xquery/XQueryParser.g:1402:52: COMMA p_TypeName ( QUESTION )? + COMMA493=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ElementTest10457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA493_tree = this.adaptor.create(COMMA493); + this.adaptor.addChild(root_0, COMMA493_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_ElementTest10459); + p_TypeName494=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName494.getTree()); + // xquery/XQueryParser.g:1402:69: ( QUESTION )? + var alt171=2; + var LA171_0 = this.input.LA(1); + + if ( (LA171_0==QUESTION) ) { + alt171=1; + } + switch (alt171) { + case 1 : + // xquery/XQueryParser.g:1402:69: QUESTION + QUESTION495=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_ElementTest10461); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION495_tree = this.adaptor.create(QUESTION495); + this.adaptor.addChild(root_0, QUESTION495_tree); + } + + + break; + + } + + + + break; + + } + + + + break; + + } + + RPAREN496=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ElementTest10468); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN496_tree = this.adaptor.create(RPAREN496); + this.adaptor.addChild(root_0, RPAREN496_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementNameOrWildcard_return: (function() { + XQueryParser.p_ElementNameOrWildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementNameOrWildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1406:1: p_ElementNameOrWildcard : ( p_QName | STAR ); + // $ANTLR start "p_ElementNameOrWildcard" + p_ElementNameOrWildcard: function() { + var retval = new XQueryParser.p_ElementNameOrWildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR498 = null; + var p_QName497 = null; + + var STAR498_tree=null; + + try { + // xquery/XQueryParser.g:1407:9: ( p_QName | STAR ) + var alt174=2; + var LA174_0 = this.input.LA(1); + + if ( ((LA174_0>=ANCESTOR && LA174_0<=SKIP)||(LA174_0>=VALUE && LA174_0<=QUOT_ER)||LA174_0==L_NCName||LA174_0==EXPLICITLY) ) { + alt174=1; + } + else if ( (LA174_0==STAR) ) { + alt174=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 174, 0, this.input); + + throw nvae; + } + switch (alt174) { + case 1 : + // xquery/XQueryParser.g:1407:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ElementNameOrWildcard10494); + p_QName497=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName497.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1407:21: STAR + root_0 = this.adaptor.nil(); + + STAR498=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_ElementNameOrWildcard10498); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR498_tree = this.adaptor.create(STAR498); + this.adaptor.addChild(root_0, STAR498_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaElementTest_return: (function() { + XQueryParser.p_SchemaElementTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaElementTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1410:1: p_SchemaElementTest : SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN ; + // $ANTLR start "p_SchemaElementTest" + p_SchemaElementTest: function() { + var retval = new XQueryParser.p_SchemaElementTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SCHEMA_ELEMENT499 = null; + var LPAREN500 = null; + var RPAREN502 = null; + var p_ElementDeclaration501 = null; + + var SCHEMA_ELEMENT499_tree=null; + var LPAREN500_tree=null; + var RPAREN502_tree=null; + + try { + // xquery/XQueryParser.g:1411:9: ( SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN ) + // xquery/XQueryParser.g:1411:11: SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN + root_0 = this.adaptor.nil(); + + SCHEMA_ELEMENT499=this.match(this.input,SCHEMA_ELEMENT,XQueryParser.FOLLOW_SCHEMA_ELEMENT_in_p_SchemaElementTest10516); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SCHEMA_ELEMENT499_tree = this.adaptor.create(SCHEMA_ELEMENT499); + this.adaptor.addChild(root_0, SCHEMA_ELEMENT499_tree); + } + LPAREN500=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SchemaElementTest10518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN500_tree = this.adaptor.create(LPAREN500); + this.adaptor.addChild(root_0, LPAREN500_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ElementDeclaration_in_p_SchemaElementTest10520); + p_ElementDeclaration501=this.p_ElementDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementDeclaration501.getTree()); + RPAREN502=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SchemaElementTest10522); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN502_tree = this.adaptor.create(RPAREN502); + this.adaptor.addChild(root_0, RPAREN502_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementDeclaration_return: (function() { + XQueryParser.p_ElementDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1415:1: p_ElementDeclaration : p_ElementName ; + // $ANTLR start "p_ElementDeclaration" + p_ElementDeclaration: function() { + var retval = new XQueryParser.p_ElementDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ElementName503 = null; + + + try { + // xquery/XQueryParser.g:1416:9: ( p_ElementName ) + // xquery/XQueryParser.g:1416:11: p_ElementName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementName_in_p_ElementDeclaration10548); + p_ElementName503=this.p_ElementName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementName503.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeName_return: (function() { + XQueryParser.p_AttributeName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1420:1: p_AttributeName : p_QName ; + // $ANTLR start "p_AttributeName" + p_AttributeName: function() { + var retval = new XQueryParser.p_AttributeName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName504 = null; + + + try { + // xquery/XQueryParser.g:1421:9: ( p_QName ) + // xquery/XQueryParser.g:1421:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AttributeName10574); + p_QName504=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName504.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementName_return: (function() { + XQueryParser.p_ElementName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1425:1: p_ElementName : p_QName ; + // $ANTLR start "p_ElementName" + p_ElementName: function() { + var retval = new XQueryParser.p_ElementName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName505 = null; + + + try { + // xquery/XQueryParser.g:1426:9: ( p_QName ) + // xquery/XQueryParser.g:1426:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ElementName10600); + p_QName505=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName505.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeName_return: (function() { + XQueryParser.p_TypeName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1430:1: p_TypeName : p_QName ; + // $ANTLR start "p_TypeName" + p_TypeName: function() { + var retval = new XQueryParser.p_TypeName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName506 = null; + + + try { + // xquery/XQueryParser.g:1431:9: ( p_QName ) + // xquery/XQueryParser.g:1431:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_TypeName10626); + p_QName506=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName506.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FunctionTest_return: (function() { + XQueryParser.p_FunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1435:1: p_FunctionTest : ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) ; + // $ANTLR start "p_FunctionTest" + p_FunctionTest: function() { + var retval = new XQueryParser.p_FunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Annotation507 = null; + var p_AnyFunctionTest508 = null; + var p_TypedFunctionTest509 = null; + + + try { + // xquery/XQueryParser.g:1436:9: ( ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) ) + // xquery/XQueryParser.g:1436:11: ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1436:11: ( p_Annotation )* + loop175: + do { + var alt175=2; + var LA175_0 = this.input.LA(1); + + if ( (LA175_0==ANN_PERCENT) ) { + alt175=1; + } + + + switch (alt175) { + case 1 : + // xquery/XQueryParser.g:1436:11: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_p_FunctionTest10652); + p_Annotation507=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation507.getTree()); + + + break; + + default : + break loop175; + } + } while (true); + + // xquery/XQueryParser.g:1436:25: ( p_AnyFunctionTest | p_TypedFunctionTest ) + var alt176=2; + var LA176_0 = this.input.LA(1); + + if ( (LA176_0==FUNCTION) ) { + var LA176_1 = this.input.LA(2); + + if ( (LA176_1==LPAREN) ) { + var LA176_2 = this.input.LA(3); + + if ( (LA176_2==STAR) ) { + alt176=1; + } + else if ( ((LA176_2>=ANCESTOR && LA176_2<=SKIP)||(LA176_2>=VALUE && LA176_2<=QUOT_ER)||(LA176_2>=LPAREN && LA176_2<=RPAREN)||LA176_2==L_NCName||LA176_2==EXPLICITLY) ) { + alt176=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 2, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 0, this.input); + + throw nvae; + } + switch (alt176) { + case 1 : + // xquery/XQueryParser.g:1436:26: p_AnyFunctionTest + this.pushFollow(XQueryParser.FOLLOW_p_AnyFunctionTest_in_p_FunctionTest10656); + p_AnyFunctionTest508=this.p_AnyFunctionTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AnyFunctionTest508.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1436:46: p_TypedFunctionTest + this.pushFollow(XQueryParser.FOLLOW_p_TypedFunctionTest_in_p_FunctionTest10660); + p_TypedFunctionTest509=this.p_TypedFunctionTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypedFunctionTest509.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AnyFunctionTest_return: (function() { + XQueryParser.p_AnyFunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AnyFunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1440:1: p_AnyFunctionTest : FUNCTION LPAREN STAR RPAREN ; + // $ANTLR start "p_AnyFunctionTest" + p_AnyFunctionTest: function() { + var retval = new XQueryParser.p_AnyFunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var FUNCTION510 = null; + var LPAREN511 = null; + var STAR512 = null; + var RPAREN513 = null; + + var FUNCTION510_tree=null; + var LPAREN511_tree=null; + var STAR512_tree=null; + var RPAREN513_tree=null; + + try { + // xquery/XQueryParser.g:1441:9: ( FUNCTION LPAREN STAR RPAREN ) + // xquery/XQueryParser.g:1441:11: FUNCTION LPAREN STAR RPAREN + root_0 = this.adaptor.nil(); + + FUNCTION510=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_p_AnyFunctionTest10687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FUNCTION510_tree = this.adaptor.create(FUNCTION510); + this.adaptor.addChild(root_0, FUNCTION510_tree); + } + LPAREN511=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AnyFunctionTest10689); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN511_tree = this.adaptor.create(LPAREN511); + this.adaptor.addChild(root_0, LPAREN511_tree); + } + STAR512=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_AnyFunctionTest10691); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR512_tree = this.adaptor.create(STAR512); + this.adaptor.addChild(root_0, STAR512_tree); + } + RPAREN513=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AnyFunctionTest10693); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN513_tree = this.adaptor.create(RPAREN513); + this.adaptor.addChild(root_0, RPAREN513_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypedFunctionTest_return: (function() { + XQueryParser.p_TypedFunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypedFunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1445:1: p_TypedFunctionTest : FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType ; + // $ANTLR start "p_TypedFunctionTest" + p_TypedFunctionTest: function() { + var retval = new XQueryParser.p_TypedFunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var FUNCTION514 = null; + var LPAREN515 = null; + var COMMA517 = null; + var RPAREN519 = null; + var AS520 = null; + var p_SequenceType516 = null; + var p_SequenceType518 = null; + var p_SequenceType521 = null; + + var FUNCTION514_tree=null; + var LPAREN515_tree=null; + var COMMA517_tree=null; + var RPAREN519_tree=null; + var AS520_tree=null; + + try { + // xquery/XQueryParser.g:1446:9: ( FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType ) + // xquery/XQueryParser.g:1446:11: FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType + root_0 = this.adaptor.nil(); + + FUNCTION514=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_p_TypedFunctionTest10719); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FUNCTION514_tree = this.adaptor.create(FUNCTION514); + this.adaptor.addChild(root_0, FUNCTION514_tree); + } + LPAREN515=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypedFunctionTest10721); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN515_tree = this.adaptor.create(LPAREN515); + this.adaptor.addChild(root_0, LPAREN515_tree); + } + // xquery/XQueryParser.g:1446:27: ( p_SequenceType ( COMMA p_SequenceType )* )? + var alt178=2; + var LA178_0 = this.input.LA(1); + + if ( ((LA178_0>=ANCESTOR && LA178_0<=SKIP)||(LA178_0>=VALUE && LA178_0<=QUOT_ER)||LA178_0==LPAREN||LA178_0==L_NCName||LA178_0==EXPLICITLY) ) { + alt178=1; + } + switch (alt178) { + case 1 : + // xquery/XQueryParser.g:1446:28: p_SequenceType ( COMMA p_SequenceType )* + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10724); + p_SequenceType516=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType516.getTree()); + // xquery/XQueryParser.g:1446:43: ( COMMA p_SequenceType )* + loop177: + do { + var alt177=2; + var LA177_0 = this.input.LA(1); + + if ( (LA177_0==COMMA) ) { + alt177=1; + } + + + switch (alt177) { + case 1 : + // xquery/XQueryParser.g:1446:44: COMMA p_SequenceType + COMMA517=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_TypedFunctionTest10727); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA517_tree = this.adaptor.create(COMMA517); + this.adaptor.addChild(root_0, COMMA517_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10729); + p_SequenceType518=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType518.getTree()); + + + break; + + default : + break loop177; + } + } while (true); + + + + break; + + } + + RPAREN519=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypedFunctionTest10735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN519_tree = this.adaptor.create(RPAREN519); + this.adaptor.addChild(root_0, RPAREN519_tree); + } + AS520=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TypedFunctionTest10737); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + AS520_tree = this.adaptor.create(AS520); + this.adaptor.addChild(root_0, AS520_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10739); + p_SequenceType521=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType521.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParenthesizedItemType_return: (function() { + XQueryParser.p_ParenthesizedItemType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParenthesizedItemType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1450:1: p_ParenthesizedItemType : LPAREN p_ItemType RPAREN ; + // $ANTLR start "p_ParenthesizedItemType" + p_ParenthesizedItemType: function() { + var retval = new XQueryParser.p_ParenthesizedItemType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN522 = null; + var RPAREN524 = null; + var p_ItemType523 = null; + + var LPAREN522_tree=null; + var RPAREN524_tree=null; + + try { + // xquery/XQueryParser.g:1451:9: ( LPAREN p_ItemType RPAREN ) + // xquery/XQueryParser.g:1451:11: LPAREN p_ItemType RPAREN + root_0 = this.adaptor.nil(); + + LPAREN522=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ParenthesizedItemType10765); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN522_tree = this.adaptor.create(LPAREN522); + this.adaptor.addChild(root_0, LPAREN522_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_p_ParenthesizedItemType10767); + p_ItemType523=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ItemType523.getTree()); + RPAREN524=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ParenthesizedItemType10769); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN524_tree = this.adaptor.create(RPAREN524); + this.adaptor.addChild(root_0, RPAREN524_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StringLiteral_return: (function() { + XQueryParser.p_StringLiteral_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StringLiteral_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1480:1: p_StringLiteral : ( QUOT pg_QuotStringLiteralContent QUOT -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) | APOS pg_AposStringLiteralContent APOS -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) ); + // $ANTLR start "p_StringLiteral" + p_StringLiteral: function() { + var retval = new XQueryParser.p_StringLiteral_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUOT525 = null; + var QUOT527 = null; + var APOS528 = null; + var APOS530 = null; + var pg_QuotStringLiteralContent526 = null; + var pg_AposStringLiteralContent529 = null; + + var QUOT525_tree=null; + var QUOT527_tree=null; + var APOS528_tree=null; + var APOS530_tree=null; + var stream_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token APOS"); + var stream_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token QUOT"); + var stream_pg_QuotStringLiteralContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_QuotStringLiteralContent"); + var stream_pg_AposStringLiteralContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_AposStringLiteralContent"); + try { + // xquery/XQueryParser.g:1481:9: ( QUOT pg_QuotStringLiteralContent QUOT -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) | APOS pg_AposStringLiteralContent APOS -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) ) + var alt179=2; + var LA179_0 = this.input.LA(1); + + if ( (LA179_0==QUOT) ) { + alt179=1; + } + else if ( (LA179_0==APOS) ) { + alt179=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 179, 0, this.input); + + throw nvae; + } + switch (alt179) { + case 1 : + // xquery/XQueryParser.g:1481:11: QUOT pg_QuotStringLiteralContent QUOT + QUOT525=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_StringLiteral10820); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(QUOT525); + + if ( this.state.backtracking===0 ) { + this.pushStringLexer(false); + } + this.pushFollow(XQueryParser.FOLLOW_pg_QuotStringLiteralContent_in_p_StringLiteral10824); + pg_QuotStringLiteralContent526=this.pg_QuotStringLiteralContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_QuotStringLiteralContent.add(pg_QuotStringLiteralContent526.getTree()); + QUOT527=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_StringLiteral10826); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(QUOT527); + + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + // AST REWRITE + // elements: pg_QuotStringLiteralContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1482:17: -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) + { + // xquery/XQueryParser.g:1482:20: ^( StringLiteral ( pg_QuotStringLiteralContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(StringLiteral, "StringLiteral"), root_1); + + // xquery/XQueryParser.g:1482:36: ( pg_QuotStringLiteralContent )* + while ( stream_pg_QuotStringLiteralContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_pg_QuotStringLiteralContent.nextTree()); + + } + stream_pg_QuotStringLiteralContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1483:11: APOS pg_AposStringLiteralContent APOS + APOS528=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_StringLiteral10865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(APOS528); + + if ( this.state.backtracking===0 ) { + this.pushStringLexer(true); + } + this.pushFollow(XQueryParser.FOLLOW_pg_AposStringLiteralContent_in_p_StringLiteral10869); + pg_AposStringLiteralContent529=this.pg_AposStringLiteralContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_AposStringLiteralContent.add(pg_AposStringLiteralContent529.getTree()); + APOS530=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_StringLiteral10871); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(APOS530); + + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + // AST REWRITE + // elements: pg_AposStringLiteralContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1484:17: -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) + { + // xquery/XQueryParser.g:1484:20: ^( StringLiteral ( pg_AposStringLiteralContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(StringLiteral, "StringLiteral"), root_1); + + // xquery/XQueryParser.g:1484:36: ( pg_AposStringLiteralContent )* + while ( stream_pg_AposStringLiteralContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_pg_AposStringLiteralContent.nextTree()); + + } + stream_pg_AposStringLiteralContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.addString(retval.start, retval.stop); + } + return retval; + }, + + // inline static return class + pg_QuotStringLiteralContent_return: (function() { + XQueryParser.pg_QuotStringLiteralContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_QuotStringLiteralContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1490:1: pg_QuotStringLiteralContent : ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* ; + // $ANTLR start "pg_QuotStringLiteralContent" + pg_QuotStringLiteralContent: function() { + var retval = new XQueryParser.pg_QuotStringLiteralContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set531 = null; + + var set531_tree=null; + + try { + // xquery/XQueryParser.g:1491:9: ( ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* ) + // xquery/XQueryParser.g:1491:11: ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1491:11: ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* + loop180: + do { + var alt180=2; + var LA180_0 = this.input.LA(1); + + if ( ((LA180_0>=L_QuotAttrContentChar && LA180_0<=HASH)||(LA180_0>=COMMA && LA180_0<=APOS)||(LA180_0>=NCNameStartChar && LA180_0<=EXPLICITLY)) ) { + alt180=1; + } + + + switch (alt180) { + case 1 : + // xquery/XQueryParser.g: + set531=this.input.LT(1); + if ( (this.input.LA(1)>=L_QuotAttrContentChar && this.input.LA(1)<=HASH)||(this.input.LA(1)>=COMMA && this.input.LA(1)<=APOS)||(this.input.LA(1)>=NCNameStartChar && this.input.LA(1)<=EXPLICITLY) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set531)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + break; + + default : + break loop180; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_AposStringLiteralContent_return: (function() { + XQueryParser.pg_AposStringLiteralContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_AposStringLiteralContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1498:1: pg_AposStringLiteralContent : ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* ; + // $ANTLR start "pg_AposStringLiteralContent" + pg_AposStringLiteralContent: function() { + var retval = new XQueryParser.pg_AposStringLiteralContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set532 = null; + + var set532_tree=null; + + try { + // xquery/XQueryParser.g:1499:9: ( ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* ) + // xquery/XQueryParser.g:1499:11: ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1499:11: ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* + loop181: + do { + var alt181=2; + var LA181_0 = this.input.LA(1); + + if ( ((LA181_0>=L_QuotAttrContentChar && LA181_0<=HASH)||(LA181_0>=COMMA && LA181_0<=CHARREF_HEX)||(LA181_0>=QUOT && LA181_0<=EXPLICITLY)) ) { + alt181=1; + } + + + switch (alt181) { + case 1 : + // xquery/XQueryParser.g: + set532=this.input.LT(1); + if ( (this.input.LA(1)>=L_QuotAttrContentChar && this.input.LA(1)<=HASH)||(this.input.LA(1)>=COMMA && this.input.LA(1)<=CHARREF_HEX)||(this.input.LA(1)>=QUOT && this.input.LA(1)<=EXPLICITLY) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set532)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + break; + + default : + break loop181; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementContentChar_return: (function() { + XQueryParser.p_ElementContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1513:1: p_ElementContentChar : L_ElementContentChar ; + // $ANTLR start "p_ElementContentChar" + p_ElementContentChar: function() { + var retval = new XQueryParser.p_ElementContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_ElementContentChar533 = null; + + var L_ElementContentChar533_tree=null; + + try { + // xquery/XQueryParser.g:1514:9: ( L_ElementContentChar ) + // xquery/XQueryParser.g:1514:11: L_ElementContentChar + root_0 = this.adaptor.nil(); + + L_ElementContentChar533=this.match(this.input,L_ElementContentChar,XQueryParser.FOLLOW_L_ElementContentChar_in_p_ElementContentChar11046); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_ElementContentChar533_tree = this.adaptor.create(L_ElementContentChar533); + this.adaptor.addChild(root_0, L_ElementContentChar533_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuotAttrContentChar_return: (function() { + XQueryParser.p_QuotAttrContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuotAttrContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1518:1: p_QuotAttrContentChar : L_QuotAttrContentChar -> ^( AttributeValueChar L_QuotAttrContentChar ) ; + // $ANTLR start "p_QuotAttrContentChar" + p_QuotAttrContentChar: function() { + var retval = new XQueryParser.p_QuotAttrContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_QuotAttrContentChar534 = null; + + var L_QuotAttrContentChar534_tree=null; + var stream_L_QuotAttrContentChar=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token L_QuotAttrContentChar"); + + try { + // xquery/XQueryParser.g:1519:9: ( L_QuotAttrContentChar -> ^( AttributeValueChar L_QuotAttrContentChar ) ) + // xquery/XQueryParser.g:1519:11: L_QuotAttrContentChar + L_QuotAttrContentChar534=this.match(this.input,L_QuotAttrContentChar,XQueryParser.FOLLOW_L_QuotAttrContentChar_in_p_QuotAttrContentChar11072); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_L_QuotAttrContentChar.add(L_QuotAttrContentChar534); + + + + // AST REWRITE + // elements: L_QuotAttrContentChar + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1520:17: -> ^( AttributeValueChar L_QuotAttrContentChar ) + { + // xquery/XQueryParser.g:1520:20: ^( AttributeValueChar L_QuotAttrContentChar ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AttributeValueChar, "AttributeValueChar"), root_1); + + this.adaptor.addChild(root_1, stream_L_QuotAttrContentChar.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AposAttrContentChar_return: (function() { + XQueryParser.p_AposAttrContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AposAttrContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1524:1: p_AposAttrContentChar : L_AposAttrContentChar -> ^( AttributeValueChar L_AposAttrContentChar ) ; + // $ANTLR start "p_AposAttrContentChar" + p_AposAttrContentChar: function() { + var retval = new XQueryParser.p_AposAttrContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_AposAttrContentChar535 = null; + + var L_AposAttrContentChar535_tree=null; + var stream_L_AposAttrContentChar=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token L_AposAttrContentChar"); + + try { + // xquery/XQueryParser.g:1525:9: ( L_AposAttrContentChar -> ^( AttributeValueChar L_AposAttrContentChar ) ) + // xquery/XQueryParser.g:1525:11: L_AposAttrContentChar + L_AposAttrContentChar535=this.match(this.input,L_AposAttrContentChar,XQueryParser.FOLLOW_L_AposAttrContentChar_in_p_AposAttrContentChar11122); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_L_AposAttrContentChar.add(L_AposAttrContentChar535); + + + + // AST REWRITE + // elements: L_AposAttrContentChar + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1526:17: -> ^( AttributeValueChar L_AposAttrContentChar ) + { + // xquery/XQueryParser.g:1526:20: ^( AttributeValueChar L_AposAttrContentChar ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AttributeValueChar, "AttributeValueChar"), root_1); + + this.adaptor.addChild(root_1, stream_L_AposAttrContentChar.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QName_return: (function() { + XQueryParser.p_QName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1544:1: p_QName : ( pg_QName | p_NCName -> ^( QName p_NCName ) ); + // $ANTLR start "p_QName" + p_QName: function() { + var retval = new XQueryParser.p_QName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pg_QName536 = null; + var p_NCName537 = null; + + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + this.setWsExplicit(true); + try { + // xquery/XQueryParser.g:1546:9: ( pg_QName | p_NCName -> ^( QName p_NCName ) ) + var alt182=2; + var LA182_0 = this.input.LA(1); + + if ( ((LA182_0>=ANCESTOR && LA182_0<=SKIP)||(LA182_0>=VALUE && LA182_0<=QUOT_ER)||LA182_0==L_NCName||LA182_0==EXPLICITLY) ) { + var LA182_1 = this.input.LA(2); + + if ( (LA182_1==COLON) ) { + alt182=1; + } + else if ( (LA182_1==EOF||(LA182_1>=AND && LA182_1<=AT)||(LA182_1>=BY && LA182_1<=CASTABLE)||LA182_1==COLLATION||LA182_1==DEFAULT||(LA182_1>=DESCENDING && LA182_1<=DIV)||LA182_1==EMPTY||LA182_1==EQ||(LA182_1>=EXCEPT && LA182_1<=EXTERNAL)||(LA182_1>=FOR && LA182_1<=GE)||(LA182_1>=GT && LA182_1<=IDIV)||LA182_1==IN||(LA182_1>=INSTANCE && LA182_1<=IS)||LA182_1==LE||(LA182_1>=LET && LA182_1<=MOD)||LA182_1==NE||LA182_1==NODE||(LA182_1>=OR && LA182_1<=ORDER)||(LA182_1>=RETURN && LA182_1<=SATISFIES)||LA182_1==STABLE||(LA182_1>=TO && LA182_1<=TREAT)||LA182_1==UNION||LA182_1==VARIABLE||LA182_1==WHERE||LA182_1==ALLOWING||LA182_1==COUNT||(LA182_1>=DECIMAL_SEPARATOR && LA182_1<=MINUS_SIGN)||(LA182_1>=NAN && LA182_1<=PREVIOUS)||LA182_1==START||LA182_1==WHEN||(LA182_1>=ZERO_DIGIT && LA182_1<=BEFORE)||LA182_1==INTO||LA182_1==MODIFY||LA182_1==UPDATING||LA182_1==WITH||LA182_1==CONTAINS||LA182_1==PARAGRAPHS||LA182_1==SCORE||LA182_1==SENTENCES||LA182_1==TIMES||LA182_1==WORDS||(LA182_1>=CHECK && LA182_1<=COLLECTION)||(LA182_1>=FOREACH && LA182_1<=ON)||(LA182_1>=CONCAT && LA182_1<=ANN_PERCENT)||(LA182_1>=COMMA && LA182_1<=SLASH_SLASH)||LA182_1==EMPTY_CLOSE_TAG||(LA182_1>=SEMICOLON && LA182_1<=VBAR)||(LA182_1>=APOS && LA182_1<=QUOT)||LA182_1==S) ) { + alt182=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 182, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 182, 0, this.input); + + throw nvae; + } + switch (alt182) { + case 1 : + // xquery/XQueryParser.g:1546:11: pg_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_QName_in_p_QName11208); + pg_QName536=this.pg_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_QName536.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1547:11: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_QName11220); + p_NCName537=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(p_NCName537.getTree()); + + + // AST REWRITE + // elements: p_NCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1548:17: -> ^( QName p_NCName ) + { + // xquery/XQueryParser.g:1548:20: ^( QName p_NCName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_p_NCName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.setWsExplicit(false); + } + return retval; + }, + + // inline static return class + pg_FQName_return: (function() { + XQueryParser.pg_FQName_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_FQName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1552:1: pg_FQName : ( pg_QName | p_FNCName -> ^( QName p_FNCName ) ); + // $ANTLR start "pg_FQName" + pg_FQName: function() { + var retval = new XQueryParser.pg_FQName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pg_QName538 = null; + var p_FNCName539 = null; + + var stream_p_FNCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_FNCName"); + try { + // xquery/XQueryParser.g:1553:9: ( pg_QName | p_FNCName -> ^( QName p_FNCName ) ) + var alt183=2; + switch ( this.input.LA(1) ) { + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case ELSE: + case EMPTY: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case RETURN: + case SATISFIES: + case SCHEMA: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case THEN: + case TO: + case TREAT: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case L_NCName: + case EXPLICITLY: + var LA183_1 = this.input.LA(2); + + if ( (LA183_1==COLON) ) { + alt183=1; + } + else if ( (LA183_1==LPAREN) ) { + alt183=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 183, 1, this.input); + + throw nvae; + } + break; + case ATTRIBUTE: + case COMMENT: + case DOCUMENT_NODE: + case ELEMENT: + case EMPTY_SEQUENCE: + case IF: + case ITEM: + case NODE: + case PROCESSING_INSTRUCTION: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case TEXT: + case TYPESWITCH: + case NAMESPACE_NODE: + case SWITCH: + case WHILE: + alt183=1; + break; + case UPDATING: + alt183=2; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 183, 0, this.input); + + throw nvae; + } + + switch (alt183) { + case 1 : + // xquery/XQueryParser.g:1553:11: pg_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_QName_in_pg_FQName11281); + pg_QName538=this.pg_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_QName538.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1554:11: p_FNCName + this.pushFollow(XQueryParser.FOLLOW_p_FNCName_in_pg_FQName11293); + p_FNCName539=this.p_FNCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_FNCName.add(p_FNCName539.getTree()); + + + // AST REWRITE + // elements: p_FNCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1555:17: -> ^( QName p_FNCName ) + { + // xquery/XQueryParser.g:1555:20: ^( QName p_FNCName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_p_FNCName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_QName_return: (function() { + XQueryParser.pg_QName_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_QName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1557:1: pg_QName : nn= p_NCName COLON nl= p_NCName -> ^( QName $nn $nl) ; + // $ANTLR start "pg_QName" + pg_QName: function() { + var retval = new XQueryParser.pg_QName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COLON540 = null; + var nn = null; + var nl = null; + + var COLON540_tree=null; + var stream_COLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COLON"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + try { + // xquery/XQueryParser.g:1558:9: (nn= p_NCName COLON nl= p_NCName -> ^( QName $nn $nl) ) + // xquery/XQueryParser.g:1558:11: nn= p_NCName COLON nl= p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pg_QName11337); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + COLON540=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_pg_QName11339); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COLON.add(COLON540); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pg_QName11343); + nl=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nl.getTree()); + + + // AST REWRITE + // elements: nl, nn + // token labels: + // rule labels: retval, nn, nl + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_nl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nl",nl!=null?nl.tree:null); + + root_0 = this.adaptor.nil(); + // 1559:17: -> ^( QName $nn $nl) + { + // xquery/XQueryParser.g:1559:20: ^( QName $nn $nl) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + this.adaptor.addChild(root_1, stream_nl.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NCName_return: (function() { + XQueryParser.p_NCName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NCName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1589:1: p_NCName : ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | SWITCH | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ); + // $ANTLR start "p_NCName" + p_NCName: function() { + var retval = new XQueryParser.p_NCName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set541 = null; + + var set541_tree=null; + + try { + // xquery/XQueryParser.g:1590:9: ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | SWITCH | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set541=this.input.LT(1); + if ( (this.input.LA(1)>=ANCESTOR && this.input.LA(1)<=SKIP)||(this.input.LA(1)>=VALUE && this.input.LA(1)<=QUOT_ER)||this.input.LA(1)==L_NCName||this.input.LA(1)==EXPLICITLY ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set541)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FNCName_return: (function() { + XQueryParser.p_FNCName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FNCName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1608:1: p_FNCName : ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | ELSE | EMPTY | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | RETURN | SATISFIES | SCHEMA | SELF | SOME | STABLE | STRICT | STRIP | THEN | TO | TREAT | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ); + // $ANTLR start "p_FNCName" + p_FNCName: function() { + var retval = new XQueryParser.p_FNCName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set542 = null; + + var set542_tree=null; + + try { + // xquery/XQueryParser.g:1609:9: ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | ELSE | EMPTY | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | RETURN | SATISFIES | SCHEMA | SELF | SOME | STABLE | STRICT | STRIP | THEN | TO | TREAT | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set542=this.input.LT(1); + if ( (this.input.LA(1)>=ANCESTOR && this.input.LA(1)<=AT)||(this.input.LA(1)>=BASE_URI && this.input.LA(1)<=COLLATION)||(this.input.LA(1)>=CONSTRUCTION && this.input.LA(1)<=DOCUMENT)||(this.input.LA(1)>=ELSE && this.input.LA(1)<=EMPTY)||(this.input.LA(1)>=ENCODING && this.input.LA(1)<=IDIV)||(this.input.LA(1)>=IMPORT && this.input.LA(1)<=IS)||(this.input.LA(1)>=LAX && this.input.LA(1)<=NO_PRESERVE)||(this.input.LA(1)>=OF && this.input.LA(1)<=PRESERVE)||(this.input.LA(1)>=RETURN && this.input.LA(1)<=SCHEMA)||(this.input.LA(1)>=SELF && this.input.LA(1)<=STRIP)||(this.input.LA(1)>=THEN && this.input.LA(1)<=TREAT)||(this.input.LA(1)>=UNION && this.input.LA(1)<=MINUS_SIGN)||(this.input.LA(1)>=NAN && this.input.LA(1)<=START)||(this.input.LA(1)>=TRY && this.input.LA(1)<=RETURNING)||(this.input.LA(1)>=CHECK && this.input.LA(1)<=QUOT_ER)||this.input.LA(1)==L_NCName||this.input.LA(1)==EXPLICITLY ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set542)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_UpdateExpr_return: (function() { + XQueryParser.pg_UpdateExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_UpdateExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1646:1: pg_UpdateExpr : ( p_InsertExpr | p_DeleteExpr | p_RenameExpr | p_ReplaceExpr | p_TransformExpr ); + // $ANTLR start "pg_UpdateExpr" + pg_UpdateExpr: function() { + var retval = new XQueryParser.pg_UpdateExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InsertExpr543 = null; + var p_DeleteExpr544 = null; + var p_RenameExpr545 = null; + var p_ReplaceExpr546 = null; + var p_TransformExpr547 = null; + + + try { + // xquery/XQueryParser.g:1647:9: ( p_InsertExpr | p_DeleteExpr | p_RenameExpr | p_ReplaceExpr | p_TransformExpr ) + var alt184=5; + switch ( this.input.LA(1) ) { + case INSERT: + alt184=1; + break; + case DELETE: + alt184=2; + break; + case RENAME: + alt184=3; + break; + case REPLACE: + alt184=4; + break; + case COPY: + alt184=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 184, 0, this.input); + + throw nvae; + } + + switch (alt184) { + case 1 : + // xquery/XQueryParser.g:1647:11: p_InsertExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InsertExpr_in_pg_UpdateExpr13334); + p_InsertExpr543=this.p_InsertExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InsertExpr543.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1648:11: p_DeleteExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DeleteExpr_in_pg_UpdateExpr13346); + p_DeleteExpr544=this.p_DeleteExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DeleteExpr544.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1649:11: p_RenameExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RenameExpr_in_pg_UpdateExpr13358); + p_RenameExpr545=this.p_RenameExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RenameExpr545.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1650:11: p_ReplaceExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ReplaceExpr_in_pg_UpdateExpr13370); + p_ReplaceExpr546=this.p_ReplaceExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReplaceExpr546.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1651:11: p_TransformExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TransformExpr_in_pg_UpdateExpr13382); + p_TransformExpr547=this.p_TransformExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TransformExpr547.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_RevalidationDecl_return: (function() { + XQueryParser.pm_RevalidationDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_RevalidationDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1655:1: pm_RevalidationDecl : k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON ; + // $ANTLR start "pm_RevalidationDecl" + pm_RevalidationDecl: function() { + var retval = new XQueryParser.pm_RevalidationDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON548 = null; + var k = null; + var list_k=null; + + var SEMICOLON548_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1656:9: (k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON ) + // xquery/XQueryParser.g:1656:11: k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_RevalidationDecl13410); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,REVALIDATION,XQueryParser.FOLLOW_REVALIDATION_in_pm_RevalidationDecl13414); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1656:38: (k+= STRICT | k+= LAX | k+= SKIP ) + var alt185=3; + switch ( this.input.LA(1) ) { + case STRICT: + alt185=1; + break; + case LAX: + alt185=2; + break; + case SKIP: + alt185=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 185, 0, this.input); + + throw nvae; + } + + switch (alt185) { + case 1 : + // xquery/XQueryParser.g:1656:39: k+= STRICT + k=this.match(this.input,STRICT,XQueryParser.FOLLOW_STRICT_in_pm_RevalidationDecl13419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1656:51: k+= LAX + k=this.match(this.input,LAX,XQueryParser.FOLLOW_LAX_in_pm_RevalidationDecl13425); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 3 : + // xquery/XQueryParser.g:1656:60: k+= SKIP + k=this.match(this.input,SKIP,XQueryParser.FOLLOW_SKIP_in_pm_RevalidationDecl13431); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + SEMICOLON548=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_RevalidationDecl13436); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON548_tree = this.adaptor.create(SEMICOLON548); + this.adaptor.addChild(root_0, SEMICOLON548_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InsertExprTargetChoice_return: (function() { + XQueryParser.p_InsertExprTargetChoice_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InsertExprTargetChoice_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1660:1: p_InsertExprTargetChoice : ( ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) | ka= AFTER | kb= BEFORE ); + // $ANTLR start "p_InsertExprTargetChoice" + p_InsertExprTargetChoice: function() { + var retval = new XQueryParser.p_InsertExprTargetChoice_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var kb = null; + var k = null; + var list_k=null; + + var ka_tree=null; + var kb_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1661:9: ( ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) | ka= AFTER | kb= BEFORE ) + var alt188=3; + switch ( this.input.LA(1) ) { + case AS: + case INTO: + alt188=1; + break; + case AFTER: + alt188=2; + break; + case BEFORE: + alt188=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 188, 0, this.input); + + throw nvae; + } + + switch (alt188) { + case 1 : + // xquery/XQueryParser.g:1661:11: ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1661:11: ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) + // xquery/XQueryParser.g:1661:12: (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO + // xquery/XQueryParser.g:1661:12: (k+= AS (k+= FIRST | k+= LAST ) )? + var alt187=2; + var LA187_0 = this.input.LA(1); + + if ( (LA187_0==AS) ) { + alt187=1; + } + switch (alt187) { + case 1 : + // xquery/XQueryParser.g:1661:13: k+= AS (k+= FIRST | k+= LAST ) + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_InsertExprTargetChoice13466); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1661:19: (k+= FIRST | k+= LAST ) + var alt186=2; + var LA186_0 = this.input.LA(1); + + if ( (LA186_0==FIRST) ) { + alt186=1; + } + else if ( (LA186_0==LAST) ) { + alt186=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 186, 0, this.input); + + throw nvae; + } + switch (alt186) { + case 1 : + // xquery/XQueryParser.g:1661:20: k+= FIRST + k=this.match(this.input,FIRST,XQueryParser.FOLLOW_FIRST_in_p_InsertExprTargetChoice13471); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1661:31: k+= LAST + k=this.match(this.input,LAST,XQueryParser.FOLLOW_LAST_in_p_InsertExprTargetChoice13477); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + break; + + } + + k=this.match(this.input,INTO,XQueryParser.FOLLOW_INTO_in_p_InsertExprTargetChoice13484); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1662:11: ka= AFTER + root_0 = this.adaptor.nil(); + + ka=this.match(this.input,AFTER,XQueryParser.FOLLOW_AFTER_in_p_InsertExprTargetChoice13501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1663:11: kb= BEFORE + root_0 = this.adaptor.nil(); + + kb=this.match(this.input,BEFORE,XQueryParser.FOLLOW_BEFORE_in_p_InsertExprTargetChoice13517); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kb_tree = this.adaptor.create(kb); + this.adaptor.addChild(root_0, kb_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kb); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InsertExpr_return: (function() { + XQueryParser.p_InsertExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InsertExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1667:1: p_InsertExpr : k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr ; + // $ANTLR start "p_InsertExpr" + p_InsertExpr: function() { + var retval = new XQueryParser.p_InsertExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_SourceExpr549 = null; + var p_InsertExprTargetChoice550 = null; + var p_TargetExpr551 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1668:9: (k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr ) + // xquery/XQueryParser.g:1668:11: k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INSERT,XQueryParser.FOLLOW_INSERT_in_p_InsertExpr13547); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1668:21: (k+= NODE | k+= NODES ) + var alt189=2; + var LA189_0 = this.input.LA(1); + + if ( (LA189_0==NODE) ) { + alt189=1; + } + else if ( (LA189_0==NODES) ) { + alt189=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 189, 0, this.input); + + throw nvae; + } + switch (alt189) { + case 1 : + // xquery/XQueryParser.g:1668:22: k+= NODE + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_InsertExpr13552); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1668:32: k+= NODES + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_InsertExpr13558); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SourceExpr_in_p_InsertExpr13561); + p_SourceExpr549=this.p_SourceExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SourceExpr549.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_InsertExprTargetChoice_in_p_InsertExpr13563); + p_InsertExprTargetChoice550=this.p_InsertExprTargetChoice(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InsertExprTargetChoice550.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_InsertExpr13565); + p_TargetExpr551=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr551.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DeleteExpr_return: (function() { + XQueryParser.p_DeleteExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DeleteExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1672:1: p_DeleteExpr : k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr ; + // $ANTLR start "p_DeleteExpr" + p_DeleteExpr: function() { + var retval = new XQueryParser.p_DeleteExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_TargetExpr552 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1673:9: (k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr ) + // xquery/XQueryParser.g:1673:11: k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DELETE,XQueryParser.FOLLOW_DELETE_in_p_DeleteExpr13595); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1673:21: (k+= NODE | k+= NODES ) + var alt190=2; + var LA190_0 = this.input.LA(1); + + if ( (LA190_0==NODE) ) { + alt190=1; + } + else if ( (LA190_0==NODES) ) { + alt190=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 190, 0, this.input); + + throw nvae; + } + switch (alt190) { + case 1 : + // xquery/XQueryParser.g:1673:22: k+= NODE + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_DeleteExpr13600); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1673:32: k+= NODES + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_DeleteExpr13606); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_DeleteExpr13609); + p_TargetExpr552=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr552.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReplaceExpr_return: (function() { + XQueryParser.p_ReplaceExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReplaceExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1677:1: p_ReplaceExpr : k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] ; + // $ANTLR start "p_ReplaceExpr" + p_ReplaceExpr: function() { + var retval = new XQueryParser.p_ReplaceExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_ExprSingle553 = null; + var p_ExprSingle554 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1678:9: (k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] ) + // xquery/XQueryParser.g:1678:11: k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,REPLACE,XQueryParser.FOLLOW_REPLACE_in_p_ReplaceExpr13639); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1678:22: (k+= VALUE k+= OF )? + var alt191=2; + var LA191_0 = this.input.LA(1); + + if ( (LA191_0==VALUE) ) { + alt191=1; + } + switch (alt191) { + case 1 : + // xquery/XQueryParser.g:1678:23: k+= VALUE k+= OF + k=this.match(this.input,VALUE,XQueryParser.FOLLOW_VALUE_in_p_ReplaceExpr13644); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,OF,XQueryParser.FOLLOW_OF_in_p_ReplaceExpr13648); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ReplaceExpr13654); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ReplaceExpr13656); + p_ExprSingle553=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle553.getTree()); + k=this.match(this.input,WITH,XQueryParser.FOLLOW_WITH_in_p_ReplaceExpr13661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ReplaceExpr13663); + p_ExprSingle554=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle554.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RenameExpr_return: (function() { + XQueryParser.p_RenameExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RenameExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1682:1: p_RenameExpr : k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr ; + // $ANTLR start "p_RenameExpr" + p_RenameExpr: function() { + var retval = new XQueryParser.p_RenameExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_TargetExpr555 = null; + var p_NewNameExpr556 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1683:9: (k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr ) + // xquery/XQueryParser.g:1683:11: k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RENAME,XQueryParser.FOLLOW_RENAME_in_p_RenameExpr13694); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_RenameExpr13698); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_RenameExpr13700); + p_TargetExpr555=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr555.getTree()); + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_RenameExpr13704); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_NewNameExpr_in_p_RenameExpr13706); + p_NewNameExpr556=this.p_NewNameExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NewNameExpr556.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SourceExpr_return: (function() { + XQueryParser.p_SourceExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SourceExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1687:1: p_SourceExpr : p_ExprSingle[true] ; + // $ANTLR start "p_SourceExpr" + p_SourceExpr: function() { + var retval = new XQueryParser.p_SourceExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle557 = null; + + + try { + // xquery/XQueryParser.g:1688:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1688:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SourceExpr13734); + p_ExprSingle557=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle557.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TargetExpr_return: (function() { + XQueryParser.p_TargetExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TargetExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1692:1: p_TargetExpr : p_ExprSingle[true] ; + // $ANTLR start "p_TargetExpr" + p_TargetExpr: function() { + var retval = new XQueryParser.p_TargetExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle558 = null; + + + try { + // xquery/XQueryParser.g:1693:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1693:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TargetExpr13761); + p_ExprSingle558=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle558.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NewNameExpr_return: (function() { + XQueryParser.p_NewNameExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NewNameExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1697:1: p_NewNameExpr : p_ExprSingle[true] ; + // $ANTLR start "p_NewNameExpr" + p_NewNameExpr: function() { + var retval = new XQueryParser.p_NewNameExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle559 = null; + + + try { + // xquery/XQueryParser.g:1698:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1698:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_NewNameExpr13788); + p_ExprSingle559=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle559.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TransformExpr_return: (function() { + XQueryParser.p_TransformExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TransformExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1702:1: p_TransformExpr : k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] ; + // $ANTLR start "p_TransformExpr" + p_TransformExpr: function() { + var retval = new XQueryParser.p_TransformExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var e = null; + var BIND560 = null; + var COMMA562 = null; + var BIND563 = null; + var k = null; + var list_k=null; + var v = null; + var w = null; + var p_ExprSingle561 = null; + var p_ExprSingle564 = null; + var p_ExprSingle565 = null; + var p_ExprSingle566 = null; + + var d_tree=null; + var e_tree=null; + var BIND560_tree=null; + var COMMA562_tree=null; + var BIND563_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1703:9: (k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] ) + // xquery/XQueryParser.g:1703:11: k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COPY,XQueryParser.FOLLOW_COPY_in_p_TransformExpr13817); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TransformExpr13821); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TransformExpr13825); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + BIND560=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_TransformExpr13829); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND560_tree = this.adaptor.create(BIND560); + this.adaptor.addChild(root_0, BIND560_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13831); + p_ExprSingle561=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle561.getTree()); + // xquery/XQueryParser.g:1703:90: ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* + loop192: + do { + var alt192=2; + var LA192_0 = this.input.LA(1); + + if ( (LA192_0==COMMA) ) { + alt192=1; + } + + + switch (alt192) { + case 1 : + // xquery/XQueryParser.g:1703:91: COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] + COMMA562=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_TransformExpr13835); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA562_tree = this.adaptor.create(COMMA562); + this.adaptor.addChild(root_0, COMMA562_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TransformExpr13839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TransformExpr13843); + w=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + BIND563=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_TransformExpr13847); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND563_tree = this.adaptor.create(BIND563); + this.adaptor.addChild(root_0, BIND563_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13849); + p_ExprSingle564=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle564.getTree()); + + + break; + + default : + break loop192; + } + } while (true); + + k=this.match(this.input,MODIFY,XQueryParser.FOLLOW_MODIFY_in_p_TransformExpr13856); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13858); + p_ExprSingle565=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle565.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TransformExpr13863); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13865); + p_ExprSingle566=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle566.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FTOptionDecl_return: (function() { + XQueryParser.pm_FTOptionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FTOptionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1713:1: pm_FTOptionDecl : k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON ; + // $ANTLR start "pm_FTOptionDecl" + pm_FTOptionDecl: function() { + var retval = new XQueryParser.pm_FTOptionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON568 = null; + var k = null; + var list_k=null; + var p_FTMatchOptions567 = null; + + var SEMICOLON568_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1714:9: (k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON ) + // xquery/XQueryParser.g:1714:11: k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_FTOptionDecl13903); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,FT_OPTION,XQueryParser.FOLLOW_FT_OPTION_in_pm_FTOptionDecl13907); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOptions_in_pm_FTOptionDecl13909); + p_FTMatchOptions567=this.p_FTMatchOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOptions567.getTree()); + SEMICOLON568=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_FTOptionDecl13911); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON568_tree = this.adaptor.create(SEMICOLON568); + this.adaptor.addChild(root_0, SEMICOLON568_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTScoreVar_return: (function() { + XQueryParser.p_FTScoreVar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTScoreVar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1718:1: p_FTScoreVar : ks= SCORE d= DOLLAR v= p_VarName ; + // $ANTLR start "p_FTScoreVar" + p_FTScoreVar: function() { + var retval = new XQueryParser.p_FTScoreVar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ks = null; + var d = null; + var v = null; + + var ks_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:1719:9: (ks= SCORE d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:1719:11: ks= SCORE d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + ks=this.match(this.input,SCORE,XQueryParser.FOLLOW_SCORE_in_p_FTScoreVar13941); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ks_tree = this.adaptor.create(ks); + this.adaptor.addChild(root_0, ks_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ks); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_FTScoreVar13947); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_FTScoreVar13951); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTContainsExpr_return: (function() { + XQueryParser.p_FTContainsExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTContainsExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1723:1: p_FTContainsExpr : p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? ; + // $ANTLR start "p_FTContainsExpr" + p_FTContainsExpr: function() { + var retval = new XQueryParser.p_FTContainsExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringConcatExpr569 = null; + var p_FTSelection570 = null; + var p_FTIgnoreOption571 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1724:9: ( p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? ) + // xquery/XQueryParser.g:1724:11: p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringConcatExpr_in_p_FTContainsExpr13979); + p_StringConcatExpr569=this.p_StringConcatExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringConcatExpr569.getTree()); + // xquery/XQueryParser.g:1724:30: (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? + var alt194=2; + var LA194_0 = this.input.LA(1); + + if ( (LA194_0==CONTAINS) ) { + alt194=1; + } + switch (alt194) { + case 1 : + // xquery/XQueryParser.g:1724:32: k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? + k=this.match(this.input,CONTAINS,XQueryParser.FOLLOW_CONTAINS_in_p_FTContainsExpr13985); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_FTContainsExpr13989); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTContainsExpr13993); + p_FTSelection570=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection570.getTree()); + // xquery/XQueryParser.g:1724:81: ( p_FTIgnoreOption )? + var alt193=2; + var LA193_0 = this.input.LA(1); + + if ( (LA193_0==WITHOUT) ) { + alt193=1; + } + switch (alt193) { + case 1 : + // xquery/XQueryParser.g:1724:81: p_FTIgnoreOption + this.pushFollow(XQueryParser.FOLLOW_p_FTIgnoreOption_in_p_FTContainsExpr13995); + p_FTIgnoreOption571=this.p_FTIgnoreOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTIgnoreOption571.getTree()); + + + break; + + } + + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTSelection_return: (function() { + XQueryParser.p_FTSelection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTSelection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1728:1: p_FTSelection : p_FTOr ( p_FTPosFilter )* ; + // $ANTLR start "p_FTSelection" + p_FTSelection: function() { + var retval = new XQueryParser.p_FTSelection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTOr572 = null; + var p_FTPosFilter573 = null; + + + try { + // xquery/XQueryParser.g:1729:9: ( p_FTOr ( p_FTPosFilter )* ) + // xquery/XQueryParser.g:1729:11: p_FTOr ( p_FTPosFilter )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTOr_in_p_FTSelection14025); + p_FTOr572=this.p_FTOr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTOr572.getTree()); + // xquery/XQueryParser.g:1729:18: ( p_FTPosFilter )* + loop195: + do { + var alt195=2; + var LA195_0 = this.input.LA(1); + + if ( (LA195_0==AT||LA195_0==ORDERED||LA195_0==WINDOW||(LA195_0>=DIFFERENT && LA195_0<=ENTIRE)||LA195_0==SAME) ) { + alt195=1; + } + + + switch (alt195) { + case 1 : + // xquery/XQueryParser.g:1729:18: p_FTPosFilter + this.pushFollow(XQueryParser.FOLLOW_p_FTPosFilter_in_p_FTSelection14027); + p_FTPosFilter573=this.p_FTPosFilter(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPosFilter573.getTree()); + + + break; + + default : + break loop195; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWeight_return: (function() { + XQueryParser.p_FTWeight_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWeight_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1733:1: p_FTWeight : kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_FTWeight" + p_FTWeight: function() { + var retval = new XQueryParser.p_FTWeight_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kw = null; + var LBRACKET574 = null; + var RBRACKET576 = null; + var p_Expr575 = null; + + var kw_tree=null; + var LBRACKET574_tree=null; + var RBRACKET576_tree=null; + + try { + // xquery/XQueryParser.g:1734:9: (kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1734:11: kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + kw=this.match(this.input,WEIGHT,XQueryParser.FOLLOW_WEIGHT_in_p_FTWeight14056); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kw_tree = this.adaptor.create(kw); + this.adaptor.addChild(root_0, kw_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kw); + } + LBRACKET574=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTWeight14060); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET574_tree = this.adaptor.create(LBRACKET574); + this.adaptor.addChild(root_0, LBRACKET574_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_FTWeight14062); + p_Expr575=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr575.getTree()); + RBRACKET576=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTWeight14065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET576_tree = this.adaptor.create(RBRACKET576); + this.adaptor.addChild(root_0, RBRACKET576_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTOr_return: (function() { + XQueryParser.p_FTOr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTOr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1738:1: p_FTOr : p_FTAnd (ko= FTOR p_FTAnd )* ; + // $ANTLR start "p_FTOr" + p_FTOr: function() { + var retval = new XQueryParser.p_FTOr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + var p_FTAnd577 = null; + var p_FTAnd578 = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1739:9: ( p_FTAnd (ko= FTOR p_FTAnd )* ) + // xquery/XQueryParser.g:1739:11: p_FTAnd (ko= FTOR p_FTAnd )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTAnd_in_p_FTOr14091); + p_FTAnd577=this.p_FTAnd(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnd577.getTree()); + // xquery/XQueryParser.g:1739:19: (ko= FTOR p_FTAnd )* + loop196: + do { + var alt196=2; + var LA196_0 = this.input.LA(1); + + if ( (LA196_0==FTOR) ) { + alt196=1; + } + + + switch (alt196) { + case 1 : + // xquery/XQueryParser.g:1739:21: ko= FTOR p_FTAnd + ko=this.match(this.input,FTOR,XQueryParser.FOLLOW_FTOR_in_p_FTOr14097); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTAnd_in_p_FTOr14101); + p_FTAnd578=this.p_FTAnd(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnd578.getTree()); + + + break; + + default : + break loop196; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTAnd_return: (function() { + XQueryParser.p_FTAnd_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTAnd_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1743:1: p_FTAnd : p_FTMildNot (ka= FTAND p_FTMildNot )* ; + // $ANTLR start "p_FTAnd" + p_FTAnd: function() { + var retval = new XQueryParser.p_FTAnd_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var p_FTMildNot579 = null; + var p_FTMildNot580 = null; + + var ka_tree=null; + + try { + // xquery/XQueryParser.g:1744:9: ( p_FTMildNot (ka= FTAND p_FTMildNot )* ) + // xquery/XQueryParser.g:1744:11: p_FTMildNot (ka= FTAND p_FTMildNot )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTMildNot_in_p_FTAnd14130); + p_FTMildNot579=this.p_FTMildNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMildNot579.getTree()); + // xquery/XQueryParser.g:1744:23: (ka= FTAND p_FTMildNot )* + loop197: + do { + var alt197=2; + var LA197_0 = this.input.LA(1); + + if ( (LA197_0==FTAND) ) { + alt197=1; + } + + + switch (alt197) { + case 1 : + // xquery/XQueryParser.g:1744:25: ka= FTAND p_FTMildNot + ka=this.match(this.input,FTAND,XQueryParser.FOLLOW_FTAND_in_p_FTAnd14136); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTMildNot_in_p_FTAnd14140); + p_FTMildNot580=this.p_FTMildNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMildNot580.getTree()); + + + break; + + default : + break loop197; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMildNot_return: (function() { + XQueryParser.p_FTMildNot_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMildNot_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1748:1: p_FTMildNot : p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* ; + // $ANTLR start "p_FTMildNot" + p_FTMildNot: function() { + var retval = new XQueryParser.p_FTMildNot_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTUnaryNot581 = null; + var p_FTUnaryNot582 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1749:9: ( p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* ) + // xquery/XQueryParser.g:1749:11: p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTUnaryNot_in_p_FTMildNot14169); + p_FTUnaryNot581=this.p_FTUnaryNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnaryNot581.getTree()); + // xquery/XQueryParser.g:1749:24: (k+= NOT k+= IN p_FTUnaryNot )* + loop198: + do { + var alt198=2; + var LA198_0 = this.input.LA(1); + + if ( (LA198_0==NOT) ) { + alt198=1; + } + + + switch (alt198) { + case 1 : + // xquery/XQueryParser.g:1749:26: k+= NOT k+= IN p_FTUnaryNot + k=this.match(this.input,NOT,XQueryParser.FOLLOW_NOT_in_p_FTMildNot14175); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_FTMildNot14179); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTUnaryNot_in_p_FTMildNot14183); + p_FTUnaryNot582=this.p_FTUnaryNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnaryNot582.getTree()); + + + break; + + default : + break loop198; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTUnaryNot_return: (function() { + XQueryParser.p_FTUnaryNot_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTUnaryNot_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1753:1: p_FTUnaryNot : (kn= FTNOT )? p_FTPrimaryWithOptions ; + // $ANTLR start "p_FTUnaryNot" + p_FTUnaryNot: function() { + var retval = new XQueryParser.p_FTUnaryNot_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kn = null; + var p_FTPrimaryWithOptions583 = null; + + var kn_tree=null; + + try { + // xquery/XQueryParser.g:1754:9: ( (kn= FTNOT )? p_FTPrimaryWithOptions ) + // xquery/XQueryParser.g:1754:11: (kn= FTNOT )? p_FTPrimaryWithOptions + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1754:11: (kn= FTNOT )? + var alt199=2; + var LA199_0 = this.input.LA(1); + + if ( (LA199_0==FTNOT) ) { + alt199=1; + } + switch (alt199) { + case 1 : + // xquery/XQueryParser.g:1754:13: kn= FTNOT + kn=this.match(this.input,FTNOT,XQueryParser.FOLLOW_FTNOT_in_p_FTUnaryNot14216); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kn_tree = this.adaptor.create(kn); + this.adaptor.addChild(root_0, kn_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kn); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTPrimaryWithOptions_in_p_FTUnaryNot14223); + p_FTPrimaryWithOptions583=this.p_FTPrimaryWithOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPrimaryWithOptions583.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPrimaryWithOptions_return: (function() { + XQueryParser.p_FTPrimaryWithOptions_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPrimaryWithOptions_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1758:1: p_FTPrimaryWithOptions : p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? ; + // $ANTLR start "p_FTPrimaryWithOptions" + p_FTPrimaryWithOptions: function() { + var retval = new XQueryParser.p_FTPrimaryWithOptions_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTPrimary584 = null; + var p_FTMatchOptions585 = null; + var p_FTWeight586 = null; + + + try { + // xquery/XQueryParser.g:1759:9: ( p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? ) + // xquery/XQueryParser.g:1759:11: p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTPrimary_in_p_FTPrimaryWithOptions14249); + p_FTPrimary584=this.p_FTPrimary(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPrimary584.getTree()); + // xquery/XQueryParser.g:1759:23: ( p_FTMatchOptions )? + var alt200=2; + var LA200_0 = this.input.LA(1); + + if ( (LA200_0==USING) ) { + alt200=1; + } + switch (alt200) { + case 1 : + // xquery/XQueryParser.g:1759:23: p_FTMatchOptions + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOptions_in_p_FTPrimaryWithOptions14251); + p_FTMatchOptions585=this.p_FTMatchOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOptions585.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:1759:41: ( p_FTWeight )? + var alt201=2; + var LA201_0 = this.input.LA(1); + + if ( (LA201_0==WEIGHT) ) { + alt201=1; + } + switch (alt201) { + case 1 : + // xquery/XQueryParser.g:1759:41: p_FTWeight + this.pushFollow(XQueryParser.FOLLOW_p_FTWeight_in_p_FTPrimaryWithOptions14254); + p_FTWeight586=this.p_FTWeight(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWeight586.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPrimary_return: (function() { + XQueryParser.p_FTPrimary_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPrimary_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1766:1: p_FTPrimary : ( ( p_FTWords ( p_FTTimes )? ) | ( LPAREN p_FTSelection RPAREN ) | p_FTExtensionSelection ); + // $ANTLR start "p_FTPrimary" + p_FTPrimary: function() { + var retval = new XQueryParser.p_FTPrimary_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN589 = null; + var RPAREN591 = null; + var p_FTWords587 = null; + var p_FTTimes588 = null; + var p_FTSelection590 = null; + var p_FTExtensionSelection592 = null; + + var LPAREN589_tree=null; + var RPAREN591_tree=null; + + try { + // xquery/XQueryParser.g:1767:9: ( ( p_FTWords ( p_FTTimes )? ) | ( LPAREN p_FTSelection RPAREN ) | p_FTExtensionSelection ) + var alt203=3; + switch ( this.input.LA(1) ) { + case LBRACKET: + case APOS: + case QUOT: + alt203=1; + break; + case LPAREN: + alt203=2; + break; + case L_Pragma: + alt203=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 203, 0, this.input); + + throw nvae; + } + + switch (alt203) { + case 1 : + // xquery/XQueryParser.g:1767:11: ( p_FTWords ( p_FTTimes )? ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1767:11: ( p_FTWords ( p_FTTimes )? ) + // xquery/XQueryParser.g:1767:12: p_FTWords ( p_FTTimes )? + this.pushFollow(XQueryParser.FOLLOW_p_FTWords_in_p_FTPrimary14285); + p_FTWords587=this.p_FTWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWords587.getTree()); + // xquery/XQueryParser.g:1767:22: ( p_FTTimes )? + var alt202=2; + var LA202_0 = this.input.LA(1); + + if ( (LA202_0==OCCURS) ) { + alt202=1; + } + switch (alt202) { + case 1 : + // xquery/XQueryParser.g:1767:22: p_FTTimes + this.pushFollow(XQueryParser.FOLLOW_p_FTTimes_in_p_FTPrimary14287); + p_FTTimes588=this.p_FTTimes(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTTimes588.getTree()); + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1768:11: ( LPAREN p_FTSelection RPAREN ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1768:11: ( LPAREN p_FTSelection RPAREN ) + // xquery/XQueryParser.g:1768:12: LPAREN p_FTSelection RPAREN + LPAREN589=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTPrimary14302); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN589_tree = this.adaptor.create(LPAREN589); + this.adaptor.addChild(root_0, LPAREN589_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTPrimary14304); + p_FTSelection590=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection590.getTree()); + RPAREN591=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTPrimary14306); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN591_tree = this.adaptor.create(RPAREN591); + this.adaptor.addChild(root_0, RPAREN591_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1769:11: p_FTExtensionSelection + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTExtensionSelection_in_p_FTPrimary14319); + p_FTExtensionSelection592=this.p_FTExtensionSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTExtensionSelection592.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWords_return: (function() { + XQueryParser.p_FTWords_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWords_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1773:1: p_FTWords : p_FTWordsValue ( p_FTAnyallOption )? ; + // $ANTLR start "p_FTWords" + p_FTWords: function() { + var retval = new XQueryParser.p_FTWords_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTWordsValue593 = null; + var p_FTAnyallOption594 = null; + + + try { + // xquery/XQueryParser.g:1774:9: ( p_FTWordsValue ( p_FTAnyallOption )? ) + // xquery/XQueryParser.g:1774:11: p_FTWordsValue ( p_FTAnyallOption )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWordsValue_in_p_FTWords14345); + p_FTWordsValue593=this.p_FTWordsValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWordsValue593.getTree()); + // xquery/XQueryParser.g:1774:26: ( p_FTAnyallOption )? + var alt204=2; + var LA204_0 = this.input.LA(1); + + if ( ((LA204_0>=ALL && LA204_0<=ANY)||LA204_0==PHRASE) ) { + alt204=1; + } + switch (alt204) { + case 1 : + // xquery/XQueryParser.g:1774:26: p_FTAnyallOption + this.pushFollow(XQueryParser.FOLLOW_p_FTAnyallOption_in_p_FTWords14347); + p_FTAnyallOption594=this.p_FTAnyallOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnyallOption594.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWordsValue_return: (function() { + XQueryParser.p_FTWordsValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWordsValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1778:1: p_FTWordsValue : ( p_StringLiteral | ( LBRACKET p_Expr[true,true] RBRACKET ) ); + // $ANTLR start "p_FTWordsValue" + p_FTWordsValue: function() { + var retval = new XQueryParser.p_FTWordsValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET596 = null; + var RBRACKET598 = null; + var p_StringLiteral595 = null; + var p_Expr597 = null; + + var LBRACKET596_tree=null; + var RBRACKET598_tree=null; + + try { + // xquery/XQueryParser.g:1779:9: ( p_StringLiteral | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt205=2; + var LA205_0 = this.input.LA(1); + + if ( ((LA205_0>=APOS && LA205_0<=QUOT)) ) { + alt205=1; + } + else if ( (LA205_0==LBRACKET) ) { + alt205=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 205, 0, this.input); + + throw nvae; + } + switch (alt205) { + case 1 : + // xquery/XQueryParser.g:1779:11: p_StringLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTWordsValue14374); + p_StringLiteral595=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral595.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1780:11: ( LBRACKET p_Expr[true,true] RBRACKET ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1780:11: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1780:12: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET596=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTWordsValue14387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET596_tree = this.adaptor.create(LBRACKET596); + this.adaptor.addChild(root_0, LBRACKET596_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_FTWordsValue14389); + p_Expr597=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr597.getTree()); + RBRACKET598=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTWordsValue14392); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET598_tree = this.adaptor.create(RBRACKET598); + this.adaptor.addChild(root_0, RBRACKET598_tree); + } + + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTExtensionSelection_return: (function() { + XQueryParser.p_FTExtensionSelection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTExtensionSelection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1784:1: p_FTExtensionSelection : ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET ; + // $ANTLR start "p_FTExtensionSelection" + p_FTExtensionSelection: function() { + var retval = new XQueryParser.p_FTExtensionSelection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_Pragma599 = null; + var LBRACKET600 = null; + var RBRACKET602 = null; + var p_FTSelection601 = null; + + var L_Pragma599_tree=null; + var LBRACKET600_tree=null; + var RBRACKET602_tree=null; + + try { + // xquery/XQueryParser.g:1785:9: ( ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET ) + // xquery/XQueryParser.g:1785:11: ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1785:11: ( L_Pragma )+ + var cnt206=0; + loop206: + do { + var alt206=2; + var LA206_0 = this.input.LA(1); + + if ( (LA206_0==L_Pragma) ) { + alt206=1; + } + + + switch (alt206) { + case 1 : + // xquery/XQueryParser.g:1785:11: L_Pragma + L_Pragma599=this.match(this.input,L_Pragma,XQueryParser.FOLLOW_L_Pragma_in_p_FTExtensionSelection14419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_Pragma599_tree = this.adaptor.create(L_Pragma599); + this.adaptor.addChild(root_0, L_Pragma599_tree); + } + + + break; + + default : + if ( cnt206 >= 1 ) { + break loop206; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(206, this.input); + throw eee; + } + cnt206++; + } while (true); + + LBRACKET600=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTExtensionSelection14422); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET600_tree = this.adaptor.create(LBRACKET600); + this.adaptor.addChild(root_0, LBRACKET600_tree); + } + // xquery/XQueryParser.g:1785:30: ( p_FTSelection )? + var alt207=2; + var LA207_0 = this.input.LA(1); + + if ( (LA207_0==FTNOT||LA207_0==LPAREN||LA207_0==LBRACKET||(LA207_0>=APOS && LA207_0<=QUOT)||LA207_0==L_Pragma) ) { + alt207=1; + } + switch (alt207) { + case 1 : + // xquery/XQueryParser.g:1785:30: p_FTSelection + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTExtensionSelection14424); + p_FTSelection601=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection601.getTree()); + + + break; + + } + + RBRACKET602=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTExtensionSelection14427); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET602_tree = this.adaptor.create(RBRACKET602); + this.adaptor.addChild(root_0, RBRACKET602_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTAnyallOption_return: (function() { + XQueryParser.p_FTAnyallOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTAnyallOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1789:1: p_FTAnyallOption : ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) ; + // $ANTLR start "p_FTAnyallOption" + p_FTAnyallOption: function() { + var retval = new XQueryParser.p_FTAnyallOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var WORDS603 = null; + var k = null; + var list_k=null; + + var WORDS603_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1790:9: ( ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) ) + // xquery/XQueryParser.g:1790:11: ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1790:11: ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) + var alt210=3; + switch ( this.input.LA(1) ) { + case ANY: + alt210=1; + break; + case ALL: + alt210=2; + break; + case PHRASE: + alt210=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 210, 0, this.input); + + throw nvae; + } + + switch (alt210) { + case 1 : + // xquery/XQueryParser.g:1790:13: (k+= ANY (k+= WORD )? ) + // xquery/XQueryParser.g:1790:13: (k+= ANY (k+= WORD )? ) + // xquery/XQueryParser.g:1790:14: k+= ANY (k+= WORD )? + k=this.match(this.input,ANY,XQueryParser.FOLLOW_ANY_in_p_FTAnyallOption14458); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1790:22: (k+= WORD )? + var alt208=2; + var LA208_0 = this.input.LA(1); + + if ( (LA208_0==WORD) ) { + alt208=1; + } + switch (alt208) { + case 1 : + // xquery/XQueryParser.g:1790:22: k+= WORD + k=this.match(this.input,WORD,XQueryParser.FOLLOW_WORD_in_p_FTAnyallOption14462); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1790:33: (k+= ALL ( WORDS )? ) + // xquery/XQueryParser.g:1790:33: (k+= ALL ( WORDS )? ) + // xquery/XQueryParser.g:1790:34: k+= ALL ( WORDS )? + k=this.match(this.input,ALL,XQueryParser.FOLLOW_ALL_in_p_FTAnyallOption14471); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1790:41: ( WORDS )? + var alt209=2; + var LA209_0 = this.input.LA(1); + + if ( (LA209_0==WORDS) ) { + alt209=1; + } + switch (alt209) { + case 1 : + // xquery/XQueryParser.g:1790:41: WORDS + WORDS603=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTAnyallOption14473); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + WORDS603_tree = this.adaptor.create(WORDS603); + this.adaptor.addChild(root_0, WORDS603_tree); + } + + + break; + + } + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1790:51: k+= PHRASE + k=this.match(this.input,PHRASE,XQueryParser.FOLLOW_PHRASE_in_p_FTAnyallOption14481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTTimes_return: (function() { + XQueryParser.p_FTTimes_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTTimes_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1794:1: p_FTTimes : k+= OCCURS p_FTRange k+= TIMES ; + // $ANTLR start "p_FTTimes" + p_FTTimes: function() { + var retval = new XQueryParser.p_FTTimes_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTRange604 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1795:9: (k+= OCCURS p_FTRange k+= TIMES ) + // xquery/XQueryParser.g:1795:11: k+= OCCURS p_FTRange k+= TIMES + root_0 = this.adaptor.nil(); + + k=this.match(this.input,OCCURS,XQueryParser.FOLLOW_OCCURS_in_p_FTTimes14513); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTRange_in_p_FTTimes14515); + p_FTRange604=this.p_FTRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTRange604.getTree()); + k=this.match(this.input,TIMES,XQueryParser.FOLLOW_TIMES_in_p_FTTimes14519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTRange_return: (function() { + XQueryParser.p_FTRange_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTRange_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1799:1: p_FTRange : ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) ; + // $ANTLR start "p_FTRange" + p_FTRange: function() { + var retval = new XQueryParser.p_FTRange_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_AdditiveExpr605 = null; + var p_AdditiveExpr606 = null; + var p_AdditiveExpr607 = null; + var p_AdditiveExpr608 = null; + var p_AdditiveExpr609 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1800:9: ( ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) ) + // xquery/XQueryParser.g:1800:11: ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1800:11: ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) + var alt211=4; + switch ( this.input.LA(1) ) { + case EXACTLY: + alt211=1; + break; + case AT: + var LA211_2 = this.input.LA(2); + + if ( (LA211_2==LEAST) ) { + alt211=2; + } + else if ( (LA211_2==MOST) ) { + alt211=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 211, 2, this.input); + + throw nvae; + } + break; + case FROM: + alt211=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 211, 0, this.input); + + throw nvae; + } + + switch (alt211) { + case 1 : + // xquery/XQueryParser.g:1800:13: (k+= EXACTLY p_AdditiveExpr ) + // xquery/XQueryParser.g:1800:13: (k+= EXACTLY p_AdditiveExpr ) + // xquery/XQueryParser.g:1800:14: k+= EXACTLY p_AdditiveExpr + k=this.match(this.input,EXACTLY,XQueryParser.FOLLOW_EXACTLY_in_p_FTRange14552); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14554); + p_AdditiveExpr605=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr605.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1801:13: (k+= AT k+= LEAST p_AdditiveExpr ) + // xquery/XQueryParser.g:1801:13: (k+= AT k+= LEAST p_AdditiveExpr ) + // xquery/XQueryParser.g:1801:14: k+= AT k+= LEAST p_AdditiveExpr + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTRange14572); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_FTRange14576); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14578); + p_AdditiveExpr606=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr606.getTree()); + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1802:13: (k+= AT k+= MOST p_AdditiveExpr ) + // xquery/XQueryParser.g:1802:13: (k+= AT k+= MOST p_AdditiveExpr ) + // xquery/XQueryParser.g:1802:14: k+= AT k+= MOST p_AdditiveExpr + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTRange14596); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,MOST,XQueryParser.FOLLOW_MOST_in_p_FTRange14600); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14602); + p_AdditiveExpr607=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr607.getTree()); + + + + + + break; + case 4 : + // xquery/XQueryParser.g:1803:13: (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) + // xquery/XQueryParser.g:1803:13: (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) + // xquery/XQueryParser.g:1803:14: k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_FTRange14620); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14622); + p_AdditiveExpr608=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr608.getTree()); + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_FTRange14626); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14628); + p_AdditiveExpr609=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr609.getTree()); + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPosFilter_return: (function() { + XQueryParser.p_FTPosFilter_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPosFilter_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1807:1: p_FTPosFilter : ( p_FTOrder | p_FTWindow | p_FTDistance | p_FTScope | p_FTContent ); + // $ANTLR start "p_FTPosFilter" + p_FTPosFilter: function() { + var retval = new XQueryParser.p_FTPosFilter_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTOrder610 = null; + var p_FTWindow611 = null; + var p_FTDistance612 = null; + var p_FTScope613 = null; + var p_FTContent614 = null; + + + try { + // xquery/XQueryParser.g:1808:9: ( p_FTOrder | p_FTWindow | p_FTDistance | p_FTScope | p_FTContent ) + var alt212=5; + switch ( this.input.LA(1) ) { + case ORDERED: + alt212=1; + break; + case WINDOW: + alt212=2; + break; + case DISTANCE: + alt212=3; + break; + case DIFFERENT: + case SAME: + alt212=4; + break; + case AT: + case ENTIRE: + alt212=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 212, 0, this.input); + + throw nvae; + } + + switch (alt212) { + case 1 : + // xquery/XQueryParser.g:1808:11: p_FTOrder + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTOrder_in_p_FTPosFilter14659); + p_FTOrder610=this.p_FTOrder(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTOrder610.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1808:23: p_FTWindow + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWindow_in_p_FTPosFilter14663); + p_FTWindow611=this.p_FTWindow(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWindow611.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1808:36: p_FTDistance + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTDistance_in_p_FTPosFilter14667); + p_FTDistance612=this.p_FTDistance(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTDistance612.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1808:51: p_FTScope + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTScope_in_p_FTPosFilter14671); + p_FTScope613=this.p_FTScope(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScope613.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1808:63: p_FTContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTContent_in_p_FTPosFilter14675); + p_FTContent614=this.p_FTContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContent614.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTOrder_return: (function() { + XQueryParser.p_FTOrder_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTOrder_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1812:1: p_FTOrder : ko= ORDERED ; + // $ANTLR start "p_FTOrder" + p_FTOrder: function() { + var retval = new XQueryParser.p_FTOrder_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1813:9: (ko= ORDERED ) + // xquery/XQueryParser.g:1813:11: ko= ORDERED + root_0 = this.adaptor.nil(); + + ko=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_p_FTOrder14703); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWindow_return: (function() { + XQueryParser.p_FTWindow_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWindow_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1817:1: p_FTWindow : kw= WINDOW p_AdditiveExpr p_FTUnit ; + // $ANTLR start "p_FTWindow" + p_FTWindow: function() { + var retval = new XQueryParser.p_FTWindow_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kw = null; + var p_AdditiveExpr615 = null; + var p_FTUnit616 = null; + + var kw_tree=null; + + try { + // xquery/XQueryParser.g:1818:9: (kw= WINDOW p_AdditiveExpr p_FTUnit ) + // xquery/XQueryParser.g:1818:11: kw= WINDOW p_AdditiveExpr p_FTUnit + root_0 = this.adaptor.nil(); + + kw=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_FTWindow14733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kw_tree = this.adaptor.create(kw); + this.adaptor.addChild(root_0, kw_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kw); + } + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTWindow14737); + p_AdditiveExpr615=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr615.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_FTUnit_in_p_FTWindow14739); + p_FTUnit616=this.p_FTUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnit616.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTDistance_return: (function() { + XQueryParser.p_FTDistance_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTDistance_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1822:1: p_FTDistance : kd= DISTANCE p_FTRange p_FTUnit ; + // $ANTLR start "p_FTDistance" + p_FTDistance: function() { + var retval = new XQueryParser.p_FTDistance_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kd = null; + var p_FTRange617 = null; + var p_FTUnit618 = null; + + var kd_tree=null; + + try { + // xquery/XQueryParser.g:1823:9: (kd= DISTANCE p_FTRange p_FTUnit ) + // xquery/XQueryParser.g:1823:11: kd= DISTANCE p_FTRange p_FTUnit + root_0 = this.adaptor.nil(); + + kd=this.match(this.input,DISTANCE,XQueryParser.FOLLOW_DISTANCE_in_p_FTDistance14767); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kd_tree = this.adaptor.create(kd); + this.adaptor.addChild(root_0, kd_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kd); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTRange_in_p_FTDistance14771); + p_FTRange617=this.p_FTRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTRange617.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_FTUnit_in_p_FTDistance14773); + p_FTUnit618=this.p_FTUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnit618.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTUnit_return: (function() { + XQueryParser.p_FTUnit_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTUnit_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1827:1: p_FTUnit : (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) ; + // $ANTLR start "p_FTUnit" + p_FTUnit: function() { + var retval = new XQueryParser.p_FTUnit_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1828:9: ( (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) ) + // xquery/XQueryParser.g:1828:11: (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1828:11: (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) + var alt213=3; + switch ( this.input.LA(1) ) { + case WORDS: + alt213=1; + break; + case SENTENCES: + alt213=2; + break; + case PARAGRAPHS: + alt213=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 213, 0, this.input); + + throw nvae; + } + + switch (alt213) { + case 1 : + // xquery/XQueryParser.g:1828:13: k+= WORDS + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTUnit14803); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1828:24: k+= SENTENCES + k=this.match(this.input,SENTENCES,XQueryParser.FOLLOW_SENTENCES_in_p_FTUnit14809); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 3 : + // xquery/XQueryParser.g:1828:39: k+= PARAGRAPHS + k=this.match(this.input,PARAGRAPHS,XQueryParser.FOLLOW_PARAGRAPHS_in_p_FTUnit14815); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTScope_return: (function() { + XQueryParser.p_FTScope_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTScope_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1832:1: p_FTScope : (k+= SAME | k+= DIFFERENT ) p_FTBigUnit ; + // $ANTLR start "p_FTScope" + p_FTScope: function() { + var retval = new XQueryParser.p_FTScope_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTBigUnit619 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1833:9: ( (k+= SAME | k+= DIFFERENT ) p_FTBigUnit ) + // xquery/XQueryParser.g:1833:11: (k+= SAME | k+= DIFFERENT ) p_FTBigUnit + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1833:11: (k+= SAME | k+= DIFFERENT ) + var alt214=2; + var LA214_0 = this.input.LA(1); + + if ( (LA214_0==SAME) ) { + alt214=1; + } + else if ( (LA214_0==DIFFERENT) ) { + alt214=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 214, 0, this.input); + + throw nvae; + } + switch (alt214) { + case 1 : + // xquery/XQueryParser.g:1833:12: k+= SAME + k=this.match(this.input,SAME,XQueryParser.FOLLOW_SAME_in_p_FTScope14848); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1833:22: k+= DIFFERENT + k=this.match(this.input,DIFFERENT,XQueryParser.FOLLOW_DIFFERENT_in_p_FTScope14854); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTBigUnit_in_p_FTScope14859); + p_FTBigUnit619=this.p_FTBigUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTBigUnit619.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTBigUnit_return: (function() { + XQueryParser.p_FTBigUnit_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTBigUnit_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1837:1: p_FTBigUnit : (k+= SENTENCE | k+= PARAGRAPH ) ; + // $ANTLR start "p_FTBigUnit" + p_FTBigUnit: function() { + var retval = new XQueryParser.p_FTBigUnit_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1838:9: ( (k+= SENTENCE | k+= PARAGRAPH ) ) + // xquery/XQueryParser.g:1838:11: (k+= SENTENCE | k+= PARAGRAPH ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1838:11: (k+= SENTENCE | k+= PARAGRAPH ) + var alt215=2; + var LA215_0 = this.input.LA(1); + + if ( (LA215_0==SENTENCE) ) { + alt215=1; + } + else if ( (LA215_0==PARAGRAPH) ) { + alt215=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 215, 0, this.input); + + throw nvae; + } + switch (alt215) { + case 1 : + // xquery/XQueryParser.g:1838:13: k+= SENTENCE + k=this.match(this.input,SENTENCE,XQueryParser.FOLLOW_SENTENCE_in_p_FTBigUnit14889); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1838:27: k+= PARAGRAPH + k=this.match(this.input,PARAGRAPH,XQueryParser.FOLLOW_PARAGRAPH_in_p_FTBigUnit14895); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTContent_return: (function() { + XQueryParser.p_FTContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1842:1: p_FTContent : ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) ; + // $ANTLR start "p_FTContent" + p_FTContent: function() { + var retval = new XQueryParser.p_FTContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1843:9: ( ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) ) + // xquery/XQueryParser.g:1843:11: ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1843:11: ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) + var alt216=3; + var LA216_0 = this.input.LA(1); + + if ( (LA216_0==AT) ) { + var LA216_1 = this.input.LA(2); + + if ( (LA216_1==START) ) { + alt216=1; + } + else if ( (LA216_1==END) ) { + alt216=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 216, 1, this.input); + + throw nvae; + } + } + else if ( (LA216_0==ENTIRE) ) { + alt216=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 216, 0, this.input); + + throw nvae; + } + switch (alt216) { + case 1 : + // xquery/XQueryParser.g:1843:13: (k+= AT k+= START ) + // xquery/XQueryParser.g:1843:13: (k+= AT k+= START ) + // xquery/XQueryParser.g:1843:14: k+= AT k+= START + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTContent14930); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,START,XQueryParser.FOLLOW_START_in_p_FTContent14934); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1843:32: (k+= AT k+= END ) + // xquery/XQueryParser.g:1843:32: (k+= AT k+= END ) + // xquery/XQueryParser.g:1843:33: k+= AT k+= END + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTContent14942); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,END,XQueryParser.FOLLOW_END_in_p_FTContent14946); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1843:49: (k+= ENTIRE k+= CONTENT ) + // xquery/XQueryParser.g:1843:49: (k+= ENTIRE k+= CONTENT ) + // xquery/XQueryParser.g:1843:50: k+= ENTIRE k+= CONTENT + k=this.match(this.input,ENTIRE,XQueryParser.FOLLOW_ENTIRE_in_p_FTContent14954); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,CONTENT,XQueryParser.FOLLOW_CONTENT_in_p_FTContent14958); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMatchOptions_return: (function() { + XQueryParser.p_FTMatchOptions_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMatchOptions_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1847:1: p_FTMatchOptions : (ku= USING p_FTMatchOption )+ ; + // $ANTLR start "p_FTMatchOptions" + p_FTMatchOptions: function() { + var retval = new XQueryParser.p_FTMatchOptions_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ku = null; + var p_FTMatchOption620 = null; + + var ku_tree=null; + + try { + // xquery/XQueryParser.g:1848:9: ( (ku= USING p_FTMatchOption )+ ) + // xquery/XQueryParser.g:1848:11: (ku= USING p_FTMatchOption )+ + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1848:11: (ku= USING p_FTMatchOption )+ + var cnt217=0; + loop217: + do { + var alt217=2; + var LA217_0 = this.input.LA(1); + + if ( (LA217_0==USING) ) { + alt217=1; + } + + + switch (alt217) { + case 1 : + // xquery/XQueryParser.g:1848:12: ku= USING p_FTMatchOption + ku=this.match(this.input,USING,XQueryParser.FOLLOW_USING_in_p_FTMatchOptions14992); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ku_tree = this.adaptor.create(ku); + this.adaptor.addChild(root_0, ku_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ku); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOption_in_p_FTMatchOptions14996); + p_FTMatchOption620=this.p_FTMatchOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOption620.getTree()); + + + break; + + default : + if ( cnt217 >= 1 ) { + break loop217; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(217, this.input); + throw eee; + } + cnt217++; + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMatchOption_return: (function() { + XQueryParser.p_FTMatchOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMatchOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1852:1: p_FTMatchOption : ( p_FTLanguageOption | p_FTWildCardOption | p_FTThesaurusOption | p_FTStemOption | p_FTCaseOption | p_FTDiacriticsOption | p_FTStopWordOption | p_FTExtensionOption ); + // $ANTLR start "p_FTMatchOption" + p_FTMatchOption: function() { + var retval = new XQueryParser.p_FTMatchOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTLanguageOption621 = null; + var p_FTWildCardOption622 = null; + var p_FTThesaurusOption623 = null; + var p_FTStemOption624 = null; + var p_FTCaseOption625 = null; + var p_FTDiacriticsOption626 = null; + var p_FTStopWordOption627 = null; + var p_FTExtensionOption628 = null; + + + try { + // xquery/XQueryParser.g:1853:9: ( p_FTLanguageOption | p_FTWildCardOption | p_FTThesaurusOption | p_FTStemOption | p_FTCaseOption | p_FTDiacriticsOption | p_FTStopWordOption | p_FTExtensionOption ) + var alt218=8; + alt218 = this.dfa218.predict(this.input); + switch (alt218) { + case 1 : + // xquery/XQueryParser.g:1853:11: p_FTLanguageOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTLanguageOption_in_p_FTMatchOption15024); + p_FTLanguageOption621=this.p_FTLanguageOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTLanguageOption621.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1854:11: p_FTWildCardOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWildCardOption_in_p_FTMatchOption15036); + p_FTWildCardOption622=this.p_FTWildCardOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWildCardOption622.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1855:11: p_FTThesaurusOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusOption_in_p_FTMatchOption15048); + p_FTThesaurusOption623=this.p_FTThesaurusOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusOption623.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1856:11: p_FTStemOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStemOption_in_p_FTMatchOption15060); + p_FTStemOption624=this.p_FTStemOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStemOption624.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1857:11: p_FTCaseOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTCaseOption_in_p_FTMatchOption15072); + p_FTCaseOption625=this.p_FTCaseOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTCaseOption625.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1858:11: p_FTDiacriticsOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTDiacriticsOption_in_p_FTMatchOption15084); + p_FTDiacriticsOption626=this.p_FTDiacriticsOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTDiacriticsOption626.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1859:11: p_FTStopWordOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordOption_in_p_FTMatchOption15096); + p_FTStopWordOption627=this.p_FTStopWordOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordOption627.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1860:11: p_FTExtensionOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTExtensionOption_in_p_FTMatchOption15108); + p_FTExtensionOption628=this.p_FTExtensionOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTExtensionOption628.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTCaseOption_return: (function() { + XQueryParser.p_FTCaseOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTCaseOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1864:1: p_FTCaseOption : ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) ; + // $ANTLR start "p_FTCaseOption" + p_FTCaseOption: function() { + var retval = new XQueryParser.p_FTCaseOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1865:9: ( ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) ) + // xquery/XQueryParser.g:1865:11: ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1865:11: ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) + var alt219=4; + switch ( this.input.LA(1) ) { + case CASE: + var LA219_1 = this.input.LA(2); + + if ( (LA219_1==INSENSITIVE) ) { + alt219=1; + } + else if ( (LA219_1==SENSITIVE) ) { + alt219=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 219, 1, this.input); + + throw nvae; + } + break; + case LOWERCASE: + alt219=3; + break; + case UPPERCASE: + alt219=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 219, 0, this.input); + + throw nvae; + } + + switch (alt219) { + case 1 : + // xquery/XQueryParser.g:1865:13: (k+= CASE k+= INSENSITIVE ) + // xquery/XQueryParser.g:1865:13: (k+= CASE k+= INSENSITIVE ) + // xquery/XQueryParser.g:1865:14: k+= CASE k+= INSENSITIVE + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_FTCaseOption15139); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,INSENSITIVE,XQueryParser.FOLLOW_INSENSITIVE_in_p_FTCaseOption15143); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1866:13: (k+= CASE k+= SENSITIVE ) + // xquery/XQueryParser.g:1866:13: (k+= CASE k+= SENSITIVE ) + // xquery/XQueryParser.g:1866:14: k+= CASE k+= SENSITIVE + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_FTCaseOption15161); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,SENSITIVE,XQueryParser.FOLLOW_SENSITIVE_in_p_FTCaseOption15165); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1867:13: k+= LOWERCASE + k=this.match(this.input,LOWERCASE,XQueryParser.FOLLOW_LOWERCASE_in_p_FTCaseOption15182); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 4 : + // xquery/XQueryParser.g:1868:13: k+= UPPERCASE + k=this.match(this.input,UPPERCASE,XQueryParser.FOLLOW_UPPERCASE_in_p_FTCaseOption15198); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTDiacriticsOption_return: (function() { + XQueryParser.p_FTDiacriticsOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTDiacriticsOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1872:1: p_FTDiacriticsOption : ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) ; + // $ANTLR start "p_FTDiacriticsOption" + p_FTDiacriticsOption: function() { + var retval = new XQueryParser.p_FTDiacriticsOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1873:9: ( ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) ) + // xquery/XQueryParser.g:1873:11: ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1873:11: ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) + var alt220=2; + var LA220_0 = this.input.LA(1); + + if ( (LA220_0==DIACRITICS) ) { + var LA220_1 = this.input.LA(2); + + if ( (LA220_1==INSENSITIVE) ) { + alt220=1; + } + else if ( (LA220_1==SENSITIVE) ) { + alt220=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 220, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 220, 0, this.input); + + throw nvae; + } + switch (alt220) { + case 1 : + // xquery/XQueryParser.g:1873:13: (k+= DIACRITICS k+= INSENSITIVE ) + // xquery/XQueryParser.g:1873:13: (k+= DIACRITICS k+= INSENSITIVE ) + // xquery/XQueryParser.g:1873:14: k+= DIACRITICS k+= INSENSITIVE + k=this.match(this.input,DIACRITICS,XQueryParser.FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15233); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,INSENSITIVE,XQueryParser.FOLLOW_INSENSITIVE_in_p_FTDiacriticsOption15237); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1874:13: (k+= DIACRITICS k+= SENSITIVE ) + // xquery/XQueryParser.g:1874:13: (k+= DIACRITICS k+= SENSITIVE ) + // xquery/XQueryParser.g:1874:14: k+= DIACRITICS k+= SENSITIVE + k=this.match(this.input,DIACRITICS,XQueryParser.FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15255); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,SENSITIVE,XQueryParser.FOLLOW_SENSITIVE_in_p_FTDiacriticsOption15259); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStemOption_return: (function() { + XQueryParser.p_FTStemOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStemOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1878:1: p_FTStemOption : (k+= STEMMING | (k+= NO k+= STEMMING ) ) ; + // $ANTLR start "p_FTStemOption" + p_FTStemOption: function() { + var retval = new XQueryParser.p_FTStemOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1879:9: ( (k+= STEMMING | (k+= NO k+= STEMMING ) ) ) + // xquery/XQueryParser.g:1879:11: (k+= STEMMING | (k+= NO k+= STEMMING ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1879:11: (k+= STEMMING | (k+= NO k+= STEMMING ) ) + var alt221=2; + var LA221_0 = this.input.LA(1); + + if ( (LA221_0==STEMMING) ) { + alt221=1; + } + else if ( (LA221_0==NO) ) { + alt221=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 221, 0, this.input); + + throw nvae; + } + switch (alt221) { + case 1 : + // xquery/XQueryParser.g:1879:13: k+= STEMMING + k=this.match(this.input,STEMMING,XQueryParser.FOLLOW_STEMMING_in_p_FTStemOption15294); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1879:27: (k+= NO k+= STEMMING ) + // xquery/XQueryParser.g:1879:27: (k+= NO k+= STEMMING ) + // xquery/XQueryParser.g:1879:28: k+= NO k+= STEMMING + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTStemOption15301); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,STEMMING,XQueryParser.FOLLOW_STEMMING_in_p_FTStemOption15305); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTThesaurusOption_return: (function() { + XQueryParser.p_FTThesaurusOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTThesaurusOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1883:1: p_FTThesaurusOption : ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) ; + // $ANTLR start "p_FTThesaurusOption" + p_FTThesaurusOption: function() { + var retval = new XQueryParser.p_FTThesaurusOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN630 = null; + var COMMA632 = null; + var RPAREN634 = null; + var k = null; + var list_k=null; + var p_FTThesaurusID629 = null; + var p_FTThesaurusID631 = null; + var p_FTThesaurusID633 = null; + + var LPAREN630_tree=null; + var COMMA632_tree=null; + var RPAREN634_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1884:9: ( ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) ) + // xquery/XQueryParser.g:1884:11: ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1884:11: ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) + var alt225=3; + var LA225_0 = this.input.LA(1); + + if ( (LA225_0==THESAURUS) ) { + var LA225_1 = this.input.LA(2); + + if ( (LA225_1==LPAREN) ) { + alt225=2; + } + else if ( (LA225_1==AT||LA225_1==DEFAULT) ) { + alt225=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 225, 1, this.input); + + throw nvae; + } + } + else if ( (LA225_0==NO) ) { + alt225=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 225, 0, this.input); + + throw nvae; + } + switch (alt225) { + case 1 : + // xquery/XQueryParser.g:1884:13: (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) + // xquery/XQueryParser.g:1884:13: (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) + // xquery/XQueryParser.g:1884:14: k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15341); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1884:27: ( p_FTThesaurusID | k+= DEFAULT ) + var alt222=2; + var LA222_0 = this.input.LA(1); + + if ( (LA222_0==AT) ) { + alt222=1; + } + else if ( (LA222_0==DEFAULT) ) { + alt222=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 222, 0, this.input); + + throw nvae; + } + switch (alt222) { + case 1 : + // xquery/XQueryParser.g:1884:28: p_FTThesaurusID + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15344); + p_FTThesaurusID629=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID629.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1884:46: k+= DEFAULT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTThesaurusOption15350); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1885:13: (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) + // xquery/XQueryParser.g:1885:13: (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) + // xquery/XQueryParser.g:1885:14: k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15369); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + LPAREN630=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTThesaurusOption15371); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN630_tree = this.adaptor.create(LPAREN630); + this.adaptor.addChild(root_0, LPAREN630_tree); + } + // xquery/XQueryParser.g:1885:34: ( p_FTThesaurusID | k+= DEFAULT ) + var alt223=2; + var LA223_0 = this.input.LA(1); + + if ( (LA223_0==AT) ) { + alt223=1; + } + else if ( (LA223_0==DEFAULT) ) { + alt223=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 223, 0, this.input); + + throw nvae; + } + switch (alt223) { + case 1 : + // xquery/XQueryParser.g:1885:35: p_FTThesaurusID + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15374); + p_FTThesaurusID631=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID631.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1885:53: k+= DEFAULT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTThesaurusOption15380); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + // xquery/XQueryParser.g:1885:65: ( COMMA p_FTThesaurusID )* + loop224: + do { + var alt224=2; + var LA224_0 = this.input.LA(1); + + if ( (LA224_0==COMMA) ) { + alt224=1; + } + + + switch (alt224) { + case 1 : + // xquery/XQueryParser.g:1885:66: COMMA p_FTThesaurusID + COMMA632=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_FTThesaurusOption15384); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA632_tree = this.adaptor.create(COMMA632); + this.adaptor.addChild(root_0, COMMA632_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15386); + p_FTThesaurusID633=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID633.getTree()); + + + break; + + default : + break loop224; + } + } while (true); + + RPAREN634=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTThesaurusOption15390); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN634_tree = this.adaptor.create(RPAREN634); + this.adaptor.addChild(root_0, RPAREN634_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1886:13: (k+= NO k+= THESAURUS ) + // xquery/XQueryParser.g:1886:13: (k+= NO k+= THESAURUS ) + // xquery/XQueryParser.g:1886:14: k+= NO k+= THESAURUS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTThesaurusOption15408); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15412); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTThesaurusID_return: (function() { + XQueryParser.p_FTThesaurusID_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTThesaurusID_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1890:1: p_FTThesaurusID : k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? ; + // $ANTLR start "p_FTThesaurusID" + p_FTThesaurusID: function() { + var retval = new XQueryParser.p_FTThesaurusID_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringLiteral635 = null; + var p_StringLiteral636 = null; + var p_FTLiteralRange637 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1891:9: (k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? ) + // xquery/XQueryParser.g:1891:11: k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTThesaurusID15445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTThesaurusID15447); + p_StringLiteral635=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral635.getTree()); + // xquery/XQueryParser.g:1891:33: (k+= RELATIONSHIP p_StringLiteral )? + var alt226=2; + var LA226_0 = this.input.LA(1); + + if ( (LA226_0==RELATIONSHIP) ) { + alt226=1; + } + switch (alt226) { + case 1 : + // xquery/XQueryParser.g:1891:34: k+= RELATIONSHIP p_StringLiteral + k=this.match(this.input,RELATIONSHIP,XQueryParser.FOLLOW_RELATIONSHIP_in_p_FTThesaurusID15452); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTThesaurusID15454); + p_StringLiteral636=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral636.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:1891:68: ( p_FTLiteralRange k+= LEVELS )? + var alt227=2; + var LA227_0 = this.input.LA(1); + + if ( ((LA227_0>=EXACTLY && LA227_0<=FROM)) ) { + alt227=1; + } + else if ( (LA227_0==AT) ) { + var LA227_2 = this.input.LA(2); + + if ( (LA227_2==LEAST||LA227_2==MOST) ) { + alt227=1; + } + } + switch (alt227) { + case 1 : + // xquery/XQueryParser.g:1891:69: p_FTLiteralRange k+= LEVELS + this.pushFollow(XQueryParser.FOLLOW_p_FTLiteralRange_in_p_FTThesaurusID15459); + p_FTLiteralRange637=this.p_FTLiteralRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTLiteralRange637.getTree()); + k=this.match(this.input,LEVELS,XQueryParser.FOLLOW_LEVELS_in_p_FTThesaurusID15463); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTLiteralRange_return: (function() { + XQueryParser.p_FTLiteralRange_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTLiteralRange_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1895:1: p_FTLiteralRange : ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) ; + // $ANTLR start "p_FTLiteralRange" + p_FTLiteralRange: function() { + var retval = new XQueryParser.p_FTLiteralRange_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_IntegerLiteral638 = null; + var L_IntegerLiteral639 = null; + var L_IntegerLiteral640 = null; + var L_IntegerLiteral641 = null; + var TO642 = null; + var L_IntegerLiteral643 = null; + var k = null; + var list_k=null; + + var L_IntegerLiteral638_tree=null; + var L_IntegerLiteral639_tree=null; + var L_IntegerLiteral640_tree=null; + var L_IntegerLiteral641_tree=null; + var TO642_tree=null; + var L_IntegerLiteral643_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1896:9: ( ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) ) + // xquery/XQueryParser.g:1896:11: ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1896:11: ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) + var alt228=4; + switch ( this.input.LA(1) ) { + case EXACTLY: + alt228=1; + break; + case AT: + var LA228_2 = this.input.LA(2); + + if ( (LA228_2==LEAST) ) { + alt228=2; + } + else if ( (LA228_2==MOST) ) { + alt228=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 228, 2, this.input); + + throw nvae; + } + break; + case FROM: + alt228=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 228, 0, this.input); + + throw nvae; + } + + switch (alt228) { + case 1 : + // xquery/XQueryParser.g:1896:13: (k+= EXACTLY L_IntegerLiteral ) + // xquery/XQueryParser.g:1896:13: (k+= EXACTLY L_IntegerLiteral ) + // xquery/XQueryParser.g:1896:14: k+= EXACTLY L_IntegerLiteral + k=this.match(this.input,EXACTLY,XQueryParser.FOLLOW_EXACTLY_in_p_FTLiteralRange15498); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral638=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15500); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral638_tree = this.adaptor.create(L_IntegerLiteral638); + this.adaptor.addChild(root_0, L_IntegerLiteral638_tree); + } + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1897:13: (k+= AT k+= LEAST L_IntegerLiteral ) + // xquery/XQueryParser.g:1897:13: (k+= AT k+= LEAST L_IntegerLiteral ) + // xquery/XQueryParser.g:1897:14: k+= AT k+= LEAST L_IntegerLiteral + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTLiteralRange15518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_FTLiteralRange15522); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral639=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15524); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral639_tree = this.adaptor.create(L_IntegerLiteral639); + this.adaptor.addChild(root_0, L_IntegerLiteral639_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1898:13: (k+= AT k+= MOST L_IntegerLiteral ) + // xquery/XQueryParser.g:1898:13: (k+= AT k+= MOST L_IntegerLiteral ) + // xquery/XQueryParser.g:1898:14: k+= AT k+= MOST L_IntegerLiteral + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTLiteralRange15542); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,MOST,XQueryParser.FOLLOW_MOST_in_p_FTLiteralRange15546); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral640=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15548); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral640_tree = this.adaptor.create(L_IntegerLiteral640); + this.adaptor.addChild(root_0, L_IntegerLiteral640_tree); + } + + + + + + break; + case 4 : + // xquery/XQueryParser.g:1899:13: (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) + // xquery/XQueryParser.g:1899:13: (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) + // xquery/XQueryParser.g:1899:14: k+= FROM L_IntegerLiteral TO L_IntegerLiteral + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_FTLiteralRange15566); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral641=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15568); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral641_tree = this.adaptor.create(L_IntegerLiteral641); + this.adaptor.addChild(root_0, L_IntegerLiteral641_tree); + } + TO642=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_FTLiteralRange15570); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + TO642_tree = this.adaptor.create(TO642); + this.adaptor.addChild(root_0, TO642_tree); + } + L_IntegerLiteral643=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15572); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral643_tree = this.adaptor.create(L_IntegerLiteral643); + this.adaptor.addChild(root_0, L_IntegerLiteral643_tree); + } + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWordOption_return: (function() { + XQueryParser.p_FTStopWordOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWordOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1903:1: p_FTStopWordOption : ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) ; + // $ANTLR start "p_FTStopWordOption" + p_FTStopWordOption: function() { + var retval = new XQueryParser.p_FTStopWordOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTStopWords644 = null; + var p_FTStopWordsInclExcl645 = null; + var p_FTStopWordsInclExcl646 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1904:9: ( ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) ) + // xquery/XQueryParser.g:1904:11: ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1904:11: ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) + var alt231=3; + var LA231_0 = this.input.LA(1); + + if ( (LA231_0==STOP) ) { + var LA231_1 = this.input.LA(2); + + if ( (LA231_1==WORDS) ) { + var LA231_3 = this.input.LA(3); + + if ( (LA231_3==DEFAULT) ) { + alt231=2; + } + else if ( (LA231_3==AT||LA231_3==LPAREN) ) { + alt231=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 3, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 1, this.input); + + throw nvae; + } + } + else if ( (LA231_0==NO) ) { + alt231=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 0, this.input); + + throw nvae; + } + switch (alt231) { + case 1 : + // xquery/XQueryParser.g:1904:13: (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1904:13: (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1904:14: k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15608); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15612); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWords_in_p_FTStopWordOption15614); + p_FTStopWords644=this.p_FTStopWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWords644.getTree()); + // xquery/XQueryParser.g:1904:45: ( p_FTStopWordsInclExcl )* + loop229: + do { + var alt229=2; + var LA229_0 = this.input.LA(1); + + if ( (LA229_0==EXCEPT||LA229_0==UNION) ) { + alt229=1; + } + + + switch (alt229) { + case 1 : + // xquery/XQueryParser.g:1904:45: p_FTStopWordsInclExcl + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15616); + p_FTStopWordsInclExcl645=this.p_FTStopWordsInclExcl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordsInclExcl645.getTree()); + + + break; + + default : + break loop229; + } + } while (true); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1905:13: (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1905:13: (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1905:14: k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15635); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15639); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTStopWordOption15643); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1905:42: ( p_FTStopWordsInclExcl )* + loop230: + do { + var alt230=2; + var LA230_0 = this.input.LA(1); + + if ( (LA230_0==EXCEPT||LA230_0==UNION) ) { + alt230=1; + } + + + switch (alt230) { + case 1 : + // xquery/XQueryParser.g:1905:42: p_FTStopWordsInclExcl + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15645); + p_FTStopWordsInclExcl646=this.p_FTStopWordsInclExcl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordsInclExcl646.getTree()); + + + break; + + default : + break loop230; + } + } while (true); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1906:13: (k+= NO k+= STOP k+= WORDS ) + // xquery/XQueryParser.g:1906:13: (k+= NO k+= STOP k+= WORDS ) + // xquery/XQueryParser.g:1906:14: k+= NO k+= STOP k+= WORDS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTStopWordOption15664); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15668); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15672); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWords_return: (function() { + XQueryParser.p_FTStopWords_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWords_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1910:1: p_FTStopWords : ( (ka= AT p_StringLiteral ) | ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) ); + // $ANTLR start "p_FTStopWords" + p_FTStopWords: function() { + var retval = new XQueryParser.p_FTStopWords_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var LPAREN648 = null; + var COMMA650 = null; + var RPAREN652 = null; + var p_StringLiteral647 = null; + var p_StringLiteral649 = null; + var p_StringLiteral651 = null; + + var ka_tree=null; + var LPAREN648_tree=null; + var COMMA650_tree=null; + var RPAREN652_tree=null; + + try { + // xquery/XQueryParser.g:1911:9: ( (ka= AT p_StringLiteral ) | ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) ) + var alt233=2; + var LA233_0 = this.input.LA(1); + + if ( (LA233_0==AT) ) { + alt233=1; + } + else if ( (LA233_0==LPAREN) ) { + alt233=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 233, 0, this.input); + + throw nvae; + } + switch (alt233) { + case 1 : + // xquery/XQueryParser.g:1911:11: (ka= AT p_StringLiteral ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1911:11: (ka= AT p_StringLiteral ) + // xquery/XQueryParser.g:1911:12: ka= AT p_StringLiteral + ka=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTStopWords15706); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15710); + p_StringLiteral647=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral647.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1912:11: ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1912:11: ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) + // xquery/XQueryParser.g:1912:12: LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN + LPAREN648=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTStopWords15724); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN648_tree = this.adaptor.create(LPAREN648); + this.adaptor.addChild(root_0, LPAREN648_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15726); + p_StringLiteral649=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral649.getTree()); + // xquery/XQueryParser.g:1912:35: ( COMMA p_StringLiteral )* + loop232: + do { + var alt232=2; + var LA232_0 = this.input.LA(1); + + if ( (LA232_0==COMMA) ) { + alt232=1; + } + + + switch (alt232) { + case 1 : + // xquery/XQueryParser.g:1912:36: COMMA p_StringLiteral + COMMA650=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_FTStopWords15729); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA650_tree = this.adaptor.create(COMMA650); + this.adaptor.addChild(root_0, COMMA650_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15731); + p_StringLiteral651=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral651.getTree()); + + + break; + + default : + break loop232; + } + } while (true); + + RPAREN652=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTStopWords15735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN652_tree = this.adaptor.create(RPAREN652); + this.adaptor.addChild(root_0, RPAREN652_tree); + } + + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWordsInclExcl_return: (function() { + XQueryParser.p_FTStopWordsInclExcl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWordsInclExcl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1916:1: p_FTStopWordsInclExcl : ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) ; + // $ANTLR start "p_FTStopWordsInclExcl" + p_FTStopWordsInclExcl: function() { + var retval = new XQueryParser.p_FTStopWordsInclExcl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTStopWords653 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1917:9: ( ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) ) + // xquery/XQueryParser.g:1917:11: ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1917:11: ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) + // xquery/XQueryParser.g:1917:13: (k+= UNION | k+= EXCEPT ) p_FTStopWords + // xquery/XQueryParser.g:1917:13: (k+= UNION | k+= EXCEPT ) + var alt234=2; + var LA234_0 = this.input.LA(1); + + if ( (LA234_0==UNION) ) { + alt234=1; + } + else if ( (LA234_0==EXCEPT) ) { + alt234=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 234, 0, this.input); + + throw nvae; + } + switch (alt234) { + case 1 : + // xquery/XQueryParser.g:1917:14: k+= UNION + k=this.match(this.input,UNION,XQueryParser.FOLLOW_UNION_in_p_FTStopWordsInclExcl15767); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1917:25: k+= EXCEPT + k=this.match(this.input,EXCEPT,XQueryParser.FOLLOW_EXCEPT_in_p_FTStopWordsInclExcl15773); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWords_in_p_FTStopWordsInclExcl15776); + p_FTStopWords653=this.p_FTStopWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWords653.getTree()); + + + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTLanguageOption_return: (function() { + XQueryParser.p_FTLanguageOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTLanguageOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1921:1: p_FTLanguageOption : kl= LANGUAGE p_StringLiteral ; + // $ANTLR start "p_FTLanguageOption" + p_FTLanguageOption: function() { + var retval = new XQueryParser.p_FTLanguageOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kl = null; + var p_StringLiteral654 = null; + + var kl_tree=null; + + try { + // xquery/XQueryParser.g:1922:9: (kl= LANGUAGE p_StringLiteral ) + // xquery/XQueryParser.g:1922:11: kl= LANGUAGE p_StringLiteral + root_0 = this.adaptor.nil(); + + kl=this.match(this.input,LANGUAGE,XQueryParser.FOLLOW_LANGUAGE_in_p_FTLanguageOption15808); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kl_tree = this.adaptor.create(kl); + this.adaptor.addChild(root_0, kl_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kl); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTLanguageOption15812); + p_StringLiteral654=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral654.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWildCardOption_return: (function() { + XQueryParser.p_FTWildCardOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWildCardOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1926:1: p_FTWildCardOption : (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) ; + // $ANTLR start "p_FTWildCardOption" + p_FTWildCardOption: function() { + var retval = new XQueryParser.p_FTWildCardOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1927:9: ( (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) ) + // xquery/XQueryParser.g:1927:11: (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1927:11: (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) + var alt235=2; + var LA235_0 = this.input.LA(1); + + if ( (LA235_0==WILDCARDS) ) { + alt235=1; + } + else if ( (LA235_0==NO) ) { + alt235=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 235, 0, this.input); + + throw nvae; + } + switch (alt235) { + case 1 : + // xquery/XQueryParser.g:1927:13: k+= WILDCARDS + k=this.match(this.input,WILDCARDS,XQueryParser.FOLLOW_WILDCARDS_in_p_FTWildCardOption15842); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1927:28: (k+= NO k+= WILDCARDS ) + // xquery/XQueryParser.g:1927:28: (k+= NO k+= WILDCARDS ) + // xquery/XQueryParser.g:1927:29: k+= NO k+= WILDCARDS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTWildCardOption15849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WILDCARDS,XQueryParser.FOLLOW_WILDCARDS_in_p_FTWildCardOption15853); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTExtensionOption_return: (function() { + XQueryParser.p_FTExtensionOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTExtensionOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1931:1: p_FTExtensionOption : ko= OPTION p_QName p_StringLiteral ; + // $ANTLR start "p_FTExtensionOption" + p_FTExtensionOption: function() { + var retval = new XQueryParser.p_FTExtensionOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + var p_QName655 = null; + var p_StringLiteral656 = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1932:9: (ko= OPTION p_QName p_StringLiteral ) + // xquery/XQueryParser.g:1932:11: ko= OPTION p_QName p_StringLiteral + root_0 = this.adaptor.nil(); + + ko=this.match(this.input,OPTION,XQueryParser.FOLLOW_OPTION_in_p_FTExtensionOption15886); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_FTExtensionOption15890); + p_QName655=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName655.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTExtensionOption15892); + p_StringLiteral656=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral656.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTIgnoreOption_return: (function() { + XQueryParser.p_FTIgnoreOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTIgnoreOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1936:1: p_FTIgnoreOption : k+= WITHOUT k+= CONTENT p_UnionExpr ; + // $ANTLR start "p_FTIgnoreOption" + p_FTIgnoreOption: function() { + var retval = new XQueryParser.p_FTIgnoreOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_UnionExpr657 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1937:9: (k+= WITHOUT k+= CONTENT p_UnionExpr ) + // xquery/XQueryParser.g:1937:11: k+= WITHOUT k+= CONTENT p_UnionExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WITHOUT,XQueryParser.FOLLOW_WITHOUT_in_p_FTIgnoreOption15920); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,CONTENT,XQueryParser.FOLLOW_CONTENT_in_p_FTIgnoreOption15924); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_FTIgnoreOption15928); + p_UnionExpr657=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr657.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Program_return: (function() { + XQueryParser.p_Program_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Program_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1947:1: p_Program : p_StatementsAndOptionalExpr ; + // $ANTLR start "p_Program" + p_Program: function() { + var retval = new XQueryParser.p_Program_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_StatementsAndOptionalExpr658 = null; + + + try { + // xquery/XQueryParser.g:1948:9: ( p_StatementsAndOptionalExpr ) + // xquery/XQueryParser.g:1948:11: p_StatementsAndOptionalExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_p_Program15960); + p_StatementsAndOptionalExpr658=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr658.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Statements_return: (function() { + XQueryParser.p_Statements_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Statements_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1952:1: p_Statements[strict] : ( p_Hybrid[$strict,true] )* ; + // $ANTLR start "p_Statements" + p_Statements: function(strict) { + var retval = new XQueryParser.p_Statements_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Hybrid659 = null; + + + try { + // xquery/XQueryParser.g:1953:9: ( ( p_Hybrid[$strict,true] )* ) + // xquery/XQueryParser.g:1953:11: ( p_Hybrid[$strict,true] )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1953:11: ( p_Hybrid[$strict,true] )* + loop236: + do { + var alt236=2; + var LA236_0 = this.input.LA(1); + + if ( ((LA236_0>=ANCESTOR && LA236_0<=QUOT_ER)||LA236_0==LPAREN||(LA236_0>=DOLLAR && LA236_0<=LBRACKET)||LA236_0==ANN_PERCENT||(LA236_0>=STAR && LA236_0<=SMALLER)||(LA236_0>=SLASH && LA236_0<=DOT_DOT)||LA236_0==ATTR_SIGN||(LA236_0>=APOS && LA236_0<=QUOT)||LA236_0==L_NCName||(LA236_0>=L_Pragma && LA236_0<=L_DoubleLiteral)||LA236_0==EXPLICITLY) ) { + alt236=1; + } + + + switch (alt236) { + case 1 : + // xquery/XQueryParser.g:1953:11: p_Hybrid[$strict,true] + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_Statements15987); + p_Hybrid659=this.p_Hybrid(strict, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid659.getTree()); + + + break; + + default : + break loop236; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StatementsAndExpr_return: (function() { + XQueryParser.p_StatementsAndExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StatementsAndExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1957:1: p_StatementsAndExpr : p_Statements[false] ; + // $ANTLR start "p_StatementsAndExpr" + p_StatementsAndExpr: function() { + var retval = new XQueryParser.p_StatementsAndExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Statements660 = null; + + + try { + // xquery/XQueryParser.g:1958:9: ( p_Statements[false] ) + // xquery/XQueryParser.g:1958:11: p_Statements[false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_StatementsAndExpr16015); + p_Statements660=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements660.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StatementsAndOptionalExpr_return: (function() { + XQueryParser.p_StatementsAndOptionalExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StatementsAndOptionalExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1962:1: p_StatementsAndOptionalExpr : p_Statements[false] ; + // $ANTLR start "p_StatementsAndOptionalExpr" + p_StatementsAndOptionalExpr: function() { + var retval = new XQueryParser.p_StatementsAndOptionalExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Statements661 = null; + + + try { + // xquery/XQueryParser.g:1963:9: ( p_Statements[false] ) + // xquery/XQueryParser.g:1963:11: p_Statements[false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_StatementsAndOptionalExpr16042); + p_Statements661=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements661.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Hybrid_return: (function() { + XQueryParser.p_Hybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Hybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1966:1: p_Hybrid[strict, allowConcat] : ( p_HybridExprSingle[$strict,$allowConcat] | p_Statement ); + // $ANTLR start "p_Hybrid" + p_Hybrid: function(strict, allowConcat) { + var retval = new XQueryParser.p_Hybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_HybridExprSingle662 = null; + var p_Statement663 = null; + + + try { + // xquery/XQueryParser.g:1967:9: ( p_HybridExprSingle[$strict,$allowConcat] | p_Statement ) + var alt237=2; + alt237 = this.dfa237.predict(this.input); + switch (alt237) { + case 1 : + // xquery/XQueryParser.g:1967:11: p_HybridExprSingle[$strict,$allowConcat] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_HybridExprSingle_in_p_Hybrid16069); + p_HybridExprSingle662=this.p_HybridExprSingle(strict, allowConcat); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_HybridExprSingle662.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1968:11: p_Statement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statement_in_p_Hybrid16082); + p_Statement663=this.p_Statement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statement663.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + + if(re instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch3"); + var v = this.p_StepExpr(); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, v.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw re; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_Statement_return: (function() { + XQueryParser.p_Statement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Statement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1984:1: p_Statement : ( p_AssignStatement | p_BreakStatement | p_ContinueStatement | p_ExitStatement | p_VarDeclStatement | p_WhileStatement ); + // $ANTLR start "p_Statement" + p_Statement: function() { + var retval = new XQueryParser.p_Statement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_AssignStatement664 = null; + var p_BreakStatement665 = null; + var p_ContinueStatement666 = null; + var p_ExitStatement667 = null; + var p_VarDeclStatement668 = null; + var p_WhileStatement669 = null; + + + try { + // xquery/XQueryParser.g:1985:9: ( p_AssignStatement | p_BreakStatement | p_ContinueStatement | p_ExitStatement | p_VarDeclStatement | p_WhileStatement ) + var alt238=6; + switch ( this.input.LA(1) ) { + case DOLLAR: + alt238=1; + break; + case BREAK: + alt238=2; + break; + case CONTINUE: + alt238=3; + break; + case EXIT: + alt238=4; + break; + case VARIABLE: + case ANN_PERCENT: + alt238=5; + break; + case WHILE: + alt238=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 238, 0, this.input); + + throw nvae; + } + + switch (alt238) { + case 1 : + // xquery/XQueryParser.g:1985:11: p_AssignStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AssignStatement_in_p_Statement16113); + p_AssignStatement664=this.p_AssignStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AssignStatement664.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1986:11: p_BreakStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_BreakStatement_in_p_Statement16125); + p_BreakStatement665=this.p_BreakStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BreakStatement665.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1987:11: p_ContinueStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ContinueStatement_in_p_Statement16137); + p_ContinueStatement666=this.p_ContinueStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ContinueStatement666.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1988:11: p_ExitStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExitStatement_in_p_Statement16149); + p_ExitStatement667=this.p_ExitStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExitStatement667.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1989:11: p_VarDeclStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDeclStatement_in_p_Statement16161); + p_VarDeclStatement668=this.p_VarDeclStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDeclStatement668.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1990:11: p_WhileStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WhileStatement_in_p_Statement16173); + p_WhileStatement669=this.p_WhileStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WhileStatement669.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_HybridExprSingle_return: (function() { + XQueryParser.p_HybridExprSingle_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_HybridExprSingle_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1992:1: p_HybridExprSingle[strict, allowConcat] : e= p_Expr[$strict,$allowConcat] SEMICOLON ; + // $ANTLR start "p_HybridExprSingle" + p_HybridExprSingle: function(strict, allowConcat) { + var retval = new XQueryParser.p_HybridExprSingle_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON670 = null; + var e = null; + + var SEMICOLON670_tree=null; + + try { + // xquery/XQueryParser.g:1993:9: (e= p_Expr[$strict,$allowConcat] SEMICOLON ) + // xquery/XQueryParser.g:1993:11: e= p_Expr[$strict,$allowConcat] SEMICOLON + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_HybridExprSingle16200); + e=this.p_Expr(strict, allowConcat); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, e.getTree()); + if ( this.state.backtracking===0 ) { + if (strict || this.input.LT(1).getType() != SEMICOLON) throw new org.antlr.runtime.RecognitionException(this.input); + } + SEMICOLON670=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_HybridExprSingle16215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON670_tree = this.adaptor.create(SEMICOLON670); + this.adaptor.addChild(root_0, SEMICOLON670_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + + if(re instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch4"); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, e.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw re; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_ApplyStatement_return: (function() { + XQueryParser.p_ApplyStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ApplyStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2028:1: p_ApplyStatement : p_ExprSimple SEMICOLON ; + // $ANTLR start "p_ApplyStatement" + p_ApplyStatement: function() { + var retval = new XQueryParser.p_ApplyStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON672 = null; + var p_ExprSimple671 = null; + + var SEMICOLON672_tree=null; + + try { + // xquery/XQueryParser.g:2029:9: ( p_ExprSimple SEMICOLON ) + // xquery/XQueryParser.g:2029:11: p_ExprSimple SEMICOLON + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSimple_in_p_ApplyStatement16265); + p_ExprSimple671=this.p_ExprSimple(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSimple671.getTree()); + SEMICOLON672=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ApplyStatement16267); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON672_tree = this.adaptor.create(SEMICOLON672); + this.adaptor.addChild(root_0, SEMICOLON672_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AssignStatement_return: (function() { + XQueryParser.p_AssignStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AssignStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2033:1: p_AssignStatement : d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON ; + // $ANTLR start "p_AssignStatement" + p_AssignStatement: function() { + var retval = new XQueryParser.p_AssignStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var BIND673 = null; + var SEMICOLON675 = null; + var v = null; + var p_ExprSingle674 = null; + + var d_tree=null; + var BIND673_tree=null; + var SEMICOLON675_tree=null; + + try { + // xquery/XQueryParser.g:2034:9: (d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON ) + // xquery/XQueryParser.g:2034:11: d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_AssignStatement16295); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_AssignStatement16299); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + BIND673=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_AssignStatement16303); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND673_tree = this.adaptor.create(BIND673); + this.adaptor.addChild(root_0, BIND673_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_AssignStatement16305); + p_ExprSingle674=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle674.getTree()); + SEMICOLON675=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_AssignStatement16308); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON675_tree = this.adaptor.create(SEMICOLON675); + this.adaptor.addChild(root_0, SEMICOLON675_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockStatement_return: (function() { + XQueryParser.p_BlockStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2038:1: p_BlockStatement : LBRACKET p_Statements[false] RBRACKET ; + // $ANTLR start "p_BlockStatement" + p_BlockStatement: function() { + var retval = new XQueryParser.p_BlockStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET676 = null; + var RBRACKET678 = null; + var p_Statements677 = null; + + var LBRACKET676_tree=null; + var RBRACKET678_tree=null; + + try { + // xquery/XQueryParser.g:2039:9: ( LBRACKET p_Statements[false] RBRACKET ) + // xquery/XQueryParser.g:2039:11: LBRACKET p_Statements[false] RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET676=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockStatement16334); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET676_tree = this.adaptor.create(LBRACKET676); + this.adaptor.addChild(root_0, LBRACKET676_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_BlockStatement16336); + p_Statements677=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements677.getTree()); + RBRACKET678=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockStatement16339); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET678_tree = this.adaptor.create(RBRACKET678); + this.adaptor.addChild(root_0, RBRACKET678_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockHybrid_return: (function() { + XQueryParser.p_BlockHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2042:1: p_BlockHybrid[strict] : LBRACKET p_Statements[$strict] RBRACKET ; + // $ANTLR start "p_BlockHybrid" + p_BlockHybrid: function(strict) { + var retval = new XQueryParser.p_BlockHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET679 = null; + var RBRACKET681 = null; + var p_Statements680 = null; + + var LBRACKET679_tree=null; + var RBRACKET681_tree=null; + + try { + // xquery/XQueryParser.g:2043:9: ( LBRACKET p_Statements[$strict] RBRACKET ) + // xquery/XQueryParser.g:2043:11: LBRACKET p_Statements[$strict] RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET679=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockHybrid16365); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET679_tree = this.adaptor.create(LBRACKET679); + this.adaptor.addChild(root_0, LBRACKET679_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_BlockHybrid16367); + p_Statements680=this.p_Statements(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements680.getTree()); + RBRACKET681=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockHybrid16370); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET681_tree = this.adaptor.create(RBRACKET681); + this.adaptor.addChild(root_0, RBRACKET681_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BreakStatement_return: (function() { + XQueryParser.p_BreakStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BreakStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2047:1: p_BreakStatement : k= BREAK k= LOOP SEMICOLON ; + // $ANTLR start "p_BreakStatement" + p_BreakStatement: function() { + var retval = new XQueryParser.p_BreakStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON682 = null; + + var k_tree=null; + var SEMICOLON682_tree=null; + + try { + // xquery/XQueryParser.g:2048:9: (k= BREAK k= LOOP SEMICOLON ) + // xquery/XQueryParser.g:2048:11: k= BREAK k= LOOP SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,BREAK,XQueryParser.FOLLOW_BREAK_in_p_BreakStatement16398); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,LOOP,XQueryParser.FOLLOW_LOOP_in_p_BreakStatement16404); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + SEMICOLON682=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_BreakStatement16408); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON682_tree = this.adaptor.create(SEMICOLON682); + this.adaptor.addChild(root_0, SEMICOLON682_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ContinueStatement_return: (function() { + XQueryParser.p_ContinueStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ContinueStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2052:1: p_ContinueStatement : k= CONTINUE k= LOOP SEMICOLON ; + // $ANTLR start "p_ContinueStatement" + p_ContinueStatement: function() { + var retval = new XQueryParser.p_ContinueStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON683 = null; + + var k_tree=null; + var SEMICOLON683_tree=null; + + try { + // xquery/XQueryParser.g:2053:9: (k= CONTINUE k= LOOP SEMICOLON ) + // xquery/XQueryParser.g:2053:11: k= CONTINUE k= LOOP SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CONTINUE,XQueryParser.FOLLOW_CONTINUE_in_p_ContinueStatement16436); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,LOOP,XQueryParser.FOLLOW_LOOP_in_p_ContinueStatement16442); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + SEMICOLON683=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ContinueStatement16446); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON683_tree = this.adaptor.create(SEMICOLON683); + this.adaptor.addChild(root_0, SEMICOLON683_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExitStatement_return: (function() { + XQueryParser.p_ExitStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExitStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2057:1: p_ExitStatement : k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON ; + // $ANTLR start "p_ExitStatement" + p_ExitStatement: function() { + var retval = new XQueryParser.p_ExitStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON685 = null; + var p_ExprSingle684 = null; + + var k_tree=null; + var SEMICOLON685_tree=null; + + try { + // xquery/XQueryParser.g:2058:9: (k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON ) + // xquery/XQueryParser.g:2058:11: k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,EXIT,XQueryParser.FOLLOW_EXIT_in_p_ExitStatement16474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURNING,XQueryParser.FOLLOW_RETURNING_in_p_ExitStatement16480); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ExitStatement16484); + p_ExprSingle684=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle684.getTree()); + SEMICOLON685=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ExitStatement16487); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON685_tree = this.adaptor.create(SEMICOLON685); + this.adaptor.addChild(root_0, SEMICOLON685_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FLWORStatement_return: (function() { + XQueryParser.p_FLWORStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FLWORStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2062:1: p_FLWORStatement : p_InitialClause ( p_IntermediateClause )* p_ReturnStatement ; + // $ANTLR start "p_FLWORStatement" + p_FLWORStatement: function() { + var retval = new XQueryParser.p_FLWORStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause686 = null; + var p_IntermediateClause687 = null; + var p_ReturnStatement688 = null; + + + try { + // xquery/XQueryParser.g:2063:9: ( p_InitialClause ( p_IntermediateClause )* p_ReturnStatement ) + // xquery/XQueryParser.g:2063:11: p_InitialClause ( p_IntermediateClause )* p_ReturnStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_FLWORStatement16513); + p_InitialClause686=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause686.getTree()); + // xquery/XQueryParser.g:2063:27: ( p_IntermediateClause )* + loop239: + do { + var alt239=2; + var LA239_0 = this.input.LA(1); + + if ( (LA239_0==FOR||LA239_0==LET||LA239_0==ORDER||LA239_0==STABLE||LA239_0==WHERE||LA239_0==COUNT||LA239_0==GROUP) ) { + alt239=1; + } + + + switch (alt239) { + case 1 : + // xquery/XQueryParser.g:2063:27: p_IntermediateClause + this.pushFollow(XQueryParser.FOLLOW_p_IntermediateClause_in_p_FLWORStatement16515); + p_IntermediateClause687=this.p_IntermediateClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntermediateClause687.getTree()); + + + break; + + default : + break loop239; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ReturnStatement_in_p_FLWORStatement16518); + p_ReturnStatement688=this.p_ReturnStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReturnStatement688.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReturnStatement_return: (function() { + XQueryParser.p_ReturnStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReturnStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2067:1: p_ReturnStatement : k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_ReturnStatement" + p_ReturnStatement: function() { + var retval = new XQueryParser.p_ReturnStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_Hybrid689 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2068:9: (k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2068:11: k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_ReturnStatement16550); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_ReturnStatement16554); + p_Hybrid689=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid689.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IfStatement_return: (function() { + XQueryParser.p_IfStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IfStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2072:1: p_IfStatement : k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] ; + // $ANTLR start "p_IfStatement" + p_IfStatement: function() { + var retval = new XQueryParser.p_IfStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN690 = null; + var RPAREN692 = null; + var p_Expr691 = null; + var p_Hybrid693 = null; + var p_Hybrid694 = null; + + var k_tree=null; + var LPAREN690_tree=null; + var RPAREN692_tree=null; + + try { + // xquery/XQueryParser.g:2073:9: (k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2073:11: k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_p_IfStatement16583); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN690=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_IfStatement16587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN690_tree = this.adaptor.create(LPAREN690); + this.adaptor.addChild(root_0, LPAREN690_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_IfStatement16589); + p_Expr691=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr691.getTree()); + RPAREN692=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_IfStatement16592); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN692_tree = this.adaptor.create(RPAREN692); + this.adaptor.addChild(root_0, RPAREN692_tree); + } + k=this.match(this.input,THEN,XQueryParser.FOLLOW_THEN_in_p_IfStatement16596); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfStatement16600); + p_Hybrid693=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid693.getTree()); + k=this.match(this.input,ELSE,XQueryParser.FOLLOW_ELSE_in_p_IfStatement16605); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfStatement16609); + p_Hybrid694=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid694.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchStatement_return: (function() { + XQueryParser.p_SwitchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2077:1: p_SwitchStatement : k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_SwitchStatement" + p_SwitchStatement: function() { + var retval = new XQueryParser.p_SwitchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN695 = null; + var RPAREN697 = null; + var p_Expr696 = null; + var p_SwitchCaseStatement698 = null; + var p_Hybrid699 = null; + + var k_tree=null; + var LPAREN695_tree=null; + var RPAREN697_tree=null; + + try { + // xquery/XQueryParser.g:2078:9: (k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2078:11: k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_p_SwitchStatement16638); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN695=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SwitchStatement16642); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN695_tree = this.adaptor.create(LPAREN695); + this.adaptor.addChild(root_0, LPAREN695_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_SwitchStatement16644); + p_Expr696=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr696.getTree()); + RPAREN697=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SwitchStatement16647); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN697_tree = this.adaptor.create(RPAREN697); + this.adaptor.addChild(root_0, RPAREN697_tree); + } + // xquery/XQueryParser.g:2078:67: ( p_SwitchCaseStatement )+ + var cnt240=0; + loop240: + do { + var alt240=2; + var LA240_0 = this.input.LA(1); + + if ( (LA240_0==CASE) ) { + alt240=1; + } + + + switch (alt240) { + case 1 : + // xquery/XQueryParser.g:2078:67: p_SwitchCaseStatement + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseStatement_in_p_SwitchStatement16649); + p_SwitchCaseStatement698=this.p_SwitchCaseStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseStatement698.getTree()); + + + break; + + default : + if ( cnt240 >= 1 ) { + break loop240; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(240, this.input); + throw eee; + } + cnt240++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SwitchStatement16654); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchStatement16660); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchStatement16664); + p_Hybrid699=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid699.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseStatement_return: (function() { + XQueryParser.p_SwitchCaseStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2082:1: p_SwitchCaseStatement : (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_SwitchCaseStatement" + p_SwitchCaseStatement: function() { + var retval = new XQueryParser.p_SwitchCaseStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_SwitchCaseOperand700 = null; + var p_Hybrid701 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2083:9: ( (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2083:11: (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2083:11: (k= CASE p_SwitchCaseOperand )+ + var cnt241=0; + loop241: + do { + var alt241=2; + var LA241_0 = this.input.LA(1); + + if ( (LA241_0==CASE) ) { + alt241=1; + } + + + switch (alt241) { + case 1 : + // xquery/XQueryParser.g:2083:12: k= CASE p_SwitchCaseOperand + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_SwitchCaseStatement16694); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseStatement16698); + p_SwitchCaseOperand700=this.p_SwitchCaseOperand(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseOperand700.getTree()); + + + break; + + default : + if ( cnt241 >= 1 ) { + break loop241; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(241, this.input); + throw eee; + } + cnt241++; + } while (true); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchCaseStatement16704); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchCaseStatement16708); + p_Hybrid701=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid701.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchStatement_return: (function() { + XQueryParser.p_TryCatchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2087:1: p_TryCatchStatement : k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ ; + // $ANTLR start "p_TryCatchStatement" + p_TryCatchStatement: function() { + var retval = new XQueryParser.p_TryCatchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_BlockStatement702 = null; + var p_CatchErrorList703 = null; + var p_BlockStatement704 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2088:9: (k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ ) + // xquery/XQueryParser.g:2088:11: k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryCatchStatement16737); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_BlockStatement_in_p_TryCatchStatement16741); + p_BlockStatement702=this.p_BlockStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockStatement702.getTree()); + // xquery/XQueryParser.g:2088:49: (k= CATCH p_CatchErrorList p_BlockStatement )+ + var cnt242=0; + loop242: + do { + var alt242=2; + var LA242_0 = this.input.LA(1); + + if ( (LA242_0==CATCH) ) { + alt242=1; + } + + + switch (alt242) { + case 1 : + // xquery/XQueryParser.g:2088:50: k= CATCH p_CatchErrorList p_BlockStatement + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_TryCatchStatement16746); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_TryCatchStatement16750); + p_CatchErrorList703=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList703.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_BlockStatement_in_p_TryCatchStatement16752); + p_BlockStatement704=this.p_BlockStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockStatement704.getTree()); + + + break; + + default : + if ( cnt242 >= 1 ) { + break loop242; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(242, this.input); + throw eee; + } + cnt242++; + } while (true); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchHybrid_return: (function() { + XQueryParser.p_TryCatchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2091:1: p_TryCatchHybrid[strict] : k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ ; + // $ANTLR start "p_TryCatchHybrid" + p_TryCatchHybrid: function(strict) { + var retval = new XQueryParser.p_TryCatchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_BlockHybrid705 = null; + var p_CatchErrorList706 = null; + var p_BlockHybrid707 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2092:9: (k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ ) + // xquery/XQueryParser.g:2092:11: k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryCatchHybrid16784); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16788); + p_BlockHybrid705=this.p_BlockHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockHybrid705.getTree()); + // xquery/XQueryParser.g:2092:55: (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ + var cnt243=0; + loop243: + do { + var alt243=2; + var LA243_0 = this.input.LA(1); + + if ( (LA243_0==CATCH) ) { + alt243=1; + } + + + switch (alt243) { + case 1 : + // xquery/XQueryParser.g:2092:56: k= CATCH p_CatchErrorList p_BlockHybrid[$strict] + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_TryCatchHybrid16794); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_TryCatchHybrid16798); + p_CatchErrorList706=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList706.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16800); + p_BlockHybrid707=this.p_BlockHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockHybrid707.getTree()); + + + break; + + default : + if ( cnt243 >= 1 ) { + break loop243; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(243, this.input); + throw eee; + } + cnt243++; + } while (true); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeswitchStatement_return: (function() { + XQueryParser.p_TypeswitchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeswitchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2096:1: p_TypeswitchStatement : k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_TypeswitchStatement" + p_TypeswitchStatement: function() { + var retval = new XQueryParser.p_TypeswitchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var LPAREN708 = null; + var RPAREN710 = null; + var v = null; + var p_Expr709 = null; + var p_CaseStatement711 = null; + var p_Hybrid712 = null; + + var k_tree=null; + var d_tree=null; + var LPAREN708_tree=null; + var RPAREN710_tree=null; + + try { + // xquery/XQueryParser.g:2097:9: (k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2097:11: k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_p_TypeswitchStatement16833); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN708=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypeswitchStatement16837); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN708_tree = this.adaptor.create(LPAREN708); + this.adaptor.addChild(root_0, LPAREN708_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TypeswitchStatement16839); + p_Expr709=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr709.getTree()); + RPAREN710=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypeswitchStatement16842); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN710_tree = this.adaptor.create(RPAREN710); + this.adaptor.addChild(root_0, RPAREN710_tree); + } + // xquery/XQueryParser.g:2097:71: ( p_CaseStatement )+ + var cnt244=0; + loop244: + do { + var alt244=2; + var LA244_0 = this.input.LA(1); + + if ( (LA244_0==CASE) ) { + alt244=1; + } + + + switch (alt244) { + case 1 : + // xquery/XQueryParser.g:2097:71: p_CaseStatement + this.pushFollow(XQueryParser.FOLLOW_p_CaseStatement_in_p_TypeswitchStatement16844); + p_CaseStatement711=this.p_CaseStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CaseStatement711.getTree()); + + + break; + + default : + if ( cnt244 >= 1 ) { + break loop244; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(244, this.input); + throw eee; + } + cnt244++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_TypeswitchStatement16849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:2097:113: (d= DOLLAR v= p_VarName )? + var alt245=2; + var LA245_0 = this.input.LA(1); + + if ( (LA245_0==DOLLAR) ) { + alt245=1; + } + switch (alt245) { + case 1 : + // xquery/XQueryParser.g:2097:114: d= DOLLAR v= p_VarName + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TypeswitchStatement16856); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TypeswitchStatement16860); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TypeswitchStatement16868); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_TypeswitchStatement16872); + p_Hybrid712=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid712.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CaseStatement_return: (function() { + XQueryParser.p_CaseStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CaseStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2101:1: p_CaseStatement : k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_CaseStatement" + p_CaseStatement: function() { + var retval = new XQueryParser.p_CaseStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var AS713 = null; + var v = null; + var p_SequenceType714 = null; + var p_Hybrid715 = null; + + var k_tree=null; + var d_tree=null; + var AS713_tree=null; + + try { + // xquery/XQueryParser.g:2102:9: (k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2102:11: k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_CaseStatement16901); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:2102:33: (d= DOLLAR v= p_VarName AS )? + var alt246=2; + var LA246_0 = this.input.LA(1); + + if ( (LA246_0==DOLLAR) ) { + alt246=1; + } + switch (alt246) { + case 1 : + // xquery/XQueryParser.g:2102:34: d= DOLLAR v= p_VarName AS + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CaseStatement16908); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CaseStatement16912); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + AS713=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CaseStatement16916); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + AS713_tree = this.adaptor.create(AS713); + this.adaptor.addChild(root_0, AS713_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_CaseStatement16920); + p_SequenceType714=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType714.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_CaseStatement16924); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_CaseStatement16928); + p_Hybrid715=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid715.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDeclStatement_return: (function() { + XQueryParser.p_VarDeclStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDeclStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2106:1: p_VarDeclStatement : ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON ; + // $ANTLR start "p_VarDeclStatement" + p_VarDeclStatement: function() { + var retval = new XQueryParser.p_VarDeclStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var e = null; + var BIND718 = null; + var COMMA720 = null; + var BIND722 = null; + var SEMICOLON724 = null; + var v = null; + var w = null; + var p_Annotation716 = null; + var p_TypeDeclaration717 = null; + var p_ExprSingle719 = null; + var p_TypeDeclaration721 = null; + var p_ExprSingle723 = null; + + var k_tree=null; + var d_tree=null; + var e_tree=null; + var BIND718_tree=null; + var COMMA720_tree=null; + var BIND722_tree=null; + var SEMICOLON724_tree=null; + + try { + // xquery/XQueryParser.g:2107:9: ( ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON ) + // xquery/XQueryParser.g:2107:11: ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2107:11: ( p_Annotation )* + loop247: + do { + var alt247=2; + var LA247_0 = this.input.LA(1); + + if ( (LA247_0==ANN_PERCENT) ) { + alt247=1; + } + + + switch (alt247) { + case 1 : + // xquery/XQueryParser.g:2107:11: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_p_VarDeclStatement16955); + p_Annotation716=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation716.getTree()); + + + break; + + default : + break loop247; + } + } while (true); + + k=this.match(this.input,VARIABLE,XQueryParser.FOLLOW_VARIABLE_in_p_VarDeclStatement16960); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDeclStatement16966); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarDeclStatement16970); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:2107:98: ( p_TypeDeclaration )? + var alt248=2; + var LA248_0 = this.input.LA(1); + + if ( (LA248_0==AS) ) { + alt248=1; + } + switch (alt248) { + case 1 : + // xquery/XQueryParser.g:2107:98: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement16974); + p_TypeDeclaration717=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration717.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2107:117: ( BIND p_ExprSingle[true] )? + var alt249=2; + var LA249_0 = this.input.LA(1); + + if ( (LA249_0==BIND) ) { + alt249=1; + } + switch (alt249) { + case 1 : + // xquery/XQueryParser.g:2107:118: BIND p_ExprSingle[true] + BIND718=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDeclStatement16978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND718_tree = this.adaptor.create(BIND718); + this.adaptor.addChild(root_0, BIND718_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDeclStatement16980); + p_ExprSingle719=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle719.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2108:11: ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* + loop252: + do { + var alt252=2; + var LA252_0 = this.input.LA(1); + + if ( (LA252_0==COMMA) ) { + alt252=1; + } + + + switch (alt252) { + case 1 : + // xquery/XQueryParser.g:2108:12: COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? + COMMA720=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_VarDeclStatement16996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA720_tree = this.adaptor.create(COMMA720); + this.adaptor.addChild(root_0, COMMA720_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDeclStatement17000); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarDeclStatement17004); + w=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + // xquery/XQueryParser.g:2108:65: ( p_TypeDeclaration )? + var alt250=2; + var LA250_0 = this.input.LA(1); + + if ( (LA250_0==AS) ) { + alt250=1; + } + switch (alt250) { + case 1 : + // xquery/XQueryParser.g:2108:65: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement17008); + p_TypeDeclaration721=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration721.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2108:84: ( BIND p_ExprSingle[true] )? + var alt251=2; + var LA251_0 = this.input.LA(1); + + if ( (LA251_0==BIND) ) { + alt251=1; + } + switch (alt251) { + case 1 : + // xquery/XQueryParser.g:2108:85: BIND p_ExprSingle[true] + BIND722=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDeclStatement17012); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND722_tree = this.adaptor.create(BIND722); + this.adaptor.addChild(root_0, BIND722_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDeclStatement17014); + p_ExprSingle723=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle723.getTree()); + + + break; + + } + + + + break; + + default : + break loop252; + } + } while (true); + + SEMICOLON724=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_VarDeclStatement17031); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON724_tree = this.adaptor.create(SEMICOLON724); + this.adaptor.addChild(root_0, SEMICOLON724_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WhileStatement_return: (function() { + XQueryParser.p_WhileStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WhileStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2113:1: p_WhileStatement : k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] ; + // $ANTLR start "p_WhileStatement" + p_WhileStatement: function() { + var retval = new XQueryParser.p_WhileStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN725 = null; + var RPAREN727 = null; + var p_Expr726 = null; + var p_Hybrid728 = null; + + var k_tree=null; + var LPAREN725_tree=null; + var RPAREN727_tree=null; + + try { + // xquery/XQueryParser.g:2114:9: (k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2114:11: k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WHILE,XQueryParser.FOLLOW_WHILE_in_p_WhileStatement17059); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN725=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_WhileStatement17063); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN725_tree = this.adaptor.create(LPAREN725); + this.adaptor.addChild(root_0, LPAREN725_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_WhileStatement17065); + p_Expr726=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr726.getTree()); + RPAREN727=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_WhileStatement17068); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN727_tree = this.adaptor.create(RPAREN727); + this.adaptor.addChild(root_0, RPAREN727_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_WhileStatement17070); + p_Hybrid728=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid728.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExprSimple_return: (function() { + XQueryParser.p_ExprSimple_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExprSimple_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2118:1: p_ExprSimple : ( p_QuantifiedExpr | p_OrExpr | {...}? => pg_UpdateExpr ); + // $ANTLR start "p_ExprSimple" + p_ExprSimple: function() { + var retval = new XQueryParser.p_ExprSimple_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QuantifiedExpr729 = null; + var p_OrExpr730 = null; + var pg_UpdateExpr731 = null; + + + try { + // xquery/XQueryParser.g:2119:9: ( p_QuantifiedExpr | p_OrExpr | {...}? => pg_UpdateExpr ) + var alt253=3; + alt253 = this.dfa253.predict(this.input); + switch (alt253) { + case 1 : + // xquery/XQueryParser.g:2119:11: p_QuantifiedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QuantifiedExpr_in_p_ExprSimple17097); + p_QuantifiedExpr729=this.p_QuantifiedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QuantifiedExpr729.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2120:11: p_OrExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrExpr_in_p_ExprSimple17109); + p_OrExpr730=this.p_OrExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrExpr730.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:2121:11: {...}? => pg_UpdateExpr + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ExprSimple", "this.lc(XQU)"); + } + this.pushFollow(XQueryParser.FOLLOW_pg_UpdateExpr_in_p_ExprSimple17124); + pg_UpdateExpr731=this.pg_UpdateExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_UpdateExpr731.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockExpr_return: (function() { + XQueryParser.p_BlockExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2125:1: p_BlockExpr : LBRACKET p_StatementsAndExpr RBRACKET ; + // $ANTLR start "p_BlockExpr" + p_BlockExpr: function() { + var retval = new XQueryParser.p_BlockExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET732 = null; + var RBRACKET734 = null; + var p_StatementsAndExpr733 = null; + + var LBRACKET732_tree=null; + var RBRACKET734_tree=null; + + try { + // xquery/XQueryParser.g:2126:9: ( LBRACKET p_StatementsAndExpr RBRACKET ) + // xquery/XQueryParser.g:2126:11: LBRACKET p_StatementsAndExpr RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET732=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockExpr17150); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET732_tree = this.adaptor.create(LBRACKET732); + this.adaptor.addChild(root_0, LBRACKET732_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndExpr_in_p_BlockExpr17152); + p_StatementsAndExpr733=this.p_StatementsAndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndExpr733.getTree()); + RBRACKET734=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockExpr17154); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET734_tree = this.adaptor.create(RBRACKET734); + this.adaptor.addChild(root_0, RBRACKET734_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CollectionDecl_return: (function() { + XQueryParser.p_CollectionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CollectionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2133:1: p_CollectionDecl : k= COLLECTION p_QName ( p_CollectionTypeDecl )? ; + // $ANTLR start "p_CollectionDecl" + p_CollectionDecl: function() { + var retval = new XQueryParser.p_CollectionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName735 = null; + var p_CollectionTypeDecl736 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2134:9: (k= COLLECTION p_QName ( p_CollectionTypeDecl )? ) + // xquery/XQueryParser.g:2134:11: k= COLLECTION p_QName ( p_CollectionTypeDecl )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_CollectionDecl17185); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_CollectionDecl17189); + p_QName735=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName735.getTree()); + // xquery/XQueryParser.g:2134:47: ( p_CollectionTypeDecl )? + var alt254=2; + var LA254_0 = this.input.LA(1); + + if ( (LA254_0==AS) ) { + alt254=1; + } + switch (alt254) { + case 1 : + // xquery/XQueryParser.g:2134:47: p_CollectionTypeDecl + this.pushFollow(XQueryParser.FOLLOW_p_CollectionTypeDecl_in_p_CollectionDecl17191); + p_CollectionTypeDecl736=this.p_CollectionTypeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CollectionTypeDecl736.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CollectionTypeDecl_return: (function() { + XQueryParser.p_CollectionTypeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CollectionTypeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2137:1: p_CollectionTypeDecl : (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) ; + // $ANTLR start "p_CollectionTypeDecl" + p_CollectionTypeDecl: function() { + var retval = new XQueryParser.p_CollectionTypeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_KindTest737 = null; + var p_OccurrenceIndicator738 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2138:9: ( (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) ) + // xquery/XQueryParser.g:2138:11: (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2138:11: (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) + // xquery/XQueryParser.g:2138:12: k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CollectionTypeDecl17220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_CollectionTypeDecl17224); + p_KindTest737=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_KindTest737.getTree()); + // xquery/XQueryParser.g:2138:43: ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? + var alt255=2; + var LA255_0 = this.input.LA(1); + + if ( ((LA255_0>=QUESTION && LA255_0<=PLUS)) && (this.synpred18_XQueryParser())) { + alt255=1; + } + switch (alt255) { + case 1 : + // xquery/XQueryParser.g:2138:44: ( p_OccurrenceIndicator )=> p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_CollectionTypeDecl17233); + p_OccurrenceIndicator738=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OccurrenceIndicator738.getTree()); + + + break; + + } + + + + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexDecl_return: (function() { + XQueryParser.p_IndexDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2141:1: p_IndexDecl : k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* ; + // $ANTLR start "p_IndexDecl" + p_IndexDecl: function() { + var retval = new XQueryParser.p_IndexDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA742 = null; + var p_IndexName739 = null; + var p_IndexDomainExpr740 = null; + var p_IndexKeySpec741 = null; + var p_IndexKeySpec743 = null; + + var k_tree=null; + var COMMA742_tree=null; + + try { + // xquery/XQueryParser.g:2142:9: (k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* ) + // xquery/XQueryParser.g:2142:11: k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INDEX,XQueryParser.FOLLOW_INDEX_in_p_IndexDecl17263); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexName_in_p_IndexDecl17267); + p_IndexName739=this.p_IndexName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexName739.getTree()); + k=this.match(this.input,ON,XQueryParser.FOLLOW_ON_in_p_IndexDecl17271); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_IndexDecl17277); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexDomainExpr_in_p_IndexDecl17281); + p_IndexDomainExpr740=this.p_IndexDomainExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexDomainExpr740.getTree()); + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_IndexDecl17285); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeySpec_in_p_IndexDecl17289); + p_IndexKeySpec741=this.p_IndexKeySpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeySpec741.getTree()); + // xquery/XQueryParser.g:2142:142: ( COMMA p_IndexKeySpec )* + loop256: + do { + var alt256=2; + var LA256_0 = this.input.LA(1); + + if ( (LA256_0==COMMA) ) { + alt256=1; + } + + + switch (alt256) { + case 1 : + // xquery/XQueryParser.g:2142:143: COMMA p_IndexKeySpec + COMMA742=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_IndexDecl17292); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA742_tree = this.adaptor.create(COMMA742); + this.adaptor.addChild(root_0, COMMA742_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeySpec_in_p_IndexDecl17294); + p_IndexKeySpec743=this.p_IndexKeySpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeySpec743.getTree()); + + + break; + + default : + break loop256; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexName_return: (function() { + XQueryParser.p_IndexName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2145:1: p_IndexName : p_QName ; + // $ANTLR start "p_IndexName" + p_IndexName: function() { + var retval = new XQueryParser.p_IndexName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName744 = null; + + + try { + // xquery/XQueryParser.g:2146:9: ( p_QName ) + // xquery/XQueryParser.g:2146:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_IndexName17321); + p_QName744=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName744.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexDomainExpr_return: (function() { + XQueryParser.p_IndexDomainExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexDomainExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2149:1: p_IndexDomainExpr : p_PathExpr ; + // $ANTLR start "p_IndexDomainExpr" + p_IndexDomainExpr: function() { + var retval = new XQueryParser.p_IndexDomainExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PathExpr745 = null; + + + try { + // xquery/XQueryParser.g:2150:9: ( p_PathExpr ) + // xquery/XQueryParser.g:2150:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_IndexDomainExpr17346); + p_PathExpr745=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr745.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeySpec_return: (function() { + XQueryParser.p_IndexKeySpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeySpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2153:1: p_IndexKeySpec : p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? ; + // $ANTLR start "p_IndexKeySpec" + p_IndexKeySpec: function() { + var retval = new XQueryParser.p_IndexKeySpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_IndexKeyExpr746 = null; + var p_IndexKeyTypeDecl747 = null; + var p_IndexKeyCollation748 = null; + + + try { + // xquery/XQueryParser.g:2154:9: ( p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? ) + // xquery/XQueryParser.g:2154:11: p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyExpr_in_p_IndexKeySpec17371); + p_IndexKeyExpr746=this.p_IndexKeyExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyExpr746.getTree()); + // xquery/XQueryParser.g:2154:26: ( p_IndexKeyTypeDecl )? + var alt257=2; + var LA257_0 = this.input.LA(1); + + if ( (LA257_0==AS) ) { + alt257=1; + } + switch (alt257) { + case 1 : + // xquery/XQueryParser.g:2154:26: p_IndexKeyTypeDecl + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyTypeDecl_in_p_IndexKeySpec17373); + p_IndexKeyTypeDecl747=this.p_IndexKeyTypeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyTypeDecl747.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2154:46: ( p_IndexKeyCollation )? + var alt258=2; + var LA258_0 = this.input.LA(1); + + if ( (LA258_0==COLLATION) ) { + alt258=1; + } + switch (alt258) { + case 1 : + // xquery/XQueryParser.g:2154:46: p_IndexKeyCollation + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyCollation_in_p_IndexKeySpec17376); + p_IndexKeyCollation748=this.p_IndexKeyCollation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyCollation748.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyExpr_return: (function() { + XQueryParser.p_IndexKeyExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2157:1: p_IndexKeyExpr : p_PathExpr ; + // $ANTLR start "p_IndexKeyExpr" + p_IndexKeyExpr: function() { + var retval = new XQueryParser.p_IndexKeyExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PathExpr749 = null; + + + try { + // xquery/XQueryParser.g:2158:9: ( p_PathExpr ) + // xquery/XQueryParser.g:2158:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_IndexKeyExpr17402); + p_PathExpr749=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr749.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyTypeDecl_return: (function() { + XQueryParser.p_IndexKeyTypeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyTypeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2161:1: p_IndexKeyTypeDecl : k= AS p_AtomicType ( p_OccurrenceIndicator )? ; + // $ANTLR start "p_IndexKeyTypeDecl" + p_IndexKeyTypeDecl: function() { + var retval = new XQueryParser.p_IndexKeyTypeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AtomicType750 = null; + var p_OccurrenceIndicator751 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2162:9: (k= AS p_AtomicType ( p_OccurrenceIndicator )? ) + // xquery/XQueryParser.g:2162:11: k= AS p_AtomicType ( p_OccurrenceIndicator )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_IndexKeyTypeDecl17429); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AtomicType_in_p_IndexKeyTypeDecl17433); + p_AtomicType750=this.p_AtomicType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicType750.getTree()); + // xquery/XQueryParser.g:2162:44: ( p_OccurrenceIndicator )? + var alt259=2; + var LA259_0 = this.input.LA(1); + + if ( ((LA259_0>=QUESTION && LA259_0<=PLUS)) ) { + alt259=1; + } + switch (alt259) { + case 1 : + // xquery/XQueryParser.g:2162:44: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_IndexKeyTypeDecl17435); + p_OccurrenceIndicator751=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OccurrenceIndicator751.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AtomicType_return: (function() { + XQueryParser.p_AtomicType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AtomicType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2165:1: p_AtomicType : p_QName ; + // $ANTLR start "p_AtomicType" + p_AtomicType: function() { + var retval = new XQueryParser.p_AtomicType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName752 = null; + + + try { + // xquery/XQueryParser.g:2166:9: ( p_QName ) + // xquery/XQueryParser.g:2166:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AtomicType17461); + p_QName752=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName752.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyCollation_return: (function() { + XQueryParser.p_IndexKeyCollation_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyCollation_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2169:1: p_IndexKeyCollation : k= COLLATION p_StringLiteral ; + // $ANTLR start "p_IndexKeyCollation" + p_IndexKeyCollation: function() { + var retval = new XQueryParser.p_IndexKeyCollation_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_StringLiteral753 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2170:9: (k= COLLATION p_StringLiteral ) + // xquery/XQueryParser.g:2170:11: k= COLLATION p_StringLiteral + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_IndexKeyCollation17488); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_IndexKeyCollation17492); + p_StringLiteral753=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral753.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICDecl_return: (function() { + XQueryParser.p_ICDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2173:1: p_ICDecl : k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) ; + // $ANTLR start "p_ICDecl" + p_ICDecl: function() { + var retval = new XQueryParser.p_ICDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName754 = null; + var p_ICCollection755 = null; + var p_ICForeignKey756 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2174:9: (k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) ) + // xquery/XQueryParser.g:2174:11: k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INTEGRITY,XQueryParser.FOLLOW_INTEGRITY_in_p_ICDecl17519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONSTRAINT,XQueryParser.FOLLOW_CONSTRAINT_in_p_ICDecl17525); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICDecl17529); + p_QName754=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName754.getTree()); + // xquery/XQueryParser.g:2174:74: ( p_ICCollection | p_ICForeignKey ) + var alt260=2; + var LA260_0 = this.input.LA(1); + + if ( (LA260_0==ON) ) { + alt260=1; + } + else if ( (LA260_0==FOREIGN) ) { + alt260=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 260, 0, this.input); + + throw nvae; + } + switch (alt260) { + case 1 : + // xquery/XQueryParser.g:2174:75: p_ICCollection + this.pushFollow(XQueryParser.FOLLOW_p_ICCollection_in_p_ICDecl17532); + p_ICCollection755=this.p_ICCollection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollection755.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2174:92: p_ICForeignKey + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKey_in_p_ICDecl17536); + p_ICForeignKey756=this.p_ICForeignKey(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKey756.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollection_return: (function() { + XQueryParser.p_ICCollection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2177:1: p_ICCollection : k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) ; + // $ANTLR start "p_ICCollection" + p_ICCollection: function() { + var retval = new XQueryParser.p_ICCollection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName757 = null; + var p_ICCollSequence758 = null; + var p_ICCollSequenceUnique759 = null; + var p_ICCollNode760 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2178:9: (k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) ) + // xquery/XQueryParser.g:2178:11: k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ON,XQueryParser.FOLLOW_ON_in_p_ICCollection17564); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_ICCollection17570); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollection17574); + p_QName757=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName757.getTree()); + // xquery/XQueryParser.g:2178:67: ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) + var alt261=3; + switch ( this.input.LA(1) ) { + case DOLLAR: + alt261=1; + break; + case NODE: + alt261=2; + break; + case FOREACH: + alt261=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 261, 0, this.input); + + throw nvae; + } + + switch (alt261) { + case 1 : + // xquery/XQueryParser.g:2178:68: p_ICCollSequence + this.pushFollow(XQueryParser.FOLLOW_p_ICCollSequence_in_p_ICCollection17577); + p_ICCollSequence758=this.p_ICCollSequence(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollSequence758.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2178:87: p_ICCollSequenceUnique + this.pushFollow(XQueryParser.FOLLOW_p_ICCollSequenceUnique_in_p_ICCollection17581); + p_ICCollSequenceUnique759=this.p_ICCollSequenceUnique(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollSequenceUnique759.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:2178:112: p_ICCollNode + this.pushFollow(XQueryParser.FOLLOW_p_ICCollNode_in_p_ICCollection17585); + p_ICCollNode760=this.p_ICCollNode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollNode760.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollSequence_return: (function() { + XQueryParser.p_ICCollSequence_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollSequence_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2181:1: p_ICCollSequence : d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ; + // $ANTLR start "p_ICCollSequence" + p_ICCollSequence: function() { + var retval = new XQueryParser.p_ICCollSequence_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var v = null; + var p_ExprSingle761 = null; + + var d_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:2182:9: (d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ) + // xquery/XQueryParser.g:2182:11: d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollSequence17613); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollSequence17617); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollSequence17623); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ICCollSequence17627); + p_ExprSingle761=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle761.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollSequenceUnique_return: (function() { + XQueryParser.p_ICCollSequenceUnique_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollSequenceUnique_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2185:1: p_ICCollSequenceUnique : k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr ; + // $ANTLR start "p_ICCollSequenceUnique" + p_ICCollSequenceUnique: function() { + var retval = new XQueryParser.p_ICCollSequenceUnique_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_PathExpr762 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2186:9: (k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr ) + // xquery/XQueryParser.g:2186:11: k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICCollSequenceUnique17655); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollSequenceUnique17661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollSequenceUnique17665); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollSequenceUnique17671); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,UNIQUE,XQueryParser.FOLLOW_UNIQUE_in_p_ICCollSequenceUnique17677); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICCollSequenceUnique17683); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ICCollSequenceUnique17687); + p_PathExpr762=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr762.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollNode_return: (function() { + XQueryParser.p_ICCollNode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollNode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2189:1: p_ICCollNode : k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ; + // $ANTLR start "p_ICCollNode" + p_ICCollNode: function() { + var retval = new XQueryParser.p_ICCollNode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_ExprSingle763 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2190:9: (k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ) + // xquery/XQueryParser.g:2190:11: k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOREACH,XQueryParser.FOLLOW_FOREACH_in_p_ICCollNode17714); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICCollNode17720); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollNode17726); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollNode17730); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollNode17736); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ICCollNode17740); + p_ExprSingle763=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle763.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKey_return: (function() { + XQueryParser.p_ICForeignKey_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKey_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2193:1: p_ICForeignKey : k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget ; + // $ANTLR start "p_ICForeignKey" + p_ICForeignKey: function() { + var retval = new XQueryParser.p_ICForeignKey_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeySource764 = null; + var p_ICForeignKeyTarget765 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2194:9: (k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget ) + // xquery/XQueryParser.g:2194:11: k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOREIGN,XQueryParser.FOLLOW_FOREIGN_in_p_ICForeignKey17768); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICForeignKey17774); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeySource_in_p_ICForeignKey17778); + p_ICForeignKeySource764=this.p_ICForeignKeySource(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeySource764.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyTarget_in_p_ICForeignKey17780); + p_ICForeignKeyTarget765=this.p_ICForeignKeyTarget(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyTarget765.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeySource_return: (function() { + XQueryParser.p_ICForeignKeySource_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeySource_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2197:1: p_ICForeignKeySource : k= FROM p_ICForeignKeyValues ; + // $ANTLR start "p_ICForeignKeySource" + p_ICForeignKeySource: function() { + var retval = new XQueryParser.p_ICForeignKeySource_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeyValues766 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2198:9: (k= FROM p_ICForeignKeyValues ) + // xquery/XQueryParser.g:2198:11: k= FROM p_ICForeignKeyValues + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_ICForeignKeySource17807); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeySource17811); + p_ICForeignKeyValues766=this.p_ICForeignKeyValues(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyValues766.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeyTarget_return: (function() { + XQueryParser.p_ICForeignKeyTarget_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeyTarget_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2201:1: p_ICForeignKeyTarget : k= TO p_ICForeignKeyValues ; + // $ANTLR start "p_ICForeignKeyTarget" + p_ICForeignKeyTarget: function() { + var retval = new XQueryParser.p_ICForeignKeyTarget_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeyValues767 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2202:9: (k= TO p_ICForeignKeyValues ) + // xquery/XQueryParser.g:2202:11: k= TO p_ICForeignKeyValues + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_ICForeignKeyTarget17838); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeyTarget17842); + p_ICForeignKeyValues767=this.p_ICForeignKeyValues(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyValues767.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeyValues_return: (function() { + XQueryParser.p_ICForeignKeyValues_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeyValues_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2205:1: p_ICForeignKeyValues : k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr ; + // $ANTLR start "p_ICForeignKeyValues" + p_ICForeignKeyValues: function() { + var retval = new XQueryParser.p_ICForeignKeyValues_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_QName768 = null; + var p_PathExpr769 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2206:9: (k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr ) + // xquery/XQueryParser.g:2206:11: k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_ICForeignKeyValues17869); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICForeignKeyValues17873); + p_QName768=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName768.getTree()); + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICForeignKeyValues17877); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICForeignKeyValues17883); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICForeignKeyValues17887); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICForeignKeyValues17893); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ICForeignKeyValues17897); + p_PathExpr769=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr769.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // $ANTLR start "synpred1_XQueryParser" + synpred1_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:574:11: ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) ) + var alt262=2; + var LA262_0 = this.input.LA(1); + + if ( (LA262_0==FOR) ) { + var LA262_1 = this.input.LA(2); + + if ( (LA262_1==DOLLAR) ) { + alt262=1; + } + else if ( (LA262_1==SLIDING||LA262_1==TUMBLING) ) { + alt262=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 262, 1, this.input); + + throw nvae; + } + } + else if ( (LA262_0==LET) ) { + alt262=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 262, 0, this.input); + + throw nvae; + } + switch (alt262) { + case 1 : + // xquery/XQueryParser.g:574:12: ( ( FOR | LET ) DOLLAR ) + // xquery/XQueryParser.g:574:12: ( ( FOR | LET ) DOLLAR ) + // xquery/XQueryParser.g:574:13: ( FOR | LET ) DOLLAR + if ( this.input.LA(1)==FOR||this.input.LA(1)==LET ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_synpred1_XQueryParser3543); if (this.state.failed) return ; + + + + + + break; + case 2 : + // xquery/XQueryParser.g:574:35: ( FOR ( TUMBLING | SLIDING ) ) + // xquery/XQueryParser.g:574:35: ( FOR ( TUMBLING | SLIDING ) ) + // xquery/XQueryParser.g:574:36: FOR ( TUMBLING | SLIDING ) + this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_synpred1_XQueryParser3549); if (this.state.failed) return ; + if ( this.input.LA(1)==SLIDING||this.input.LA(1)==TUMBLING ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + + + break; + + }}, + // $ANTLR end "synpred1_XQueryParser", + + // $ANTLR start "synpred2_XQueryParser" + synpred2_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:575:11: ( IF LPAREN ) + // xquery/XQueryParser.g:575:12: IF LPAREN + this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_synpred2_XQueryParser3577); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred2_XQueryParser3579); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred2_XQueryParser", + + // $ANTLR start "synpred3_XQueryParser" + synpred3_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:576:11: ( SWITCH LPAREN ) + // xquery/XQueryParser.g:576:12: SWITCH LPAREN + this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_synpred3_XQueryParser3607); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred3_XQueryParser3609); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred3_XQueryParser", + + // $ANTLR start "synpred4_XQueryParser" + synpred4_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:577:11: ( TYPESWITCH LPAREN ) + // xquery/XQueryParser.g:577:12: TYPESWITCH LPAREN + this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_synpred4_XQueryParser3633); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred4_XQueryParser3635); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred4_XQueryParser", + + // $ANTLR start "synpred5_XQueryParser" + synpred5_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:578:11: ( TRY LBRACKET ) + // xquery/XQueryParser.g:578:12: TRY LBRACKET + this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_synpred5_XQueryParser3655); if (this.state.failed) return ; + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred5_XQueryParser3657); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred5_XQueryParser", + + // $ANTLR start "synpred6_XQueryParser" + synpred6_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:864:11: ( VALIDATE ( p_ValidationMode | TYPE )? ) + // xquery/XQueryParser.g:864:12: VALIDATE ( p_ValidationMode | TYPE )? + this.match(this.input,VALIDATE,XQueryParser.FOLLOW_VALIDATE_in_synpred6_XQueryParser6189); if (this.state.failed) return ; + // xquery/XQueryParser.g:864:21: ( p_ValidationMode | TYPE )? + var alt263=3; + var LA263_0 = this.input.LA(1); + + if ( (LA263_0==LAX||LA263_0==STRICT) ) { + alt263=1; + } + else if ( (LA263_0==TYPE) ) { + alt263=2; + } + switch (alt263) { + case 1 : + // xquery/XQueryParser.g:864:23: p_ValidationMode + this.pushFollow(XQueryParser.FOLLOW_p_ValidationMode_in_synpred6_XQueryParser6193); + this.p_ValidationMode(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + case 2 : + // xquery/XQueryParser.g:864:42: TYPE + this.match(this.input,TYPE,XQueryParser.FOLLOW_TYPE_in_synpred6_XQueryParser6197); if (this.state.failed) return ; + + + break; + + } + + + + }, + // $ANTLR end "synpred6_XQueryParser", + + // $ANTLR start "synpred7_XQueryParser" + synpred7_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:909:11: ( SLASH p_RelativePathExpr ) + // xquery/XQueryParser.g:909:12: SLASH p_RelativePathExpr + this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_synpred7_XQueryParser6553); if (this.state.failed) return ; + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_synpred7_XQueryParser6555); + this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred7_XQueryParser", + + // $ANTLR start "synpred8_XQueryParser" + synpred8_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:922:11: ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR ) + // xquery/XQueryParser.g: + if ( this.input.LA(1)==LPAREN||(this.input.LA(1)>=DOLLAR && this.input.LA(1)<=LBRACKET)||this.input.LA(1)==SMALLER||(this.input.LA(1)>=APOS && this.input.LA(1)<=QUOT) ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + }, + // $ANTLR end "synpred8_XQueryParser", + + // $ANTLR start "synpred9_XQueryParser" + synpred9_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:923:11: ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) ) + var alt266=3; + switch ( this.input.LA(1) ) { + case ATTRIBUTE: + case ELEMENT: + alt266=1; + break; + case NAMESPACE: + case PROCESSING_INSTRUCTION: + alt266=2; + break; + case COMMENT: + case DOCUMENT: + case TEXT: + alt266=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 266, 0, this.input); + + throw nvae; + } + + switch (alt266) { + case 1 : + // xquery/XQueryParser.g:924:13: ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) + // xquery/XQueryParser.g:924:13: ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) + // xquery/XQueryParser.g:924:14: ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET + if ( this.input.LA(1)==ATTRIBUTE||this.input.LA(1)==ELEMENT ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + // xquery/XQueryParser.g:924:36: ( p_QName )? + var alt264=2; + var LA264_0 = this.input.LA(1); + + if ( ((LA264_0>=ANCESTOR && LA264_0<=SKIP)||(LA264_0>=VALUE && LA264_0<=QUOT_ER)||LA264_0==L_NCName||LA264_0==EXPLICITLY) ) { + alt264=1; + } + switch (alt264) { + case 1 : + // xquery/XQueryParser.g:924:36: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_synpred9_XQueryParser6730); + this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6733); if (this.state.failed) return ; + + + + + + break; + case 2 : + // xquery/XQueryParser.g:925:13: ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) + // xquery/XQueryParser.g:925:13: ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) + // xquery/XQueryParser.g:925:14: ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET + if ( this.input.LA(1)==NAMESPACE||this.input.LA(1)==PROCESSING_INSTRUCTION ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + // xquery/XQueryParser.g:925:51: ( p_NCName )? + var alt265=2; + var LA265_0 = this.input.LA(1); + + if ( ((LA265_0>=ANCESTOR && LA265_0<=SKIP)||(LA265_0>=VALUE && LA265_0<=QUOT_ER)||LA265_0==L_NCName||LA265_0==EXPLICITLY) ) { + alt265=1; + } + switch (alt265) { + case 1 : + // xquery/XQueryParser.g:925:51: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred9_XQueryParser6759); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6762); if (this.state.failed) return ; + + + + + + break; + case 3 : + // xquery/XQueryParser.g:926:13: ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) + // xquery/XQueryParser.g:926:13: ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) + // xquery/XQueryParser.g:926:14: ( DOCUMENT | TEXT | COMMENT ) LBRACKET + if ( this.input.LA(1)==COMMENT||this.input.LA(1)==DOCUMENT||this.input.LA(1)==TEXT ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6792); if (this.state.failed) return ; + + + + + + break; + + }}, + // $ANTLR end "synpred9_XQueryParser", + + // $ANTLR start "synpred10_XQueryParser" + synpred10_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:928:11: ( p_KindTest ) + // xquery/XQueryParser.g:928:12: p_KindTest + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_synpred10_XQueryParser6822); + this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred10_XQueryParser", + + // $ANTLR start "synpred11_XQueryParser" + synpred11_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:929:11: ( p_QName LPAREN ) + // xquery/XQueryParser.g:929:12: p_QName LPAREN + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_synpred11_XQueryParser6841); + this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred11_XQueryParser6843); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred11_XQueryParser", + + // $ANTLR start "synpred12_XQueryParser" + synpred12_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:930:11: ( p_PrimaryExpr ) + // xquery/XQueryParser.g:930:12: p_PrimaryExpr + this.pushFollow(XQueryParser.FOLLOW_p_PrimaryExpr_in_synpred12_XQueryParser6861); + this.p_PrimaryExpr(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred12_XQueryParser", + + // $ANTLR start "synpred13_XQueryParser" + synpred13_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:988:11: ( p_Wildcard ) + // xquery/XQueryParser.g:988:12: p_Wildcard + this.pushFollow(XQueryParser.FOLLOW_p_Wildcard_in_synpred13_XQueryParser7300); + this.p_Wildcard(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred13_XQueryParser", + + // $ANTLR start "synpred14_XQueryParser" + synpred14_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:989:11: ( p_NCName COLON ) + // xquery/XQueryParser.g:989:12: p_NCName COLON + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred14_XQueryParser7319); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_synpred14_XQueryParser7321); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred14_XQueryParser", + + // $ANTLR start "synpred15_XQueryParser" + synpred15_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:990:11: ( p_NCName ) + // xquery/XQueryParser.g:990:12: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred15_XQueryParser7339); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred15_XQueryParser", + + // $ANTLR start "synpred16_XQueryParser" + synpred16_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:1027:11: ( LPAREN ) + // xquery/XQueryParser.g:1027:12: LPAREN + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred16_XQueryParser7595); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred16_XQueryParser", + + // $ANTLR start "synpred17_XQueryParser" + synpred17_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:1306:26: ( p_OccurrenceIndicator ) + // xquery/XQueryParser.g:1306:27: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_synpred17_XQueryParser9654); + this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred17_XQueryParser", + + // $ANTLR start "synpred18_XQueryParser" + synpred18_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:2138:44: ( p_OccurrenceIndicator ) + // xquery/XQueryParser.g:2138:45: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_synpred18_XQueryParser17228); + this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred18_XQueryParser" + + // Delegated rules + + + + synpred3_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred3_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred15_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred15_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred7_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred7_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred9_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred9_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred10_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred10_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred17_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred17_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred5_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred5_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred12_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred12_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred16_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred16_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred14_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred14_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred6_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred6_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred18_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred18_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred8_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred8_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred13_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred13_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred4_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred4_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred11_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred11_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred1_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred1_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred2_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred2_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XQueryParser, { + DFA1_eotS: + "\u000a\uffff", + DFA1_eofS: + "\u0001\u0005\u0001\u0009\u0008\uffff", + DFA1_minS: + "\u0001\u0010\u0001\u0012\u0008\uffff", + DFA1_maxS: + "\u0001\u0154\u0001\u00fe\u0008\uffff", + DFA1_acceptS: + "\u0002\uffff\u0004\u0002\u0001\u0001\u0003\u0002", + DFA1_specialS: + "\u0001\u0001\u0001\u0000\u0008\uffff}>", + DFA1_transitionS: [ + "\u0002\u0002\u0004\u0004\u0001\u0002\u0006\u0004\u0001\u0002"+ + "\u0001\u0004\u0001\u0002\u0002\u0004\u0001\u0002\u0001\u0004"+ + "\u0002\u0002\u0002\u0004\u0003\u0002\u0005\u0004\u0001\u0002"+ + "\u0002\u0004\u0003\u0002\u0005\u0004\u0002\u0002\u0009\u0004"+ + "\u0001\u0002\u0002\u0004\u0002\u0002\u0003\u0004\u0001\u0002"+ + "\u0004\u0004\u0001\u0002\u0001\u0004\u0003\u0002\u0001\u0004"+ + "\u0001\u0002\u0003\u0004\u0004\u0002\u0003\u0004\u0001\u0002"+ + "\u0003\u0004\u0001\u0002\u0001\u0004\u0003\u0002\u0002\u0004"+ + "\u0001\u0001\u000c\u0004\u0001\u0002\u0009\u0004\u0002\u0002"+ + "\u0007\u0004\u0002\u0002\u0001\u0004\u0001\u0002\u0004\u0004"+ + "\u0002\u0002\u0002\u0004\u0001\u0002\u002c\u0004\u0003\u0002"+ + "\u0002\u0004\u0001\u0002\u000a\u0004\u0001\u0002\u0003\u0004"+ + "\u0001\uffff\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff"+ + "\u0001\u0003\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002"+ + "\u000c\uffff\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff"+ + "\u0001\u0004\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0004", + "\u0001\u0007\u0008\uffff\u0002\u0007\u000a\uffff\u0001\u0007"+ + "\u0006\uffff\u0001\u0006\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0005\uffff\u0001\u0007\u0001\uffff\u0002\u0007\u0004\uffff"+ + "\u0003\u0007\u0002\uffff\u0001\u0007\u0002\uffff\u0002\u0007"+ + "\u0002\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0014\uffff"+ + "\u0002\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0006"+ + "\u0032\uffff\u0001\u0007\u003b\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u000b\u0007\u0002\uffff"+ + "\u0001\u0007\u0003\uffff\u0001\u0008\u0001\u0007", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA1_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_eotS), + DFA1_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_eofS), + DFA1_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA1_minS), + DFA1_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA1_maxS), + DFA1_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_acceptS), + DFA1_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_specialS), + DFA1_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA1_transitionS.length; + for (i=0; i=CAST && LA1_1<=CASTABLE)||LA1_1==DIV||LA1_1==EQ||LA1_1==EXCEPT||LA1_1==GE||(LA1_1>=GT && LA1_1<=IDIV)||(LA1_1>=INSTANCE && LA1_1<=IS)||LA1_1==LE||(LA1_1>=LT && LA1_1<=MOD)||LA1_1==NE||LA1_1==OR||(LA1_1>=TO && LA1_1<=TREAT)||LA1_1==UNION||LA1_1==CONTAINS||(LA1_1>=CONCAT && LA1_1<=LPAREN)||LA1_1==LSQUARE||LA1_1==EQUAL||LA1_1==NOTEQUAL||LA1_1==COMMA||(LA1_1>=STAR && LA1_1<=SLASH_SLASH)||LA1_1==COLON||LA1_1==VBAR) ) {s = 7;} + + else if ( (LA1_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA1_1==EOF) ) {s = 9;} + + + input.seek(index1_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA1_0 = input.LA(1); + + + var index1_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA1_0==XQUERY) ) {s = 1;} + + else if ( ((LA1_0>=ANCESTOR && LA1_0<=ANCESTOR_OR_SELF)||LA1_0==ATTRIBUTE||LA1_0==CHILD||LA1_0==COMMENT||LA1_0==DECLARE||(LA1_0>=DESCENDANT && LA1_0<=DESCENDANT_OR_SELF)||(LA1_0>=DOCUMENT && LA1_0<=ELEMENT)||LA1_0==EVERY||(LA1_0>=FOLLOWING && LA1_0<=FOR)||(LA1_0>=IF && LA1_0<=IMPORT)||LA1_0==LET||(LA1_0>=MODULE && LA1_0<=NAMESPACE)||LA1_0==NODE||LA1_0==ORDERED||(LA1_0>=PARENT && LA1_0<=PRECEDING_SIBLING)||LA1_0==PROCESSING_INSTRUCTION||(LA1_0>=SCHEMA_ATTRIBUTE && LA1_0<=SOME)||LA1_0==TEXT||LA1_0==TYPESWITCH||(LA1_0>=UNORDERED && LA1_0<=VARIABLE)||LA1_0==NAMESPACE_NODE||(LA1_0>=SWITCH && LA1_0<=TRY)||(LA1_0>=COPY && LA1_0<=DELETE)||LA1_0==INSERT||(LA1_0>=RENAME && LA1_0<=REPLACE)||LA1_0==UPDATING||(LA1_0>=BREAK && LA1_0<=EXIT)||LA1_0==WHILE||LA1_0==BINARY||LA1_0==LPAREN||(LA1_0>=DOLLAR && LA1_0<=LBRACKET)||(LA1_0>=STAR && LA1_0<=SMALLER)||(LA1_0>=SLASH && LA1_0<=DOT_DOT)||LA1_0==ATTR_SIGN||(LA1_0>=APOS && LA1_0<=QUOT)||(LA1_0>=L_Pragma && LA1_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA1_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( ((LA1_0>=AND && LA1_0<=AT)||(LA1_0>=BASE_URI && LA1_0<=CASTABLE)||LA1_0==COLLATION||(LA1_0>=CONSTRUCTION && LA1_0<=COPY_NAMESPACES)||LA1_0==DEFAULT||(LA1_0>=DESCENDING && LA1_0<=DIV)||(LA1_0>=ELSE && LA1_0<=EQ)||(LA1_0>=EXCEPT && LA1_0<=EXTERNAL)||(LA1_0>=FUNCTION && LA1_0<=IDIV)||(LA1_0>=IN && LA1_0<=LEAST)||(LA1_0>=LT && LA1_0<=MOD)||(LA1_0>=NE && LA1_0<=NO_PRESERVE)||(LA1_0>=OF && LA1_0<=ORDER)||LA1_0==ORDERING||LA1_0==PRESERVE||(LA1_0>=RETURN && LA1_0<=SCHEMA)||(LA1_0>=STABLE && LA1_0<=STRIP)||(LA1_0>=THEN && LA1_0<=TREAT)||LA1_0==UNION||(LA1_0>=VERSION && LA1_0<=WHERE)||(LA1_0>=ALLOWING && LA1_0<=MINUS_SIGN)||(LA1_0>=NAN && LA1_0<=START)||(LA1_0>=TUMBLING && LA1_0<=BEFORE)||LA1_0==FIRST||(LA1_0>=INTO && LA1_0<=NODES)||(LA1_0>=REVALIDATION && LA1_0<=SKIP)||(LA1_0>=VALUE && LA1_0<=WORDS)||(LA1_0>=LOOP && LA1_0<=RETURNING)||(LA1_0>=CHECK && LA1_0<=UNIQUE)||(LA1_0>=AMP_ER && LA1_0<=QUOT_ER)||LA1_0==L_NCName||LA1_0==EXPLICITLY) ) {s = 4;} + + else if ( (LA1_0==EOF) && ((this.lc(XQS)))) {s = 5;} + + + input.seek(index1_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 1, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA2_eotS: + "\u000a\uffff", + DFA2_eofS: + "\u0001\u0005\u0001\u0009\u0008\uffff", + DFA2_minS: + "\u0001\u0010\u0001\u0012\u0008\uffff", + DFA2_maxS: + "\u0001\u0154\u0001\u00fe\u0008\uffff", + DFA2_acceptS: + "\u0002\uffff\u0004\u0002\u0001\u0001\u0003\u0002", + DFA2_specialS: + "\u0001\u0001\u0001\u0000\u0008\uffff}>", + DFA2_transitionS: [ + "\u0002\u0002\u0004\u0004\u0001\u0002\u0006\u0004\u0001\u0002"+ + "\u0001\u0004\u0001\u0002\u0002\u0004\u0001\u0002\u0001\u0004"+ + "\u0002\u0002\u0002\u0004\u0003\u0002\u0005\u0004\u0001\u0002"+ + "\u0002\u0004\u0003\u0002\u0005\u0004\u0002\u0002\u0009\u0004"+ + "\u0001\u0002\u0002\u0004\u0001\u0001\u0001\u0002\u0003\u0004"+ + "\u0001\u0002\u0004\u0004\u0001\u0002\u0001\u0004\u0003\u0002"+ + "\u0001\u0004\u0001\u0002\u0003\u0004\u0004\u0002\u0003\u0004"+ + "\u0001\u0002\u0003\u0004\u0001\u0002\u0001\u0004\u0003\u0002"+ + "\u000f\u0004\u0001\u0002\u0009\u0004\u0002\u0002\u0007\u0004"+ + "\u0002\u0002\u0001\u0004\u0001\u0002\u0004\u0004\u0002\u0002"+ + "\u0002\u0004\u0001\u0002\u002c\u0004\u0003\u0002\u0002\u0004"+ + "\u0001\u0002\u000a\u0004\u0001\u0002\u0003\u0004\u0001\uffff"+ + "\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff\u0001\u0003"+ + "\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002\u000c\uffff"+ + "\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff\u0001\u0004"+ + "\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0004", + "\u0001\u0007\u0008\uffff\u0002\u0007\u000a\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0005\uffff"+ + "\u0001\u0007\u0001\uffff\u0002\u0007\u0004\uffff\u0003\u0007"+ + "\u0002\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0001\uffff"+ + "\u0001\u0006\u0001\u0007\u0005\uffff\u0001\u0007\u0014\uffff"+ + "\u0002\u0007\u0001\uffff\u0001\u0007\u0036\uffff\u0001\u0007"+ + "\u003b\uffff\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007"+ + "\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0008\u0001\u0007", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA2_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_eotS), + DFA2_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_eofS), + DFA2_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA2_minS), + DFA2_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA2_maxS), + DFA2_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_acceptS), + DFA2_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_specialS), + DFA2_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA2_transitionS.length; + for (i=0; i | mm= p_MainModule[$vd.tree] ->)"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA2_1 = input.LA(1); + + + var index2_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA2_1==NAMESPACE) ) {s = 6;} + + else if ( (LA2_1==AND||(LA2_1>=CAST && LA2_1<=CASTABLE)||LA2_1==DIV||LA2_1==EQ||LA2_1==EXCEPT||LA2_1==GE||(LA2_1>=GT && LA2_1<=IDIV)||(LA2_1>=INSTANCE && LA2_1<=IS)||LA2_1==LE||(LA2_1>=LT && LA2_1<=MOD)||LA2_1==NE||LA2_1==OR||(LA2_1>=TO && LA2_1<=TREAT)||LA2_1==UNION||LA2_1==CONTAINS||(LA2_1>=CONCAT && LA2_1<=LPAREN)||LA2_1==LSQUARE||LA2_1==EQUAL||LA2_1==NOTEQUAL||LA2_1==COMMA||(LA2_1>=STAR && LA2_1<=SLASH_SLASH)||LA2_1==COLON||LA2_1==VBAR) ) {s = 7;} + + else if ( (LA2_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA2_1==EOF) ) {s = 9;} + + + input.seek(index2_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA2_0 = input.LA(1); + + + var index2_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA2_0==MODULE) ) {s = 1;} + + else if ( ((LA2_0>=ANCESTOR && LA2_0<=ANCESTOR_OR_SELF)||LA2_0==ATTRIBUTE||LA2_0==CHILD||LA2_0==COMMENT||LA2_0==DECLARE||(LA2_0>=DESCENDANT && LA2_0<=DESCENDANT_OR_SELF)||(LA2_0>=DOCUMENT && LA2_0<=ELEMENT)||LA2_0==EVERY||(LA2_0>=FOLLOWING && LA2_0<=FOR)||(LA2_0>=IF && LA2_0<=IMPORT)||LA2_0==LET||LA2_0==NAMESPACE||LA2_0==NODE||LA2_0==ORDERED||(LA2_0>=PARENT && LA2_0<=PRECEDING_SIBLING)||LA2_0==PROCESSING_INSTRUCTION||(LA2_0>=SCHEMA_ATTRIBUTE && LA2_0<=SOME)||LA2_0==TEXT||LA2_0==TYPESWITCH||(LA2_0>=UNORDERED && LA2_0<=VARIABLE)||LA2_0==NAMESPACE_NODE||(LA2_0>=SWITCH && LA2_0<=TRY)||(LA2_0>=COPY && LA2_0<=DELETE)||LA2_0==INSERT||(LA2_0>=RENAME && LA2_0<=REPLACE)||LA2_0==UPDATING||(LA2_0>=BREAK && LA2_0<=EXIT)||LA2_0==WHILE||LA2_0==BINARY||LA2_0==LPAREN||(LA2_0>=DOLLAR && LA2_0<=LBRACKET)||(LA2_0>=STAR && LA2_0<=SMALLER)||(LA2_0>=SLASH && LA2_0<=DOT_DOT)||LA2_0==ATTR_SIGN||(LA2_0>=APOS && LA2_0<=QUOT)||(LA2_0>=L_Pragma && LA2_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA2_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( ((LA2_0>=AND && LA2_0<=AT)||(LA2_0>=BASE_URI && LA2_0<=CASTABLE)||LA2_0==COLLATION||(LA2_0>=CONSTRUCTION && LA2_0<=COPY_NAMESPACES)||LA2_0==DEFAULT||(LA2_0>=DESCENDING && LA2_0<=DIV)||(LA2_0>=ELSE && LA2_0<=EQ)||(LA2_0>=EXCEPT && LA2_0<=EXTERNAL)||(LA2_0>=FUNCTION && LA2_0<=IDIV)||(LA2_0>=IN && LA2_0<=LEAST)||(LA2_0>=LT && LA2_0<=MOD)||(LA2_0>=NE && LA2_0<=NO_PRESERVE)||(LA2_0>=OF && LA2_0<=ORDER)||LA2_0==ORDERING||LA2_0==PRESERVE||(LA2_0>=RETURN && LA2_0<=SCHEMA)||(LA2_0>=STABLE && LA2_0<=STRIP)||(LA2_0>=THEN && LA2_0<=TREAT)||LA2_0==UNION||(LA2_0>=VERSION && LA2_0<=MINUS_SIGN)||(LA2_0>=NAN && LA2_0<=START)||(LA2_0>=TUMBLING && LA2_0<=BEFORE)||LA2_0==FIRST||(LA2_0>=INTO && LA2_0<=NODES)||(LA2_0>=REVALIDATION && LA2_0<=SKIP)||(LA2_0>=VALUE && LA2_0<=WORDS)||(LA2_0>=LOOP && LA2_0<=RETURNING)||(LA2_0>=CHECK && LA2_0<=UNIQUE)||(LA2_0>=AMP_ER && LA2_0<=QUOT_ER)||LA2_0==L_NCName||LA2_0==EXPLICITLY) ) {s = 4;} + + else if ( (LA2_0==EOF) && ((this.lc(XQS)))) {s = 5;} + + + input.seek(index2_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 2, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA6_eotS: + "\u000a\uffff", + DFA6_eofS: + "\u0001\u0005\u0001\u0009\u0002\uffff\u0001\u0009\u0005\uffff", + DFA6_minS: + "\u0001\u0010\u0001\u0012\u0002\uffff\u0001\u0012\u0005\uffff", + DFA6_maxS: + "\u0001\u0154\u0001\u00fe\u0002\uffff\u0001\u00fe\u0005\uffff", + DFA6_acceptS: + "\u0002\uffff\u0002\u0002\u0001\uffff\u0001\u0002\u0002\u0001\u0002"+ + "\u0002", + DFA6_specialS: + "\u0001\u0002\u0001\u0001\u0002\uffff\u0001\u0000\u0005\uffff}>", + DFA6_transitionS: [ + "\u0002\u0002\u0004\u0005\u0001\u0002\u0006\u0005\u0001\u0002"+ + "\u0001\u0005\u0001\u0002\u0002\u0005\u0001\u0001\u0001\u0005"+ + "\u0002\u0002\u0002\u0005\u0003\u0002\u0005\u0005\u0001\u0002"+ + "\u0002\u0005\u0003\u0002\u0005\u0005\u0001\u0002\u0001\u0004"+ + "\u0009\u0005\u0001\u0002\u0003\u0005\u0001\u0002\u0003\u0005"+ + "\u0001\u0002\u0004\u0005\u0001\u0002\u0001\u0005\u0003\u0002"+ + "\u0001\u0005\u0001\u0002\u0003\u0005\u0004\u0002\u0003\u0005"+ + "\u0001\u0002\u0003\u0005\u0001\u0002\u0001\u0005\u0003\u0002"+ + "\u000f\u0005\u0001\u0002\u0009\u0005\u0002\u0002\u0007\u0005"+ + "\u0002\u0002\u0001\u0005\u0001\u0002\u0004\u0005\u0002\u0002"+ + "\u0002\u0005\u0001\u0002\u002c\u0005\u0003\u0002\u0002\u0005"+ + "\u0001\u0002\u000a\u0005\u0001\u0002\u0003\u0005\u0001\uffff"+ + "\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff\u0001\u0003"+ + "\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002\u000c\uffff"+ + "\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff\u0001\u0005"+ + "\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0005", + "\u0001\u0005\u0004\uffff\u0002\u0007\u0002\uffff\u0002\u0005"+ + "\u0003\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0005\u0007\uffff\u0001\u0005\u0001\uffff\u0001\u0005"+ + "\u0004\uffff\u0002\u0005\u0001\uffff\u0002\u0005\u0004\uffff"+ + "\u0003\u0005\u0002\uffff\u0001\u0005\u0002\uffff\u0002\u0005"+ + "\u0001\uffff\u0001\u0007\u0001\u0005\u0004\uffff\u0002\u0005"+ + "\u0002\uffff\u0001\u0007\u0011\uffff\u0002\u0005\u0001\uffff"+ + "\u0001\u0005\u0002\uffff\u0001\u0005\u0005\uffff\u0001\u0005"+ + "\u0001\uffff\u0001\u0007\u0024\uffff\u0001\u0006\u0001\uffff"+ + "\u0001\u0005\u0004\uffff\u0001\u0005\u0007\uffff\u0001\u0007"+ + "\u0026\uffff\u0001\u0005\u0003\uffff\u0002\u0005\u0007\uffff"+ + "\u0002\u0005\u0004\uffff\u0001\u0005\u0001\uffff\u0001\u0005"+ + "\u0001\uffff\u0002\u0005\u0002\uffff\u0001\u0005\u0001\uffff"+ + "\u000b\u0005\u0002\uffff\u0001\u0005\u0003\uffff\u0001\u0008"+ + "\u0001\u0005", + "", + "", + "\u0001\u0009\u0008\uffff\u0002\u0009\u000a\uffff\u0001\u0009"+ + "\u0007\uffff\u0001\u0009\u0001\uffff\u0001\u0009\u0005\uffff"+ + "\u0001\u0009\u0001\uffff\u0002\u0009\u0004\uffff\u0003\u0009"+ + "\u0002\uffff\u0001\u0009\u0002\uffff\u0002\u0009\u0001\u0007"+ + "\u0001\uffff\u0001\u0009\u0005\uffff\u0001\u0009\u000a\uffff"+ + "\u0001\u0007\u0009\uffff\u0002\u0009\u0001\uffff\u0001\u0009"+ + "\u0036\uffff\u0001\u0009\u003b\uffff\u0002\u0009\u0004\uffff"+ + "\u0001\u0009\u0001\uffff\u0001\u0009\u0001\uffff\u0001\u0009"+ + "\u0003\uffff\u0001\u0009\u0001\uffff\u000b\u0009\u0002\uffff"+ + "\u0001\u0009\u0003\uffff\u0001\u0008\u0001\u0009", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA6_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_eotS), + DFA6_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_eofS), + DFA6_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA6_minS), + DFA6_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA6_maxS), + DFA6_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_acceptS), + DFA6_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_specialS), + DFA6_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA6_transitionS.length; + for (i=0; i=CAST && LA6_4<=CASTABLE)||LA6_4==DIV||LA6_4==EQ||LA6_4==EXCEPT||LA6_4==GE||(LA6_4>=GT && LA6_4<=IDIV)||(LA6_4>=INSTANCE && LA6_4<=IS)||LA6_4==LE||(LA6_4>=LT && LA6_4<=MOD)||LA6_4==NE||LA6_4==OR||(LA6_4>=TO && LA6_4<=TREAT)||LA6_4==UNION||LA6_4==CONTAINS||(LA6_4>=CONCAT && LA6_4<=LPAREN)||LA6_4==LSQUARE||LA6_4==EQUAL||LA6_4==NOTEQUAL||LA6_4==COMMA||(LA6_4>=STAR && LA6_4<=SLASH_SLASH)||LA6_4==COLON||LA6_4==VBAR) ) {s = 9;} + + else if ( (LA6_4==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA6_4==MODULE||LA6_4==SCHEMA) ) {s = 7;} + + + input.seek(index6_4); + if ( s>=0 ) return s; + break; + case 1 : + var LA6_1 = input.LA(1); + + + var index6_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA6_1==REVALIDATION) && ((this.lc(XQU)))) {s = 6;} + + else if ( ((LA6_1>=BASE_URI && LA6_1<=BOUNDARY_SPACE)||(LA6_1>=CONSTRUCTION && LA6_1<=COPY_NAMESPACES)||LA6_1==DEFAULT||LA6_1==NAMESPACE||LA6_1==ORDERING||LA6_1==DECIMAL_FORMAT||LA6_1==FT_OPTION) ) {s = 7;} + + else if ( (LA6_1==AND||(LA6_1>=CAST && LA6_1<=CASTABLE)||LA6_1==DIV||LA6_1==EQ||LA6_1==EXCEPT||(LA6_1>=FUNCTION && LA6_1<=GE)||(LA6_1>=GT && LA6_1<=IDIV)||(LA6_1>=INSTANCE && LA6_1<=IS)||LA6_1==LE||(LA6_1>=LT && LA6_1<=MOD)||LA6_1==NE||(LA6_1>=OPTION && LA6_1<=OR)||(LA6_1>=TO && LA6_1<=TREAT)||LA6_1==UNION||LA6_1==VARIABLE||LA6_1==CONTEXT||LA6_1==UPDATING||LA6_1==CONTAINS||LA6_1==COLLECTION||(LA6_1>=INDEX && LA6_1<=INTEGRITY)||(LA6_1>=CONCAT && LA6_1<=LPAREN)||LA6_1==LSQUARE||LA6_1==EQUAL||(LA6_1>=NOTEQUAL && LA6_1<=ANN_PERCENT)||LA6_1==COMMA||(LA6_1>=STAR && LA6_1<=SLASH_SLASH)||LA6_1==COLON||LA6_1==VBAR) ) {s = 5;} + + else if ( (LA6_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA6_1==EOF) ) {s = 9;} + + + input.seek(index6_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA6_0 = input.LA(1); + + + var index6_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA6_0==DECLARE) ) {s = 1;} + + else if ( ((LA6_0>=ANCESTOR && LA6_0<=ANCESTOR_OR_SELF)||LA6_0==ATTRIBUTE||LA6_0==CHILD||LA6_0==COMMENT||(LA6_0>=DESCENDANT && LA6_0<=DESCENDANT_OR_SELF)||(LA6_0>=DOCUMENT && LA6_0<=ELEMENT)||LA6_0==EVERY||(LA6_0>=FOLLOWING && LA6_0<=FOR)||LA6_0==IF||LA6_0==LET||LA6_0==NAMESPACE||LA6_0==NODE||LA6_0==ORDERED||(LA6_0>=PARENT && LA6_0<=PRECEDING_SIBLING)||LA6_0==PROCESSING_INSTRUCTION||(LA6_0>=SCHEMA_ATTRIBUTE && LA6_0<=SOME)||LA6_0==TEXT||LA6_0==TYPESWITCH||(LA6_0>=UNORDERED && LA6_0<=VARIABLE)||LA6_0==NAMESPACE_NODE||(LA6_0>=SWITCH && LA6_0<=TRY)||(LA6_0>=COPY && LA6_0<=DELETE)||LA6_0==INSERT||(LA6_0>=RENAME && LA6_0<=REPLACE)||LA6_0==UPDATING||(LA6_0>=BREAK && LA6_0<=EXIT)||LA6_0==WHILE||LA6_0==BINARY||LA6_0==LPAREN||(LA6_0>=DOLLAR && LA6_0<=LBRACKET)||(LA6_0>=STAR && LA6_0<=SMALLER)||(LA6_0>=SLASH && LA6_0<=DOT_DOT)||LA6_0==ATTR_SIGN||(LA6_0>=APOS && LA6_0<=QUOT)||(LA6_0>=L_Pragma && LA6_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA6_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( (LA6_0==IMPORT) ) {s = 4;} + + else if ( (LA6_0==EOF||(LA6_0>=AND && LA6_0<=AT)||(LA6_0>=BASE_URI && LA6_0<=CASTABLE)||LA6_0==COLLATION||(LA6_0>=CONSTRUCTION && LA6_0<=COPY_NAMESPACES)||LA6_0==DEFAULT||(LA6_0>=DESCENDING && LA6_0<=DIV)||(LA6_0>=ELSE && LA6_0<=EQ)||(LA6_0>=EXCEPT && LA6_0<=EXTERNAL)||(LA6_0>=FUNCTION && LA6_0<=IDIV)||(LA6_0>=IN && LA6_0<=LEAST)||(LA6_0>=LT && LA6_0<=MODULE)||(LA6_0>=NE && LA6_0<=NO_PRESERVE)||(LA6_0>=OF && LA6_0<=ORDER)||LA6_0==ORDERING||LA6_0==PRESERVE||(LA6_0>=RETURN && LA6_0<=SCHEMA)||(LA6_0>=STABLE && LA6_0<=STRIP)||(LA6_0>=THEN && LA6_0<=TREAT)||LA6_0==UNION||(LA6_0>=VERSION && LA6_0<=MINUS_SIGN)||(LA6_0>=NAN && LA6_0<=START)||(LA6_0>=TUMBLING && LA6_0<=BEFORE)||LA6_0==FIRST||(LA6_0>=INTO && LA6_0<=NODES)||(LA6_0>=REVALIDATION && LA6_0<=SKIP)||(LA6_0>=VALUE && LA6_0<=WORDS)||(LA6_0>=LOOP && LA6_0<=RETURNING)||(LA6_0>=CHECK && LA6_0<=UNIQUE)||(LA6_0>=AMP_ER && LA6_0<=QUOT_ER)||LA6_0==L_NCName||LA6_0==EXPLICITLY) ) {s = 5;} + + + input.seek(index6_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 6, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA9_eotS: + "\u000c\uffff", + DFA9_eofS: + "\u000c\uffff", + DFA9_minS: + "\u0001\u0022\u0001\u0017\u0002\uffff\u0001\u001e\u0007\uffff", + DFA9_maxS: + "\u0001\u0022\u0001\u0099\u0002\uffff\u0001\u0074\u0007\uffff", + DFA9_acceptS: + "\u0002\uffff\u0001\u0007\u0001\u0001\u0001\uffff\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0008\u0001\u0009\u0001\u0002\u0001\u0006", + DFA9_specialS: + "\u0001\uffff\u0001\u0000\u000a\uffff}>", + DFA9_transitionS: [ + "\u0001\u0001", + "\u0001\u0005\u0001\u0003\u0007\uffff\u0001\u0006\u0001\u0008"+ + "\u0001\uffff\u0001\u0004\u0030\uffff\u0001\u0007\u001f\uffff"+ + "\u0001\u0009\u0024\uffff\u0001\u0002", + "", + "", + "\u0001\u000a\u0033\uffff\u0001\u000b\u0021\uffff\u0001\u0009", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA9_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_eotS), + DFA9_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_eofS), + DFA9_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA9_minS), + DFA9_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA9_maxS), + DFA9_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_acceptS), + DFA9_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_specialS), + DFA9_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA9_transitionS.length; + for (i=0; i pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA9_1 = input.LA(1); + + + var index9_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA9_1==REVALIDATION) && ((this.lc(XQU)))) {s = 2;} + + else if ( (LA9_1==BOUNDARY_SPACE) ) {s = 3;} + + else if ( (LA9_1==DEFAULT) ) {s = 4;} + + else if ( (LA9_1==BASE_URI) ) {s = 5;} + + else if ( (LA9_1==CONSTRUCTION) ) {s = 6;} + + else if ( (LA9_1==ORDERING) ) {s = 7;} + + else if ( (LA9_1==COPY_NAMESPACES) ) {s = 8;} + + else if ( (LA9_1==DECIMAL_FORMAT) ) {s = 9;} + + + input.seek(index9_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 9, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA44_eotS: + "\u0048\uffff", + DFA44_eofS: + "\u0001\u0043\u0047\uffff", + DFA44_minS: + "\u0001\u0010\u0042\u0000\u0001\uffff\u0002\u0000\u0002\uffff", + DFA44_maxS: + "\u0001\u0154\u0042\u0000\u0001\uffff\u0002\u0000\u0002\uffff", + DFA44_acceptS: + "\u0043\uffff\u0001\u0001\u0003\uffff\u0001\u0002", + DFA44_specialS: + "\u0001\u0000\u0001\u0001\u0001\u0002\u0001\u0003\u0001\u0004\u0001"+ + "\u0005\u0001\u0006\u0001\u0007\u0001\u0008\u0001\u0009\u0001\u000a\u0001"+ + "\u000b\u0001\u000c\u0001\u000d\u0001\u000e\u0001\u000f\u0001\u0010\u0001"+ + "\u0011\u0001\u0012\u0001\u0013\u0001\u0014\u0001\u0015\u0001\u0016\u0001"+ + "\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001\u001c\u0001"+ + "\u001d\u0001\u001e\u0001\u001f\u0001\u0020\u0001\u0021\u0001\u0022\u0001"+ + "\u0023\u0001\u0024\u0001\u0025\u0001\u0026\u0001\u0027\u0001\u0028\u0001"+ + "\u0029\u0001\u002a\u0001\u002b\u0001\u002c\u0001\u002d\u0001\u002e\u0001"+ + "\u002f\u0001\u0030\u0001\u0031\u0001\u0032\u0001\u0033\u0001\u0034\u0001"+ + "\u0035\u0001\u0036\u0001\u0037\u0001\u0038\u0001\u0039\u0001\u003a\u0001"+ + "\u003b\u0001\u003c\u0001\u003d\u0001\u003e\u0001\u003f\u0001\u0040\u0001"+ + "\u0041\u0001\u0042\u0001\uffff\u0001\u0043\u0001\u0044\u0002\uffff}>", + DFA44_transitionS: [ + "\u0001\u0027\u0001\u002a\u0004\u0044\u0001\u001f\u0006\u0044"+ + "\u0001\u002b\u0001\u0044\u0001\u0022\u0004\u0044\u0001\u002d"+ + "\u0001\u002f\u0002\u0044\u0001\u001a\u0001\u0024\u0001\u0017"+ + "\u0002\u0044\u0001\u0045\u0002\u0044\u0001\u0008\u0002\u0044"+ + "\u0001\u0031\u0001\u0030\u0001\u0001\u0005\u0044\u0001\u0003"+ + "\u0006\u0044\u0001\u0045\u0003\u0044\u0001\u0002\u0003\u0044"+ + "\u0001\u001e\u0003\u0044\u0001\u0037\u0004\u0044\u0001\u0016"+ + "\u0001\u0044\u0001\u0025\u0001\u0029\u0001\u0028\u0001\u0044"+ + "\u0001\u0023\u0003\u0044\u0001\u0035\u0001\u0034\u0001\u002e"+ + "\u0001\u0007\u0003\u0044\u0001\u0020\u0003\u0044\u0001\u0005"+ + "\u0001\u0044\u0001\u0019\u0001\u000b\u0001\u0042\u000f\u0044"+ + "\u0001\u0036\u0009\u0044\u0001\u0004\u0001\u0006\u0007\u0044"+ + "\u0001\u003e\u0001\u003b\u0001\u0044\u0001\u0032\u0004\u0044"+ + "\u0001\u003c\u0001\u003d\u0002\u0044\u0001\u0018\u002c\u0044"+ + "\u0001\u003f\u0001\u0040\u0001\u0041\u0002\u0044\u0001\u0038"+ + "\u000a\u0044\u0001\u0021\u0003\u0044\u0001\uffff\u0001\u000e"+ + "\u0001\uffff\u0001\u0014\u0001\u0026\u0006\uffff\u0001\u0043"+ + "\u0004\uffff\u0001\u0039\u0001\u0009\u0001\u000a\u0001\u001b"+ + "\u0005\uffff\u0001\u000c\u0001\u000d\u0001\u0015\u0001\u002c"+ + "\u000c\uffff\u0001\u0033\u0002\uffff\u0001\u0013\u0001\u0012"+ + "\u0002\uffff\u0001\u0044\u0006\uffff\u0001\u003a\u0001\u001c"+ + "\u0001\u001d\u0001\u000f\u0001\u0010\u0001\u0011\u003b\uffff"+ + "\u0001\u0044", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "\u0001\uffff", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA44_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_eotS), + DFA44_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_eofS), + DFA44_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA44_minS), + DFA44_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA44_maxS), + DFA44_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_acceptS), + DFA44_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_specialS), + DFA44_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA44_transitionS.length; + for (i=0; i p_Program | p_Expr[true,true] );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA44_0 = input.LA(1); + + + var index44_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA44_0==FOR) ) {s = 1;} + + else if ( (LA44_0==LET) ) {s = 2;} + + else if ( (LA44_0==IF) ) {s = 3;} + + else if ( (LA44_0==SWITCH) ) {s = 4;} + + else if ( (LA44_0==TYPESWITCH) ) {s = 5;} + + else if ( (LA44_0==TRY) ) {s = 6;} + + else if ( (LA44_0==SOME) ) {s = 7;} + + else if ( (LA44_0==EVERY) ) {s = 8;} + + else if ( (LA44_0==PLUS) ) {s = 9;} + + else if ( (LA44_0==MINUS) ) {s = 10;} + + else if ( (LA44_0==VALIDATE) ) {s = 11;} + + else if ( (LA44_0==SLASH) ) {s = 12;} + + else if ( (LA44_0==SLASH_SLASH) ) {s = 13;} + + else if ( (LA44_0==LPAREN) ) {s = 14;} + + else if ( (LA44_0==L_IntegerLiteral) ) {s = 15;} + + else if ( (LA44_0==L_DecimalLiteral) ) {s = 16;} + + else if ( (LA44_0==L_DoubleLiteral) ) {s = 17;} + + else if ( (LA44_0==QUOT) ) {s = 18;} + + else if ( (LA44_0==APOS) ) {s = 19;} + + else if ( (LA44_0==DOLLAR) ) {s = 20;} + + else if ( (LA44_0==DOT) ) {s = 21;} + + else if ( (LA44_0==ORDERED) ) {s = 22;} + + else if ( (LA44_0==ELEMENT) ) {s = 23;} + + else if ( (LA44_0==UPDATING) ) {s = 24;} + + else if ( (LA44_0==UNORDERED) ) {s = 25;} + + else if ( (LA44_0==DOCUMENT) ) {s = 26;} + + else if ( (LA44_0==SMALLER) ) {s = 27;} + + else if ( (LA44_0==L_DirCommentConstructor) ) {s = 28;} + + else if ( (LA44_0==L_DirPIConstructor) ) {s = 29;} + + else if ( (LA44_0==NAMESPACE) ) {s = 30;} + + else if ( (LA44_0==ATTRIBUTE) ) {s = 31;} + + else if ( (LA44_0==TEXT) ) {s = 32;} + + else if ( (LA44_0==BINARY) ) {s = 33;} + + else if ( (LA44_0==COMMENT) ) {s = 34;} + + else if ( (LA44_0==PROCESSING_INSTRUCTION) ) {s = 35;} + + else if ( (LA44_0==DOCUMENT_NODE) ) {s = 36;} + + else if ( (LA44_0==PARENT) ) {s = 37;} + + else if ( (LA44_0==LBRACKET) ) {s = 38;} + + else if ( (LA44_0==ANCESTOR) ) {s = 39;} + + else if ( (LA44_0==PRECEDING_SIBLING) ) {s = 40;} + + else if ( (LA44_0==PRECEDING) ) {s = 41;} + + else if ( (LA44_0==ANCESTOR_OR_SELF) ) {s = 42;} + + else if ( (LA44_0==CHILD) ) {s = 43;} + + else if ( (LA44_0==DOT_DOT) ) {s = 44;} + + else if ( (LA44_0==DESCENDANT) ) {s = 45;} + + else if ( (LA44_0==SELF) ) {s = 46;} + + else if ( (LA44_0==DESCENDANT_OR_SELF) ) {s = 47;} + + else if ( (LA44_0==FOLLOWING_SIBLING) ) {s = 48;} + + else if ( (LA44_0==FOLLOWING) ) {s = 49;} + + else if ( (LA44_0==INSERT) ) {s = 50;} + + else if ( (LA44_0==ATTR_SIGN) ) {s = 51;} + + else if ( (LA44_0==SCHEMA_ELEMENT) ) {s = 52;} + + else if ( (LA44_0==SCHEMA_ATTRIBUTE) ) {s = 53;} + + else if ( (LA44_0==NAMESPACE_NODE) ) {s = 54;} + + else if ( (LA44_0==NODE) ) {s = 55;} + + else if ( (LA44_0==WHILE) ) {s = 56;} + + else if ( (LA44_0==STAR) ) {s = 57;} + + else if ( (LA44_0==L_Pragma) ) {s = 58;} + + else if ( (LA44_0==DELETE) ) {s = 59;} + + else if ( (LA44_0==RENAME) ) {s = 60;} + + else if ( (LA44_0==REPLACE) ) {s = 61;} + + else if ( (LA44_0==COPY) ) {s = 62;} + + else if ( (LA44_0==BREAK) ) {s = 63;} + + else if ( (LA44_0==CONTINUE) ) {s = 64;} + + else if ( (LA44_0==EXIT) ) {s = 65;} + + else if ( (LA44_0==VARIABLE) ) {s = 66;} + + else if ( (LA44_0==EOF||LA44_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 67;} + + else if ( ((LA44_0>=AND && LA44_0<=AT)||(LA44_0>=BASE_URI && LA44_0<=CASTABLE)||LA44_0==COLLATION||(LA44_0>=CONSTRUCTION && LA44_0<=DEFAULT)||(LA44_0>=DESCENDING && LA44_0<=DIV)||(LA44_0>=ELSE && LA44_0<=EMPTY)||(LA44_0>=ENCODING && LA44_0<=EQ)||(LA44_0>=EXCEPT && LA44_0<=EXTERNAL)||(LA44_0>=FUNCTION && LA44_0<=IDIV)||(LA44_0>=IMPORT && LA44_0<=IS)||(LA44_0>=LAX && LA44_0<=LEAST)||(LA44_0>=LT && LA44_0<=MODULE)||(LA44_0>=NE && LA44_0<=NO_PRESERVE)||(LA44_0>=OF && LA44_0<=ORDER)||LA44_0==ORDERING||LA44_0==PRESERVE||(LA44_0>=RETURN && LA44_0<=SCHEMA)||(LA44_0>=STABLE && LA44_0<=STRIP)||(LA44_0>=THEN && LA44_0<=TREAT)||LA44_0==UNION||(LA44_0>=VERSION && LA44_0<=MINUS_SIGN)||(LA44_0>=NAN && LA44_0<=START)||(LA44_0>=TUMBLING && LA44_0<=BEFORE)||LA44_0==FIRST||(LA44_0>=INTO && LA44_0<=NODES)||(LA44_0>=REVALIDATION && LA44_0<=SKIP)||(LA44_0>=VALUE && LA44_0<=WORDS)||(LA44_0>=LOOP && LA44_0<=RETURNING)||(LA44_0>=CHECK && LA44_0<=UNIQUE)||(LA44_0>=AMP_ER && LA44_0<=QUOT_ER)||LA44_0==L_NCName||LA44_0==EXPLICITLY) ) {s = 68;} + + else if ( (LA44_0==EMPTY_SEQUENCE||LA44_0==ITEM) ) {s = 69;} + + + input.seek(index44_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA44_1 = input.LA(1); + + + var index44_1 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA44_2 = input.LA(1); + + + var index44_2 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_2); + if ( s>=0 ) return s; + break; + case 3 : + var LA44_3 = input.LA(1); + + + var index44_3 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_3); + if ( s>=0 ) return s; + break; + case 4 : + var LA44_4 = input.LA(1); + + + var index44_4 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_4); + if ( s>=0 ) return s; + break; + case 5 : + var LA44_5 = input.LA(1); + + + var index44_5 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_5); + if ( s>=0 ) return s; + break; + case 6 : + var LA44_6 = input.LA(1); + + + var index44_6 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_6); + if ( s>=0 ) return s; + break; + case 7 : + var LA44_7 = input.LA(1); + + + var index44_7 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_7); + if ( s>=0 ) return s; + break; + case 8 : + var LA44_8 = input.LA(1); + + + var index44_8 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_8); + if ( s>=0 ) return s; + break; + case 9 : + var LA44_9 = input.LA(1); + + + var index44_9 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_9); + if ( s>=0 ) return s; + break; + case 10 : + var LA44_10 = input.LA(1); + + + var index44_10 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_10); + if ( s>=0 ) return s; + break; + case 11 : + var LA44_11 = input.LA(1); + + + var index44_11 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_11); + if ( s>=0 ) return s; + break; + case 12 : + var LA44_12 = input.LA(1); + + + var index44_12 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_12); + if ( s>=0 ) return s; + break; + case 13 : + var LA44_13 = input.LA(1); + + + var index44_13 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_13); + if ( s>=0 ) return s; + break; + case 14 : + var LA44_14 = input.LA(1); + + + var index44_14 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_14); + if ( s>=0 ) return s; + break; + case 15 : + var LA44_15 = input.LA(1); + + + var index44_15 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_15); + if ( s>=0 ) return s; + break; + case 16 : + var LA44_16 = input.LA(1); + + + var index44_16 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_16); + if ( s>=0 ) return s; + break; + case 17 : + var LA44_17 = input.LA(1); + + + var index44_17 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_17); + if ( s>=0 ) return s; + break; + case 18 : + var LA44_18 = input.LA(1); + + + var index44_18 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_18); + if ( s>=0 ) return s; + break; + case 19 : + var LA44_19 = input.LA(1); + + + var index44_19 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_19); + if ( s>=0 ) return s; + break; + case 20 : + var LA44_20 = input.LA(1); + + + var index44_20 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_20); + if ( s>=0 ) return s; + break; + case 21 : + var LA44_21 = input.LA(1); + + + var index44_21 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_21); + if ( s>=0 ) return s; + break; + case 22 : + var LA44_22 = input.LA(1); + + + var index44_22 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_22); + if ( s>=0 ) return s; + break; + case 23 : + var LA44_23 = input.LA(1); + + + var index44_23 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_23); + if ( s>=0 ) return s; + break; + case 24 : + var LA44_24 = input.LA(1); + + + var index44_24 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_24); + if ( s>=0 ) return s; + break; + case 25 : + var LA44_25 = input.LA(1); + + + var index44_25 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_25); + if ( s>=0 ) return s; + break; + case 26 : + var LA44_26 = input.LA(1); + + + var index44_26 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_26); + if ( s>=0 ) return s; + break; + case 27 : + var LA44_27 = input.LA(1); + + + var index44_27 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_27); + if ( s>=0 ) return s; + break; + case 28 : + var LA44_28 = input.LA(1); + + + var index44_28 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_28); + if ( s>=0 ) return s; + break; + case 29 : + var LA44_29 = input.LA(1); + + + var index44_29 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_29); + if ( s>=0 ) return s; + break; + case 30 : + var LA44_30 = input.LA(1); + + + var index44_30 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_30); + if ( s>=0 ) return s; + break; + case 31 : + var LA44_31 = input.LA(1); + + + var index44_31 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_31); + if ( s>=0 ) return s; + break; + case 32 : + var LA44_32 = input.LA(1); + + + var index44_32 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_32); + if ( s>=0 ) return s; + break; + case 33 : + var LA44_33 = input.LA(1); + + + var index44_33 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(MLS)))||(this.lc(XQS))||((this.lc(XQS))&&(this.lc(MLS)))||((this.lc(XQS))&&(this.lc(MLS)))||((this.lc(XQS))&&(this.lc(MLS))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_33); + if ( s>=0 ) return s; + break; + case 34 : + var LA44_34 = input.LA(1); + + + var index44_34 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_34); + if ( s>=0 ) return s; + break; + case 35 : + var LA44_35 = input.LA(1); + + + var index44_35 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_35); + if ( s>=0 ) return s; + break; + case 36 : + var LA44_36 = input.LA(1); + + + var index44_36 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_36); + if ( s>=0 ) return s; + break; + case 37 : + var LA44_37 = input.LA(1); + + + var index44_37 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_37); + if ( s>=0 ) return s; + break; + case 38 : + var LA44_38 = input.LA(1); + + + var index44_38 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_38); + if ( s>=0 ) return s; + break; + case 39 : + var LA44_39 = input.LA(1); + + + var index44_39 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_39); + if ( s>=0 ) return s; + break; + case 40 : + var LA44_40 = input.LA(1); + + + var index44_40 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_40); + if ( s>=0 ) return s; + break; + case 41 : + var LA44_41 = input.LA(1); + + + var index44_41 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_41); + if ( s>=0 ) return s; + break; + case 42 : + var LA44_42 = input.LA(1); + + + var index44_42 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_42); + if ( s>=0 ) return s; + break; + case 43 : + var LA44_43 = input.LA(1); + + + var index44_43 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_43); + if ( s>=0 ) return s; + break; + case 44 : + var LA44_44 = input.LA(1); + + + var index44_44 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_44); + if ( s>=0 ) return s; + break; + case 45 : + var LA44_45 = input.LA(1); + + + var index44_45 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_45); + if ( s>=0 ) return s; + break; + case 46 : + var LA44_46 = input.LA(1); + + + var index44_46 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_46); + if ( s>=0 ) return s; + break; + case 47 : + var LA44_47 = input.LA(1); + + + var index44_47 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_47); + if ( s>=0 ) return s; + break; + case 48 : + var LA44_48 = input.LA(1); + + + var index44_48 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_48); + if ( s>=0 ) return s; + break; + case 49 : + var LA44_49 = input.LA(1); + + + var index44_49 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_49); + if ( s>=0 ) return s; + break; + case 50 : + var LA44_50 = input.LA(1); + + + var index44_50 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_50); + if ( s>=0 ) return s; + break; + case 51 : + var LA44_51 = input.LA(1); + + + var index44_51 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_51); + if ( s>=0 ) return s; + break; + case 52 : + var LA44_52 = input.LA(1); + + + var index44_52 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_52); + if ( s>=0 ) return s; + break; + case 53 : + var LA44_53 = input.LA(1); + + + var index44_53 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_53); + if ( s>=0 ) return s; + break; + case 54 : + var LA44_54 = input.LA(1); + + + var index44_54 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_54); + if ( s>=0 ) return s; + break; + case 55 : + var LA44_55 = input.LA(1); + + + var index44_55 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_55); + if ( s>=0 ) return s; + break; + case 56 : + var LA44_56 = input.LA(1); + + + var index44_56 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_56); + if ( s>=0 ) return s; + break; + case 57 : + var LA44_57 = input.LA(1); + + + var index44_57 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_57); + if ( s>=0 ) return s; + break; + case 58 : + var LA44_58 = input.LA(1); + + + var index44_58 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_58); + if ( s>=0 ) return s; + break; + case 59 : + var LA44_59 = input.LA(1); + + + var index44_59 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_59); + if ( s>=0 ) return s; + break; + case 60 : + var LA44_60 = input.LA(1); + + + var index44_60 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_60); + if ( s>=0 ) return s; + break; + case 61 : + var LA44_61 = input.LA(1); + + + var index44_61 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_61); + if ( s>=0 ) return s; + break; + case 62 : + var LA44_62 = input.LA(1); + + + var index44_62 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_62); + if ( s>=0 ) return s; + break; + case 63 : + var LA44_63 = input.LA(1); + + + var index44_63 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_63); + if ( s>=0 ) return s; + break; + case 64 : + var LA44_64 = input.LA(1); + + + var index44_64 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_64); + if ( s>=0 ) return s; + break; + case 65 : + var LA44_65 = input.LA(1); + + + var index44_65 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_65); + if ( s>=0 ) return s; + break; + case 66 : + var LA44_66 = input.LA(1); + + + var index44_66 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_66); + if ( s>=0 ) return s; + break; + case 67 : + var LA44_68 = input.LA(1); + + + var index44_68 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_68); + if ( s>=0 ) return s; + break; + case 68 : + var LA44_69 = input.LA(1); + + + var index44_69 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_69); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 44, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA46_eotS: + "\u0011\uffff", + DFA46_eofS: + "\u0001\uffff\u0006\u0007\u000a\uffff", + DFA46_minS: + "\u0001\u0010\u0006\u0012\u000a\uffff", + DFA46_maxS: + "\u0001\u0154\u0006\u00fe\u000a\uffff", + DFA46_acceptS: + "\u0007\uffff\u0001\u0006\u0005\u0001\u0001\u0002\u0001\u0003\u0001"+ + "\u0004\u0001\u0005", + DFA46_specialS: + "\u0001\uffff\u0001\u0002\u0001\u0001\u0001\u0000\u0001\u0004\u0001"+ + "\u0005\u0001\u0003\u000a\uffff}>", + DFA46_transitionS: [ + "\u0025\u0007\u0001\u0001\u0005\u0007\u0001\u0003\u000a\u0007"+ + "\u0001\u0002\u0021\u0007\u0001\u0005\u001d\u0007\u0001\u0004"+ + "\u0001\u0006\u0054\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u000b\uffff\u0004\u0007\u0005\uffff\u0004\u0007"+ + "\u000c\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0002\uffff"+ + "\u0001\u0007\u0006\uffff\u0006\u0007\u003b\uffff\u0001\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0004\uffff\u0001\u000a\u0001\u0007"+ + "\u0002\uffff\u0001\u0009\u0004\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0007\uffff\u0001\u0007"+ + "\u0002\uffff\u0001\u0007\u003b\uffff\u0003\u0007\u0001\u0008"+ + "\u0001\uffff\u0004\u0007\u0001\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0007\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007"+ + "\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u0018\uffff"+ + "\u0001\u000c\u0022\uffff\u0003\u0007\u0001\u000b\u0001\uffff"+ + "\u0004\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007"+ + "\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff"+ + "\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000d\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000e\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000f\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0003\u0007\u0001\uffff\u0001\u0010\u0004\u0007\u0001\uffff"+ + "\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff\u000b\u0007"+ + "\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA46_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_eotS), + DFA46_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_eofS), + DFA46_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA46_minS), + DFA46_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA46_maxS), + DFA46_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_acceptS), + DFA46_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_specialS), + DFA46_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA46_transitionS.length; + for (i=0; i p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA46_3 = input.LA(1); + + + var index46_3 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_3==LPAREN) && (this.synpred2_XQueryParser())) {s = 13;} + + else if ( (LA46_3==EOF||(LA46_3>=AND && LA46_3<=ASCENDING)||(LA46_3>=CASE && LA46_3<=CASTABLE)||LA46_3==COLLATION||LA46_3==DEFAULT||(LA46_3>=DESCENDING && LA46_3<=DIV)||LA46_3==EMPTY||LA46_3==EQ||LA46_3==EXCEPT||LA46_3==FOR||LA46_3==GE||(LA46_3>=GT && LA46_3<=IDIV)||(LA46_3>=INSTANCE && LA46_3<=IS)||LA46_3==LE||(LA46_3>=LET && LA46_3<=MOD)||LA46_3==NE||(LA46_3>=OR && LA46_3<=ORDER)||(LA46_3>=RETURN && LA46_3<=SATISFIES)||LA46_3==STABLE||(LA46_3>=TO && LA46_3<=TREAT)||LA46_3==UNION||LA46_3==WHERE||LA46_3==COUNT||(LA46_3>=END && LA46_3<=GROUP)||LA46_3==ONLY||LA46_3==START||(LA46_3>=AFTER && LA46_3<=BEFORE)||LA46_3==INTO||LA46_3==MODIFY||LA46_3==WITH||LA46_3==CONTAINS||LA46_3==CONCAT||LA46_3==RPAREN||(LA46_3>=RBRACKET && LA46_3<=EQUAL)||LA46_3==NOTEQUAL||LA46_3==COMMA||(LA46_3>=STAR && LA46_3<=SLASH_SLASH)||LA46_3==COLON||(LA46_3>=SEMICOLON && LA46_3<=VBAR)) ) {s = 7;} + + + input.seek(index46_3); + if ( s>=0 ) return s; + break; + case 1 : + var LA46_2 = input.LA(1); + + + var index46_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_2==DOLLAR) && (this.synpred1_XQueryParser())) {s = 11;} + + else if ( (LA46_2==SCORE) && (this.synpred1_XQueryParser())) {s = 12;} + + else if ( (LA46_2==EOF||(LA46_2>=AND && LA46_2<=ASCENDING)||(LA46_2>=CASE && LA46_2<=CASTABLE)||LA46_2==COLLATION||LA46_2==DEFAULT||(LA46_2>=DESCENDING && LA46_2<=DIV)||LA46_2==EMPTY||LA46_2==EQ||LA46_2==EXCEPT||LA46_2==FOR||LA46_2==GE||(LA46_2>=GT && LA46_2<=IDIV)||(LA46_2>=INSTANCE && LA46_2<=IS)||LA46_2==LE||(LA46_2>=LET && LA46_2<=MOD)||LA46_2==NE||(LA46_2>=OR && LA46_2<=ORDER)||(LA46_2>=RETURN && LA46_2<=SATISFIES)||LA46_2==STABLE||(LA46_2>=TO && LA46_2<=TREAT)||LA46_2==UNION||LA46_2==WHERE||LA46_2==COUNT||(LA46_2>=END && LA46_2<=GROUP)||LA46_2==ONLY||LA46_2==START||(LA46_2>=AFTER && LA46_2<=BEFORE)||LA46_2==INTO||LA46_2==MODIFY||LA46_2==WITH||LA46_2==CONTAINS||(LA46_2>=CONCAT && LA46_2<=RPAREN)||(LA46_2>=RBRACKET && LA46_2<=EQUAL)||LA46_2==NOTEQUAL||LA46_2==COMMA||(LA46_2>=STAR && LA46_2<=SLASH_SLASH)||LA46_2==COLON||(LA46_2>=SEMICOLON && LA46_2<=VBAR)) ) {s = 7;} + + + input.seek(index46_2); + if ( s>=0 ) return s; + break; + case 2 : + var LA46_1 = input.LA(1); + + + var index46_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_1==DOLLAR) && (this.synpred1_XQueryParser())) {s = 8;} + + else if ( (LA46_1==TUMBLING) && (this.synpred1_XQueryParser())) {s = 9;} + + else if ( (LA46_1==SLIDING) && (this.synpred1_XQueryParser())) {s = 10;} + + else if ( (LA46_1==EOF||(LA46_1>=AND && LA46_1<=ASCENDING)||(LA46_1>=CASE && LA46_1<=CASTABLE)||LA46_1==COLLATION||LA46_1==DEFAULT||(LA46_1>=DESCENDING && LA46_1<=DIV)||LA46_1==EMPTY||LA46_1==EQ||LA46_1==EXCEPT||LA46_1==FOR||LA46_1==GE||(LA46_1>=GT && LA46_1<=IDIV)||(LA46_1>=INSTANCE && LA46_1<=IS)||LA46_1==LE||(LA46_1>=LET && LA46_1<=MOD)||LA46_1==NE||(LA46_1>=OR && LA46_1<=ORDER)||(LA46_1>=RETURN && LA46_1<=SATISFIES)||LA46_1==STABLE||(LA46_1>=TO && LA46_1<=TREAT)||LA46_1==UNION||LA46_1==WHERE||LA46_1==COUNT||(LA46_1>=END && LA46_1<=GROUP)||LA46_1==ONLY||LA46_1==START||(LA46_1>=AFTER && LA46_1<=BEFORE)||LA46_1==INTO||LA46_1==MODIFY||LA46_1==WITH||LA46_1==CONTAINS||(LA46_1>=CONCAT && LA46_1<=RPAREN)||(LA46_1>=RBRACKET && LA46_1<=EQUAL)||LA46_1==NOTEQUAL||LA46_1==COMMA||(LA46_1>=STAR && LA46_1<=SLASH_SLASH)||LA46_1==COLON||(LA46_1>=SEMICOLON && LA46_1<=VBAR)) ) {s = 7;} + + + input.seek(index46_1); + if ( s>=0 ) return s; + break; + case 3 : + var LA46_6 = input.LA(1); + + + var index46_6 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_6==LBRACKET) && (this.synpred5_XQueryParser())) {s = 16;} + + else if ( (LA46_6==EOF||(LA46_6>=AND && LA46_6<=ASCENDING)||(LA46_6>=CASE && LA46_6<=CASTABLE)||LA46_6==COLLATION||LA46_6==DEFAULT||(LA46_6>=DESCENDING && LA46_6<=DIV)||LA46_6==EMPTY||LA46_6==EQ||LA46_6==EXCEPT||LA46_6==FOR||LA46_6==GE||(LA46_6>=GT && LA46_6<=IDIV)||(LA46_6>=INSTANCE && LA46_6<=IS)||LA46_6==LE||(LA46_6>=LET && LA46_6<=MOD)||LA46_6==NE||(LA46_6>=OR && LA46_6<=ORDER)||(LA46_6>=RETURN && LA46_6<=SATISFIES)||LA46_6==STABLE||(LA46_6>=TO && LA46_6<=TREAT)||LA46_6==UNION||LA46_6==WHERE||LA46_6==COUNT||(LA46_6>=END && LA46_6<=GROUP)||LA46_6==ONLY||LA46_6==START||(LA46_6>=AFTER && LA46_6<=BEFORE)||LA46_6==INTO||LA46_6==MODIFY||LA46_6==WITH||LA46_6==CONTAINS||(LA46_6>=CONCAT && LA46_6<=RPAREN)||(LA46_6>=RBRACKET && LA46_6<=EQUAL)||LA46_6==NOTEQUAL||LA46_6==COMMA||(LA46_6>=STAR && LA46_6<=SLASH_SLASH)||LA46_6==COLON||(LA46_6>=SEMICOLON && LA46_6<=VBAR)) ) {s = 7;} + + + input.seek(index46_6); + if ( s>=0 ) return s; + break; + case 4 : + var LA46_4 = input.LA(1); + + + var index46_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_4==LPAREN) && (this.synpred3_XQueryParser())) {s = 14;} + + else if ( (LA46_4==EOF||(LA46_4>=AND && LA46_4<=ASCENDING)||(LA46_4>=CASE && LA46_4<=CASTABLE)||LA46_4==COLLATION||LA46_4==DEFAULT||(LA46_4>=DESCENDING && LA46_4<=DIV)||LA46_4==EMPTY||LA46_4==EQ||LA46_4==EXCEPT||LA46_4==FOR||LA46_4==GE||(LA46_4>=GT && LA46_4<=IDIV)||(LA46_4>=INSTANCE && LA46_4<=IS)||LA46_4==LE||(LA46_4>=LET && LA46_4<=MOD)||LA46_4==NE||(LA46_4>=OR && LA46_4<=ORDER)||(LA46_4>=RETURN && LA46_4<=SATISFIES)||LA46_4==STABLE||(LA46_4>=TO && LA46_4<=TREAT)||LA46_4==UNION||LA46_4==WHERE||LA46_4==COUNT||(LA46_4>=END && LA46_4<=GROUP)||LA46_4==ONLY||LA46_4==START||(LA46_4>=AFTER && LA46_4<=BEFORE)||LA46_4==INTO||LA46_4==MODIFY||LA46_4==WITH||LA46_4==CONTAINS||LA46_4==CONCAT||LA46_4==RPAREN||(LA46_4>=RBRACKET && LA46_4<=EQUAL)||LA46_4==NOTEQUAL||LA46_4==COMMA||(LA46_4>=STAR && LA46_4<=SLASH_SLASH)||LA46_4==COLON||(LA46_4>=SEMICOLON && LA46_4<=VBAR)) ) {s = 7;} + + + input.seek(index46_4); + if ( s>=0 ) return s; + break; + case 5 : + var LA46_5 = input.LA(1); + + + var index46_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_5==LPAREN) && (this.synpred4_XQueryParser())) {s = 15;} + + else if ( (LA46_5==EOF||(LA46_5>=AND && LA46_5<=ASCENDING)||(LA46_5>=CASE && LA46_5<=CASTABLE)||LA46_5==COLLATION||LA46_5==DEFAULT||(LA46_5>=DESCENDING && LA46_5<=DIV)||LA46_5==EMPTY||LA46_5==EQ||LA46_5==EXCEPT||LA46_5==FOR||LA46_5==GE||(LA46_5>=GT && LA46_5<=IDIV)||(LA46_5>=INSTANCE && LA46_5<=IS)||LA46_5==LE||(LA46_5>=LET && LA46_5<=MOD)||LA46_5==NE||(LA46_5>=OR && LA46_5<=ORDER)||(LA46_5>=RETURN && LA46_5<=SATISFIES)||LA46_5==STABLE||(LA46_5>=TO && LA46_5<=TREAT)||LA46_5==UNION||LA46_5==WHERE||LA46_5==COUNT||(LA46_5>=END && LA46_5<=GROUP)||LA46_5==ONLY||LA46_5==START||(LA46_5>=AFTER && LA46_5<=BEFORE)||LA46_5==INTO||LA46_5==MODIFY||LA46_5==WITH||LA46_5==CONTAINS||LA46_5==CONCAT||LA46_5==RPAREN||(LA46_5>=RBRACKET && LA46_5<=EQUAL)||LA46_5==NOTEQUAL||LA46_5==COMMA||(LA46_5>=STAR && LA46_5<=SLASH_SLASH)||LA46_5==COLON||(LA46_5>=SEMICOLON && LA46_5<=VBAR)) ) {s = 7;} + + + input.seek(index46_5); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 46, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA117_eotS: + "\u0031\uffff", + DFA117_eofS: + "\u0031\uffff", + DFA117_minS: + "\u0001\u0010\u0001\u0000\u002f\uffff", + DFA117_maxS: + "\u0001\u0154\u0001\u0000\u002f\uffff", + DFA117_acceptS: + "\u0002\uffff\u0001\u0003\u0001\u0004\u002b\uffff\u0001\u0001\u0001"+ + "\u0002", + DFA117_specialS: + "\u0001\uffff\u0001\u0000\u002f\uffff}>", + DFA117_transitionS: [ + "\u00cc\u0003\u0001\uffff\u0001\u0003\u0001\uffff\u0002\u0003"+ + "\u000b\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0001\u0001\u0002\u0002\u0003\u000c\uffff\u0001\u0003"+ + "\u0002\uffff\u0002\u0003\u0002\uffff\u0001\u0003\u0007\uffff"+ + "\u0005\u0003\u003b\uffff\u0001\u0003", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA117_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_eotS), + DFA117_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_eofS), + DFA117_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA117_minS), + DFA117_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA117_maxS), + DFA117_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_acceptS), + DFA117_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_specialS), + DFA117_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA117_transitionS.length; + for (i=0; i ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA117_1 = input.LA(1); + + + var index117_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred7_XQueryParser()) ) {s = 47;} + + else if ( (true) ) {s = 48;} + + + input.seek(index117_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 117, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA119_eotS: + "\u0033\uffff", + DFA119_eofS: + "\u0033\uffff", + DFA119_minS: + "\u0001\u0010\u002c\u0000\u0006\uffff", + DFA119_maxS: + "\u0001\u0154\u002c\u0000\u0006\uffff", + DFA119_acceptS: + "\u002d\uffff\u0001\u0001\u0001\u0002\u0001\u0004\u0001\u0005\u0001"+ + "\u0003\u0001\u0006", + DFA119_specialS: + "\u0001\uffff\u0001\u0000\u0001\u0001\u0001\u0002\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0006\u0001\u0007\u0001\u0008\u0001\u0009\u0001"+ + "\u000a\u0001\u000b\u0001\u000c\u0001\u000d\u0001\u000e\u0001\u000f\u0001"+ + "\u0010\u0001\u0011\u0001\u0012\u0001\u0013\u0001\u0014\u0001\u0015\u0001"+ + "\u0016\u0001\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001"+ + "\u001c\u0001\u001d\u0001\u001e\u0001\u001f\u0001\u0020\u0001\u0021\u0001"+ + "\u0022\u0001\u0023\u0001\u0024\u0001\u0025\u0001\u0026\u0001\u0027\u0001"+ + "\u0028\u0001\u0029\u0001\u002a\u0001\u002b\u0006\uffff}>", + DFA119_transitionS: [ + "\u0001\u001a\u0001\u001d\u0004\u0025\u0001\u0012\u0006\u0025"+ + "\u0001\u001e\u0001\u0025\u0001\u0015\u0004\u0025\u0001\u0020"+ + "\u0001\u0022\u0002\u0025\u0001\u000d\u0001\u0017\u0001\u000a"+ + "\u0002\u0025\u0001\u002b\u0005\u0025\u0001\u0024\u0001\u0023"+ + "\u0006\u0025\u0001\u002b\u0006\u0025\u0001\u002b\u0007\u0025"+ + "\u0001\u0011\u0003\u0025\u0001\u002a\u0004\u0025\u0001\u0009"+ + "\u0001\u0025\u0001\u0018\u0001\u001c\u0001\u001b\u0001\u0025"+ + "\u0001\u0016\u0003\u0025\u0001\u0028\u0001\u0027\u0001\u0021"+ + "\u0004\u0025\u0001\u0013\u0003\u0025\u0001\u002b\u0001\u0025"+ + "\u0001\u000c\u0011\u0025\u0001\u0029\u0009\u0025\u0001\u002b"+ + "\u0014\u0025\u0001\u000b\u0031\u0025\u0001\u002b\u000a\u0025"+ + "\u0001\u0014\u0003\u0025\u0001\uffff\u0001\u0001\u0001\uffff"+ + "\u0001\u0007\u0001\u0019\u000b\uffff\u0001\u002c\u0002\uffff"+ + "\u0001\u000e\u0007\uffff\u0001\u0008\u0001\u001f\u000c\uffff"+ + "\u0001\u0026\u0002\uffff\u0001\u0006\u0001\u0005\u0002\uffff"+ + "\u0001\u0025\u0007\uffff\u0001\u000f\u0001\u0010\u0001\u0002"+ + "\u0001\u0003\u0001\u0004\u003b\uffff\u0001\u0025", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA119_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_eotS), + DFA119_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_eofS), + DFA119_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA119_minS), + DFA119_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA119_maxS), + DFA119_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_acceptS), + DFA119_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_specialS), + DFA119_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA119_transitionS.length; + for (i=0; i p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA119_1 = input.LA(1); + + + var index119_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA119_2 = input.LA(1); + + + var index119_2 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_2); + if ( s>=0 ) return s; + break; + case 2 : + var LA119_3 = input.LA(1); + + + var index119_3 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_3); + if ( s>=0 ) return s; + break; + case 3 : + var LA119_4 = input.LA(1); + + + var index119_4 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_4); + if ( s>=0 ) return s; + break; + case 4 : + var LA119_5 = input.LA(1); + + + var index119_5 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_5); + if ( s>=0 ) return s; + break; + case 5 : + var LA119_6 = input.LA(1); + + + var index119_6 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_6); + if ( s>=0 ) return s; + break; + case 6 : + var LA119_7 = input.LA(1); + + + var index119_7 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_7); + if ( s>=0 ) return s; + break; + case 7 : + var LA119_8 = input.LA(1); + + + var index119_8 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_8); + if ( s>=0 ) return s; + break; + case 8 : + var LA119_9 = input.LA(1); + + + var index119_9 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_9); + if ( s>=0 ) return s; + break; + case 9 : + var LA119_10 = input.LA(1); + + + var index119_10 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_10); + if ( s>=0 ) return s; + break; + case 10 : + var LA119_11 = input.LA(1); + + + var index119_11 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_11); + if ( s>=0 ) return s; + break; + case 11 : + var LA119_12 = input.LA(1); + + + var index119_12 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_12); + if ( s>=0 ) return s; + break; + case 12 : + var LA119_13 = input.LA(1); + + + var index119_13 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_13); + if ( s>=0 ) return s; + break; + case 13 : + var LA119_14 = input.LA(1); + + + var index119_14 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_14); + if ( s>=0 ) return s; + break; + case 14 : + var LA119_15 = input.LA(1); + + + var index119_15 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_15); + if ( s>=0 ) return s; + break; + case 15 : + var LA119_16 = input.LA(1); + + + var index119_16 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_16); + if ( s>=0 ) return s; + break; + case 16 : + var LA119_17 = input.LA(1); + + + var index119_17 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_17); + if ( s>=0 ) return s; + break; + case 17 : + var LA119_18 = input.LA(1); + + + var index119_18 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_18); + if ( s>=0 ) return s; + break; + case 18 : + var LA119_19 = input.LA(1); + + + var index119_19 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_19); + if ( s>=0 ) return s; + break; + case 19 : + var LA119_20 = input.LA(1); + + + var index119_20 = input.index(); + input.rewind(); + s = -1; + if ( ((this.synpred8_XQueryParser()||(this.synpred8_XQueryParser()&&(this.lc(MLS))))) ) {s = 45;} + + else if ( ((this.synpred9_XQueryParser()||(this.synpred9_XQueryParser()&&(this.lc(MLS))))) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (((this.synpred11_XQueryParser()&&(this.lc(MLS)))||this.synpred11_XQueryParser())) ) {s = 47;} + + else if ( (((this.synpred12_XQueryParser()&&(this.lc(MLS)))||this.synpred12_XQueryParser())) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_20); + if ( s>=0 ) return s; + break; + case 20 : + var LA119_21 = input.LA(1); + + + var index119_21 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_21); + if ( s>=0 ) return s; + break; + case 21 : + var LA119_22 = input.LA(1); + + + var index119_22 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_22); + if ( s>=0 ) return s; + break; + case 22 : + var LA119_23 = input.LA(1); + + + var index119_23 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_23); + if ( s>=0 ) return s; + break; + case 23 : + var LA119_24 = input.LA(1); + + + var index119_24 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_24); + if ( s>=0 ) return s; + break; + case 24 : + var LA119_25 = input.LA(1); + + + var index119_25 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_25); + if ( s>=0 ) return s; + break; + case 25 : + var LA119_26 = input.LA(1); + + + var index119_26 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_26); + if ( s>=0 ) return s; + break; + case 26 : + var LA119_27 = input.LA(1); + + + var index119_27 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_27); + if ( s>=0 ) return s; + break; + case 27 : + var LA119_28 = input.LA(1); + + + var index119_28 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_28); + if ( s>=0 ) return s; + break; + case 28 : + var LA119_29 = input.LA(1); + + + var index119_29 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_29); + if ( s>=0 ) return s; + break; + case 29 : + var LA119_30 = input.LA(1); + + + var index119_30 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_30); + if ( s>=0 ) return s; + break; + case 30 : + var LA119_31 = input.LA(1); + + + var index119_31 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_31); + if ( s>=0 ) return s; + break; + case 31 : + var LA119_32 = input.LA(1); + + + var index119_32 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_32); + if ( s>=0 ) return s; + break; + case 32 : + var LA119_33 = input.LA(1); + + + var index119_33 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_33); + if ( s>=0 ) return s; + break; + case 33 : + var LA119_34 = input.LA(1); + + + var index119_34 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_34); + if ( s>=0 ) return s; + break; + case 34 : + var LA119_35 = input.LA(1); + + + var index119_35 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_35); + if ( s>=0 ) return s; + break; + case 35 : + var LA119_36 = input.LA(1); + + + var index119_36 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_36); + if ( s>=0 ) return s; + break; + case 36 : + var LA119_37 = input.LA(1); + + + var index119_37 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_37); + if ( s>=0 ) return s; + break; + case 37 : + var LA119_38 = input.LA(1); + + + var index119_38 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_38); + if ( s>=0 ) return s; + break; + case 38 : + var LA119_39 = input.LA(1); + + + var index119_39 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_39); + if ( s>=0 ) return s; + break; + case 39 : + var LA119_40 = input.LA(1); + + + var index119_40 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_40); + if ( s>=0 ) return s; + break; + case 40 : + var LA119_41 = input.LA(1); + + + var index119_41 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_41); + if ( s>=0 ) return s; + break; + case 41 : + var LA119_42 = input.LA(1); + + + var index119_42 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_42); + if ( s>=0 ) return s; + break; + case 42 : + var LA119_43 = input.LA(1); + + + var index119_43 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_43); + if ( s>=0 ) return s; + break; + case 43 : + var LA119_44 = input.LA(1); + + + var index119_44 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_44); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 119, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA121_eotS: + "\u000a\uffff", + DFA121_eofS: + "\u0001\uffff\u0007\u0008\u0002\uffff", + DFA121_minS: + "\u0001\u0010\u0007\u0012\u0002\uffff", + DFA121_maxS: + "\u0001\u0154\u0007\u00fe\u0002\uffff", + DFA121_acceptS: + "\u0008\uffff\u0001\u0002\u0001\u0001", + DFA121_specialS: + "\u000a\uffff}>", + DFA121_transitionS: [ + "\u0006\u0008\u0001\u0003\u0006\u0008\u0001\u0001\u0006\u0008"+ + "\u0001\u0002\u0001\u0005\u000d\u0008\u0001\u0007\u0001\u0006"+ + "\u002a\u0008\u0001\u0004\u003b\u0008\u0001\uffff\u0040\u0008"+ + "\u0010\uffff\u0001\u0008\u0018\uffff\u0001\u0008\u0002\uffff"+ + "\u0002\u0008\u0002\uffff\u0001\u0008\u0047\uffff\u0001\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0003\u0008\u0002\uffff"+ + "\u0004\u0008\u0001\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0001\uffff\u000b\u0008\u0002\uffff\u0001\u0008\u0001\u0009"+ + "\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA121_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_eotS), + DFA121_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_eofS), + DFA121_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA121_minS), + DFA121_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA121_maxS), + DFA121_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_acceptS), + DFA121_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_specialS), + DFA121_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA121_transitionS.length; + for (i=0; i", + DFA126_transitionS: [ + "\u0006\u000b\u0001\u0003\u0008\u000b\u0001\u0007\u0009\u000b"+ + "\u0001\u0001\u0001\u0002\u0023\u000b\u0001\u000a\u000a\u000b"+ + "\u0001\u0006\u0003\u000b\u0001\u0005\u0001\u0004\u0005\u000b"+ + "\u0001\u0008\u0017\u000b\u0001\u0009\u001e\u000b\u0001\uffff"+ + "\u0040\u000b\u0010\uffff\u0001\u000b\u001b\uffff\u0002\u000b"+ + "\u0002\uffff\u0001\u000b\u0047\uffff\u0001\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA126_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_eotS), + DFA126_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_eofS), + DFA126_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA126_minS), + DFA126_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA126_maxS), + DFA126_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_acceptS), + DFA126_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_specialS), + DFA126_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA126_transitionS.length; + for (i=0; i", + DFA134_transitionS: [ + "\u0006\u0007\u0001\u000c\u0008\u0007\u0001\u000f\u0008\u0007"+ + "\u0001\u0009\u0001\u0007\u0001\u0006\u001f\u0007\u0001\u000b"+ + "\u0008\u0007\u0001\u0005\u0005\u0007\u0001\u0010\u000a\u0007"+ + "\u0001\u000d\u0005\u0007\u0001\u0008\u006d\u0007\u0001\u000e"+ + "\u0003\u0007\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0003"+ + "\u0001\u0011\u000e\uffff\u0001\u000a\u0007\uffff\u0001\u0004"+ + "\u0010\uffff\u0002\u0002\u0002\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u000a\u0003\u0002\u003b\uffff\u0001\u0007", + "", + "", + "", + "", + "\u0001\u0007\u0002\uffff\u0001\u0012\u0018\uffff\u0001\u0007", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0004\uffff\u0001\u000a"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u000a\u0047\uffff"+ + "\u0001\u000a", + "", + "\u0001\u0007\u0002\uffff\u0001\u0013\u0018\uffff\u0001\u0007", + "\u0001\u0007\u0002\uffff\u0001\u000a\u0018\uffff\u0001\u0007", + "", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0001\uffff\u0001\u0007"+ + "\u0002\uffff\u0001\u000a\u0018\uffff\u0001\u0007\u0012\uffff"+ + "\u0001\u000a\u0047\uffff\u0001\u000a", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0004\uffff\u0001\u000a"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u000a\u0047\uffff"+ + "\u0001\u000a", + "\u0001\u000a\u0018\uffff\u0001\u0007", + "\u0001\u0007\u0002\uffff\u0001\u0014\u0018\uffff\u0001\u0007", + "\u0001\u0015\u0018\uffff\u0001\u0007", + "\u008b\u0015\u0001\uffff\u0040\u0015\u0004\uffff\u0001\u0015"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u0015\u0047\uffff"+ + "\u0001\u0015", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA134_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_eotS), + DFA134_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_eofS), + DFA134_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA134_minS), + DFA134_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA134_maxS), + DFA134_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_acceptS), + DFA134_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_specialS), + DFA134_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA134_transitionS.length; + for (i=0; i p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA134_14 = input.LA(1); + + + var index134_14 = input.index(); + input.rewind(); + s = -1; + if ( (LA134_14==LPAREN||LA134_14==COLON) ) {s = 7;} + + else if ( (LA134_14==LBRACKET) && ((this.lc(MLS)))) {s = 20;} + + + input.seek(index134_14); + if ( s>=0 ) return s; + break; + case 1 : + var LA134_0 = input.LA(1); + + + var index134_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA134_0==LPAREN) && (this.synpred16_XQueryParser())) {s = 1;} + + else if ( ((LA134_0>=APOS && LA134_0<=QUOT)||(LA134_0>=L_IntegerLiteral && LA134_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA134_0==DOLLAR) ) {s = 3;} + + else if ( (LA134_0==DOT) ) {s = 4;} + + else if ( (LA134_0==ORDERED) ) {s = 5;} + + else if ( (LA134_0==ELEMENT) ) {s = 6;} + + else if ( ((LA134_0>=ANCESTOR && LA134_0<=AT)||(LA134_0>=BASE_URI && LA134_0<=COLLATION)||(LA134_0>=CONSTRUCTION && LA134_0<=DIV)||LA134_0==DOCUMENT_NODE||(LA134_0>=ELSE && LA134_0<=MODULE)||(LA134_0>=NE && LA134_0<=ORDER)||(LA134_0>=ORDERING && LA134_0<=PRESERVE)||(LA134_0>=RETURN && LA134_0<=STRIP)||(LA134_0>=THEN && LA134_0<=UNION)||(LA134_0>=VALIDATE && LA134_0<=UNIQUE)||(LA134_0>=AMP_ER && LA134_0<=QUOT_ER)||LA134_0==L_NCName||LA134_0==EXPLICITLY) ) {s = 7;} + + else if ( (LA134_0==UNORDERED) ) {s = 8;} + + else if ( (LA134_0==DOCUMENT) ) {s = 9;} + + else if ( (LA134_0==SMALLER||(LA134_0>=L_DirCommentConstructor && LA134_0<=L_DirPIConstructor)) ) {s = 10;} + + else if ( (LA134_0==NAMESPACE) ) {s = 11;} + + else if ( (LA134_0==ATTRIBUTE) ) {s = 12;} + + else if ( (LA134_0==TEXT) ) {s = 13;} + + else if ( (LA134_0==BINARY) ) {s = 14;} + + else if ( (LA134_0==COMMENT) ) {s = 15;} + + else if ( (LA134_0==PROCESSING_INSTRUCTION) ) {s = 16;} + + else if ( (LA134_0==LBRACKET) ) {s = 17;} + + + input.seek(index134_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 134, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA162_eotS: + "\u004a\uffff", + DFA162_eofS: + "\u0001\u0002\u0049\uffff", + DFA162_minS: + "\u0001\u0012\u0001\u0000\u0007\uffff\u0001\u0000\u0040\uffff", + DFA162_maxS: + "\u0001\u00fe\u0001\u0000\u0007\uffff\u0001\u0000\u0040\uffff", + DFA162_acceptS: + "\u0002\uffff\u0001\u0002\u000a\uffff\u0001\u0001\u003c\uffff", + DFA162_specialS: + "\u0001\u0000\u0001\u0001\u0007\uffff\u0001\u0002\u0040\uffff}>", + DFA162_transitionS: [ + "\u0004\u0002\u0004\uffff\u0001\u0002\u0003\uffff\u0001\u0002"+ + "\u0004\uffff\u0001\u0002\u0002\uffff\u0002\u0002\u0004\uffff"+ + "\u0001\u0002\u0002\uffff\u0001\u0002\u0001\uffff\u0002\u0002"+ + "\u0002\uffff\u0001\u0002\u0001\uffff\u0001\u0002\u0001\uffff"+ + "\u0002\u0002\u0002\uffff\u0001\u0002\u0001\uffff\u0003\u0002"+ + "\u0002\uffff\u0001\u0002\u0001\uffff\u0003\u0002\u0002\uffff"+ + "\u0001\u0002\u0005\uffff\u0002\u0002\u0007\uffff\u0002\u0002"+ + "\u0005\uffff\u0001\u0002\u0004\uffff\u0001\u0002\u0002\uffff"+ + "\u0001\u0002\u0004\uffff\u0001\u0002\u0001\uffff\u0001\u0002"+ + "\u0002\uffff\u0001\u0002\u0003\uffff\u0002\u0002\u0006\uffff"+ + "\u0001\u0002\u0005\uffff\u0001\u0002\u0007\uffff\u0002\u0002"+ + "\u0004\uffff\u0001\u0002\u0001\uffff\u0001\u0002\u0007\uffff"+ + "\u0001\u0002\u0002\uffff\u0001\u0002\u0014\uffff\u0001\u0002"+ + "\u0003\uffff\u0001\u0002\u0002\uffff\u0001\u0002\u0003\uffff"+ + "\u0001\u0002\u0006\uffff\u0001\u0002\u0014\uffff\u0001\u0002"+ + "\u0001\uffff\u0001\u0002\u0001\uffff\u0002\u0002\u0001\uffff"+ + "\u0004\u0002\u0003\uffff\u0001\u0002\u0001\u000d\u0001\u0001"+ + "\u0001\u0009\u0007\u0002\u0008\uffff\u0002\u0002", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA162_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_eotS), + DFA162_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_eofS), + DFA162_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA162_minS), + DFA162_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA162_maxS), + DFA162_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_acceptS), + DFA162_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_specialS), + DFA162_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA162_transitionS.length; + for (i=0; ioi= p_OccurrenceIndicator )?"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA162_0 = input.LA(1); + + + var index162_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA162_0==STAR) ) {s = 1;} + + else if ( (LA162_0==EOF||(LA162_0>=AND && LA162_0<=AT)||LA162_0==CASE||LA162_0==COLLATION||LA162_0==DEFAULT||(LA162_0>=DESCENDING && LA162_0<=DIV)||LA162_0==EMPTY||LA162_0==EQ||(LA162_0>=EXCEPT && LA162_0<=EXTERNAL)||LA162_0==FOR||LA162_0==GE||(LA162_0>=GT && LA162_0<=IDIV)||LA162_0==IN||(LA162_0>=INSTANCE && LA162_0<=IS)||LA162_0==LE||(LA162_0>=LET && LA162_0<=MOD)||LA162_0==NE||(LA162_0>=OR && LA162_0<=ORDER)||(LA162_0>=RETURN && LA162_0<=SATISFIES)||LA162_0==STABLE||LA162_0==TO||LA162_0==UNION||LA162_0==WHERE||LA162_0==ALLOWING||LA162_0==COUNT||(LA162_0>=END && LA162_0<=GROUP)||LA162_0==ONLY||LA162_0==START||(LA162_0>=AFTER && LA162_0<=BEFORE)||LA162_0==INTO||LA162_0==MODIFY||LA162_0==WITH||LA162_0==CONTAINS||LA162_0==PARAGRAPHS||LA162_0==SCORE||LA162_0==SENTENCES||LA162_0==TIMES||LA162_0==WORDS||LA162_0==CONCAT||LA162_0==RPAREN||(LA162_0>=LBRACKET && LA162_0<=RBRACKET)||(LA162_0>=RSQUARE && LA162_0<=NOTEQUAL)||LA162_0==COMMA||(LA162_0>=MINUS && LA162_0<=GREATER_GREATER)||(LA162_0>=SEMICOLON && LA162_0<=VBAR)) ) {s = 2;} + + else if ( (LA162_0==PLUS) ) {s = 9;} + + else if ( (LA162_0==QUESTION) && (this.synpred17_XQueryParser())) {s = 13;} + + + input.seek(index162_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA162_1 = input.LA(1); + + + var index162_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred17_XQueryParser()) ) {s = 13;} + + else if ( (true) ) {s = 2;} + + + input.seek(index162_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA162_9 = input.LA(1); + + + var index162_9 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred17_XQueryParser()) ) {s = 13;} + + else if ( (true) ) {s = 2;} + + + input.seek(index162_9); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 162, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA164_eotS: + "\u0012\uffff", + DFA164_eofS: + "\u0001\uffff\u000c\u000d\u0005\uffff", + DFA164_minS: + "\u0001\u0010\u000c\u0012\u0005\uffff", + DFA164_maxS: + "\u0001\u0154\u000c\u00fe\u0005\uffff", + DFA164_acceptS: + "\u000d\uffff\u0001\u0004\u0001\u0005\u0001\u0001\u0001\u0002\u0001"+ + "\u0003", + DFA164_specialS: + "\u000b\uffff\u0001\u0000\u0006\uffff}>", + DFA164_transitionS: [ + "\u0006\u000d\u0001\u0003\u0008\u000d\u0001\u0007\u0009\u000d"+ + "\u0001\u0001\u0001\u0002\u0017\u000d\u0001\u000c\u000b\u000d"+ + "\u0001\u000a\u000a\u000d\u0001\u0006\u0003\u000d\u0001\u0005"+ + "\u0001\u0004\u0005\u000d\u0001\u0008\u0017\u000d\u0001\u0009"+ + "\u001e\u000d\u0001\uffff\u003c\u000d\u0001\u000b\u0003\u000d"+ + "\u0001\uffff\u0001\u000e\u002e\uffff\u0001\u000d\u0047\uffff"+ + "\u0001\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u0010\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u0011\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA164_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_eotS), + DFA164_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_eofS), + DFA164_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA164_minS), + DFA164_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA164_maxS), + DFA164_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_acceptS), + DFA164_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_specialS), + DFA164_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA164_transitionS.length; + for (i=0; i ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA164_11 = input.LA(1); + + + var index164_11 = input.index(); + input.rewind(); + s = -1; + if ( (LA164_11==LPAREN) && ((this.lc(MLS)))) {s = 16;} + + else if ( (LA164_11==EOF||(LA164_11>=AND && LA164_11<=AT)||LA164_11==CASE||LA164_11==COLLATION||LA164_11==DEFAULT||(LA164_11>=DESCENDING && LA164_11<=DIV)||LA164_11==EMPTY||LA164_11==EQ||(LA164_11>=EXCEPT && LA164_11<=EXTERNAL)||LA164_11==FOR||LA164_11==GE||(LA164_11>=GT && LA164_11<=IDIV)||LA164_11==IN||(LA164_11>=INSTANCE && LA164_11<=IS)||LA164_11==LE||(LA164_11>=LET && LA164_11<=MOD)||LA164_11==NE||(LA164_11>=OR && LA164_11<=ORDER)||(LA164_11>=RETURN && LA164_11<=SATISFIES)||LA164_11==STABLE||LA164_11==TO||LA164_11==UNION||LA164_11==WHERE||LA164_11==ALLOWING||LA164_11==COUNT||(LA164_11>=END && LA164_11<=GROUP)||LA164_11==ONLY||LA164_11==START||(LA164_11>=AFTER && LA164_11<=BEFORE)||LA164_11==INTO||LA164_11==MODIFY||LA164_11==WITH||LA164_11==CONTAINS||LA164_11==PARAGRAPHS||LA164_11==SCORE||LA164_11==SENTENCES||LA164_11==TIMES||LA164_11==WORDS||LA164_11==CONCAT||LA164_11==RPAREN||(LA164_11>=LBRACKET && LA164_11<=RBRACKET)||(LA164_11>=RSQUARE && LA164_11<=NOTEQUAL)||(LA164_11>=COMMA && LA164_11<=GREATER_GREATER)||LA164_11==COLON||(LA164_11>=SEMICOLON && LA164_11<=VBAR)) ) {s = 13;} + + + input.seek(index164_11); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 164, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA218_eotS: + "\u000a\uffff", + DFA218_eofS: + "\u000a\uffff", + DFA218_minS: + "\u0001\u001a\u0002\uffff\u0001\u00bd\u0006\uffff", + DFA218_maxS: + "\u0001\u00c4\u0002\uffff\u0001\u00c4\u0006\uffff", + DFA218_acceptS: + "\u0001\uffff\u0001\u0001\u0001\u0002\u0001\uffff\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0006\u0001\u0007\u0001\u0008", + DFA218_specialS: + "\u000a\uffff}>", + DFA218_transitionS: [ + "\u0001\u0006\u0035\uffff\u0001\u0009\u0051\uffff\u0001\u0007"+ + "\u000a\uffff\u0001\u0001\u0001\uffff\u0001\u0006\u0001\uffff"+ + "\u0001\u0003\u000b\uffff\u0001\u0005\u0001\u0008\u0001\u0004"+ + "\u0001\uffff\u0001\u0006\u0002\uffff\u0001\u0002", + "", + "", + "\u0001\u0005\u0001\u0008\u0001\u0004\u0004\uffff\u0001\u0002", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA218_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_eotS), + DFA218_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_eofS), + DFA218_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA218_minS), + DFA218_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA218_maxS), + DFA218_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_acceptS), + DFA218_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_specialS), + DFA218_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA218_transitionS.length; + for (i=0; i", + DFA237_transitionS: [ + "\u005c\u0001\u0001\u0007\u005b\u0001\u0001\u0004\u0001\u0005"+ + "\u0001\u0006\u0002\u0001\u0001\u0003\u000e\u0001\u0001\uffff"+ + "\u0001\u0001\u0001\uffff\u0001\u0002\u0001\u0001\u0006\uffff"+ + "\u0001\u0008\u0004\uffff\u0004\u0001\u0005\uffff\u0004\u0001"+ + "\u000c\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0006\uffff\u0006\u0001\u003b\uffff\u0001\u0001", + "", + "\u008b\u0009\u0001\uffff\u0040\u0009\u0030\uffff\u0001\u0009"+ + "\u0047\uffff\u0001\u0009", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0001\u0008\u0004\uffff\u0001\u0001\u0001\uffff"+ + "\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff\u0001\u0001"+ + "\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001\u0003\uffff"+ + "\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002a\uffff"+ + "\u0001\u0008\u0010\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002a\uffff"+ + "\u0001\u0008\u0010\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002b\uffff"+ + "\u0001\u0008\u000f\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0002\u0001\u0001\uffff\u0001\u0008\u0002\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0001\uffff\u0001\u0001"+ + "\u0001\u0008\u0001\u0001\u0003\uffff\u0001\u0001\u0001\uffff"+ + "\u000b\u0001\u0002\uffff\u0001\u000a\u0003\uffff\u0002\u0001", + "\u008b\u000b\u0001\uffff\u0040\u000b\u0030\uffff\u0001\u000b"+ + "\u0047\uffff\u0001\u000b", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0001\uffff\u0001\u0001"+ + "\u0001\u0008\u0001\u0001\u0003\uffff\u0001\u0001\u0001\uffff"+ + "\u000b\u0001\u0006\uffff\u0002\u0001" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA237_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_eotS), + DFA237_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_eofS), + DFA237_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA237_minS), + DFA237_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA237_maxS), + DFA237_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_acceptS), + DFA237_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_specialS), + DFA237_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA237_transitionS.length; + for (i=0; i", + DFA253_transitionS: [ + "\u0020\u0003\u0001\u0002\u002f\u0003\u0001\u0001\u002e\u0003"+ + "\u0001\u0008\u0001\u0005\u0001\u0003\u0001\u0004\u0004\u0003"+ + "\u0001\u0006\u0001\u0007\u0043\u0003\u0001\uffff\u0001\u0003"+ + "\u0001\uffff\u0002\u0003\u000b\uffff\u0004\u0003\u0005\uffff"+ + "\u0004\u0003\u000c\uffff\u0001\u0003\u0002\uffff\u0002\u0003"+ + "\u0002\uffff\u0001\u0003\u0006\uffff\u0006\u0003\u003b\uffff"+ + "\u0001\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u0009\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u0009\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0001\u000a\u0006\uffff\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0001\u000a\u0006\uffff\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0007\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff\u0004\u0003"+ + "\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff"+ + "\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0006\uffff\u0001\u000a\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u000a\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA253_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_eotS), + DFA253_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_eofS), + DFA253_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA253_minS), + DFA253_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA253_maxS), + DFA253_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_acceptS), + DFA253_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_specialS), + DFA253_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA253_transitionS.length; + for (i=0; i pg_UpdateExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA253_8 = input.LA(1); + + + var index253_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_8==DOLLAR) && ((this.lc(XQU)))) {s = 10;} + + else if ( (LA253_8==EOF||(LA253_8>=AND && LA253_8<=ASCENDING)||(LA253_8>=CASE && LA253_8<=CASTABLE)||LA253_8==COLLATION||LA253_8==DEFAULT||(LA253_8>=DESCENDING && LA253_8<=DIV)||LA253_8==EMPTY||LA253_8==EQ||LA253_8==EXCEPT||LA253_8==FOR||LA253_8==GE||(LA253_8>=GT && LA253_8<=IDIV)||(LA253_8>=INSTANCE && LA253_8<=IS)||LA253_8==LE||(LA253_8>=LET && LA253_8<=MOD)||LA253_8==NE||(LA253_8>=OR && LA253_8<=ORDER)||(LA253_8>=RETURN && LA253_8<=SATISFIES)||LA253_8==STABLE||(LA253_8>=TO && LA253_8<=TREAT)||LA253_8==UNION||LA253_8==WHERE||LA253_8==COUNT||(LA253_8>=END && LA253_8<=GROUP)||LA253_8==ONLY||LA253_8==START||(LA253_8>=AFTER && LA253_8<=BEFORE)||LA253_8==INTO||LA253_8==MODIFY||LA253_8==WITH||LA253_8==CONTAINS||(LA253_8>=CONCAT && LA253_8<=RPAREN)||(LA253_8>=RBRACKET && LA253_8<=EQUAL)||LA253_8==NOTEQUAL||LA253_8==COMMA||(LA253_8>=STAR && LA253_8<=SLASH_SLASH)||LA253_8==COLON||(LA253_8>=SEMICOLON && LA253_8<=VBAR)) ) {s = 3;} + + + input.seek(index253_8); + if ( s>=0 ) return s; + break; + case 1 : + var LA253_5 = input.LA(1); + + + var index253_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_5==EOF||(LA253_5>=AND && LA253_5<=ASCENDING)||(LA253_5>=CASE && LA253_5<=CASTABLE)||LA253_5==COLLATION||LA253_5==DEFAULT||(LA253_5>=DESCENDING && LA253_5<=DIV)||LA253_5==EMPTY||LA253_5==EQ||LA253_5==EXCEPT||LA253_5==FOR||LA253_5==GE||(LA253_5>=GT && LA253_5<=IDIV)||(LA253_5>=INSTANCE && LA253_5<=IS)||LA253_5==LE||(LA253_5>=LET && LA253_5<=MOD)||LA253_5==NE||(LA253_5>=OR && LA253_5<=ORDER)||(LA253_5>=RETURN && LA253_5<=SATISFIES)||LA253_5==STABLE||(LA253_5>=TO && LA253_5<=TREAT)||LA253_5==UNION||LA253_5==WHERE||LA253_5==COUNT||(LA253_5>=END && LA253_5<=GROUP)||LA253_5==ONLY||LA253_5==START||(LA253_5>=AFTER && LA253_5<=BEFORE)||LA253_5==INTO||LA253_5==MODIFY||LA253_5==WITH||LA253_5==CONTAINS||(LA253_5>=CONCAT && LA253_5<=RPAREN)||(LA253_5>=RBRACKET && LA253_5<=EQUAL)||LA253_5==NOTEQUAL||LA253_5==COMMA||(LA253_5>=STAR && LA253_5<=SLASH_SLASH)||LA253_5==COLON||(LA253_5>=SEMICOLON && LA253_5<=VBAR)) ) {s = 3;} + + else if ( (LA253_5==NODE||LA253_5==NODES) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_5); + if ( s>=0 ) return s; + break; + case 2 : + var LA253_4 = input.LA(1); + + + var index253_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_4==EOF||(LA253_4>=AND && LA253_4<=ASCENDING)||(LA253_4>=CASE && LA253_4<=CASTABLE)||LA253_4==COLLATION||LA253_4==DEFAULT||(LA253_4>=DESCENDING && LA253_4<=DIV)||LA253_4==EMPTY||LA253_4==EQ||LA253_4==EXCEPT||LA253_4==FOR||LA253_4==GE||(LA253_4>=GT && LA253_4<=IDIV)||(LA253_4>=INSTANCE && LA253_4<=IS)||LA253_4==LE||(LA253_4>=LET && LA253_4<=MOD)||LA253_4==NE||(LA253_4>=OR && LA253_4<=ORDER)||(LA253_4>=RETURN && LA253_4<=SATISFIES)||LA253_4==STABLE||(LA253_4>=TO && LA253_4<=TREAT)||LA253_4==UNION||LA253_4==WHERE||LA253_4==COUNT||(LA253_4>=END && LA253_4<=GROUP)||LA253_4==ONLY||LA253_4==START||(LA253_4>=AFTER && LA253_4<=BEFORE)||LA253_4==INTO||LA253_4==MODIFY||LA253_4==WITH||LA253_4==CONTAINS||(LA253_4>=CONCAT && LA253_4<=RPAREN)||(LA253_4>=RBRACKET && LA253_4<=EQUAL)||LA253_4==NOTEQUAL||LA253_4==COMMA||(LA253_4>=STAR && LA253_4<=SLASH_SLASH)||LA253_4==COLON||(LA253_4>=SEMICOLON && LA253_4<=VBAR)) ) {s = 3;} + + else if ( (LA253_4==NODE||LA253_4==NODES) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_4); + if ( s>=0 ) return s; + break; + case 3 : + var LA253_6 = input.LA(1); + + + var index253_6 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_6==NODE) && ((this.lc(XQU)))) {s = 10;} + + else if ( (LA253_6==EOF||(LA253_6>=AND && LA253_6<=ASCENDING)||(LA253_6>=CASE && LA253_6<=CASTABLE)||LA253_6==COLLATION||LA253_6==DEFAULT||(LA253_6>=DESCENDING && LA253_6<=DIV)||LA253_6==EMPTY||LA253_6==EQ||LA253_6==EXCEPT||LA253_6==FOR||LA253_6==GE||(LA253_6>=GT && LA253_6<=IDIV)||(LA253_6>=INSTANCE && LA253_6<=IS)||LA253_6==LE||(LA253_6>=LET && LA253_6<=MOD)||LA253_6==NE||(LA253_6>=OR && LA253_6<=ORDER)||(LA253_6>=RETURN && LA253_6<=SATISFIES)||LA253_6==STABLE||(LA253_6>=TO && LA253_6<=TREAT)||LA253_6==UNION||LA253_6==WHERE||LA253_6==COUNT||(LA253_6>=END && LA253_6<=GROUP)||LA253_6==ONLY||LA253_6==START||(LA253_6>=AFTER && LA253_6<=BEFORE)||LA253_6==INTO||LA253_6==MODIFY||LA253_6==WITH||LA253_6==CONTAINS||(LA253_6>=CONCAT && LA253_6<=RPAREN)||(LA253_6>=RBRACKET && LA253_6<=EQUAL)||LA253_6==NOTEQUAL||LA253_6==COMMA||(LA253_6>=STAR && LA253_6<=SLASH_SLASH)||LA253_6==COLON||(LA253_6>=SEMICOLON && LA253_6<=VBAR)) ) {s = 3;} + + + input.seek(index253_6); + if ( s>=0 ) return s; + break; + case 4 : + var LA253_7 = input.LA(1); + + + var index253_7 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_7==EOF||(LA253_7>=AND && LA253_7<=ASCENDING)||(LA253_7>=CASE && LA253_7<=CASTABLE)||LA253_7==COLLATION||LA253_7==DEFAULT||(LA253_7>=DESCENDING && LA253_7<=DIV)||LA253_7==EMPTY||LA253_7==EQ||LA253_7==EXCEPT||LA253_7==FOR||LA253_7==GE||(LA253_7>=GT && LA253_7<=IDIV)||(LA253_7>=INSTANCE && LA253_7<=IS)||LA253_7==LE||(LA253_7>=LET && LA253_7<=MOD)||LA253_7==NE||(LA253_7>=OR && LA253_7<=ORDER)||(LA253_7>=RETURN && LA253_7<=SATISFIES)||LA253_7==STABLE||(LA253_7>=TO && LA253_7<=TREAT)||LA253_7==UNION||LA253_7==WHERE||LA253_7==COUNT||(LA253_7>=END && LA253_7<=GROUP)||LA253_7==ONLY||LA253_7==START||(LA253_7>=AFTER && LA253_7<=BEFORE)||LA253_7==INTO||LA253_7==MODIFY||LA253_7==WITH||LA253_7==CONTAINS||(LA253_7>=CONCAT && LA253_7<=RPAREN)||(LA253_7>=RBRACKET && LA253_7<=EQUAL)||LA253_7==NOTEQUAL||LA253_7==COMMA||(LA253_7>=STAR && LA253_7<=SLASH_SLASH)||LA253_7==COLON||(LA253_7>=SEMICOLON && LA253_7<=VBAR)) ) {s = 3;} + + else if ( (LA253_7==NODE||LA253_7==VALUE) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_7); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 253, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + + +// public class variables +org.antlr.lang.augmentObject(XQueryParser, { + tokenNames: ["", "", "", "", "L_QuotAttrContentChar", "L_AposAttrContentChar", "L_ElementContentChar", "L_CDataSection", "L_PredefinedEntityRef", "L_CharRef", "ESCAPE_LBRACKET", "ESCAPE_RBRACKET", "ESCAPE_APOS", "ESCAPE_QUOT", "CDATA_START", "CDATA_END", "ANCESTOR", "ANCESTOR_OR_SELF", "AND", "AS", "ASCENDING", "AT", "ATTRIBUTE", "BASE_URI", "BOUNDARY_SPACE", "BY", "CASE", "CAST", "CASTABLE", "CHILD", "COLLATION", "COMMENT", "CONSTRUCTION", "COPY_NAMESPACES", "DECLARE", "DEFAULT", "DESCENDANT", "DESCENDANT_OR_SELF", "DESCENDING", "DIV", "DOCUMENT", "DOCUMENT_NODE", "ELEMENT", "ELSE", "EMPTY", "EMPTY_SEQUENCE", "ENCODING", "EQ", "EVERY", "EXCEPT", "EXTERNAL", "FOLLOWING", "FOLLOWING_SIBLING", "FOR", "FUNCTION", "GE", "GREATEST", "GT", "IDIV", "IF", "IMPORT", "IN", "INHERIT", "INSTANCE", "INTERSECT", "IS", "ITEM", "LAX", "LE", "LEAST", "LET", "LT", "MOD", "MODULE", "NAMESPACE", "NE", "NO_INHERIT", "NO_PRESERVE", "NODE", "OF", "OPTION", "OR", "ORDER", "ORDERED", "ORDERING", "PARENT", "PRECEDING", "PRECEDING_SIBLING", "PRESERVE", "PROCESSING_INSTRUCTION", "RETURN", "SATISFIES", "SCHEMA", "SCHEMA_ATTRIBUTE", "SCHEMA_ELEMENT", "SELF", "SOME", "STABLE", "STRICT", "STRIP", "TEXT", "THEN", "TO", "TREAT", "TYPESWITCH", "UNION", "UNORDERED", "VALIDATE", "VARIABLE", "VERSION", "WHERE", "XQUERY", "ALLOWING", "CATCH", "CONTEXT", "COUNT", "DECIMAL_FORMAT", "DECIMAL_SEPARATOR", "DIGIT", "END", "GROUP", "GROUPING_SEPARATOR", "INFINITY", "MINUS_SIGN", "NAMESPACE_NODE", "NAN", "NEXT", "ONLY", "PATTERN_SEPARATOR", "PERCENT", "PER_MILLE", "PREVIOUS", "SLIDING", "START", "SWITCH", "TRY", "TUMBLING", "TYPE", "WHEN", "WINDOW", "ZERO_DIGIT", "AFTER", "BEFORE", "COPY", "DELETE", "FIRST", "INSERT", "INTO", "LAST", "MODIFY", "NODES", "RENAME", "REPLACE", "REVALIDATION", "SKIP", "UPDATING", "VALUE", "WITH", "ALL", "ANY", "CONTAINS", "CONTENT", "DIACRITICS", "DIFFERENT", "DISTANCE", "ENTIRE", "EXACTLY", "FROM", "FT_OPTION", "FTAND", "FTNOT", "FTOR", "INSENSITIVE", "LANGUAGE", "LEVELS", "LOWERCASE", "MOST", "NO", "NOT", "OCCURS", "PARAGRAPH", "PARAGRAPHS", "PHRASE", "RELATIONSHIP", "SAME", "SCORE", "SENSITIVE", "SENTENCE", "SENTENCES", "STEMMING", "STOP", "THESAURUS", "TIMES", "UPPERCASE", "USING", "WEIGHT", "WILDCARDS", "WITHOUT", "WORD", "WORDS", "BREAK", "CONTINUE", "EXIT", "LOOP", "RETURNING", "WHILE", "CHECK", "COLLECTION", "CONSTRAINT", "FOREACH", "FOREIGN", "INDEX", "INTEGRITY", "KEY", "ON", "UNIQUE", "BINARY", "AMP_ER", "APOS_ER", "QUOT_ER", "CONCAT", "LPAREN", "RPAREN", "DOLLAR", "LBRACKET", "RBRACKET", "LSQUARE", "RSQUARE", "EQUAL", "BIND", "NOTEQUAL", "ANN_PERCENT", "HASH", "AMP", "COMMA", "QUESTION", "STAR", "PLUS", "MINUS", "SMALLER", "GREATER", "SMALLEREQ", "GREATEREQ", "SMALLER_SMALLER", "GREATER_GREATER", "SLASH", "SLASH_SLASH", "DOT", "DOT_DOT", "COLON", "COLON_COLON", "EMPTY_CLOSE_TAG", "CLOSE_TAG", "SEMICOLON", "VBAR", "PRAGMA_START", "PRAGMA_END", "XML_COMMENT_START", "XML_COMMENT_END", "PI_START", "PI_END", "ATTR_SIGN", "CHARREF_DEC", "CHARREF_HEX", "APOS", "QUOT", "NCNameStartChar", "NCNameChar", "L_NCName", "Letter", "HexLetter", "Digit", "Digits", "S", "SU", "L_Pragma", "L_DirCommentConstructor", "L_DirPIConstructor", "L_IntegerLiteral", "L_DecimalLiteral", "L_DoubleLiteral", "L_Comment", "L_AnyChar", "L_QuotStringLiteralChar", "L_AposStringLiteralChar", "LibraryModule", "MainModule", "VersionDecl", "VersionDeclEncoding", "VersionDeclVersion", "ModuleDecl", "Prolog", "DefaultNamespaceDecls", "DefaultNamespaceDecl", "Setters", "Setter", "NamespaceDecls", "NamespaceDecl", "Imports", "FTOptionDecls", "SchemaImport", "SchemaPrefix", "NamespaceName", "DefaultElementNamespace", "AtHints", "ModuleImport", "BaseURIDecl", "OrderedDecls", "VarDecl", "VarType", "VarValue", "VarDefaultValue", "VarVariableDecl", "FunctionDecl", "ParamList", "ReturnType", "OptionDecl", "TypeDeclaration", "Param", "EnclosedExpr", "QueryBody", "UnaryExpr", "DirElemConstructor", "DirAttributeList", "DirAttributeValue", "DirElemContent", "CommonContent", "SequenceType", "EmptySequenceTest", "KindTest", "ItemTest", "FunctionTest", "AtomicType", "AtomicOrUnionType", "StringLiteral", "ElementContentChar", "AttributeValueChar", "QName", "BlockExpr", "BinaryTest", "EXPLICITLY"], + FOLLOW_p_VersionDecl_in_p_Module507: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_LibraryModule_in_p_Module540: new org.antlr.runtime.BitSet([0x00000000, 0x00000000]), + FOLLOW_p_MainModule_in_p_Module563: new org.antlr.runtime.BitSet([0x00000000, 0x00000000]), + FOLLOW_EOF_in_p_Module587: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_XQUERY_in_p_VersionDecl615: new org.antlr.runtime.BitSet([0x00000000, 0x00004000,0x00000000, 0x00002000]), + FOLLOW_ENCODING_in_p_VersionDecl623: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl629: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_VERSION_in_p_VersionDecl650: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl656: new org.antlr.runtime.BitSet([0x00000000, 0x00004000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_ENCODING_in_p_VersionDecl661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl667: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_VersionDecl673: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_Prolog_in_p_MainModule739: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pm_QueryBody_in_p_MainModule741: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ModuleDecl_in_p_LibraryModule797: new org.antlr.runtime.BitSet([0x00000000, 0x10000004]), + FOLLOW_pm_Prolog_in_p_LibraryModule799: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_MODULE_in_p_ModuleDecl855: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_p_ModuleDecl859: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_ModuleDecl863: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_ModuleDecl865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_ModuleDecl867: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ModuleDecl869: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DefaultNamespaceDecl_in_pm_Prolog928: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_p_Setter_in_pm_Prolog934: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pm_NamespaceDecl_in_pm_Prolog940: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_p_Import_in_pm_Prolog946: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pm_FTOptionDecl_in_pm_Prolog952: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pg_OrderedDecl_in_pm_Prolog959: new org.antlr.runtime.BitSet([0x00000002, 0x00000004]), + FOLLOW_pm_ContextItemDecl_in_pg_OrderedDecl1274: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_AnnotatedDecl_in_pg_OrderedDecl1286: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_OptionDecl_in_pg_OrderedDecl1298: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_BoundarySpaceDecl_in_p_Setter1328: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DefaultCollationDecl_in_p_Setter1340: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_BaseURIDecl_in_p_Setter1352: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_ConstructionDecl_in_p_Setter1364: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_OrderingModeDecl_in_p_Setter1376: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_EmptyOrderDecl_in_p_Setter1388: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_RevalidationDecl_in_p_Setter1403: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CopyNamespacesDecl_in_p_Setter1415: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DecimalFormatDecl_in_p_Setter1427: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_BoundarySpaceDecl1459: new org.antlr.runtime.BitSet([0x01000000, 0x00000000]), + FOLLOW_BOUNDARY_SPACE_in_pm_BoundarySpaceDecl1465: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01000000, 0x00000008]), + FOLLOW_PRESERVE_in_pm_BoundarySpaceDecl1474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_STRIP_in_pm_BoundarySpaceDecl1484: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_BoundarySpaceDecl1491: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DefaultCollationDecl1519: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_DefaultCollationDecl1525: new org.antlr.runtime.BitSet([0x40000000, 0x00000000]), + FOLLOW_COLLATION_in_pm_DefaultCollationDecl1531: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DefaultCollationDecl1535: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DefaultCollationDecl1537: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_BaseURIDecl1573: new org.antlr.runtime.BitSet([0x00800000, 0x00000000]), + FOLLOW_BASE_URI_in_pm_BaseURIDecl1579: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_BaseURIDecl1585: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_BaseURIDecl1587: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_ConstructionDecl1640: new org.antlr.runtime.BitSet([0x00000000, 0x00000001]), + FOLLOW_CONSTRUCTION_in_pm_ConstructionDecl1646: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01000000, 0x00000008]), + FOLLOW_STRIP_in_pm_ConstructionDecl1655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_PRESERVE_in_pm_ConstructionDecl1661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_ConstructionDecl1668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_OrderingModeDecl1696: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_ORDERING_in_pm_OrderingModeDecl1702: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00080000, 0x00000400]), + FOLLOW_ORDERED_in_pm_OrderingModeDecl1711: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_UNORDERED_in_pm_OrderingModeDecl1717: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_OrderingModeDecl1724: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_EmptyOrderDecl1752: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_EmptyOrderDecl1758: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00040000, 0x00000000]), + FOLLOW_ORDER_in_pm_EmptyOrderDecl1764: new org.antlr.runtime.BitSet([0x00000000, 0x00001000]), + FOLLOW_EMPTY_in_pm_EmptyOrderDecl1770: new org.antlr.runtime.BitSet([0x00000000, 0x01000000,0x00000020, 0x00000000]), + FOLLOW_GREATEST_in_pm_EmptyOrderDecl1779: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_LEAST_in_pm_EmptyOrderDecl1785: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_EmptyOrderDecl1792: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_CopyNamespacesDecl1820: new org.antlr.runtime.BitSet([0x00000000, 0x00000002]), + FOLLOW_COPY_NAMESPACES_in_pm_CopyNamespacesDecl1826: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01002000, 0x00000000]), + FOLLOW_p_PreserveMode_in_pm_CopyNamespacesDecl1830: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_pm_CopyNamespacesDecl1832: new org.antlr.runtime.BitSet([0x00000000, 0x40000000,0x00001000, 0x00000000]), + FOLLOW_p_InheritMode_in_pm_CopyNamespacesDecl1834: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_CopyNamespacesDecl1836: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRESERVE_in_p_PreserveMode1865: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_PRESERVE_in_p_PreserveMode1871: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INHERIT_in_p_InheritMode1903: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_INHERIT_in_p_InheritMode1909: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DecimalFormatDecl1948: new org.antlr.runtime.BitSet([0x00000000, 0x00000008,0x00000000, 0x00100000]), + FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1956: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_DecimalFormatDecl1960: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_DEFAULT_in_pm_DecimalFormatDecl1968: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00100000]), + FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1974: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_p_DFPropertyName_in_pm_DecimalFormatDecl1981: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_DecimalFormatDecl1983: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DecimalFormatDecl1985: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DecimalFormatDecl1989: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECIMAL_SEPARATOR_in_p_DFPropertyName2018: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GROUPING_SEPARATOR_in_p_DFPropertyName2024: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INFINITY_in_p_DFPropertyName2030: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_MINUS_SIGN_in_p_DFPropertyName2036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAN_in_p_DFPropertyName2042: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PERCENT_in_p_DFPropertyName2048: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PER_MILLE_in_p_DFPropertyName2054: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ZERO_DIGIT_in_p_DFPropertyName2060: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIGIT_in_p_DFPropertyName2066: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PATTERN_SEPARATOR_in_p_DFPropertyName2072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_SchemaImport_in_p_Import2101: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_ModuleImport_in_p_Import2105: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IMPORT_in_pm_SchemaImport2141: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_SCHEMA_in_pm_SchemaImport2147: new org.antlr.runtime.BitSet([0x00000000, 0x00000008,0x00000400, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_SchemaPrefix_in_pm_SchemaImport2153: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2158: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_AT_in_pm_SchemaImport2163: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2169: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_pm_SchemaImport2172: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2176: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_pm_SchemaImport2182: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_in_p_SchemaPrefix2252: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_SchemaPrefix2258: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_SchemaPrefix2260: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DEFAULT_in_p_SchemaPrefix2299: new org.antlr.runtime.BitSet([0x00000000, 0x00000400]), + FOLLOW_ELEMENT_in_p_SchemaPrefix2305: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_p_SchemaPrefix2311: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IMPORT_in_pm_ModuleImport2361: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000200, 0x00000000]), + FOLLOW_MODULE_in_pm_ModuleImport2367: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_ModuleImport2374: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_ModuleImport2380: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_ModuleImport2382: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2388: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_AT_in_pm_ModuleImport2393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_pm_ModuleImport2402: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2406: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_pm_ModuleImport2412: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_NamespaceDecl2481: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_NamespaceDecl2487: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_NamespaceDecl2493: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_NamespaceDecl2495: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_NamespaceDecl2499: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_NamespaceDecl2501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DefaultNamespaceDecl2558: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_DefaultNamespaceDecl2564: new org.antlr.runtime.BitSet([0x00000000, 0x00400400]), + FOLLOW_ELEMENT_in_pm_DefaultNamespaceDecl2571: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_FUNCTION_in_pm_DefaultNamespaceDecl2577: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_DefaultNamespaceDecl2584: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DefaultNamespaceDecl2588: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DefaultNamespaceDecl2590: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_AnnotatedDecl2618: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00001000,0x08000000, 0x00000000,0x00188000, 0x00000080]), + FOLLOW_p_Annotation_in_pm_AnnotatedDecl2622: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00001000,0x08000000, 0x00000000,0x00188000, 0x00000080]), + FOLLOW_pg_AnnotatedDecl_in_pm_AnnotatedDecl2625: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_AnnotatedDecl2627: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarDecl_in_pg_AnnotatedDecl2651: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_FunctionDecl_in_pg_AnnotatedDecl2663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CollectionDecl_in_pg_AnnotatedDecl2678: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IndexDecl_in_pg_AnnotatedDecl2693: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICDecl_in_pg_AnnotatedDecl2708: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANN_PERCENT_in_p_Annotation2734: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_Annotation2736: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_Annotation2739: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_Literal_in_p_Annotation2741: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_Annotation2744: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_Literal_in_p_Annotation2746: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_Annotation2750: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VARIABLE_in_p_VarDecl2780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDecl2786: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_VarDecl2790: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_TypeDeclaration_in_p_VarDecl2796: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_VarDecl2801: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarValue_in_p_VarDecl2805: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXTERNAL_in_p_VarDecl2813: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_VarDecl2818: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarDefaultValue_in_p_VarDecl2822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarValue2901: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDefaultValue2928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_ContextItemDecl2957: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_CONTEXT_in_pm_ContextItemDecl2963: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_ITEM_in_pm_ContextItemDecl2969: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_AS_in_pm_ContextItemDecl2976: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ItemType_in_pm_ContextItemDecl2980: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_pm_ContextItemDecl2986: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarValue_in_pm_ContextItemDecl2988: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_EXTERNAL_in_pm_ContextItemDecl2996: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000020]), + FOLLOW_BIND_in_pm_ContextItemDecl3001: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarDefaultValue_in_pm_ContextItemDecl3003: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_ContextItemDecl3009: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UPDATING_in_pm_FunctionDecl3042: new org.antlr.runtime.BitSet([0x00000000, 0x00400000]), + FOLLOW_FUNCTION_in_pm_FunctionDecl3050: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pg_FQName_in_pm_FunctionDecl3056: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_pm_FunctionDecl3058: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0xC0000000, 0x00000000]), + FOLLOW_p_ParamList_in_pm_FunctionDecl3062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_pm_FunctionDecl3065: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_AS_in_pm_FunctionDecl3070: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_pm_FunctionDecl3076: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_FunctionDecl3081: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_FunctionDecl3085: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_FunctionDecl3087: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXTERNAL_in_pm_FunctionDecl3093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Param_in_p_ParamList3170: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_ParamList3173: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_Param_in_p_ParamList3177: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_Param3237: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_Param3241: new org.antlr.runtime.BitSet([0x00080002, 0x00000000]), + FOLLOW_p_TypeDeclaration_in_p_Param3247: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_EnclosedExpr_in_pm_FunctionBody3303: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_EnclosedExpr3330: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_EnclosedExpr3332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_EnclosedExpr3335: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_OptionDecl3387: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00010000, 0x00000000]), + FOLLOW_OPTION_in_pm_OptionDecl3393: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_OptionDecl3397: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_OptionDecl3399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_OptionDecl3401: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Program_in_pm_QueryBody3430: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_pm_QueryBody3442: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Expr3478: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_Expr3494: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Expr3496: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_FLWORHybrid_in_p_ExprSingle3563: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IfHybrid_in_p_ExprSingle3593: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SwitchHybrid_in_p_ExprSingle3619: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TypeswitchHybrid_in_p_ExprSingle3641: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TryCatchHybrid_in_p_ExprSingle3668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSimple_in_p_ExprSingle3681: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_FLWORHybrid3708: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_IntermediateClause_in_p_FLWORHybrid3710: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_ReturnHybrid_in_p_FLWORHybrid3713: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ForClause_in_p_InitialClause3740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_LetClause_in_p_InitialClause3744: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WindowClause_in_p_InitialClause3748: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_IntermediateClause3774: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WhereClause_in_p_IntermediateClause3778: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_GroupByClause_in_p_IntermediateClause3782: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderByClause_in_p_IntermediateClause3786: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CountClause_in_p_IntermediateClause3790: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RangeExpr_in_p_StringConcatExpr3811: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_CONCAT_in_p_StringConcatExpr3817: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RangeExpr_in_p_StringConcatExpr3821: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_FOR_in_p_ForClause3848: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_ForBinding_in_p_ForClause3852: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_ForClause3855: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_ForBinding_in_p_ForClause3857: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_ForBinding3887: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_ForBinding3891: new org.antlr.runtime.BitSet([0x00280000, 0x20000000,0x00000000, 0x00010000,0x00000000, 0x02000000]), + FOLLOW_p_TypeDeclaration_in_p_ForBinding3895: new org.antlr.runtime.BitSet([0x00200000, 0x20000000,0x00000000, 0x00010000,0x00000000, 0x02000000]), + FOLLOW_p_AllowingEmpty_in_p_ForBinding3898: new org.antlr.runtime.BitSet([0x00200000, 0x20000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_p_PositionalVar_in_p_ForBinding3901: new org.antlr.runtime.BitSet([0x00000000, 0x20000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_p_FTScoreVar_in_p_ForBinding3904: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_ForBinding3909: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ForBinding3913: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ALLOWING_in_p_AllowingEmpty3942: new org.antlr.runtime.BitSet([0x00000000, 0x00001000]), + FOLLOW_EMPTY_in_p_AllowingEmpty3948: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_PositionalVar3978: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_PositionalVar3984: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_PositionalVar3988: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LET_in_p_LetClause4018: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000,0x80000000, 0x00000000]), + FOLLOW_p_LetBinding_in_p_LetClause4022: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_LetClause4025: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000,0x80000000, 0x00000000]), + FOLLOW_p_LetBinding_in_p_LetClause4027: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_LetBinding4061: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_LetBinding4065: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_TypeDeclaration_in_p_LetBinding4069: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_FTScoreVar_in_p_LetBinding4075: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_LetBinding4079: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_LetBinding4081: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOR_in_p_WindowClause4110: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000110, 0x00000000]), + FOLLOW_p_TumblingWindowClause_in_p_WindowClause4115: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SlidingWindowClause_in_p_WindowClause4119: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TUMBLING_in_p_TumblingWindowClause4156: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_WINDOW_in_p_TumblingWindowClause4162: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TumblingWindowClause4168: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TumblingWindowClause4172: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_TumblingWindowClause4176: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_TumblingWindowClause4181: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TumblingWindowClause4185: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_WindowStartCondition_in_p_TumblingWindowClause4188: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x80800000]), + FOLLOW_p_WindowEndCondition_in_p_TumblingWindowClause4190: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLIDING_in_p_SlidingWindowClause4219: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_WINDOW_in_p_SlidingWindowClause4225: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_SlidingWindowClause4231: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_SlidingWindowClause4235: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_SlidingWindowClause4239: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_SlidingWindowClause4244: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SlidingWindowClause4248: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_WindowStartCondition_in_p_SlidingWindowClause4251: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x80800000]), + FOLLOW_p_WindowEndCondition_in_p_SlidingWindowClause4253: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_START_in_p_WindowStartCondition4282: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x40000000,0x00000408, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_WindowVars_in_p_WindowStartCondition4286: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_WHEN_in_p_WindowStartCondition4290: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WindowStartCondition4294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ONLY_in_p_WindowEndCondition4324: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00800000]), + FOLLOW_END_in_p_WindowEndCondition4332: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x40000000,0x00000408, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_WindowVars_in_p_WindowEndCondition4336: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_WHEN_in_p_WindowEndCondition4340: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WindowEndCondition4344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4374: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CurrentItem_in_p_WindowVars4378: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x40000000,0x00000008, 0x00000000]), + FOLLOW_p_PositionalVar_in_p_WindowVars4384: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x40000000,0x00000008, 0x00000000]), + FOLLOW_PREVIOUS_in_p_WindowVars4390: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4394: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PreviousItem_in_p_WindowVars4396: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_NEXT_in_p_WindowVars4403: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4407: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NextItem_in_p_WindowVars4409: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_CurrentItem4437: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_PreviousItem4463: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NextItem4489: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COUNT_in_p_CountClause4517: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CountClause4523: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CountClause4527: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WHERE_in_p_WhereClause4565: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WhereClause4569: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GROUP_in_p_GroupByClause4598: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_GroupByClause4604: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_GroupingSpecList_in_p_GroupByClause4608: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4634: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_GroupingSpecList4637: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4639: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_GroupingSpec4669: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_GroupingSpec4673: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_COLLATION_in_p_GroupingSpec4680: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_GroupingSpec4684: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDER_in_p_OrderByClause4716: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_OrderByClause4720: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_STABLE_in_p_OrderByClause4728: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00040000, 0x00000000]), + FOLLOW_ORDER_in_p_OrderByClause4732: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_OrderByClause4736: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_OrderSpecList_in_p_OrderByClause4742: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderSpec_in_p_OrderSpecList4768: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_OrderSpecList4771: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_OrderSpec_in_p_OrderSpecList4773: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_ExprSingle_in_p_OrderSpec4801: new org.antlr.runtime.BitSet([0x40100000, 0x00001040]), + FOLLOW_p_OrderModifier_in_p_OrderSpec4804: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ASCENDING_in_p_OrderModifier4833: new org.antlr.runtime.BitSet([0x40000002, 0x00001000]), + FOLLOW_DESCENDING_in_p_OrderModifier4839: new org.antlr.runtime.BitSet([0x40000002, 0x00001000]), + FOLLOW_EMPTY_in_p_OrderModifier4846: new org.antlr.runtime.BitSet([0x00000000, 0x01000000,0x00000020, 0x00000000]), + FOLLOW_GREATEST_in_p_OrderModifier4851: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_LEAST_in_p_OrderModifier4857: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_COLLATION_in_p_OrderModifier4865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_OrderModifier4867: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RETURN_in_p_ReturnHybrid4900: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_ReturnHybrid4904: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SOME_in_p_QuantifiedExpr4934: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_EVERY_in_p_QuantifiedExpr4940: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_QuantifiedExpr4947: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_QuantifiedExpr4951: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4955: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_QuantifiedExpr4960: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4964: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x08000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_QuantifiedExpr4968: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_QuantifiedExpr4972: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_QuantifiedExpr4976: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4980: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_QuantifiedExpr4985: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4989: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x08000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_SATISFIES_in_p_QuantifiedExpr4996: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr5000: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_p_SwitchHybrid5030: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SwitchHybrid5034: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_SwitchHybrid5036: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SwitchHybrid5039: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_SwitchCaseHybrid_in_p_SwitchHybrid5041: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_SwitchHybrid5047: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchHybrid5053: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchHybrid5057: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_SwitchCaseHybrid5088: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseHybrid5092: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchCaseHybrid5098: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchCaseHybrid5102: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SwitchCaseOperand5129: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPESWITCH_in_p_TypeswitchHybrid5159: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypeswitchHybrid5163: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_TypeswitchHybrid5165: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TypeswitchHybrid5168: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_CaseHybrid_in_p_TypeswitchHybrid5170: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_TypeswitchHybrid5176: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TypeswitchHybrid5183: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TypeswitchHybrid5187: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TypeswitchHybrid5195: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_TypeswitchHybrid5199: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_CaseHybrid5229: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CaseHybrid5236: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CaseHybrid5240: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CaseHybrid5246: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceTypeUnion_in_p_CaseHybrid5252: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_CaseHybrid5256: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_CaseHybrid5260: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5287: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_VBAR_in_p_SequenceTypeUnion5290: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5292: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_IF_in_p_IfHybrid5323: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_IfHybrid5327: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_IfHybrid5329: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_IfHybrid5332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_THEN_in_p_IfHybrid5336: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfHybrid5340: new org.antlr.runtime.BitSet([0x00000000, 0x00000800]), + FOLLOW_ELSE_in_p_IfHybrid5345: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfHybrid5349: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TryClause_in_p_TryCatchExpr5376: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_p_CatchClause_in_p_TryCatchExpr5378: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TRY_in_p_TryClause5407: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_TryClause5411: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TryTargetExpr_in_p_TryClause5413: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_TryClause5415: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_TryTargetExpr5441: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CATCH_in_p_CatchClause5470: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_CatchClause5474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CatchClause5476: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CatchClause5478: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CatchClause5481: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NameTest_in_p_CatchErrorList5507: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_VBAR_in_p_CatchErrorList5510: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NameTest_in_p_CatchErrorList5512: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_p_AndExpr_in_p_OrExpr5557: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_OR_in_p_OrExpr5563: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AndExpr_in_p_OrExpr5567: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_p_ComparisonExpr_in_p_AndExpr5596: new org.antlr.runtime.BitSet([0x00040002, 0x00000000]), + FOLLOW_AND_in_p_AndExpr5602: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ComparisonExpr_in_p_AndExpr5606: new org.antlr.runtime.BitSet([0x00040002, 0x00000000]), + FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5636: new org.antlr.runtime.BitSet([0x00000002, 0x02808000,0x00000892, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x001F8050]), + FOLLOW_p_ValueComp_in_p_ComparisonExpr5641: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_GeneralComp_in_p_ComparisonExpr5645: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeComp_in_p_ComparisonExpr5649: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5652: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_RangeExpr5681: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_RangeExpr5687: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_RangeExpr5691: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5720: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00006000]), + FOLLOW_PLUS_in_p_AdditiveExpr5727: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MINUS_in_p_AdditiveExpr5735: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00006000]), + FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5769: new org.antlr.runtime.BitSet([0x00000002, 0x04000080,0x00000100, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_MultiplicativeExpr5776: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DIV_in_p_MultiplicativeExpr5785: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_IDIV_in_p_MultiplicativeExpr5791: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MOD_in_p_MultiplicativeExpr5797: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5803: new org.antlr.runtime.BitSet([0x00000002, 0x04000080,0x00000100, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5832: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000200,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_UNION_in_p_UnionExpr5839: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_VBAR_in_p_UnionExpr5845: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5848: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000200,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5877: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000001, 0x00000000]), + FOLLOW_INTERSECT_in_p_IntersectExceptExpr5884: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_EXCEPT_in_p_IntersectExceptExpr5890: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5895: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000001, 0x00000000]), + FOLLOW_p_TreatExpr_in_p_InstanceofExpr5924: new org.antlr.runtime.BitSet([0x00000002, 0x80000000]), + FOLLOW_INSTANCE_in_p_InstanceofExpr5930: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_OF_in_p_InstanceofExpr5936: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_InstanceofExpr5940: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CastableExpr_in_p_TreatExpr5968: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_TREAT_in_p_TreatExpr5974: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_TreatExpr5980: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TreatExpr5984: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CastExpr_in_p_CastableExpr6021: new org.antlr.runtime.BitSet([0x10000002, 0x00000000]), + FOLLOW_CASTABLE_in_p_CastableExpr6027: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CastableExpr6033: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SingleType_in_p_CastableExpr6037: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_UnaryExpr_in_p_CastExpr6074: new org.antlr.runtime.BitSet([0x08000002, 0x00000000]), + FOLLOW_CAST_in_p_CastExpr6080: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CastExpr6086: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SingleType_in_p_CastExpr6090: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PLUS_in_p_UnaryExpr6122: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MINUS_in_p_UnaryExpr6130: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ValueExpr_in_p_UnaryExpr6135: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ValidateExpr_in_p_ValueExpr6205: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ValueExpr6217: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExtensionExpr_in_p_ValueExpr6229: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EQUAL_in_p_GeneralComp6258: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NOTEQUAL_in_p_GeneralComp6264: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_in_p_GeneralComp6270: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLEREQ_in_p_GeneralComp6276: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_in_p_GeneralComp6282: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATEREQ_in_p_GeneralComp6288: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EQ_in_p_ValueComp6320: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NE_in_p_ValueComp6326: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LT_in_p_ValueComp6332: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LE_in_p_ValueComp6338: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GT_in_p_ValueComp6344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GE_in_p_ValueComp6350: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IS_in_p_NodeComp6381: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_SMALLER_in_p_NodeComp6387: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_GREATER_in_p_NodeComp6391: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VALIDATE_in_p_ValidateExpr6419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000008, 0x00000004,0x00000200, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_ValidationMode_in_p_ValidateExpr6425: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_TYPE_in_p_ValidateExpr6431: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_ValidateExpr6435: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_ValidateExpr6440: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ValidateExpr6442: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_ValidateExpr6445: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LAX_in_p_ValidationMode6474: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STRICT_in_p_ValidationMode6480: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_Pragma_in_p_ExtensionExpr6509: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00080000, 0x00000000]), + FOLLOW_LBRACKET_in_p_ExtensionExpr6512: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F003,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ExtensionExpr6514: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_ExtensionExpr6518: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_p_PathExpr6561: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6563: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_p_PathExpr6576: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_SLASH_in_p_PathExpr6588: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6590: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6602: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StepExpr_in_p_RelativePathExpr6630: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00600000]), + FOLLOW_set_in_p_RelativePathExpr6633: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StepExpr_in_p_RelativePathExpr6641: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00600000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6695: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6809: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AxisStep_in_p_StepExpr6827: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6848: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6866: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AxisStep_in_p_StepExpr6878: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReverseStep_in_p_AxisStep6905: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_ForwardStep_in_p_AxisStep6909: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_PredicateList_in_p_AxisStep6912: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ForwardAxis_in_p_ForwardStep6938: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_ForwardStep6940: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AbbrevForwardStep_in_p_ForwardStep6952: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CHILD_in_p_ForwardAxis6978: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis6980: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DESCENDANT_in_p_ForwardAxis6992: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis6994: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_p_ForwardAxis7006: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7008: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SELF_in_p_ForwardAxis7020: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7022: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DESCENDANT_OR_SELF_in_p_ForwardAxis7034: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOLLOWING_SIBLING_in_p_ForwardAxis7048: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7050: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOLLOWING_in_p_ForwardAxis7062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7064: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTR_SIGN_in_p_AbbrevForwardStep7090: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_AbbrevForwardStep7093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReverseAxis_in_p_ReverseStep7119: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_ReverseStep7121: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AbbrevReverseStep_in_p_ReverseStep7133: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARENT_in_p_ReverseAxis7159: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7161: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANCESTOR_in_p_ReverseAxis7173: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7175: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRECEDING_SIBLING_in_p_ReverseAxis7187: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7189: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRECEDING_in_p_ReverseAxis7201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7203: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANCESTOR_OR_SELF_in_p_ReverseAxis7215: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7217: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOT_DOT_in_p_AbbrevReverseStep7243: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_p_NodeTest7269: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NameTest_in_p_NodeTest7273: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Wildcard_in_p_NameTest7305: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NameTest7326: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NameTest7344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_Wildcard7374: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7377: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_Wildcard7379: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_Wildcard7393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7395: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_Wildcard7397: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_Wildcard7409: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7411: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_Wildcard7413: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PrimaryExpr_in_p_PostfixExpr7451: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_Predicate_in_p_PostfixExpr7454: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_LPAREN_in_p_ArgumentList7495: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xEFFFFFFF, 0x01E0F801,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Argument_in_p_ArgumentList7498: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_ArgumentList7501: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F801,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Argument_in_p_ArgumentList7503: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_ArgumentList7509: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Predicate_in_p_PredicateList7535: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_LSQUARE_in_p_Predicate7562: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_Predicate7564: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000008]), + FOLLOW_RSQUARE_in_p_Predicate7567: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ParenthesizedExpr_in_p_PrimaryExpr7600: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Literal_in_p_PrimaryExpr7612: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarRef_in_p_PrimaryExpr7624: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ContextItemExpr_in_p_PrimaryExpr7636: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FunctionCall_in_p_PrimaryExpr7648: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderedExpr_in_p_PrimaryExpr7660: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_UnorderedExpr_in_p_PrimaryExpr7672: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Constructor_in_p_PrimaryExpr7684: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_BlockExpr_in_p_PrimaryExpr7698: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NumericLiteral_in_p_Literal7724: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_Literal7728: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_NumericLiteral7756: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DecimalLiteral_in_p_NumericLiteral7764: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DoubleLiteral_in_p_NumericLiteral7772: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarRef7810: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarRef7814: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_VarName7842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_ParenthesizedExpr7868: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xEFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ParenthesizedExpr7870: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ParenthesizedExpr7874: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOT_in_p_ContextItemExpr7900: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDERED_in_p_OrderedExpr7928: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_OrderedExpr7932: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_OrderedExpr7934: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_OrderedExpr7937: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UNORDERED_in_p_UnorderedExpr7965: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_UnorderedExpr7969: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_UnorderedExpr7971: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_UnorderedExpr7974: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_FQName_in_p_FunctionCall8003: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_ArgumentList_in_p_FunctionCall8008: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Argument8034: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ArgumentPlaceholder_in_p_Argument8039: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_QUESTION_in_p_ArgumentPlaceholder8065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirectConstructor_in_p_Constructor8091: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ComputedConstructor_in_p_Constructor8103: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirElemConstructor_in_p_DirectConstructor8129: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirCommentConstructor_in_p_DirectConstructor8141: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirPIConstructor_in_p_DirectConstructor8153: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_in_p_DirElemConstructor8180: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirElemConstructor8196: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08010000,0x00020000, 0x00000000]), + FOLLOW_p_DirAttributeList_in_p_DirElemConstructor8201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08010000]), + FOLLOW_EMPTY_CLOSE_TAG_in_p_DirElemConstructor8215: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_in_p_DirElemConstructor8220: new org.antlr.runtime.BitSet([0x00000FC0, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10008001,0x00300000, 0x00000000]), + FOLLOW_pm_DirElemContent_in_p_DirElemConstructor8222: new org.antlr.runtime.BitSet([0x00000FC0, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10008001,0x00300000, 0x00000000]), + FOLLOW_CLOSE_TAG_in_p_DirElemConstructor8225: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirElemConstructor8229: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000,0x00020000, 0x00000000]), + FOLLOW_S_in_p_DirElemConstructor8233: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_GREATER_in_p_DirElemConstructor8236: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8313: new org.antlr.runtime.BitSet([0xFFFF0002, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00021000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirAttributeList8318: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010,0x00020000, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_DirAttributeList8325: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020300, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8327: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020300, 0x00000000]), + FOLLOW_p_DirAttributeValue_in_p_DirAttributeList8332: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8366: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_ESCAPE_QUOT_in_p_DirAttributeValue8373: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8379: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_p_QuotAttrValueContent_in_p_DirAttributeValue8383: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8389: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8434: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_ESCAPE_APOS_in_p_DirAttributeValue8441: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8447: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_p_AposAttrValueContent_in_p_DirAttributeValue8451: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8457: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QuotAttrContentChar_in_p_QuotAttrValueContent8515: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_p_QuotAttrValueContent8521: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AposAttrContentChar_in_p_AposAttrValueContent8549: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_p_AposAttrValueContent8555: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirectConstructor_in_pm_DirElemContent8581: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CDataSection_in_pm_DirElemContent8593: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_pm_DirElemContent8605: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementContentChar_in_pm_DirElemContent8617: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_PredefinedEntityRef_in_pm_CommonContent8645: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_CharRef_in_pm_CommonContent8657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ESCAPE_LBRACKET_in_pm_CommonContent8671: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ESCAPE_RBRACKET_in_pm_CommonContent8687: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_EnclosedExprXml_in_pm_CommonContent8701: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_pg_EnclosedExprXml8733: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pg_EnclosedExprXml8749: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pg_EnclosedExprXml8763: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DirCommentConstructor_in_p_DirCommentConstructor8794: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DirPIConstructor_in_p_DirPIConstructor8830: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_CDataSection_in_p_CDataSection8867: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompDocConstructor_in_p_ComputedConstructor8901: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompElemConstructor_in_p_ComputedConstructor8913: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompAttrConstructor_in_p_ComputedConstructor8925: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompNamespaceConstructor_in_p_ComputedConstructor8937: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompTextConstructor_in_p_ComputedConstructor8949: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompCommentConstructor_in_p_ComputedConstructor8961: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompPIConstructor_in_p_ComputedConstructor8973: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompBinaryConstructor_in_p_ComputedConstructor8988: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOCUMENT_in_pm_CompDocConstructor9017: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompDocConstructor9021: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompDocConstructor9023: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompDocConstructor9025: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ELEMENT_in_pm_CompElemConstructor9061: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_CompElemConstructor9066: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompElemConstructor9071: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompElemConstructor9073: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompElemConstructor9076: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompElemConstructor9080: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pm_ContentExpr_in_pm_CompElemConstructor9082: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompElemConstructor9084: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_ContentExpr9111: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_pm_CompAttrConstructor9140: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_CompAttrConstructor9145: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompAttrConstructor9150: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompAttrConstructor9152: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompAttrConstructor9155: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompAttrConstructor9159: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompAttrConstructor9161: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompAttrConstructor9163: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_in_p_CompNamespaceConstructor9191: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Prefix_in_p_CompNamespaceConstructor9196: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9201: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PrefixExpr_in_p_CompNamespaceConstructor9203: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9205: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9209: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F003,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_URIExpr_in_p_CompNamespaceConstructor9211: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9214: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_Prefix9240: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_PrefixExpr9266: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_URIExpr9293: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TEXT_in_p_CompTextConstructor9322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompTextConstructor9326: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CompTextConstructor9328: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompTextConstructor9331: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BINARY_in_p_CompBinaryConstructor9359: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompBinaryConstructor9363: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CompBinaryConstructor9365: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompBinaryConstructor9368: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COMMENT_in_pm_CompCommentConstructor9397: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompCommentConstructor9401: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompCommentConstructor9403: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompCommentConstructor9405: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PROCESSING_INSTRUCTION_in_pm_CompPIConstructor9434: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_CompPIConstructor9439: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompPIConstructor9444: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompPIConstructor9446: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompPIConstructor9449: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompPIConstructor9453: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompPIConstructor9455: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompPIConstructor9457: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AtomicOrUnionType_in_p_SingleType9501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_QUESTION_in_p_SingleType9503: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_TypeDeclaration9532: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypeDeclaration9538: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EMPTY_SEQUENCE_in_p_SequenceType9591: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SequenceType9597: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SequenceType9601: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ItemType_in_p_SequenceType9650: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_SequenceType9661: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_OccurrenceIndicator0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_p_ItemType9763: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BINARY_in_p_ItemType9803: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ItemType9805: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ItemType9807: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ITEM_in_p_ItemType9849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ItemType9851: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ItemType9853: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AtomicOrUnionType_in_p_ItemType9897: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ParenthesizedItemType_in_p_ItemType9909: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AtomicOrUnionType9935: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DocumentTest_in_p_KindTest9985: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementTest_in_p_KindTest9997: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeTest_in_p_KindTest10009: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SchemaElementTest_in_p_KindTest10021: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SchemaAttributeTest_in_p_KindTest10033: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PITest_in_p_KindTest10045: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CommentTest_in_p_KindTest10057: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TextTest_in_p_KindTest10069: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NamespaceNodeTest_in_p_KindTest10081: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AnyKindTest_in_p_KindTest10093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NODE_in_p_AnyKindTest10119: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AnyKindTest10121: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AnyKindTest10123: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOCUMENT_NODE_in_p_DocumentTest10149: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_DocumentTest10151: new org.antlr.runtime.BitSet([0x00000000, 0x00000400,0x40000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_ElementTest_in_p_DocumentTest10154: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_SchemaElementTest_in_p_DocumentTest10158: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_DocumentTest10162: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TEXT_in_p_TextTest10188: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TextTest10190: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TextTest10192: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COMMENT_in_p_CommentTest10218: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_CommentTest10220: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_CommentTest10222: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_NODE_in_p_NamespaceNodeTest10248: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_NamespaceNodeTest10250: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_NamespaceNodeTest10252: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PROCESSING_INSTRUCTION_in_p_PITest10278: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_PITest10280: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00000000,0x01C01300, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_PITest10283: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_PITest10287: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_PITest10291: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_p_AttributeTest10317: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AttributeTest10319: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00001000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AttribNameOrWildcard_in_p_AttributeTest10322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_AttributeTest10325: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_AttributeTest10327: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AttributeTest10333: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeName_in_p_AttribNameOrWildcard10361: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_AttribNameOrWildcard10365: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCHEMA_ATTRIBUTE_in_p_SchemaAttributeTest10391: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SchemaAttributeTest10393: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AttributeDeclaration_in_p_SchemaAttributeTest10395: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SchemaAttributeTest10397: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeName_in_p_AttributeDeclaration10423: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ELEMENT_in_p_ElementTest10449: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ElementTest10451: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00001000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ElementNameOrWildcard_in_p_ElementTest10454: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_ElementTest10457: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_ElementTest10459: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000800]), + FOLLOW_QUESTION_in_p_ElementTest10461: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ElementTest10468: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_ElementNameOrWildcard10494: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_ElementNameOrWildcard10498: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCHEMA_ELEMENT_in_p_SchemaElementTest10516: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SchemaElementTest10518: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ElementDeclaration_in_p_SchemaElementTest10520: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SchemaElementTest10522: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementName_in_p_ElementDeclaration10548: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AttributeName10574: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_ElementName10600: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_TypeName10626: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Annotation_in_p_FunctionTest10652: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_p_AnyFunctionTest_in_p_FunctionTest10656: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TypedFunctionTest_in_p_FunctionTest10660: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FUNCTION_in_p_AnyFunctionTest10687: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AnyFunctionTest10689: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_AnyFunctionTest10691: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AnyFunctionTest10693: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FUNCTION_in_p_TypedFunctionTest10719: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypedFunctionTest10721: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x6FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10724: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_TypedFunctionTest10727: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10729: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_TypedFunctionTest10735: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_TypedFunctionTest10737: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10739: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_ParenthesizedItemType10765: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ItemType_in_p_ParenthesizedItemType10767: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ParenthesizedItemType10769: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_QUOT_in_p_StringLiteral10820: new org.antlr.runtime.BitSet([0xFFFFFFF0, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFFFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_pg_QuotStringLiteralContent_in_p_StringLiteral10824: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000200, 0x00000000]), + FOLLOW_QUOT_in_p_StringLiteral10826: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_APOS_in_p_StringLiteral10865: new org.antlr.runtime.BitSet([0xFFFFFFF0, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFFFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_pg_AposStringLiteralContent_in_p_StringLiteral10869: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000100, 0x00000000]), + FOLLOW_APOS_in_p_StringLiteral10871: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_pg_QuotStringLiteralContent10937: new org.antlr.runtime.BitSet([0xFFFFFFF2, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFDFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_set_in_pg_AposStringLiteralContent10988: new org.antlr.runtime.BitSet([0xFFFFFFF2, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFEFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_L_ElementContentChar_in_p_ElementContentChar11046: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_QuotAttrContentChar_in_p_QuotAttrContentChar11072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_AposAttrContentChar_in_p_AposAttrContentChar11122: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_QName_in_p_QName11208: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_QName11220: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_QName_in_pg_FQName11281: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FNCName_in_pg_FQName11293: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_pg_QName11337: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_pg_QName11339: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pg_QName11343: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_NCName0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_FNCName0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InsertExpr_in_pg_UpdateExpr13334: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DeleteExpr_in_pg_UpdateExpr13346: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RenameExpr_in_pg_UpdateExpr13358: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReplaceExpr_in_pg_UpdateExpr13370: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TransformExpr_in_pg_UpdateExpr13382: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_RevalidationDecl13410: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x02000000, 0x00000000]), + FOLLOW_REVALIDATION_in_pm_RevalidationDecl13414: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000008, 0x00000004,0x04000000, 0x00000000]), + FOLLOW_STRICT_in_pm_RevalidationDecl13419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_LAX_in_pm_RevalidationDecl13425: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SKIP_in_pm_RevalidationDecl13431: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_RevalidationDecl13436: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_InsertExprTargetChoice13466: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00120000, 0x00000000]), + FOLLOW_FIRST_in_p_InsertExprTargetChoice13471: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00080000, 0x00000000]), + FOLLOW_LAST_in_p_InsertExprTargetChoice13477: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00080000, 0x00000000]), + FOLLOW_INTO_in_p_InsertExprTargetChoice13484: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AFTER_in_p_InsertExprTargetChoice13501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BEFORE_in_p_InsertExprTargetChoice13517: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INSERT_in_p_InsertExpr13547: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODE_in_p_InsertExpr13552: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_NODES_in_p_InsertExpr13558: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SourceExpr_in_p_InsertExpr13561: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00086000, 0x00000000]), + FOLLOW_p_InsertExprTargetChoice_in_p_InsertExpr13563: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_InsertExpr13565: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DELETE_in_p_DeleteExpr13595: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODE_in_p_DeleteExpr13600: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_NODES_in_p_DeleteExpr13606: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_DeleteExpr13609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_REPLACE_in_p_ReplaceExpr13639: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_VALUE_in_p_ReplaceExpr13644: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_OF_in_p_ReplaceExpr13648: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ReplaceExpr13654: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ReplaceExpr13656: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_WITH_in_p_ReplaceExpr13661: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ReplaceExpr13663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RENAME_in_p_RenameExpr13694: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_RenameExpr13698: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_RenameExpr13700: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_RenameExpr13704: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NewNameExpr_in_p_RenameExpr13706: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SourceExpr13734: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TargetExpr13761: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_NewNameExpr13788: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COPY_in_p_TransformExpr13817: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TransformExpr13821: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TransformExpr13825: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_TransformExpr13829: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13831: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_TransformExpr13835: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TransformExpr13839: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TransformExpr13843: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_TransformExpr13847: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_MODIFY_in_p_TransformExpr13856: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13858: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TransformExpr13863: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13865: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_FTOptionDecl13903: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000100]), + FOLLOW_FT_OPTION_in_pm_FTOptionDecl13907: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_p_FTMatchOptions_in_pm_FTOptionDecl13909: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_FTOptionDecl13911: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCORE_in_p_FTScoreVar13941: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_FTScoreVar13947: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_FTScoreVar13951: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringConcatExpr_in_p_FTContainsExpr13979: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_CONTAINS_in_p_FTContainsExpr13985: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_TEXT_in_p_FTContainsExpr13989: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTContainsExpr13993: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_FTIgnoreOption_in_p_FTContainsExpr13995: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTOr_in_p_FTSelection14025: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00080000, 0x00000000,0x00000800, 0x01000038]), + FOLLOW_p_FTPosFilter_in_p_FTSelection14027: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00080000, 0x00000000,0x00000800, 0x01000038]), + FOLLOW_WEIGHT_in_p_FTWeight14056: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_FTWeight14060: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_FTWeight14062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTWeight14065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTAnd_in_p_FTOr14091: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_FTOR_in_p_FTOr14097: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTAnd_in_p_FTOr14101: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_p_FTMildNot_in_p_FTAnd14130: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000200]), + FOLLOW_FTAND_in_p_FTAnd14136: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTMildNot_in_p_FTAnd14140: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000200]), + FOLLOW_p_FTUnaryNot_in_p_FTMildNot14169: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_NOT_in_p_FTMildNot14175: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_FTMildNot14179: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTUnaryNot_in_p_FTMildNot14183: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_FTNOT_in_p_FTUnaryNot14216: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTPrimaryWithOptions_in_p_FTUnaryNot14223: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTPrimary_in_p_FTPrimaryWithOptions14249: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x0000000C, 0x00000000]), + FOLLOW_p_FTMatchOptions_in_p_FTPrimaryWithOptions14251: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000008, 0x00000000]), + FOLLOW_p_FTWeight_in_p_FTPrimaryWithOptions14254: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWords_in_p_FTPrimary14285: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00080000]), + FOLLOW_p_FTTimes_in_p_FTPrimary14287: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_FTPrimary14302: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTPrimary14304: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_FTPrimary14306: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTExtensionSelection_in_p_FTPrimary14319: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWordsValue_in_p_FTWords14345: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0xC0000000, 0x00400000]), + FOLLOW_p_FTAnyallOption_in_p_FTWords14347: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTWordsValue14374: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_FTWordsValue14387: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_FTWordsValue14389: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTWordsValue14392: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_Pragma_in_p_FTExtensionSelection14419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00080000, 0x00000000]), + FOLLOW_LBRACKET_in_p_FTExtensionSelection14422: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000003,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTExtensionSelection14424: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTExtensionSelection14427: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANY_in_p_FTAnyallOption14458: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000040, 0x00000000]), + FOLLOW_WORD_in_p_FTAnyallOption14462: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ALL_in_p_FTAnyallOption14471: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTAnyallOption14473: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PHRASE_in_p_FTAnyallOption14481: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_OCCURS_in_p_FTTimes14513: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTRange_in_p_FTTimes14515: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000001, 0x00000000]), + FOLLOW_TIMES_in_p_FTTimes14519: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXACTLY_in_p_FTRange14552: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14554: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTRange14572: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_LEAST_in_p_FTRange14576: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14578: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTRange14596: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_MOST_in_p_FTRange14600: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14602: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_FTRange14620: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14622: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_FTRange14626: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14628: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTOrder_in_p_FTPosFilter14659: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWindow_in_p_FTPosFilter14663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTDistance_in_p_FTPosFilter14667: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTScope_in_p_FTPosFilter14671: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTContent_in_p_FTPosFilter14675: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDERED_in_p_FTOrder14703: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WINDOW_in_p_FTWindow14733: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTWindow14737: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10200000,0x00000080, 0x00000000]), + FOLLOW_p_FTUnit_in_p_FTWindow14739: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DISTANCE_in_p_FTDistance14767: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTRange_in_p_FTDistance14771: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10200000,0x00000080, 0x00000000]), + FOLLOW_p_FTUnit_in_p_FTDistance14773: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WORDS_in_p_FTUnit14803: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SENTENCES_in_p_FTUnit14809: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARAGRAPHS_in_p_FTUnit14815: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SAME_in_p_FTScope14848: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08100000]), + FOLLOW_DIFFERENT_in_p_FTScope14854: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08100000]), + FOLLOW_p_FTBigUnit_in_p_FTScope14859: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SENTENCE_in_p_FTBigUnit14889: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARAGRAPH_in_p_FTBigUnit14895: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTContent14930: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_START_in_p_FTContent14934: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTContent14942: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00800000]), + FOLLOW_END_in_p_FTContent14946: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ENTIRE_in_p_FTContent14954: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_CONTENT_in_p_FTContent14958: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_USING_in_p_FTMatchOptions14992: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x00010000, 0x00000000,0x00000000, 0xE002A004,0x00000012, 0x00000000]), + FOLLOW_p_FTMatchOption_in_p_FTMatchOptions14996: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_p_FTLanguageOption_in_p_FTMatchOption15024: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWildCardOption_in_p_FTMatchOption15036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTThesaurusOption_in_p_FTMatchOption15048: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTStemOption_in_p_FTMatchOption15060: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTCaseOption_in_p_FTMatchOption15072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTDiacriticsOption_in_p_FTMatchOption15084: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTStopWordOption_in_p_FTMatchOption15096: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTExtensionOption_in_p_FTMatchOption15108: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_FTCaseOption15139: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_INSENSITIVE_in_p_FTCaseOption15143: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_FTCaseOption15161: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_SENSITIVE_in_p_FTCaseOption15165: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LOWERCASE_in_p_FTCaseOption15182: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UPPERCASE_in_p_FTCaseOption15198: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15233: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_INSENSITIVE_in_p_FTDiacriticsOption15237: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15255: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_SENSITIVE_in_p_FTDiacriticsOption15259: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STEMMING_in_p_FTStemOption15294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTStemOption15301: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_STEMMING_in_p_FTStemOption15305: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15341: new org.antlr.runtime.BitSet([0x00200000, 0x00000008]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DEFAULT_in_p_FTThesaurusOption15350: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15369: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_FTThesaurusOption15371: new org.antlr.runtime.BitSet([0x00200000, 0x00000008]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15374: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_DEFAULT_in_p_FTThesaurusOption15380: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_FTThesaurusOption15384: new org.antlr.runtime.BitSet([0x00200000, 0x00000000]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15386: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_FTThesaurusOption15390: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTThesaurusOption15408: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x80000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15412: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTThesaurusID15445: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTThesaurusID15447: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x008000C0]), + FOLLOW_RELATIONSHIP_in_p_FTThesaurusID15452: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTThesaurusID15454: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTLiteralRange_in_p_FTThesaurusID15459: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00004000]), + FOLLOW_LEVELS_in_p_FTThesaurusID15463: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXACTLY_in_p_FTLiteralRange15498: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15500: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTLiteralRange15518: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_LEAST_in_p_FTLiteralRange15522: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15524: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTLiteralRange15542: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_MOST_in_p_FTLiteralRange15546: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15548: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_FTLiteralRange15566: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15568: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_FTLiteralRange15570: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15572: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STOP_in_p_FTStopWordOption15608: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15612: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_FTStopWords_in_p_FTStopWordOption15614: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15616: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_STOP_in_p_FTStopWordOption15635: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15639: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_FTStopWordOption15643: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15645: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_NO_in_p_FTStopWordOption15664: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_STOP_in_p_FTStopWordOption15668: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15672: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTStopWords15706: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15710: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_FTStopWords15724: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15726: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_FTStopWords15729: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15731: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_FTStopWords15735: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UNION_in_p_FTStopWordsInclExcl15767: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_EXCEPT_in_p_FTStopWordsInclExcl15773: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_FTStopWords_in_p_FTStopWordsInclExcl15776: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LANGUAGE_in_p_FTLanguageOption15808: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTLanguageOption15812: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WILDCARDS_in_p_FTWildCardOption15842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTWildCardOption15849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000010, 0x00000000]), + FOLLOW_WILDCARDS_in_p_FTWildCardOption15853: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_OPTION_in_p_FTExtensionOption15886: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_FTExtensionOption15890: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTExtensionOption15892: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WITHOUT_in_p_FTIgnoreOption15920: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_CONTENT_in_p_FTIgnoreOption15924: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_UnionExpr_in_p_FTIgnoreOption15928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_p_Program15960: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Hybrid_in_p_Statements15987: new org.antlr.runtime.BitSet([0xFFFF0002, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_StatementsAndExpr16015: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Statements_in_p_StatementsAndOptionalExpr16042: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_HybridExprSingle_in_p_Hybrid16069: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Statement_in_p_Hybrid16082: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AssignStatement_in_p_Statement16113: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_BreakStatement_in_p_Statement16125: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ContinueStatement_in_p_Statement16137: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExitStatement_in_p_Statement16149: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarDeclStatement_in_p_Statement16161: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WhileStatement_in_p_Statement16173: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_HybridExprSingle16200: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_HybridExprSingle16215: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSimple_in_p_ApplyStatement16265: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ApplyStatement16267: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_AssignStatement16295: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_AssignStatement16299: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_AssignStatement16303: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_AssignStatement16305: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_AssignStatement16308: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockStatement16334: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F083,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_BlockStatement16336: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockStatement16339: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockHybrid16365: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F083,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_BlockHybrid16367: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockHybrid16370: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BREAK_in_p_BreakStatement16398: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_LOOP_in_p_BreakStatement16404: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_BreakStatement16408: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CONTINUE_in_p_ContinueStatement16436: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_LOOP_in_p_ContinueStatement16442: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ContinueStatement16446: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXIT_in_p_ExitStatement16474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00001000, 0x00000000]), + FOLLOW_RETURNING_in_p_ExitStatement16480: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ExitStatement16484: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ExitStatement16487: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_FLWORStatement16513: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_IntermediateClause_in_p_FLWORStatement16515: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_ReturnStatement_in_p_FLWORStatement16518: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RETURN_in_p_ReturnStatement16550: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_ReturnStatement16554: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IF_in_p_IfStatement16583: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_IfStatement16587: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_IfStatement16589: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_IfStatement16592: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_THEN_in_p_IfStatement16596: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfStatement16600: new org.antlr.runtime.BitSet([0x00000000, 0x00000800]), + FOLLOW_ELSE_in_p_IfStatement16605: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfStatement16609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_p_SwitchStatement16638: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SwitchStatement16642: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_SwitchStatement16644: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SwitchStatement16647: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_SwitchCaseStatement_in_p_SwitchStatement16649: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_SwitchStatement16654: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchStatement16660: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchStatement16664: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_SwitchCaseStatement16694: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseStatement16698: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchCaseStatement16704: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchCaseStatement16708: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TRY_in_p_TryCatchStatement16737: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockStatement_in_p_TryCatchStatement16741: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_CATCH_in_p_TryCatchStatement16746: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_TryCatchStatement16750: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockStatement_in_p_TryCatchStatement16752: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TRY_in_p_TryCatchHybrid16784: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16788: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_CATCH_in_p_TryCatchHybrid16794: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_TryCatchHybrid16798: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16800: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TYPESWITCH_in_p_TypeswitchStatement16833: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypeswitchStatement16837: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_TypeswitchStatement16839: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TypeswitchStatement16842: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_CaseStatement_in_p_TypeswitchStatement16844: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_TypeswitchStatement16849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TypeswitchStatement16856: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TypeswitchStatement16860: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TypeswitchStatement16868: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_TypeswitchStatement16872: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_CaseStatement16901: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CaseStatement16908: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CaseStatement16912: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CaseStatement16916: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_CaseStatement16920: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_CaseStatement16924: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_CaseStatement16928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Annotation_in_p_VarDeclStatement16955: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00001000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_VARIABLE_in_p_VarDeclStatement16960: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDeclStatement16966: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarDeclStatement16970: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement16974: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_BIND_in_p_VarDeclStatement16978: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDeclStatement16980: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_p_VarDeclStatement16996: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDeclStatement17000: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarDeclStatement17004: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement17008: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_BIND_in_p_VarDeclStatement17012: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDeclStatement17014: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_p_VarDeclStatement17031: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WHILE_in_p_WhileStatement17059: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_WhileStatement17063: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_WhileStatement17065: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_WhileStatement17068: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_WhileStatement17070: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QuantifiedExpr_in_p_ExprSimple17097: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrExpr_in_p_ExprSimple17109: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_UpdateExpr_in_p_ExprSimple17124: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockExpr17150: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndExpr_in_p_BlockExpr17152: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockExpr17154: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLECTION_in_p_CollectionDecl17185: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_CollectionDecl17189: new org.antlr.runtime.BitSet([0x00080002, 0x00000000]), + FOLLOW_p_CollectionTypeDecl_in_p_CollectionDecl17191: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_CollectionTypeDecl17220: new org.antlr.runtime.BitSet([0x80400000, 0x00000600,0x62004000, 0x10000010]), + FOLLOW_p_KindTest_in_p_CollectionTypeDecl17224: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_CollectionTypeDecl17233: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INDEX_in_p_IndexDecl17263: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexName_in_p_IndexDecl17267: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_ON_in_p_IndexDecl17271: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODES_in_p_IndexDecl17277: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexDomainExpr_in_p_IndexDecl17281: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_IndexDecl17285: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexKeySpec_in_p_IndexDecl17289: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_IndexDecl17292: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexKeySpec_in_p_IndexDecl17294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_QName_in_p_IndexName17321: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_IndexDomainExpr17346: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IndexKeyExpr_in_p_IndexKeySpec17371: new org.antlr.runtime.BitSet([0x40080002, 0x00000000]), + FOLLOW_p_IndexKeyTypeDecl_in_p_IndexKeySpec17373: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_p_IndexKeyCollation_in_p_IndexKeySpec17376: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_IndexKeyExpr17402: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_IndexKeyTypeDecl17429: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AtomicType_in_p_IndexKeyTypeDecl17433: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_IndexKeyTypeDecl17435: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AtomicType17461: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLATION_in_p_IndexKeyCollation17488: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_IndexKeyCollation17492: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INTEGRITY_in_p_ICDecl17519: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00010000, 0x00000000]), + FOLLOW_CONSTRAINT_in_p_ICDecl17525: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICDecl17529: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00440000, 0x00000000]), + FOLLOW_p_ICCollection_in_p_ICDecl17532: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICForeignKey_in_p_ICDecl17536: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ON_in_p_ICCollection17564: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_COLLECTION_in_p_ICCollection17570: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollection17574: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00000000, 0x00000000,0x80020000, 0x00000000]), + FOLLOW_p_ICCollSequence_in_p_ICCollection17577: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICCollSequenceUnique_in_p_ICCollection17581: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICCollNode_in_p_ICCollection17585: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollSequence17613: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollSequence17617: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollSequence17623: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ICCollSequence17627: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NODE_in_p_ICCollSequenceUnique17655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollSequenceUnique17661: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollSequenceUnique17665: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollSequenceUnique17671: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00800000, 0x00000000]), + FOLLOW_UNIQUE_in_p_ICCollSequenceUnique17677: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICCollSequenceUnique17683: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ICCollSequenceUnique17687: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOREACH_in_p_ICCollNode17714: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ICCollNode17720: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollNode17726: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollNode17730: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollNode17736: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ICCollNode17740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOREIGN_in_p_ICForeignKey17768: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICForeignKey17774: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_p_ICForeignKeySource_in_p_ICForeignKey17778: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_p_ICForeignKeyTarget_in_p_ICForeignKey17780: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_ICForeignKeySource17807: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeySource17811: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TO_in_p_ICForeignKeyTarget17838: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeyTarget17842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLECTION_in_p_ICForeignKeyValues17869: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICForeignKeyValues17873: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ICForeignKeyValues17877: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICForeignKeyValues17883: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICForeignKeyValues17887: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICForeignKeyValues17893: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ICForeignKeyValues17897: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred1_XQueryParser3535: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_synpred1_XQueryParser3543: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOR_in_synpred1_XQueryParser3549: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000110, 0x00000000]), + FOLLOW_set_in_synpred1_XQueryParser3551: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IF_in_synpred2_XQueryParser3577: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred2_XQueryParser3579: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_synpred3_XQueryParser3607: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred3_XQueryParser3609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPESWITCH_in_synpred4_XQueryParser3633: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred4_XQueryParser3635: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TRY_in_synpred5_XQueryParser3655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred5_XQueryParser3657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VALIDATE_in_synpred6_XQueryParser6189: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000008, 0x00000004,0x00000200, 0x00000000]), + FOLLOW_p_ValidationMode_in_synpred6_XQueryParser6193: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPE_in_synpred6_XQueryParser6197: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_synpred7_XQueryParser6553: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_synpred7_XQueryParser6555: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred8_XQueryParser6669: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6722: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_synpred9_XQueryParser6730: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6733: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6751: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_synpred9_XQueryParser6759: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6762: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6792: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_synpred10_XQueryParser6822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_synpred11_XQueryParser6841: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred11_XQueryParser6843: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PrimaryExpr_in_synpred12_XQueryParser6861: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Wildcard_in_synpred13_XQueryParser7300: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_synpred14_XQueryParser7319: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_synpred14_XQueryParser7321: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_synpred15_XQueryParser7339: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_synpred16_XQueryParser7595: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OccurrenceIndicator_in_synpred17_XQueryParser9654: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OccurrenceIndicator_in_synpred18_XQueryParser17228: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]) +}); + +})(); +exports.XQueryParser = XQueryParser; +});define('ace/mode/xquery/StringLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQDTLexer'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/StringLexer.g 2012-05-24 17:09:24 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ + var org = require("./antlr3-all").org; + var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var StringLexer = function(input, state) { +// alternate constructor @todo +// public StringLexer(CharStream input) +// public StringLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inQuotStr = false; + this.inAposStr = false; + + //boolean inQuotStr = false; + //boolean inAposStr = false; + + //public StringLexer(CharStream input, boolean isAposStr) { + // this(input, new RecognizerSharedState()); + // this.inAposStr = isAposStr; + // this.inQuotStr = !isAposStr; + // setIsWsExplicit(true); + //} + + }).call(this); + + this.dfa8 = new StringLexer.DFA8(this); + StringLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(StringLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + L_QuotStringLiteralChar: 283, + L_AposStringLiteralChar: 284 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(StringLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + L_QuotStringLiteralChar : 283, + L_AposStringLiteralChar : 284, + getGrammarFileName: function() { return "xquery/StringLexer.g"; } +}); +org.antlr.lang.augmentObject(StringLexer.prototype, { + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:66:6: ({...}? => '\"' ) + // xquery/StringLexer.g:66:8: {...}? => '\"' + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "QUOT", " this.inQuotStr "); + } + this.match('\"'); + this.inQuotStr = !this.inQuotStr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:67:6: ({...}? => '\\'' ) + // xquery/StringLexer.g:67:8: {...}? => '\\'' + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "APOS", " this.inAposStr "); + } + this.match('\''); + this.inAposStr = !this.inAposStr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start ESCAPE_QUOT + mESCAPE_QUOT: function() { + try { + var _type = this.ESCAPE_QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:68:13: ({...}? => '\"\"' ) + // xquery/StringLexer.g:68:15: {...}? => '\"\"' + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_QUOT", " this.inQuotStr "); + } + this.match("\"\""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_QUOT", + + // $ANTLR start ESCAPE_APOS + mESCAPE_APOS: function() { + try { + var _type = this.ESCAPE_APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:69:13: ({...}? => '\\'\\'' ) + // xquery/StringLexer.g:69:15: {...}? => '\\'\\'' + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_APOS", " this.inAposStr "); + } + this.match("''"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_APOS", + + // $ANTLR start L_PredefinedEntityRef + mL_PredefinedEntityRef: function() { + try { + var _type = this.L_PredefinedEntityRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:73:2: ({...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' ) + // xquery/StringLexer.g:73:4: {...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' + if ( !(( this.inQuotStr | this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_PredefinedEntityRef", " this.inQuotStr | this.inAposStr "); + } + this.match('&'); + // xquery/StringLexer.g:73:48: ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) + var alt1=5; + switch ( this.input.LA(1) ) { + case 'l': + alt1=1; + break; + case 'g': + alt1=2; + break; + case 'a': + var LA1_3 = this.input.LA(2); + + if ( (LA1_3=='p') ) { + alt1=3; + } + else if ( (LA1_3=='m') ) { + alt1=5; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 1, 3, this.input); + + throw nvae; + } + break; + case 'q': + alt1=4; + break; + default: + var nvae = + new org.antlr.runtime.NoViableAltException("", 1, 0, this.input); + + throw nvae; + } + + switch (alt1) { + case 1 : + // xquery/StringLexer.g:73:49: 'lt' + this.match("lt"); + + + + break; + case 2 : + // xquery/StringLexer.g:73:56: 'gt' + this.match("gt"); + + + + break; + case 3 : + // xquery/StringLexer.g:73:63: 'apos' + this.match("apos"); + + + + break; + case 4 : + // xquery/StringLexer.g:73:72: 'quot' + this.match("quot"); + + + + break; + case 5 : + // xquery/StringLexer.g:73:81: 'amp' + this.match("amp"); + + + + break; + + } + + this.match(';'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_PredefinedEntityRef", + + // $ANTLR start L_CharRef + mL_CharRef: function() { + try { + var _type = this.L_CharRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:78:2: ({...}? => '&#' ( '0' .. '9' )+ ';' | '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' ) + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( (LA4_0=='&') ) { + var LA4_1 = this.input.LA(2); + + if ( (LA4_1=='#') ) { + var LA4_2 = this.input.LA(3); + + if ( (LA4_2=='x') ) { + alt4=2; + } + else if ( ((LA4_2>='0' && LA4_2<='9')) && (( this.inQuotStr | this.inAposStr ))) { + alt4=1; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 2, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 1, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 0, this.input); + + throw nvae; + } + switch (alt4) { + case 1 : + // xquery/StringLexer.g:78:4: {...}? => '&#' ( '0' .. '9' )+ ';' + if ( !(( this.inQuotStr | this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CharRef", " this.inQuotStr | this.inAposStr "); + } + this.match("&#"); + + // xquery/StringLexer.g:78:49: ( '0' .. '9' )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/StringLexer.g:78:49: '0' .. '9' + this.matchRange('0','9'); + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + this.match(';'); + + + break; + case 2 : + // xquery/StringLexer.g:78:65: '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' + this.match("&#x"); + + // xquery/StringLexer.g:78:71: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='F')||(LA3_0>='a' && LA3_0<='f')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + this.match(';'); + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CharRef", + + // $ANTLR start L_QuotStringLiteralChar + mL_QuotStringLiteralChar: function() { + try { + var _type = this.L_QuotStringLiteralChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:82:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:82:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_QuotStringLiteralChar", " this.inQuotStr "); + } + // xquery/StringLexer.g:83:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt5=0; + loop5: + do { + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='\t' && LA5_0<='\n')||LA5_0=='\r'||(LA5_0>=' ' && LA5_0<='!')||(LA5_0>='#' && LA5_0<='%')||(LA5_0>='\'' && LA5_0<='\uD7FF')||(LA5_0>='\uE000' && LA5_0<='\uFFFD')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt5 >= 1 ) { + break loop5; + } + var eee = new org.antlr.runtime.EarlyExitException(5, this.input); + throw eee; + } + cnt5++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_QuotStringLiteralChar", + + // $ANTLR start L_AposStringLiteralChar + mL_AposStringLiteralChar: function() { + try { + var _type = this.L_AposStringLiteralChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:88:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:88:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AposStringLiteralChar", " this.inAposStr "); + } + // xquery/StringLexer.g:89:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt6=0; + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( ((LA6_0>='\t' && LA6_0<='\n')||LA6_0=='\r'||(LA6_0>=' ' && LA6_0<='%')||(LA6_0>='(' && LA6_0<='\uD7FF')||(LA6_0>='\uE000' && LA6_0<='\uFFFD')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt6 >= 1 ) { + break loop6; + } + var eee = new org.antlr.runtime.EarlyExitException(6, this.input); + throw eee; + } + cnt6++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AposStringLiteralChar", + + // $ANTLR start L_AnyChar + mL_AnyChar: function() { + try { + var _type = this.L_AnyChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:98:5: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:98:9: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( !this.inQuotStr && !this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AnyChar", " !this.inQuotStr && !this.inAposStr "); + } + // xquery/StringLexer.g:99:9: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt7=0; + loop7: + do { + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||(LA7_0>=' ' && LA7_0<='%')||(LA7_0>='\'' && LA7_0<=';')||(LA7_0>='=' && LA7_0<='z')||LA7_0=='|'||(LA7_0>='~' && LA7_0<='\uD7FF')||(LA7_0>='\uE000' && LA7_0<='\uFFFD')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt7 >= 1 ) { + break loop7; + } + var eee = new org.antlr.runtime.EarlyExitException(7, this.input); + throw eee; + } + cnt7++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AnyChar", + + mTokens: function() { + // xquery/StringLexer.g:1:8: ( QUOT | APOS | ESCAPE_QUOT | ESCAPE_APOS | L_PredefinedEntityRef | L_CharRef | L_QuotStringLiteralChar | L_AposStringLiteralChar | L_AnyChar ) + var alt8=9; + alt8 = this.dfa8.predict(this.input); + switch (alt8) { + case 1 : + // xquery/StringLexer.g:1:10: QUOT + this.mQUOT(); + + + break; + case 2 : + // xquery/StringLexer.g:1:15: APOS + this.mAPOS(); + + + break; + case 3 : + // xquery/StringLexer.g:1:20: ESCAPE_QUOT + this.mESCAPE_QUOT(); + + + break; + case 4 : + // xquery/StringLexer.g:1:32: ESCAPE_APOS + this.mESCAPE_APOS(); + + + break; + case 5 : + // xquery/StringLexer.g:1:44: L_PredefinedEntityRef + this.mL_PredefinedEntityRef(); + + + break; + case 6 : + // xquery/StringLexer.g:1:66: L_CharRef + this.mL_CharRef(); + + + break; + case 7 : + // xquery/StringLexer.g:1:76: L_QuotStringLiteralChar + this.mL_QuotStringLiteralChar(); + + + break; + case 8 : + // xquery/StringLexer.g:1:100: L_AposStringLiteralChar + this.mL_AposStringLiteralChar(); + + + break; + case 9 : + // xquery/StringLexer.g:1:124: L_AnyChar + this.mL_AnyChar(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(StringLexer, { + DFA8_eotS: + "\u0001\uffff\u0001\u0007\u0001\u000c\u0001\uffff\u0001\u0011\u0001"+ + "\u0012\u0001\u0013\u0001\uffff\u0001\u0015\u0002\uffff\u0001\u0016\u0001"+ + "\uffff\u0001\u0018\u000d\uffff", + DFA8_eofS: + "\u001b\uffff", + DFA8_minS: + "\u0003\u0009\u0001\u0023\u0003\u0009\u0001\u0000\u0001\u0009\u0002"+ + "\uffff\u0001\u0009\u0001\u0000\u0001\u0009\u0003\uffff\u0003\u0000\u0001"+ + "\uffff\u0002\u0000\u0001\uffff\u0001\u0000\u0002\uffff", + DFA8_maxS: + "\u0003\ufffd\u0001\u0071\u0003\ufffd\u0001\u0000\u0001\ufffd\u0002"+ + "\uffff\u0001\ufffd\u0001\u0000\u0001\ufffd\u0003\uffff\u0003\u0000\u0001"+ + "\uffff\u0002\u0000\u0001\uffff\u0001\u0000\u0002\uffff", + DFA8_acceptS: + "\u0009\uffff\u0001\u0008\u0001\u0009\u0003\uffff\u0001\u0007\u0001"+ + "\u0006\u0001\u0005\u0003\uffff\u0001\u0001\u0002\uffff\u0001\u0002\u0001"+ + "\uffff\u0001\u0003\u0001\u0004", + DFA8_specialS: + "\u0001\u0007\u0001\u000e\u0001\u0000\u0001\u0004\u0001\u0011\u0001"+ + "\u000a\u0001\u0005\u0001\u0009\u0001\u0010\u0002\uffff\u0001\u000f\u0001"+ + "\u0008\u0001\u0006\u0003\uffff\u0001\u000d\u0001\u0003\u0001\u000b\u0001"+ + "\uffff\u0001\u0001\u0001\u000c\u0001\uffff\u0001\u0002\u0002\uffff}>", + DFA8_transitionS: [ + "\u0002\u0004\u0002\uffff\u0001\u0004\u0012\uffff\u0002\u0004"+ + "\u0001\u0001\u0003\u0004\u0001\u0003\u0001\u0002\u0014\u0004"+ + "\u0001\u0005\u003e\u0004\u0001\u0005\u0001\u0004\u0001\u0005"+ + "\ud782\u0004\u0800\uffff\u1ffe\u0004", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0002\u0008"+ + "\u0001\u0006\u0003\u0008\u0001\uffff\u0001\u000a\u0014\u0008"+ + "\u0001\u0009\u003e\u0008\u0001\u0009\u0001\u0008\u0001\u0009"+ + "\ud782\u0008\u0800\uffff\u1ffe\u0008", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0001\u000b\u0014\u000d"+ + "\u0001\u000e\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e"+ + "\ud782\u000d\u0800\uffff\u1ffe\u000d", + "\u0001\u000f\u003d\uffff\u0001\u0010\u0005\uffff\u0001\u0010"+ + "\u0004\uffff\u0001\u0010\u0004\uffff\u0001\u0010", + "\u0002\u0004\u0002\uffff\u0001\u0004\u0012\uffff\u0002\u0004"+ + "\u0001\u0008\u0003\u0004\u0001\uffff\u0001\u000d\u0014\u0004"+ + "\u0001\u0005\u003e\u0004\u0001\u0005\u0001\u0004\u0001\u0005"+ + "\ud782\u0004\u0800\uffff\u1ffe\u0004", + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0002\u0005"+ + "\u0001\u0009\u0003\u0005\u0001\uffff\u0001\u000e\ud7d8\u0005"+ + "\u0800\uffff\u1ffe\u0005", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0006\u0008"+ + "\u0001\uffff\u0001\u000a\u0014\u0008\u0001\u0009\u003e\u0008"+ + "\u0001\u0009\u0001\u0008\u0001\u0009\ud782\u0008\u0800\uffff"+ + "\u1ffe\u0008", + "\u0001\uffff", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0006\u0008"+ + "\u0001\uffff\u0001\u000a\u0014\u0008\u0001\u0009\u003e\u0008"+ + "\u0001\u0009\u0001\u0008\u0001\u0009\ud782\u0008\u0800\uffff"+ + "\u1ffe\u0008", + "", + "", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0015\u000d\u0001\u000e"+ + "\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e\ud782\u000d"+ + "\u0800\uffff\u1ffe\u000d", + "\u0001\uffff", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0015\u000d\u0001\u000e"+ + "\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e\ud782\u000d"+ + "\u0800\uffff\u1ffe\u000d", + "", + "", + "", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(StringLexer, { + DFA8_eot: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_eotS), + DFA8_eof: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_eofS), + DFA8_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(StringLexer.DFA8_minS), + DFA8_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(StringLexer.DFA8_maxS), + DFA8_accept: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_acceptS), + DFA8_special: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_specialS), + DFA8_transition: (function() { + var a = [], + i, + numStates = StringLexer.DFA8_transitionS.length; + for (i=0; i='\t' && LA8_2<='\n')||LA8_2=='\r'||(LA8_2>=' ' && LA8_2<='!')||(LA8_2>='#' && LA8_2<='%')||(LA8_2>='(' && LA8_2<=';')||(LA8_2>='=' && LA8_2<='z')||LA8_2=='|'||(LA8_2>='~' && LA8_2<='\uD7FF')||(LA8_2>='\uE000' && LA8_2<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_2=='<'||LA8_2=='{'||LA8_2=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_2=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 12; + + + input.seek(index8_2); + if ( s>=0 ) return s; + break; + case 1 : + var LA8_21 = input.LA(1); + + + var index8_21 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_21); + if ( s>=0 ) return s; + break; + case 2 : + var LA8_24 = input.LA(1); + + + var index8_24 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_24); + if ( s>=0 ) return s; + break; + case 3 : + var LA8_18 = input.LA(1); + + + var index8_18 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + + input.seek(index8_18); + if ( s>=0 ) return s; + break; + case 4 : + var LA8_3 = input.LA(1); + + + var index8_3 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_3=='#') ) {s = 15;} + + else if ( (LA8_3=='a'||LA8_3=='g'||LA8_3=='l'||LA8_3=='q') && (( this.inQuotStr | this.inAposStr ))) {s = 16;} + + + input.seek(index8_3); + if ( s>=0 ) return s; + break; + case 5 : + var LA8_6 = input.LA(1); + + + var index8_6 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_6>='\t' && LA8_6<='\n')||LA8_6=='\r'||(LA8_6>=' ' && LA8_6<='%')||(LA8_6>='(' && LA8_6<=';')||(LA8_6>='=' && LA8_6<='z')||LA8_6=='|'||(LA8_6>='~' && LA8_6<='\uD7FF')||(LA8_6>='\uE000' && LA8_6<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_6=='<'||LA8_6=='{'||LA8_6=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_6=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 19; + + + input.seek(index8_6); + if ( s>=0 ) return s; + break; + case 6 : + var LA8_13 = input.LA(1); + + + var index8_13 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_13>='\t' && LA8_13<='\n')||LA8_13=='\r'||(LA8_13>=' ' && LA8_13<='!')||(LA8_13>='#' && LA8_13<='%')||(LA8_13>='\'' && LA8_13<=';')||(LA8_13>='=' && LA8_13<='z')||LA8_13=='|'||(LA8_13>='~' && LA8_13<='\uD7FF')||(LA8_13>='\uE000' && LA8_13<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_13=='<'||LA8_13=='{'||LA8_13=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_13=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 24; + + + input.seek(index8_13); + if ( s>=0 ) return s; + break; + case 7 : + var LA8_0 = input.LA(1); + + + var index8_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_0=='\"') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 1;} + + else if ( (LA8_0=='\'') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 2;} + + else if ( (LA8_0=='&') ) {s = 3;} + + else if ( ((LA8_0>='\t' && LA8_0<='\n')||LA8_0=='\r'||(LA8_0>=' ' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='%')||(LA8_0>='(' && LA8_0<=';')||(LA8_0>='=' && LA8_0<='z')||LA8_0=='|'||(LA8_0>='~' && LA8_0<='\uD7FF')||(LA8_0>='\uE000' && LA8_0<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 4;} + + else if ( (LA8_0=='<'||LA8_0=='{'||LA8_0=='}') && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + + input.seek(index8_0); + if ( s>=0 ) return s; + break; + case 8 : + var LA8_12 = input.LA(1); + + + var index8_12 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 23;} + + else if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_12); + if ( s>=0 ) return s; + break; + case 9 : + var LA8_7 = input.LA(1); + + + var index8_7 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 20;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_7); + if ( s>=0 ) return s; + break; + case 10 : + var LA8_5 = input.LA(1); + + + var index8_5 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_5>='\t' && LA8_5<='\n')||LA8_5=='\r'||(LA8_5>=' ' && LA8_5<='!')||(LA8_5>='#' && LA8_5<='%')||(LA8_5>='(' && LA8_5<='\uD7FF')||(LA8_5>='\uE000' && LA8_5<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + else if ( (LA8_5=='\'') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_5=='\"') && (( this.inAposStr ))) {s = 9;} + + else s = 18; + + + input.seek(index8_5); + if ( s>=0 ) return s; + break; + case 11 : + var LA8_19 = input.LA(1); + + + var index8_19 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 25;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_19); + if ( s>=0 ) return s; + break; + case 12 : + var LA8_22 = input.LA(1); + + + var index8_22 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 26;} + + else if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_22); + if ( s>=0 ) return s; + break; + case 13 : + var LA8_17 = input.LA(1); + + + var index8_17 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_17); + if ( s>=0 ) return s; + break; + case 14 : + var LA8_1 = input.LA(1); + + + var index8_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_1=='\"') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 6;} + + else if ( ((LA8_1>='\t' && LA8_1<='\n')||LA8_1=='\r'||(LA8_1>=' ' && LA8_1<='!')||(LA8_1>='#' && LA8_1<='%')||(LA8_1>='(' && LA8_1<=';')||(LA8_1>='=' && LA8_1<='z')||LA8_1=='|'||(LA8_1>='~' && LA8_1<='\uD7FF')||(LA8_1>='\uE000' && LA8_1<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_1=='<'||LA8_1=='{'||LA8_1=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_1=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 7; + + + input.seek(index8_1); + if ( s>=0 ) return s; + break; + case 15 : + var LA8_11 = input.LA(1); + + + var index8_11 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_11>='\t' && LA8_11<='\n')||LA8_11=='\r'||(LA8_11>=' ' && LA8_11<='!')||(LA8_11>='#' && LA8_11<='%')||(LA8_11>='\'' && LA8_11<=';')||(LA8_11>='=' && LA8_11<='z')||LA8_11=='|'||(LA8_11>='~' && LA8_11<='\uD7FF')||(LA8_11>='\uE000' && LA8_11<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_11=='<'||LA8_11=='{'||LA8_11=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_11=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 22; + + + input.seek(index8_11); + if ( s>=0 ) return s; + break; + case 16 : + var LA8_8 = input.LA(1); + + + var index8_8 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_8>='\t' && LA8_8<='\n')||LA8_8=='\r'||(LA8_8>=' ' && LA8_8<='%')||(LA8_8>='(' && LA8_8<=';')||(LA8_8>='=' && LA8_8<='z')||LA8_8=='|'||(LA8_8>='~' && LA8_8<='\uD7FF')||(LA8_8>='\uE000' && LA8_8<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_8=='<'||LA8_8=='{'||LA8_8=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_8=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 21; + + + input.seek(index8_8); + if ( s>=0 ) return s; + break; + case 17 : + var LA8_4 = input.LA(1); + + + var index8_4 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_4>='\t' && LA8_4<='\n')||LA8_4=='\r'||(LA8_4>=' ' && LA8_4<='!')||(LA8_4>='#' && LA8_4<='%')||(LA8_4>='(' && LA8_4<=';')||(LA8_4>='=' && LA8_4<='z')||LA8_4=='|'||(LA8_4>='~' && LA8_4<='\uD7FF')||(LA8_4>='\uE000' && LA8_4<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 4;} + + else if ( (LA8_4=='\'') && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_4=='\"') && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_4=='<'||LA8_4=='{'||LA8_4=='}') && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + else s = 17; + + + input.seek(index8_4); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 8, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.StringLexer = StringLexer; +});define('ace/mode/xquery/XMLLexer', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQDTLexer'], function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XMLLexer.g 2012-05-24 17:09:26 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var XMLLexer = function(input, state) { +// alternate constructor @todo +// public XMLLexer(CharStream input) +// public XMLLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inElem = true; + this.inAposAttr = false; + this.inQuotAttr = false; + + this.isInElement = function() + { + return this.inElem; + } + + this.isInAposAttribute = function() + { + return this.inAposAttr; + } + + this.isInQuotAttr = function() + { + return this.inQuotAttr; + } + + this.addToStack = function(stack) { + if (!this.inAposAttr && !this.inQuotAttr) + this.inElem = false; + stack.push(this); + } + + + // dummy list for warning elimination + //List> dummy = new ArrayList>(); + + // when we start, the '<' has already been eaten by the other lexer + //boolean inElem = true; + //boolean inAposAttr = false; + //boolean inQuotAttr = false; + // + //public boolean isInElement() + //{ + // return inElem; + //} + // + //public boolean isInAposAttribute() + //{ + // return inAposAttr; + //} + // + //public boolean isInQuotAttr() + //{ + // return inQuotAttr; + //} + // + //@Override + //public void addToStack(List stack) { + // if (!inAposAttr && !inQuotAttr) + // inElem = false; + // stack.add(this); + //} + // + //private boolean log() { + // System.out.println("inApos:\t" + inAposAttr); + // System.out.println("inQuot:\t" + inQuotAttr); + // System.out.println("inElem:\t" + inElem); + // System.out.println("---------------------"); + // return false; + //} + + + }).call(this); + + this.dfa16 = new XMLLexer.DFA16(this); + XMLLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(XMLLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + NCNameUnprotected: 283, + XMLDigit: 284 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(XMLLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + NCNameUnprotected : 283, + XMLDigit : 284, + getGrammarFileName: function() { return "xquery/XMLLexer.g"; } +}); +org.antlr.lang.augmentObject(XMLLexer.prototype, { + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:132:6: ({...}? => '\"' ) + // xquery/XMLLexer.g:132:8: {...}? => '\"' + if ( !(( this.inElem || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "QUOT", " this.inElem || this.inQuotAttr "); + } + this.match('\"'); + if (!this.inAposAttr) this.inQuotAttr = (!this.inQuotAttr); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:133:6: ({...}? => '\\'' ) + // xquery/XMLLexer.g:133:8: {...}? => '\\'' + if ( !(( this.inElem || this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "APOS", " this.inElem || this.inAposAttr "); + } + this.match('\''); + if (!this.inQuotAttr) this.inAposAttr = !this.inAposAttr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start L_QuotAttrContentChar + mL_QuotAttrContentChar: function() { + try { + var _type = this.L_QuotAttrContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:136:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:136:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_QuotAttrContentChar", " this.inQuotAttr "); + } + // xquery/XMLLexer.g:137:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt1=0; + loop1: + do { + var alt1=2; + var LA1_0 = this.input.LA(1); + + if ( ((LA1_0>='\t' && LA1_0<='\n')||LA1_0=='\r'||(LA1_0>=' ' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='%')||(LA1_0>='(' && LA1_0<=';')||(LA1_0>='=' && LA1_0<='z')||LA1_0=='|'||(LA1_0>='~' && LA1_0<='\uD7FF')||(LA1_0>='\uE000' && LA1_0<='\uFFFD')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt1 >= 1 ) { + break loop1; + } + var eee = new org.antlr.runtime.EarlyExitException(1, this.input); + throw eee; + } + cnt1++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_QuotAttrContentChar", + + // $ANTLR start L_AposAttrContentChar + mL_AposAttrContentChar: function() { + try { + var _type = this.L_AposAttrContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:143:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:143:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AposAttrContentChar", " this.inAposAttr "); + } + // xquery/XMLLexer.g:144:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='\t' && LA2_0<='\n')||LA2_0=='\r'||(LA2_0>=' ' && LA2_0<='!')||(LA2_0>='#' && LA2_0<='%')||(LA2_0>='(' && LA2_0<=';')||(LA2_0>='=' && LA2_0<='z')||LA2_0=='|'||(LA2_0>='~' && LA2_0<='\uD7FF')||(LA2_0>='\uE000' && LA2_0<='\uFFFD')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AposAttrContentChar", + + // $ANTLR start L_ElementContentChar + mL_ElementContentChar: function() { + try { + var _type = this.L_ElementContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:151:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:151:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_ElementContentChar", " !this.inElem "); + } + // xquery/XMLLexer.g:152:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||(LA3_0>=' ' && LA3_0<='%')||(LA3_0>='\'' && LA3_0<=';')||(LA3_0>='=' && LA3_0<='z')||LA3_0=='|'||(LA3_0>='~' && LA3_0<='\uD7FF')||(LA3_0>='\uE000' && LA3_0<='\uFFFD')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_ElementContentChar", + + // $ANTLR start GREATER + mGREATER: function() { + try { + var _type = this.GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:158:2: ({...}? => '>' ) + // xquery/XMLLexer.g:158:4: {...}? => '>' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "GREATER", " this.inElem "); + } + this.match('>'); + this.inElem = false; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER", + + // $ANTLR start EMPTY_CLOSE_TAG + mEMPTY_CLOSE_TAG: function() { + try { + var _type = this.EMPTY_CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:162:2: ({...}? => '/>' ) + // xquery/XMLLexer.g:162:4: {...}? => '/>' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "EMPTY_CLOSE_TAG", " this.inElem "); + } + this.match("/>"); + + this.inElem = false; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_CLOSE_TAG", + + // $ANTLR start S + mS: function() { + try { + var _type = this.S; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:166:2: ({...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // xquery/XMLLexer.g:166:4: {...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "S", " this.inElem "); + } + // xquery/XMLLexer.g:166:24: ( ' ' | '\\t' | '\\r' | '\\n' )+ + var cnt4=0; + loop4: + do { + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( ((LA4_0>='\t' && LA4_0<='\n')||LA4_0=='\r'||LA4_0==' ') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt4 >= 1 ) { + break loop4; + } + var eee = new org.antlr.runtime.EarlyExitException(4, this.input); + throw eee; + } + cnt4++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "S", + + // $ANTLR start L_NCName + mL_NCName: function() { + try { + var _type = this.L_NCName; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:172:2: ({...}? => NCNameUnprotected ) + // xquery/XMLLexer.g:172:4: {...}? => NCNameUnprotected + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_NCName", " this.inElem "); + } + this.mNCNameUnprotected(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_NCName", + + // $ANTLR start NCNameUnprotected + mNCNameUnprotected: function() { + try { + // xquery/XMLLexer.g:176:2: ( NCNameStartChar ( NCNameChar )* ) + // xquery/XMLLexer.g:176:4: NCNameStartChar ( NCNameChar )* + this.mNCNameStartChar(); + // xquery/XMLLexer.g:176:20: ( NCNameChar )* + loop5: + do { + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='-' && LA5_0<='.')||(LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='Z')||LA5_0=='_'||(LA5_0>='a' && LA5_0<='z')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // xquery/XMLLexer.g:176:20: NCNameChar + this.mNCNameChar(); + + + break; + + default : + break loop5; + } + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "NCNameUnprotected", + + // $ANTLR start NCNameStartChar + mNCNameStartChar: function() { + try { + // xquery/XMLLexer.g:180:2: ( Letter | '_' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameStartChar", + + // $ANTLR start NCNameChar + mNCNameChar: function() { + try { + // xquery/XMLLexer.g:184:2: ( Letter | XMLDigit | '.' | '-' | '_' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='-' && this.input.LA(1)<='.')||(this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameChar", + + // $ANTLR start Letter + mLetter: function() { + try { + // xquery/XMLLexer.g:188:2: ( 'a' .. 'z' | 'A' .. 'Z' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "Letter", + + // $ANTLR start XMLDigit + mXMLDigit: function() { + try { + // xquery/XMLLexer.g:192:2: ( '0' .. '9' ) + // xquery/XMLLexer.g:192:4: '0' .. '9' + this.matchRange('0','9'); + + + + } + finally { + } + }, + // $ANTLR end "XMLDigit", + + // $ANTLR start EQUAL + mEQUAL: function() { + try { + var _type = this.EQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:207:7: ({...}? => '=' ) + // xquery/XMLLexer.g:207:9: {...}? => '=' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "EQUAL", " this.inElem "); + } + this.match('='); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQUAL", + + // $ANTLR start ESCAPE_APOS + mESCAPE_APOS: function() { + try { + var _type = this.ESCAPE_APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:208:13: ({...}? => '\\'\\'' ) + // xquery/XMLLexer.g:208:15: {...}? => '\\'\\'' + if ( !(( this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_APOS", " this.inAposAttr "); + } + this.match("''"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_APOS", + + // $ANTLR start ESCAPE_QUOT + mESCAPE_QUOT: function() { + try { + var _type = this.ESCAPE_QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:209:13: ({...}? => '\"\"' ) + // xquery/XMLLexer.g:209:15: {...}? => '\"\"' + if ( !(( this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_QUOT", " this.inQuotAttr "); + } + this.match("\"\""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_QUOT", + + // $ANTLR start ESCAPE_LBRACKET + mESCAPE_LBRACKET: function() { + try { + var _type = this.ESCAPE_LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:212:2: ({...}? => '{{' ) + // xquery/XMLLexer.g:212:4: {...}? => '{{' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_LBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("{{"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_LBRACKET", + + // $ANTLR start ESCAPE_RBRACKET + mESCAPE_RBRACKET: function() { + try { + var _type = this.ESCAPE_RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:216:2: ({...}? => '}}' ) + // xquery/XMLLexer.g:216:4: {...}? => '}}' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_RBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("}}"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_RBRACKET", + + // $ANTLR start LBRACKET + mLBRACKET: function() { + try { + var _type = this.LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:219:10: ({...}? => '{' ) + // xquery/XMLLexer.g:219:12: {...}? => '{' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "LBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('{'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LBRACKET", + + // $ANTLR start RBRACKET + mRBRACKET: function() { + try { + var _type = this.RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:220:10: ({...}? => '}' ) + // xquery/XMLLexer.g:220:12: {...}? => '}' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "RBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('}'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RBRACKET", + + // $ANTLR start SMALLER + mSMALLER: function() { + try { + var _type = this.SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:221:9: ( '<' ) + // xquery/XMLLexer.g:221:11: '<' + this.match('<'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER", + + // $ANTLR start CLOSE_TAG + mCLOSE_TAG: function() { + try { + var _type = this.CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:222:11: ({...}? => ' '' ) + // xquery/XMLLexer.g:225:14: ']]>' + this.match("]]>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CDATA_END", + + // $ANTLR start L_CDataSection + mL_CDataSection: function() { + try { + var _type = this.L_CDataSection; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:229:3: ({...}? => CDATA_START ( options {greedy=false; } : ( . )* ) CDATA_END ) + // xquery/XMLLexer.g:229:5: {...}? => CDATA_START ( options {greedy=false; } : ( . )* ) CDATA_END + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CDataSection", " !this.inElem "); + } + this.mCDATA_START(); + // xquery/XMLLexer.g:229:38: ( options {greedy=false; } : ( . )* ) + // xquery/XMLLexer.g:229:65: ( . )* + // xquery/XMLLexer.g:229:65: ( . )* + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( (LA6_0==']') ) { + var LA6_1 = this.input.LA(2); + + if ( (LA6_1==']') ) { + var LA6_3 = this.input.LA(3); + + if ( (LA6_3=='>') ) { + alt6=2; + } + else if ( ((LA6_3>='\u0000' && LA6_3<='=')||(LA6_3>='?' && LA6_3<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_1>='\u0000' && LA6_1<='\\')||(LA6_1>='^' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<='\\')||(LA6_0>='^' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/XMLLexer.g:229:65: . + this.matchAny(); + + + break; + + default : + break loop6; + } + } while (true); + + + + + this.mCDATA_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CDataSection", + + // $ANTLR start L_PredefinedEntityRef + mL_PredefinedEntityRef: function() { + try { + var _type = this.L_PredefinedEntityRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:237:2: ({...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' ) + // xquery/XMLLexer.g:237:4: {...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_PredefinedEntityRef", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('&'); + // xquery/XMLLexer.g:237:67: ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) + var alt7=5; + switch ( this.input.LA(1) ) { + case 'l': + alt7=1; + break; + case 'g': + alt7=2; + break; + case 'a': + var LA7_3 = this.input.LA(2); + + if ( (LA7_3=='p') ) { + alt7=3; + } + else if ( (LA7_3=='m') ) { + alt7=5; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 7, 3, this.input); + + throw nvae; + } + break; + case 'q': + alt7=4; + break; + default: + var nvae = + new org.antlr.runtime.NoViableAltException("", 7, 0, this.input); + + throw nvae; + } + + switch (alt7) { + case 1 : + // xquery/XMLLexer.g:237:68: 'lt' + this.match("lt"); + + + + break; + case 2 : + // xquery/XMLLexer.g:237:75: 'gt' + this.match("gt"); + + + + break; + case 3 : + // xquery/XMLLexer.g:237:82: 'apos' + this.match("apos"); + + + + break; + case 4 : + // xquery/XMLLexer.g:237:91: 'quot' + this.match("quot"); + + + + break; + case 5 : + // xquery/XMLLexer.g:237:100: 'amp' + this.match("amp"); + + + + break; + + } + + this.match(';'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_PredefinedEntityRef", + + // $ANTLR start L_CharRef + mL_CharRef: function() { + try { + var _type = this.L_CharRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:242:2: ({...}? => '&#' ( '0' .. '9' )+ ';' | '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' ) + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0=='&') ) { + var LA10_1 = this.input.LA(2); + + if ( (LA10_1=='#') ) { + var LA10_2 = this.input.LA(3); + + if ( (LA10_2=='x') ) { + alt10=2; + } + else if ( ((LA10_2>='0' && LA10_2<='9')) && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) { + alt10=1; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 2, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 1, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 0, this.input); + + throw nvae; + } + switch (alt10) { + case 1 : + // xquery/XMLLexer.g:242:4: {...}? => '&#' ( '0' .. '9' )+ ';' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CharRef", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("&#"); + + // xquery/XMLLexer.g:242:68: ( '0' .. '9' )+ + var cnt8=0; + loop8: + do { + var alt8=2; + var LA8_0 = this.input.LA(1); + + if ( ((LA8_0>='0' && LA8_0<='9')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // xquery/XMLLexer.g:242:69: '0' .. '9' + this.matchRange('0','9'); + + + break; + + default : + if ( cnt8 >= 1 ) { + break loop8; + } + var eee = new org.antlr.runtime.EarlyExitException(8, this.input); + throw eee; + } + cnt8++; + } while (true); + + this.match(';'); + + + break; + case 2 : + // xquery/XMLLexer.g:242:86: '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' + this.match("&#x"); + + // xquery/XMLLexer.g:242:92: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ + var cnt9=0; + loop9: + do { + var alt9=2; + var LA9_0 = this.input.LA(1); + + if ( ((LA9_0>='0' && LA9_0<='9')||(LA9_0>='A' && LA9_0<='F')||(LA9_0>='a' && LA9_0<='f')) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt9 >= 1 ) { + break loop9; + } + var eee = new org.antlr.runtime.EarlyExitException(9, this.input); + throw eee; + } + cnt9++; + } while (true); + + this.match(';'); + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CharRef", + + // $ANTLR start L_DirCommentConstructor + mL_DirCommentConstructor: function() { + try { + var _type = this.L_DirCommentConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:246:2: ({...}? => '' ) + // xquery/XMLLexer.g:246:4: {...}? => '' + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_DirCommentConstructor", " !this.inElem "); + } + this.match(""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirCommentConstructor", + + // $ANTLR start L_DirPIConstructor + mL_DirPIConstructor: function() { + try { + var _type = this.L_DirPIConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:249:2: ({...}? => '' ) + // xquery/XMLLexer.g:249:4: {...}? => '' + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_DirPIConstructor", " !this.inElem "); + } + this.match("='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) { + alt12=1; + } + switch (alt12) { + case 1 : + // xquery/XMLLexer.g:250:8: SU + this.mSU(); + + + break; + + } + + this.mNCNameUnprotected(); + // xquery/XMLLexer.g:250:30: ( SU ( options {greedy=false; } : ( . )* ) )? + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) { + alt14=1; + } + switch (alt14) { + case 1 : + // xquery/XMLLexer.g:250:31: SU ( options {greedy=false; } : ( . )* ) + this.mSU(); + // xquery/XMLLexer.g:250:34: ( options {greedy=false; } : ( . )* ) + // xquery/XMLLexer.g:250:61: ( . )* + // xquery/XMLLexer.g:250:61: ( . )* + loop13: + do { + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0=='?') ) { + var LA13_1 = this.input.LA(2); + + if ( (LA13_1=='>') ) { + alt13=2; + } + else if ( ((LA13_1>='\u0000' && LA13_1<='=')||(LA13_1>='?' && LA13_1<='\uFFFF')) ) { + alt13=1; + } + + + } + else if ( ((LA13_0>='\u0000' && LA13_0<='>')||(LA13_0>='@' && LA13_0<='\uFFFF')) ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // xquery/XMLLexer.g:250:61: . + this.matchAny(); + + + break; + + default : + break loop13; + } + } while (true); + + + + + + + break; + + } + + this.match("?>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirPIConstructor", + + // $ANTLR start SU + mSU: function() { + try { + // xquery/XMLLexer.g:254:2: ( ( ' ' | '\\t' | '\\n' | '\\r' )+ ) + // xquery/XMLLexer.g:254:4: ( ' ' | '\\t' | '\\n' | '\\r' )+ + // xquery/XMLLexer.g:254:4: ( ' ' | '\\t' | '\\n' | '\\r' )+ + var cnt15=0; + loop15: + do { + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( ((LA15_0>='\t' && LA15_0<='\n')||LA15_0=='\r'||LA15_0==' ') ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt15 >= 1 ) { + break loop15; + } + var eee = new org.antlr.runtime.EarlyExitException(15, this.input); + throw eee; + } + cnt15++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "SU", + + // $ANTLR start COLON + mCOLON: function() { + try { + var _type = this.COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:257:7: ( ':' ) + // xquery/XMLLexer.g:257:9: ':' + this.match(':'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON", + + mTokens: function() { + // xquery/XMLLexer.g:1:8: ( QUOT | APOS | L_QuotAttrContentChar | L_AposAttrContentChar | L_ElementContentChar | GREATER | EMPTY_CLOSE_TAG | S | L_NCName | EQUAL | ESCAPE_APOS | ESCAPE_QUOT | ESCAPE_LBRACKET | ESCAPE_RBRACKET | LBRACKET | RBRACKET | SMALLER | CLOSE_TAG | CDATA_START | CDATA_END | L_CDataSection | L_PredefinedEntityRef | L_CharRef | L_DirCommentConstructor | L_DirPIConstructor | COLON ) + var alt16=26; + alt16 = this.dfa16.predict(this.input); + switch (alt16) { + case 1 : + // xquery/XMLLexer.g:1:10: QUOT + this.mQUOT(); + + + break; + case 2 : + // xquery/XMLLexer.g:1:15: APOS + this.mAPOS(); + + + break; + case 3 : + // xquery/XMLLexer.g:1:20: L_QuotAttrContentChar + this.mL_QuotAttrContentChar(); + + + break; + case 4 : + // xquery/XMLLexer.g:1:42: L_AposAttrContentChar + this.mL_AposAttrContentChar(); + + + break; + case 5 : + // xquery/XMLLexer.g:1:64: L_ElementContentChar + this.mL_ElementContentChar(); + + + break; + case 6 : + // xquery/XMLLexer.g:1:85: GREATER + this.mGREATER(); + + + break; + case 7 : + // xquery/XMLLexer.g:1:93: EMPTY_CLOSE_TAG + this.mEMPTY_CLOSE_TAG(); + + + break; + case 8 : + // xquery/XMLLexer.g:1:109: S + this.mS(); + + + break; + case 9 : + // xquery/XMLLexer.g:1:111: L_NCName + this.mL_NCName(); + + + break; + case 10 : + // xquery/XMLLexer.g:1:120: EQUAL + this.mEQUAL(); + + + break; + case 11 : + // xquery/XMLLexer.g:1:126: ESCAPE_APOS + this.mESCAPE_APOS(); + + + break; + case 12 : + // xquery/XMLLexer.g:1:138: ESCAPE_QUOT + this.mESCAPE_QUOT(); + + + break; + case 13 : + // xquery/XMLLexer.g:1:150: ESCAPE_LBRACKET + this.mESCAPE_LBRACKET(); + + + break; + case 14 : + // xquery/XMLLexer.g:1:166: ESCAPE_RBRACKET + this.mESCAPE_RBRACKET(); + + + break; + case 15 : + // xquery/XMLLexer.g:1:182: LBRACKET + this.mLBRACKET(); + + + break; + case 16 : + // xquery/XMLLexer.g:1:191: RBRACKET + this.mRBRACKET(); + + + break; + case 17 : + // xquery/XMLLexer.g:1:200: SMALLER + this.mSMALLER(); + + + break; + case 18 : + // xquery/XMLLexer.g:1:208: CLOSE_TAG + this.mCLOSE_TAG(); + + + break; + case 19 : + // xquery/XMLLexer.g:1:218: CDATA_START + this.mCDATA_START(); + + + break; + case 20 : + // xquery/XMLLexer.g:1:230: CDATA_END + this.mCDATA_END(); + + + break; + case 21 : + // xquery/XMLLexer.g:1:240: L_CDataSection + this.mL_CDataSection(); + + + break; + case 22 : + // xquery/XMLLexer.g:1:255: L_PredefinedEntityRef + this.mL_PredefinedEntityRef(); + + + break; + case 23 : + // xquery/XMLLexer.g:1:277: L_CharRef + this.mL_CharRef(); + + + break; + case 24 : + // xquery/XMLLexer.g:1:287: L_DirCommentConstructor + this.mL_DirCommentConstructor(); + + + break; + case 25 : + // xquery/XMLLexer.g:1:311: L_DirPIConstructor + this.mL_DirPIConstructor(); + + + break; + case 26 : + // xquery/XMLLexer.g:1:330: COLON + this.mCOLON(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XMLLexer, { + DFA16_eotS: + "\u0001\uffff\u0001\u0010\u0001\u0013\u0001\u0014\u0001\u0016\u0001"+ + "\u0017\u0001\u0018\u0001\u001a\u0001\u0016\u0001\u001d\u0001\u001f\u0001"+ + "\u0023\u0001\u0024\u0001\uffff\u0001\u0016\u0001\u0027\u0002\uffff\u0001"+ + "\u0029\u0002\uffff\u0001\u002e\u0003\uffff\u0001\u0018\u0001\uffff\u0001"+ + "\u0016\u0016\uffff\u0001\u0039\u000d\uffff\u0001\u0041\u0002\uffff", + DFA16_eofS: + "\u0043\uffff", + DFA16_minS: + "\u0009\u0009\u0001\u007b\u0001\u007d\u0001\u0021\u0001\u0009\u0001"+ + "\u0023\u0002\u0009\u0001\u0000\u0001\uffff\u0001\u0009\u0002\u0000\u0001"+ + "\u0009\u0003\u0000\u0001\u0009\u0001\u0000\u0001\u0009\u0005\uffff\u0001"+ + "\u002d\u0002\uffff\u0001\u0000\u0002\uffff\u0001\u0000\u0001\uffff\u0001"+ + "\u0000\u0004\uffff\u0001\u0000\u0003\uffff\u0001\u0009\u0001\u0043\u0005"+ + "\uffff\u0001\u0000\u0001\u0044\u0001\uffff\u0001\u0041\u0001\u0054\u0001"+ + "\u0041\u0001\u005b\u0001\u0000\u0002\uffff", + DFA16_maxS: + "\u0009\ufffd\u0001\u007b\u0001\u007d\u0001\u003f\u0001\ufffd\u0001"+ + "\u0071\u0002\ufffd\u0001\u0000\u0001\uffff\u0001\ufffd\u0002\u0000\u0001"+ + "\ufffd\u0003\u0000\u0001\ufffd\u0001\u0000\u0001\ufffd\u0005\uffff\u0001"+ + "\u005b\u0002\uffff\u0001\u0000\u0002\uffff\u0001\u0000\u0001\uffff\u0001"+ + "\u0000\u0004\uffff\u0001\u0000\u0003\uffff\u0001\ufffd\u0001\u0043\u0005"+ + "\uffff\u0001\u0000\u0001\u0044\u0001\uffff\u0001\u0041\u0001\u0054\u0001"+ + "\u0041\u0001\u005b\u0001\uffff\u0002\uffff", + DFA16_acceptS: + "\u0011\uffff\u0001\u0005\u000a\uffff\u0001\u000d\u0001\u000f\u0001"+ + "\u000e\u0001\u0010\u0001\u0012\u0001\uffff\u0001\u0019\u0001\u0011\u0001"+ + "\uffff\u0001\u0017\u0001\u0016\u0001\uffff\u0001\u0001\u0001\uffff\u0001"+ + "\u0002\u0001\u0003\u0001\u0004\u0001\u0006\u0001\uffff\u0001\u0008\u0001"+ + "\u0009\u0001\u000a\u0002\uffff\u0001\u0018\u0001\u001a\u0001\u000c\u0001"+ + "\u000b\u0001\u0007\u0002\uffff\u0001\u0014\u0005\uffff\u0001\u0013\u0001"+ + "\u0015", + DFA16_specialS: + "\u0001\u0000\u0001\u001f\u0001\u0022\u0001\u0004\u0001\u000d\u0001"+ + "\u001e\u0001\u0015\u0001\u0002\u0001\u000b\u0001\u0021\u0001\u0005\u0001"+ + "\u0011\u0001\u001b\u0001\u0020\u0001\u000c\u0001\u001a\u0001\u0009\u0001"+ + "\uffff\u0001\u0010\u0001\u000a\u0001\u001d\u0001\u0016\u0001\u000f\u0001"+ + "\u0018\u0001\u0019\u0001\u0003\u0001\u0017\u0001\u0008\u0005\uffff\u0001"+ + "\u0012\u0002\uffff\u0001\u000e\u0002\uffff\u0001\u0006\u0001\uffff\u0001"+ + "\u0007\u0004\uffff\u0001\u001c\u0003\uffff\u0001\u0013\u0006\uffff\u0001"+ + "\u0014\u0006\uffff\u0001\u0001\u0002\uffff}>", + DFA16_transitionS: [ + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0001\u0005"+ + "\u0001\u000e\u0001\u0001\u0003\u000e\u0001\u000d\u0001\u0002"+ + "\u0007\u000e\u0001\u0004\u000a\u000e\u0001\u000c\u0001\u000e"+ + "\u0001\u000b\u0001\u0007\u0001\u0003\u0002\u000e\u001a\u0006"+ + "\u0002\u000e\u0001\u0008\u0001\u000e\u0001\u0006\u0001\u000e"+ + "\u001a\u0006\u0001\u0009\u0001\u000e\u0001\u000a\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0002\u0011"+ + "\u0001\u000f\u0003\u0011\u0001\uffff\u0015\u0011\u0001\uffff"+ + "\u003e\u0011\u0001\uffff\u0001\u0011\u0001\uffff\ud782\u0011"+ + "\u0800\uffff\u1ffe\u0011", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0001\u0012\u0014\u0011\u0001\uffff\u003e\u0011"+ + "\u0001\uffff\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff"+ + "\u1ffe\u0011", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0001\u000e\u0001\u0015\u003c\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0001\u0005"+ + "\u0001\u000e\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011"+ + "\u0014\u000e\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e"+ + "\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0005\u000e"+ + "\u0002\u0019\u0001\u000e\u000a\u0019\u0002\u000e\u0001\uffff"+ + "\u0004\u000e\u001a\u0019\u0004\u000e\u0001\u0019\u0001\u000e"+ + "\u001a\u0019\u0001\uffff\u0001\u000e\u0001\uffff\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0020\u000e\u0001\u001b\u001d\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u001c", + "\u0001\u001e", + "\u0001\u0021\u000d\uffff\u0001\u0020\u000f\uffff\u0001\u0022", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u0025\u003d\uffff\u0001\u0026\u0005\uffff\u0001\u0026"+ + "\u0004\uffff\u0001\u0026\u0004\uffff\u0001\u0026", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0015\u0011\u0001\uffff\u003e\u0011\u0001\uffff"+ + "\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff\u1ffe\u0011", + "\u0001\uffff", + "", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0015\u0011\u0001\uffff\u003e\u0011\u0001\uffff"+ + "\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff\u1ffe\u0011", + "\u0001\uffff", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0005\u000e"+ + "\u0002\u0019\u0001\u000e\u000a\u0019\u0002\u000e\u0001\uffff"+ + "\u0004\u000e\u001a\u0019\u0004\u000e\u0001\u0019\u0001\u000e"+ + "\u001a\u0019\u0001\uffff\u0001\u000e\u0001\uffff\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0001\u000e\u0001\u0032\u003c\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "", + "", + "", + "", + "", + "\u0001\u0034\u002d\uffff\u0001\u0033", + "", + "", + "\u0001\uffff", + "", + "", + "\u0001\uffff", + "", + "\u0001\uffff", + "", + "", + "", + "", + "\u0001\uffff", + "", + "", + "", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u003a", + "", + "", + "", + "", + "", + "\u0001\uffff", + "\u0001\u003c", + "", + "\u0001\u003d", + "\u0001\u003e", + "\u0001\u003f", + "\u0001\u0040", + "\u0000\u0042", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XMLLexer, { + DFA16_eot: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_eotS), + DFA16_eof: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_eofS), + DFA16_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XMLLexer.DFA16_minS), + DFA16_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XMLLexer.DFA16_maxS), + DFA16_accept: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_acceptS), + DFA16_special: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_specialS), + DFA16_transition: (function() { + var a = [], + i, + numStates = XMLLexer.DFA16_transitionS.length; + for (i=0; i') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 3;} + + else if ( (LA16_0=='/') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 4;} + + else if ( ((LA16_0>='\t' && LA16_0<='\n')||LA16_0=='\r'||LA16_0==' ') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 5;} + + else if ( ((LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 6;} + + else if ( (LA16_0=='=') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 7;} + + else if ( (LA16_0==']') ) {s = 8;} + + else if ( (LA16_0=='{') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 9;} + + else if ( (LA16_0=='}') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 10;} + + else if ( (LA16_0=='<') ) {s = 11;} + + else if ( (LA16_0==':') ) {s = 12;} + + else if ( (LA16_0=='&') ) {s = 13;} + + else if ( (LA16_0=='!'||(LA16_0>='#' && LA16_0<='%')||(LA16_0>='(' && LA16_0<='.')||(LA16_0>='0' && LA16_0<='9')||LA16_0==';'||(LA16_0>='?' && LA16_0<='@')||(LA16_0>='[' && LA16_0<='\\')||LA16_0=='^'||LA16_0=='`'||LA16_0=='|'||(LA16_0>='~' && LA16_0<='\uD7FF')||(LA16_0>='\uE000' && LA16_0<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + + input.seek(index16_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA16_64 = input.LA(1); + + + var index16_64 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_64>='\u0000' && LA16_64<='\uFFFF')) && (( !this.inElem ))) {s = 66;} + + else s = 65; + + + input.seek(index16_64); + if ( s>=0 ) return s; + break; + case 2 : + var LA16_7 = input.LA(1); + + + var index16_7 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_7>='\t' && LA16_7<='\n')||LA16_7=='\r'||(LA16_7>=' ' && LA16_7<='!')||(LA16_7>='#' && LA16_7<='%')||(LA16_7>='(' && LA16_7<=';')||(LA16_7>='=' && LA16_7<='z')||LA16_7=='|'||(LA16_7>='~' && LA16_7<='\uD7FF')||(LA16_7>='\uE000' && LA16_7<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_7=='\"'||LA16_7=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 26; + + + input.seek(index16_7); + if ( s>=0 ) return s; + break; + case 3 : + var LA16_25 = input.LA(1); + + + var index16_25 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_25>='-' && LA16_25<='.')||(LA16_25>='0' && LA16_25<='9')||(LA16_25>='A' && LA16_25<='Z')||LA16_25=='_'||(LA16_25>='a' && LA16_25<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 25;} + + else if ( (LA16_25=='\"'||LA16_25=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( ((LA16_25>='\t' && LA16_25<='\n')||LA16_25=='\r'||(LA16_25>=' ' && LA16_25<='!')||(LA16_25>='#' && LA16_25<='%')||(LA16_25>='(' && LA16_25<=',')||LA16_25=='/'||(LA16_25>=':' && LA16_25<=';')||(LA16_25>='=' && LA16_25<='@')||(LA16_25>='[' && LA16_25<='^')||LA16_25=='`'||LA16_25=='|'||(LA16_25>='~' && LA16_25<='\uD7FF')||(LA16_25>='\uE000' && LA16_25<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 24; + + + input.seek(index16_25); + if ( s>=0 ) return s; + break; + case 4 : + var LA16_3 = input.LA(1); + + + var index16_3 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_3>='\t' && LA16_3<='\n')||LA16_3=='\r'||(LA16_3>=' ' && LA16_3<='!')||(LA16_3>='#' && LA16_3<='%')||(LA16_3>='(' && LA16_3<=';')||(LA16_3>='=' && LA16_3<='z')||LA16_3=='|'||(LA16_3>='~' && LA16_3<='\uD7FF')||(LA16_3>='\uE000' && LA16_3<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_3=='\"'||LA16_3=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 20; + + + input.seek(index16_3); + if ( s>=0 ) return s; + break; + case 5 : + var LA16_10 = input.LA(1); + + + var index16_10 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_10=='}') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 30;} + + else s = 31; + + + input.seek(index16_10); + if ( s>=0 ) return s; + break; + case 6 : + var LA16_39 = input.LA(1); + + + var index16_39 = input.index(); + input.rewind(); + s = -1; + if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inQuotAttr )) ) {s = 54;} + + + input.seek(index16_39); + if ( s>=0 ) return s; + break; + case 7 : + var LA16_41 = input.LA(1); + + + var index16_41 = input.index(); + input.rewind(); + s = -1; + if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inAposAttr )) ) {s = 55;} + + + input.seek(index16_41); + if ( s>=0 ) return s; + break; + case 8 : + var LA16_27 = input.LA(1); + + + var index16_27 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_27=='>') ) {s = 50;} + + else if ( ((LA16_27>='\t' && LA16_27<='\n')||LA16_27=='\r'||(LA16_27>=' ' && LA16_27<='!')||(LA16_27>='#' && LA16_27<='%')||(LA16_27>='(' && LA16_27<=';')||LA16_27=='='||(LA16_27>='?' && LA16_27<='z')||LA16_27=='|'||(LA16_27>='~' && LA16_27<='\uD7FF')||(LA16_27>='\uE000' && LA16_27<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_27=='\"'||LA16_27=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_27); + if ( s>=0 ) return s; + break; + case 9 : + var LA16_16 = input.LA(1); + + + var index16_16 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inElem || this.inQuotAttr )) ) {s = 40;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_16); + if ( s>=0 ) return s; + break; + case 10 : + var LA16_19 = input.LA(1); + + + var index16_19 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inElem || this.inAposAttr )) ) {s = 42;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_19); + if ( s>=0 ) return s; + break; + case 11 : + var LA16_8 = input.LA(1); + + + var index16_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_8==']') ) {s = 27;} + + else if ( ((LA16_8>='\t' && LA16_8<='\n')||LA16_8=='\r'||(LA16_8>=' ' && LA16_8<='!')||(LA16_8>='#' && LA16_8<='%')||(LA16_8>='(' && LA16_8<=';')||(LA16_8>='=' && LA16_8<='\\')||(LA16_8>='^' && LA16_8<='z')||LA16_8=='|'||(LA16_8>='~' && LA16_8<='\uD7FF')||(LA16_8>='\uE000' && LA16_8<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_8=='\"'||LA16_8=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_8); + if ( s>=0 ) return s; + break; + case 12 : + var LA16_14 = input.LA(1); + + + var index16_14 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_14>='\t' && LA16_14<='\n')||LA16_14=='\r'||(LA16_14>=' ' && LA16_14<='!')||(LA16_14>='#' && LA16_14<='%')||(LA16_14>='(' && LA16_14<=';')||(LA16_14>='=' && LA16_14<='z')||LA16_14=='|'||(LA16_14>='~' && LA16_14<='\uD7FF')||(LA16_14>='\uE000' && LA16_14<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_14=='\"'||LA16_14=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_14); + if ( s>=0 ) return s; + break; + case 13 : + var LA16_4 = input.LA(1); + + + var index16_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_4=='>') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 21;} + + else if ( ((LA16_4>='\t' && LA16_4<='\n')||LA16_4=='\r'||(LA16_4>=' ' && LA16_4<='!')||(LA16_4>='#' && LA16_4<='%')||(LA16_4>='(' && LA16_4<=';')||LA16_4=='='||(LA16_4>='?' && LA16_4<='z')||LA16_4=='|'||(LA16_4>='~' && LA16_4<='\uD7FF')||(LA16_4>='\uE000' && LA16_4<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_4=='\"'||LA16_4=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_4); + if ( s>=0 ) return s; + break; + case 14 : + var LA16_36 = input.LA(1); + + + var index16_36 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (true) ) {s = 53;} + + + input.seek(index16_36); + if ( s>=0 ) return s; + break; + case 15 : + var LA16_22 = input.LA(1); + + + var index16_22 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_22); + if ( s>=0 ) return s; + break; + case 16 : + var LA16_18 = input.LA(1); + + + var index16_18 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_18>='\t' && LA16_18<='\n')||LA16_18=='\r'||(LA16_18>=' ' && LA16_18<='%')||(LA16_18>='\'' && LA16_18<=';')||(LA16_18>='=' && LA16_18<='z')||LA16_18=='|'||(LA16_18>='~' && LA16_18<='\uD7FF')||(LA16_18>='\uE000' && LA16_18<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 41; + + + input.seek(index16_18); + if ( s>=0 ) return s; + break; + case 17 : + var LA16_11 = input.LA(1); + + + var index16_11 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_11=='/') && (( !this.inElem ))) {s = 32;} + + else if ( (LA16_11=='!') ) {s = 33;} + + else if ( (LA16_11=='?') && (( !this.inElem ))) {s = 34;} + + else s = 35; + + + input.seek(index16_11); + if ( s>=0 ) return s; + break; + case 18 : + var LA16_33 = input.LA(1); + + + var index16_33 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_33=='[') ) {s = 51;} + + else if ( (LA16_33=='-') && (( !this.inElem ))) {s = 52;} + + + input.seek(index16_33); + if ( s>=0 ) return s; + break; + case 19 : + var LA16_50 = input.LA(1); + + + var index16_50 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_50>='\t' && LA16_50<='\n')||LA16_50=='\r'||(LA16_50>=' ' && LA16_50<='!')||(LA16_50>='#' && LA16_50<='%')||(LA16_50>='(' && LA16_50<=';')||(LA16_50>='=' && LA16_50<='z')||LA16_50=='|'||(LA16_50>='~' && LA16_50<='\uD7FF')||(LA16_50>='\uE000' && LA16_50<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_50=='\"'||LA16_50=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 57; + + + input.seek(index16_50); + if ( s>=0 ) return s; + break; + case 20 : + var LA16_57 = input.LA(1); + + + var index16_57 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (true) ) {s = 59;} + + + input.seek(index16_57); + if ( s>=0 ) return s; + break; + case 21 : + var LA16_6 = input.LA(1); + + + var index16_6 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_6>='-' && LA16_6<='.')||(LA16_6>='0' && LA16_6<='9')||(LA16_6>='A' && LA16_6<='Z')||LA16_6=='_'||(LA16_6>='a' && LA16_6<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 25;} + + else if ( (LA16_6=='\"'||LA16_6=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( ((LA16_6>='\t' && LA16_6<='\n')||LA16_6=='\r'||(LA16_6>=' ' && LA16_6<='!')||(LA16_6>='#' && LA16_6<='%')||(LA16_6>='(' && LA16_6<=',')||LA16_6=='/'||(LA16_6>=':' && LA16_6<=';')||(LA16_6>='=' && LA16_6<='@')||(LA16_6>='[' && LA16_6<='^')||LA16_6=='`'||LA16_6=='|'||(LA16_6>='~' && LA16_6<='\uD7FF')||(LA16_6>='\uE000' && LA16_6<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 24; + + + input.seek(index16_6); + if ( s>=0 ) return s; + break; + case 22 : + var LA16_21 = input.LA(1); + + + var index16_21 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_21>='\t' && LA16_21<='\n')||LA16_21=='\r'||(LA16_21>=' ' && LA16_21<='!')||(LA16_21>='#' && LA16_21<='%')||(LA16_21>='(' && LA16_21<=';')||(LA16_21>='=' && LA16_21<='z')||LA16_21=='|'||(LA16_21>='~' && LA16_21<='\uD7FF')||(LA16_21>='\uE000' && LA16_21<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_21=='\"'||LA16_21=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 46; + + + input.seek(index16_21); + if ( s>=0 ) return s; + break; + case 23 : + var LA16_26 = input.LA(1); + + + var index16_26 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 49;} + + + input.seek(index16_26); + if ( s>=0 ) return s; + break; + case 24 : + var LA16_23 = input.LA(1); + + + var index16_23 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 47;} + + + input.seek(index16_23); + if ( s>=0 ) return s; + break; + case 25 : + var LA16_24 = input.LA(1); + + + var index16_24 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 48;} + + + input.seek(index16_24); + if ( s>=0 ) return s; + break; + case 26 : + var LA16_15 = input.LA(1); + + + var index16_15 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_15>='\t' && LA16_15<='\n')||LA16_15=='\r'||(LA16_15>=' ' && LA16_15<='%')||(LA16_15>='\'' && LA16_15<=';')||(LA16_15>='=' && LA16_15<='z')||LA16_15=='|'||(LA16_15>='~' && LA16_15<='\uD7FF')||(LA16_15>='\uE000' && LA16_15<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 39; + + + input.seek(index16_15); + if ( s>=0 ) return s; + break; + case 27 : + var LA16_12 = input.LA(1); + + + var index16_12 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_12>='\t' && LA16_12<='\n')||LA16_12=='\r'||(LA16_12>=' ' && LA16_12<='!')||(LA16_12>='#' && LA16_12<='%')||(LA16_12>='(' && LA16_12<=';')||(LA16_12>='=' && LA16_12<='z')||LA16_12=='|'||(LA16_12>='~' && LA16_12<='\uD7FF')||(LA16_12>='\uE000' && LA16_12<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_12=='\"'||LA16_12=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 36; + + + input.seek(index16_12); + if ( s>=0 ) return s; + break; + case 28 : + var LA16_46 = input.LA(1); + + + var index16_46 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 56;} + + + input.seek(index16_46); + if ( s>=0 ) return s; + break; + case 29 : + var LA16_20 = input.LA(1); + + + var index16_20 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 45;} + + + input.seek(index16_20); + if ( s>=0 ) return s; + break; + case 30 : + var LA16_5 = input.LA(1); + + + var index16_5 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_5>='\t' && LA16_5<='\n')||LA16_5=='\r'||LA16_5==' ') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 5;} + + else if ( (LA16_5=='\"'||LA16_5=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( (LA16_5=='!'||(LA16_5>='#' && LA16_5<='%')||(LA16_5>='(' && LA16_5<=';')||(LA16_5>='=' && LA16_5<='z')||LA16_5=='|'||(LA16_5>='~' && LA16_5<='\uD7FF')||(LA16_5>='\uE000' && LA16_5<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 23; + + + input.seek(index16_5); + if ( s>=0 ) return s; + break; + case 31 : + var LA16_1 = input.LA(1); + + + var index16_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_1=='\"') && ((( this.inQuotAttr )||( !this.inElem )))) {s = 15;} + + else if ( ((LA16_1>='\t' && LA16_1<='\n')||LA16_1=='\r'||(LA16_1>=' ' && LA16_1<='!')||(LA16_1>='#' && LA16_1<='%')||(LA16_1>='\'' && LA16_1<=';')||(LA16_1>='=' && LA16_1<='z')||LA16_1=='|'||(LA16_1>='~' && LA16_1<='\uD7FF')||(LA16_1>='\uE000' && LA16_1<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 16; + + + input.seek(index16_1); + if ( s>=0 ) return s; + break; + case 32 : + var LA16_13 = input.LA(1); + + + var index16_13 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_13=='#') ) {s = 37;} + + else if ( (LA16_13=='a'||LA16_13=='g'||LA16_13=='l'||LA16_13=='q') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 38;} + + + input.seek(index16_13); + if ( s>=0 ) return s; + break; + case 33 : + var LA16_9 = input.LA(1); + + + var index16_9 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_9=='{') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 28;} + + else s = 29; + + + input.seek(index16_9); + if ( s>=0 ) return s; + break; + case 34 : + var LA16_2 = input.LA(1); + + + var index16_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_2=='\'') && ((( this.inAposAttr )||( !this.inElem )))) {s = 18;} + + else if ( ((LA16_2>='\t' && LA16_2<='\n')||LA16_2=='\r'||(LA16_2>=' ' && LA16_2<='%')||(LA16_2>='(' && LA16_2<=';')||(LA16_2>='=' && LA16_2<='z')||LA16_2=='|'||(LA16_2>='~' && LA16_2<='\uD7FF')||(LA16_2>='\uE000' && LA16_2<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 19; + + + input.seek(index16_2); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 16, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.XMLLexer = XMLLexer; +});/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/XQDTParser', ['require', 'exports', 'module' , 'ace/mode/xquery/antlr3-all', 'ace/mode/xquery/XQuerySemanticHighlighter'], function(require, exports, module) { + +var org = require("./antlr3-all").org; +var XQuerySemanticHighlighter = require("./XQuerySemanticHighlighter").XQuerySemanticHighlighter; + +var XQDTParser = exports.XQDTParser = function(input, state) +{ + this.highlighter = new XQuerySemanticHighlighter(); + var that = this; + + input.getTokenSource().addComment = function(start, stop) { + var comments = input.getTokenSource().comments; + for(var i in comments) + { + var c = comments[i]; + that.highlighter.addToken(c.start, c.stop, "comment"); + } + input.getTokenSource().comments = []; + that.highlighter.addToken(start, stop, "comment") + }; + XQDTParser.superclass.constructor.call(this, input, state); +}; + +org.antlr.lang.extend(XQDTParser, org.antlr.runtime.Parser, { + +}); + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/XQuerySemanticHighlighter', ['require', 'exports', 'module' , 'ace/mode/xquery/Position'], function(require, exports, module) { + + var Position = require("./Position").Position; + var XQuerySemanticHighlighter = exports.XQuerySemanticHighlighter = function() { + this.tokenizer = null; + this.plain = null; + this.source = []; + this.lines = []; + + this.getTokens = function() { + var result = []; + var previousState = "start"; + for(i in this.source){ + var lineTokens = []; + var tokens = []; + if(this.lines[i]) { + tokens = this.lines[i].sort(function(a, b){ return a.position.getOffset() - b.position.getOffset(); }); + } + var sourceLine = this.source[i]; + var tokenizedLine = ""; + var cursor = 0; + for(j in tokens) + { + var token = tokens[j]; + var position = token.position; + if(position.getOffset() > cursor) { + var value = sourceLine.substring(cursor, position.getOffset()); + tokenizedLine += value; + lineTokens.push({ + type: "text", + value: value + }); + } + cursor = position.getOffset() + position.getLength(); + value = sourceLine.substring(position.getOffset(), cursor); + tokenizedLine += value; + lineTokens.push({ + type: token.type, + value: value + }); + } + + var nextState = "start"; + if(lineTokens.length > 0) { + lineTokens[lineTokens.length - 1].type; + } + nextState = (nextState != "comment" && nextState != "string" && nextState != "cdata" && nextState != "tag") ? "start" : nextState; + + if(cursor < (sourceLine.length )) { + value = sourceLine.substring(cursor); + lineTokens.push({ + type: "text", + value: value + }); + tokenizedLine += value; + } + //Check if the tokenized line is equal to the original one: + if(sourceLine == tokenizedLine) { + result[i] = { tokens: lineTokens, state: nextState }; + //result[i] = { line: sourceLine, startState: previousState, tokens: { tokens: lineTokens, state: nextState } }; + } else { + console.log("sourceLine: " + sourceLine); + console.log("tokenizedLine: " + tokenizedLine); + result[i] = { tokens: [ { type: "text", value: sourceLine } ], state: nextState }; + } + + if(result[i].tokens.length === 1 && result[i].tokens[0].type === "text" && this.tokenizer instanceof Object) { + var prev = result[i - 1] ? result[i - 1].state : "start"; + result[i] = this.tokenizer.getLineTokens(result[i].tokens[0].value, prev); + } + } + return result; + }; + + this.addToken = function(start, stop, type) { + var before = this.plain.substring(0, start); + var startLine = this.plain.substring(0, start).split("\n").length; + startLine = startLine == 0 ? 0 : startLine - 1; + + var offset = before.lastIndexOf("\n"); + offset = offset == -1 ? start : start - before.lastIndexOf("\n") - 1; + + var cursor = start; + + var text = this.plain.substring(start, stop); + + var currentLine = startLine; + for(var i in text) + { + var c = text[i]; + if(c == "\n") { + var s = i; + s = s < stop ? s : stop; + this.addPosition(new Position(currentLine, offset, s), type); + currentLine++; + offset = 0; + cursor = i; + } + }; + this.addPosition(new Position(currentLine, offset, stop - cursor + 1), type); + }; + + this.addPosition = function(position, type) + { + var line = position.getLine(); + if(!this.lines[line]) { + this.lines[line] = []; + } + this.lines[line].push({ + type: type, + position: position + }); + }; + + this.setSource = function(source) + { + this.plain = source.data; + this.source = this.plain.split("\n"); + }; + //console.log("Line: " + token.getLine()); + //console.log(token.getText()); + //console.log(type); + }; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery/Position', ['require', 'exports', 'module' ], function(require, exports, module) { + var Position = exports.Position = function(line, offset, length) + { + this.line = line; + this.offset = offset; + this.length = length; + + this.getLine = function() + { + return this.line; + }; + + this.getOffset = function() + { + return this.offset; + }; + + this.getLength = function() + { + return this.length; + }; + }; + +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/tokenizer', ['require', 'exports', 'module' ], function(require, exports, module) { +"use strict"; + +/** + * class Tokenizer + * + * This class takes a set of highlighting rules, and creates a tokenizer out of them. For more information, see [the wiki on extending highlighters](https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode#wiki-extendingTheHighlighter). + * + **/ + +/** + * new Tokenizer(rules, flag) + * - rules (Object): The highlighting rules + * - flag (String): Any additional regular expression flags to pass (like "i" for case insensitive) + * + * Constructs a new tokenizer based on the given rules and flags. + * + **/ +var Tokenizer = function(rules, flag) { + flag = flag ? "g" + flag : "g"; + this.rules = rules; + + this.regExps = {}; + this.matchMappings = {}; + for ( var key in this.rules) { + var rule = this.rules[key]; + var state = rule; + var ruleRegExps = []; + var matchTotal = 0; + var mapping = this.matchMappings[key] = {}; + + for ( var i = 0; i < state.length; i++) { + + if (state[i].regex instanceof RegExp) + state[i].regex = state[i].regex.toString().slice(1, -1); + + // Count number of matching groups. 2 extra groups from the full match + // And the catch-all on the end (used to force a match); + var matchcount = new RegExp("(?:(" + state[i].regex + ")|(.))").exec("a").length - 2; + + // Replace any backreferences and offset appropriately. + var adjustedregex = state[i].regex.replace(/\\([0-9]+)/g, function (match, digit) { + return "\\" + (parseInt(digit, 10) + matchTotal + 1); + }); + + if (matchcount > 1 && state[i].token.length !== matchcount-1) + throw new Error("Matching groups and length of the token array don't match in rule #" + i + " of state " + key); + + mapping[matchTotal] = { + rule: i, + len: matchcount + }; + matchTotal += matchcount; + + ruleRegExps.push(adjustedregex); + } + + this.regExps[key] = new RegExp("(?:(" + ruleRegExps.join(")|(") + ")|(.))", flag); + } +}; + +(function() { + + /** + * Tokenizer.getLineTokens() -> Object + * + * Returns an object containing two properties: `tokens`, which contains all the tokens; and `state`, the current state. + **/ + this.getLineTokens = function(line, startState) { + var currentState = startState; + var state = this.rules[currentState]; + var mapping = this.matchMappings[currentState]; + var re = this.regExps[currentState]; + re.lastIndex = 0; + + var match, tokens = []; + + var lastIndex = 0; + + var token = { + type: null, + value: "" + }; + + while (match = re.exec(line)) { + var type = "text"; + var rule = null; + var value = [match[0]]; + + for (var i = 0; i < match.length-2; i++) { + if (match[i + 1] === undefined) + continue; + + rule = state[mapping[i].rule]; + + if (mapping[i].len > 1) + value = match.slice(i+2, i+1+mapping[i].len); + + // compute token type + if (typeof rule.token == "function") + type = rule.token.apply(this, value); + else + type = rule.token; + + if (rule.next) { + currentState = rule.next; + state = this.rules[currentState]; + mapping = this.matchMappings[currentState]; + lastIndex = re.lastIndex; + + re = this.regExps[currentState]; + re.lastIndex = lastIndex; + } + break; + } + + if (value[0]) { + if (typeof type == "string") { + value = [value.join("")]; + type = [type]; + } + for (var i = 0; i < value.length; i++) { + if (!value[i]) + continue; + + if ((!rule || rule.merge || type[i] === "text") && token.type === type[i]) { + token.value += value[i]; + } else { + if (token.type) + tokens.push(token); + + token = { + type: type[i], + value: value[i] + }; + } + } + } + + if (lastIndex == line.length) + break; + + lastIndex = re.lastIndex; + } + + if (token.type) + tokens.push(token); + + return { + tokens : tokens, + state : currentState + }; + }; + +}).call(Tokenizer.prototype); + +exports.Tokenizer = Tokenizer; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +define('ace/mode/xquery_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XQueryHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning").split("|") + ); + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + + this.$rules = { + start : [ { + token : "text", + regex : "<\\!\\[CDATA\\[", + next : "cdata" + }, { + token : "xml_pe", + regex : "<\\?.*?\\?>" + }, { + token : "comment", + regex : "<\\!--", + next : "comment" + }, { + token : "comment", + regex : "\\(:", + next : "comment" + }, { + token : "text", // opening tag + regex : "<\\/?", + next : "tag" + }, { + token : "constant", // number + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "variable", // variable + regex : "\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b" + }, { + token: "string", + regex : '".*?"' + }, { + token: "string", + regex : "'.*?'" + }, { + token : "text", + regex : "\\s+" + }, { + token: "support.function", + regex: "\\w[\\w+_\\-:]+(?=\\()" + }, { + token : function(value) { + if (keywords[value]) + return "keyword"; + else + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token: "keyword.operator", + regex: "\\*|=|<|>|\\-|\\+" + }, { + token: "lparen", + regex: "[[({]" + }, { + token: "rparen", + regex: "[\\])}]" + } ], + + tag : [ { + token : "text", + regex : ">", + next : "start" + }, { + token : "meta.tag", + regex : "[-_a-zA-Z0-9:]+" + }, { + token : "text", + regex : "\\s+" + }, { + token : "string", + regex : '".*?"' + }, { + token : "string", + regex : "'.*?'" + } ], + + cdata : [ { + token : "comment", + regex : "\\]\\]>", + next : "start" + }, { + token : "comment", + regex : "\\s+" + }, { + token : "comment", + regex : "(?:[^\\]]|\\](?!\\]>))+" + } ], + + comment : [ { + token : "comment", + regex : ".*?-->", + next : "start" + }, { + token: "comment", + regex : ".*:\\)", + next : "start" + }, { + token : "comment", + regex : ".+" + } ] + }; +}; + +oop.inherits(XQueryHighlightRules, TextHighlightRules); + +exports.XQueryHighlightRules = XQueryHighlightRules; +}); +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Fabian Jakobs + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define('ace/mode/text_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) { +"use strict"; + +var lang = require("../lib/lang"); + +var TextHighlightRules = function() { + + // regexp must not have capturing parentheses + // regexps are ordered -> the first match is used + + this.$rules = { + "start" : [{ + token : "empty_line", + regex : '^$' + }, { + token : "text", + regex : ".+" + }] + }; +}; + +(function() { + + this.addRules = function(rules, prefix) { + for (var key in rules) { + var state = rules[key]; + for (var i=0; i. - */ -__ace_shadowed__.define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Wolfgang Meier + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ +__ace_shadowed__.define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/worker/worker_client', 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) { "use strict"; +var WorkerClient = require("../worker/worker_client").WorkerClient; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; @@ -96,6 +116,78 @@ oop.inherits(Mode, TextMode); doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); } }; + + this.deltas = []; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + session.getDocument().on('change', function(evt){ + that.deltas.push(evt.data); + }); + + worker.attachToDocument(session.getDocument()); + + worker.on("start", function(e) { + console.log("start"); + that.deltas = []; + }); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("highlight", function(tokens) { + var firstRow = 0; + var lastRow = session.getLength() - 1; + + var lines = tokens.data; + + for(var i in that.deltas) + { + var delta = that.deltas[i]; + //console.log(delta); + if (delta.action === "insertLines") + { + var newLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 0, undefined); + } + } + else if (delta.action === "insertText") + { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 0, undefined); + } else { + delete lines[delta.range.start.row]; + } + } else if (delta.action === "removeLines") { + var oldLineCount = delta.range.end.row - delta.range.start.row; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 1); + } + } else if (delta.action === "removeText") { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 1); + } + delete lines[delta.range.start.row]; + } + } + + session.bgTokenizer.lines = lines; + session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); + }); + + return worker; + }; + }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/xquery.js b/lib/ace/mode/xquery.js index c9ab2d41..c60ee688 100644 --- a/lib/ace/mode/xquery.js +++ b/lib/ace/mode/xquery.js @@ -1,34 +1,55 @@ -/* - * eXide - web-based XQuery IDE - * - * Copyright (C) 2011 Wolfgang Meier +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Wolfgang Meier + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ define(function(require, exports, module) { "use strict"; +var WorkerClient = require("../worker/worker_client").WorkerClient; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var Tokenizer = require("../tokenizer").Tokenizer; var XQueryHighlightRules = require("./xquery_highlight_rules").XQueryHighlightRules; var XQueryBehaviour = require("./behaviour/xquery").XQueryBehaviour; +//var XQueryBackgroundHighlighter = require("./xquery_background_highlighter").XQueryBackgroundHighlighter; var Range = require("../range").Range; var Mode = function(parent) { - this.$tokenizer = new Tokenizer(new XQueryHighlightRules().getRules()); - this.$behaviour = new XQueryBehaviour(parent); + this.$tokenizer = new Tokenizer(new XQueryHighlightRules().getRules()); + this.$behaviour = new XQueryBehaviour(parent); }; oop.inherits(Mode, TextMode); @@ -96,6 +117,76 @@ oop.inherits(Mode, TextMode); doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); } }; + + this.createWorker = function(session) { + this.$deltas = []; + var worker = new WorkerClient(["ace"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + session.getDocument().on('change', function(evt){ + that.$deltas.push(evt.data); + }); + + worker.attachToDocument(session.getDocument()); + + worker.on("start", function(e) { + console.log("start"); + that.$deltas = []; + }); + + worker.on("error", function(e) { + session.setAnnotations([e.data]); + }); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("highlight", function(tokens) { + var firstRow = 0; + var lastRow = session.getLength() - 1; + + var lines = tokens.data; + + for(var i=0; i < that.$deltas.length; i++) + { + var delta = that.$deltas[i]; + + if (delta.action === "insertLines") + { + var newLineCount = delta.lines.length; + for (var i = 0; i < newLineCount; i++) { + lines.splice(delta.range.start.row + i, 0, undefined); + } + } + else if (delta.action === "insertText") + { + if (session.getDocument().isNewLine(delta.text)) + { + lines.splice(delta.range.end.row, 0, undefined); + } else { + lines[delta.range.start.row] = undefined; + } + } else if (delta.action === "removeLines") { + var oldLineCount = delta.lines.length; + lines.splice(delta.range.start.row, oldLineCount); + } else if (delta.action === "removeText") { + if (session.getDocument().isNewLine(delta.text)) + { + lines[delta.range.start.row] = undefined; + lines.splice(delta.range.end.row, 1); + } else { + lines[delta.range.start.row] = undefined; + } + } + } + session.bgTokenizer.lines = lines; + session.bgTokenizer.fireUpdateEvent(firstRow, lastRow); + }); + + return worker; + }; + }).call(Mode.prototype); exports.Mode = Mode; diff --git a/lib/ace/mode/xquery/Position.js b/lib/ace/mode/xquery/Position.js new file mode 100644 index 00000000..138003d1 --- /dev/null +++ b/lib/ace/mode/xquery/Position.js @@ -0,0 +1,59 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define(function(require, exports, module){ + var Position = exports.Position = function(line, offset, length) + { + this.line = line; + this.offset = offset; + this.length = length; + + this.getLine = function() + { + return this.line; + }; + + this.getOffset = function() + { + return this.offset; + }; + + this.getLength = function() + { + return this.length; + }; + }; + +}); diff --git a/lib/ace/mode/xquery/StringLexer.js b/lib/ace/mode/xquery/StringLexer.js new file mode 100644 index 00000000..3eac08e6 --- /dev/null +++ b/lib/ace/mode/xquery/StringLexer.js @@ -0,0 +1,1686 @@ +define(function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/StringLexer.g 2012-05-24 17:09:24 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ + var org = require("./antlr3-all").org; + var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var StringLexer = function(input, state) { +// alternate constructor @todo +// public StringLexer(CharStream input) +// public StringLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inQuotStr = false; + this.inAposStr = false; + + //boolean inQuotStr = false; + //boolean inAposStr = false; + + //public StringLexer(CharStream input, boolean isAposStr) { + // this(input, new RecognizerSharedState()); + // this.inAposStr = isAposStr; + // this.inQuotStr = !isAposStr; + // setIsWsExplicit(true); + //} + + }).call(this); + + this.dfa8 = new StringLexer.DFA8(this); + StringLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(StringLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + L_QuotStringLiteralChar: 283, + L_AposStringLiteralChar: 284 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(StringLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + L_QuotStringLiteralChar : 283, + L_AposStringLiteralChar : 284, + getGrammarFileName: function() { return "xquery/StringLexer.g"; } +}); +org.antlr.lang.augmentObject(StringLexer.prototype, { + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:66:6: ({...}? => '\"' ) + // xquery/StringLexer.g:66:8: {...}? => '\"' + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "QUOT", " this.inQuotStr "); + } + this.match('\"'); + this.inQuotStr = !this.inQuotStr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:67:6: ({...}? => '\\'' ) + // xquery/StringLexer.g:67:8: {...}? => '\\'' + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "APOS", " this.inAposStr "); + } + this.match('\''); + this.inAposStr = !this.inAposStr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start ESCAPE_QUOT + mESCAPE_QUOT: function() { + try { + var _type = this.ESCAPE_QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:68:13: ({...}? => '\"\"' ) + // xquery/StringLexer.g:68:15: {...}? => '\"\"' + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_QUOT", " this.inQuotStr "); + } + this.match("\"\""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_QUOT", + + // $ANTLR start ESCAPE_APOS + mESCAPE_APOS: function() { + try { + var _type = this.ESCAPE_APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:69:13: ({...}? => '\\'\\'' ) + // xquery/StringLexer.g:69:15: {...}? => '\\'\\'' + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_APOS", " this.inAposStr "); + } + this.match("''"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_APOS", + + // $ANTLR start L_PredefinedEntityRef + mL_PredefinedEntityRef: function() { + try { + var _type = this.L_PredefinedEntityRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:73:2: ({...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' ) + // xquery/StringLexer.g:73:4: {...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' + if ( !(( this.inQuotStr | this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_PredefinedEntityRef", " this.inQuotStr | this.inAposStr "); + } + this.match('&'); + // xquery/StringLexer.g:73:48: ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) + var alt1=5; + switch ( this.input.LA(1) ) { + case 'l': + alt1=1; + break; + case 'g': + alt1=2; + break; + case 'a': + var LA1_3 = this.input.LA(2); + + if ( (LA1_3=='p') ) { + alt1=3; + } + else if ( (LA1_3=='m') ) { + alt1=5; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 1, 3, this.input); + + throw nvae; + } + break; + case 'q': + alt1=4; + break; + default: + var nvae = + new org.antlr.runtime.NoViableAltException("", 1, 0, this.input); + + throw nvae; + } + + switch (alt1) { + case 1 : + // xquery/StringLexer.g:73:49: 'lt' + this.match("lt"); + + + + break; + case 2 : + // xquery/StringLexer.g:73:56: 'gt' + this.match("gt"); + + + + break; + case 3 : + // xquery/StringLexer.g:73:63: 'apos' + this.match("apos"); + + + + break; + case 4 : + // xquery/StringLexer.g:73:72: 'quot' + this.match("quot"); + + + + break; + case 5 : + // xquery/StringLexer.g:73:81: 'amp' + this.match("amp"); + + + + break; + + } + + this.match(';'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_PredefinedEntityRef", + + // $ANTLR start L_CharRef + mL_CharRef: function() { + try { + var _type = this.L_CharRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:78:2: ({...}? => '&#' ( '0' .. '9' )+ ';' | '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' ) + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( (LA4_0=='&') ) { + var LA4_1 = this.input.LA(2); + + if ( (LA4_1=='#') ) { + var LA4_2 = this.input.LA(3); + + if ( (LA4_2=='x') ) { + alt4=2; + } + else if ( ((LA4_2>='0' && LA4_2<='9')) && (( this.inQuotStr | this.inAposStr ))) { + alt4=1; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 2, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 1, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 0, this.input); + + throw nvae; + } + switch (alt4) { + case 1 : + // xquery/StringLexer.g:78:4: {...}? => '&#' ( '0' .. '9' )+ ';' + if ( !(( this.inQuotStr | this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CharRef", " this.inQuotStr | this.inAposStr "); + } + this.match("&#"); + + // xquery/StringLexer.g:78:49: ( '0' .. '9' )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/StringLexer.g:78:49: '0' .. '9' + this.matchRange('0','9'); + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + this.match(';'); + + + break; + case 2 : + // xquery/StringLexer.g:78:65: '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' + this.match("&#x"); + + // xquery/StringLexer.g:78:71: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='F')||(LA3_0>='a' && LA3_0<='f')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + this.match(';'); + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CharRef", + + // $ANTLR start L_QuotStringLiteralChar + mL_QuotStringLiteralChar: function() { + try { + var _type = this.L_QuotStringLiteralChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:82:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:82:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inQuotStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_QuotStringLiteralChar", " this.inQuotStr "); + } + // xquery/StringLexer.g:83:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0027' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt5=0; + loop5: + do { + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='\t' && LA5_0<='\n')||LA5_0=='\r'||(LA5_0>=' ' && LA5_0<='!')||(LA5_0>='#' && LA5_0<='%')||(LA5_0>='\'' && LA5_0<='\uD7FF')||(LA5_0>='\uE000' && LA5_0<='\uFFFD')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt5 >= 1 ) { + break loop5; + } + var eee = new org.antlr.runtime.EarlyExitException(5, this.input); + throw eee; + } + cnt5++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_QuotStringLiteralChar", + + // $ANTLR start L_AposStringLiteralChar + mL_AposStringLiteralChar: function() { + try { + var _type = this.L_AposStringLiteralChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:88:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:88:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AposStringLiteralChar", " this.inAposStr "); + } + // xquery/StringLexer.g:89:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0028' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt6=0; + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( ((LA6_0>='\t' && LA6_0<='\n')||LA6_0=='\r'||(LA6_0>=' ' && LA6_0<='%')||(LA6_0>='(' && LA6_0<='\uD7FF')||(LA6_0>='\uE000' && LA6_0<='\uFFFD')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt6 >= 1 ) { + break loop6; + } + var eee = new org.antlr.runtime.EarlyExitException(6, this.input); + throw eee; + } + cnt6++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AposStringLiteralChar", + + // $ANTLR start L_AnyChar + mL_AnyChar: function() { + try { + var _type = this.L_AnyChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/StringLexer.g:98:5: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/StringLexer.g:98:9: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( !this.inQuotStr && !this.inAposStr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AnyChar", " !this.inQuotStr && !this.inAposStr "); + } + // xquery/StringLexer.g:99:9: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt7=0; + loop7: + do { + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||(LA7_0>=' ' && LA7_0<='%')||(LA7_0>='\'' && LA7_0<=';')||(LA7_0>='=' && LA7_0<='z')||LA7_0=='|'||(LA7_0>='~' && LA7_0<='\uD7FF')||(LA7_0>='\uE000' && LA7_0<='\uFFFD')) ) { + alt7=1; + } + + + switch (alt7) { + case 1 : + // xquery/StringLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt7 >= 1 ) { + break loop7; + } + var eee = new org.antlr.runtime.EarlyExitException(7, this.input); + throw eee; + } + cnt7++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AnyChar", + + mTokens: function() { + // xquery/StringLexer.g:1:8: ( QUOT | APOS | ESCAPE_QUOT | ESCAPE_APOS | L_PredefinedEntityRef | L_CharRef | L_QuotStringLiteralChar | L_AposStringLiteralChar | L_AnyChar ) + var alt8=9; + alt8 = this.dfa8.predict(this.input); + switch (alt8) { + case 1 : + // xquery/StringLexer.g:1:10: QUOT + this.mQUOT(); + + + break; + case 2 : + // xquery/StringLexer.g:1:15: APOS + this.mAPOS(); + + + break; + case 3 : + // xquery/StringLexer.g:1:20: ESCAPE_QUOT + this.mESCAPE_QUOT(); + + + break; + case 4 : + // xquery/StringLexer.g:1:32: ESCAPE_APOS + this.mESCAPE_APOS(); + + + break; + case 5 : + // xquery/StringLexer.g:1:44: L_PredefinedEntityRef + this.mL_PredefinedEntityRef(); + + + break; + case 6 : + // xquery/StringLexer.g:1:66: L_CharRef + this.mL_CharRef(); + + + break; + case 7 : + // xquery/StringLexer.g:1:76: L_QuotStringLiteralChar + this.mL_QuotStringLiteralChar(); + + + break; + case 8 : + // xquery/StringLexer.g:1:100: L_AposStringLiteralChar + this.mL_AposStringLiteralChar(); + + + break; + case 9 : + // xquery/StringLexer.g:1:124: L_AnyChar + this.mL_AnyChar(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(StringLexer, { + DFA8_eotS: + "\u0001\uffff\u0001\u0007\u0001\u000c\u0001\uffff\u0001\u0011\u0001"+ + "\u0012\u0001\u0013\u0001\uffff\u0001\u0015\u0002\uffff\u0001\u0016\u0001"+ + "\uffff\u0001\u0018\u000d\uffff", + DFA8_eofS: + "\u001b\uffff", + DFA8_minS: + "\u0003\u0009\u0001\u0023\u0003\u0009\u0001\u0000\u0001\u0009\u0002"+ + "\uffff\u0001\u0009\u0001\u0000\u0001\u0009\u0003\uffff\u0003\u0000\u0001"+ + "\uffff\u0002\u0000\u0001\uffff\u0001\u0000\u0002\uffff", + DFA8_maxS: + "\u0003\ufffd\u0001\u0071\u0003\ufffd\u0001\u0000\u0001\ufffd\u0002"+ + "\uffff\u0001\ufffd\u0001\u0000\u0001\ufffd\u0003\uffff\u0003\u0000\u0001"+ + "\uffff\u0002\u0000\u0001\uffff\u0001\u0000\u0002\uffff", + DFA8_acceptS: + "\u0009\uffff\u0001\u0008\u0001\u0009\u0003\uffff\u0001\u0007\u0001"+ + "\u0006\u0001\u0005\u0003\uffff\u0001\u0001\u0002\uffff\u0001\u0002\u0001"+ + "\uffff\u0001\u0003\u0001\u0004", + DFA8_specialS: + "\u0001\u0007\u0001\u000e\u0001\u0000\u0001\u0004\u0001\u0011\u0001"+ + "\u000a\u0001\u0005\u0001\u0009\u0001\u0010\u0002\uffff\u0001\u000f\u0001"+ + "\u0008\u0001\u0006\u0003\uffff\u0001\u000d\u0001\u0003\u0001\u000b\u0001"+ + "\uffff\u0001\u0001\u0001\u000c\u0001\uffff\u0001\u0002\u0002\uffff}>", + DFA8_transitionS: [ + "\u0002\u0004\u0002\uffff\u0001\u0004\u0012\uffff\u0002\u0004"+ + "\u0001\u0001\u0003\u0004\u0001\u0003\u0001\u0002\u0014\u0004"+ + "\u0001\u0005\u003e\u0004\u0001\u0005\u0001\u0004\u0001\u0005"+ + "\ud782\u0004\u0800\uffff\u1ffe\u0004", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0002\u0008"+ + "\u0001\u0006\u0003\u0008\u0001\uffff\u0001\u000a\u0014\u0008"+ + "\u0001\u0009\u003e\u0008\u0001\u0009\u0001\u0008\u0001\u0009"+ + "\ud782\u0008\u0800\uffff\u1ffe\u0008", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0001\u000b\u0014\u000d"+ + "\u0001\u000e\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e"+ + "\ud782\u000d\u0800\uffff\u1ffe\u000d", + "\u0001\u000f\u003d\uffff\u0001\u0010\u0005\uffff\u0001\u0010"+ + "\u0004\uffff\u0001\u0010\u0004\uffff\u0001\u0010", + "\u0002\u0004\u0002\uffff\u0001\u0004\u0012\uffff\u0002\u0004"+ + "\u0001\u0008\u0003\u0004\u0001\uffff\u0001\u000d\u0014\u0004"+ + "\u0001\u0005\u003e\u0004\u0001\u0005\u0001\u0004\u0001\u0005"+ + "\ud782\u0004\u0800\uffff\u1ffe\u0004", + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0002\u0005"+ + "\u0001\u0009\u0003\u0005\u0001\uffff\u0001\u000e\ud7d8\u0005"+ + "\u0800\uffff\u1ffe\u0005", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0006\u0008"+ + "\u0001\uffff\u0001\u000a\u0014\u0008\u0001\u0009\u003e\u0008"+ + "\u0001\u0009\u0001\u0008\u0001\u0009\ud782\u0008\u0800\uffff"+ + "\u1ffe\u0008", + "\u0001\uffff", + "\u0002\u0008\u0002\uffff\u0001\u0008\u0012\uffff\u0006\u0008"+ + "\u0001\uffff\u0001\u000a\u0014\u0008\u0001\u0009\u003e\u0008"+ + "\u0001\u0009\u0001\u0008\u0001\u0009\ud782\u0008\u0800\uffff"+ + "\u1ffe\u0008", + "", + "", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0015\u000d\u0001\u000e"+ + "\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e\ud782\u000d"+ + "\u0800\uffff\u1ffe\u000d", + "\u0001\uffff", + "\u0002\u000d\u0002\uffff\u0001\u000d\u0012\uffff\u0002\u000d"+ + "\u0001\u000a\u0003\u000d\u0001\uffff\u0015\u000d\u0001\u000e"+ + "\u003e\u000d\u0001\u000e\u0001\u000d\u0001\u000e\ud782\u000d"+ + "\u0800\uffff\u1ffe\u000d", + "", + "", + "", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(StringLexer, { + DFA8_eot: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_eotS), + DFA8_eof: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_eofS), + DFA8_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(StringLexer.DFA8_minS), + DFA8_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(StringLexer.DFA8_maxS), + DFA8_accept: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_acceptS), + DFA8_special: + org.antlr.runtime.DFA.unpackEncodedString(StringLexer.DFA8_specialS), + DFA8_transition: (function() { + var a = [], + i, + numStates = StringLexer.DFA8_transitionS.length; + for (i=0; i='\t' && LA8_2<='\n')||LA8_2=='\r'||(LA8_2>=' ' && LA8_2<='!')||(LA8_2>='#' && LA8_2<='%')||(LA8_2>='(' && LA8_2<=';')||(LA8_2>='=' && LA8_2<='z')||LA8_2=='|'||(LA8_2>='~' && LA8_2<='\uD7FF')||(LA8_2>='\uE000' && LA8_2<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_2=='<'||LA8_2=='{'||LA8_2=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_2=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 12; + + + input.seek(index8_2); + if ( s>=0 ) return s; + break; + case 1 : + var LA8_21 = input.LA(1); + + + var index8_21 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_21); + if ( s>=0 ) return s; + break; + case 2 : + var LA8_24 = input.LA(1); + + + var index8_24 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_24); + if ( s>=0 ) return s; + break; + case 3 : + var LA8_18 = input.LA(1); + + + var index8_18 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + + input.seek(index8_18); + if ( s>=0 ) return s; + break; + case 4 : + var LA8_3 = input.LA(1); + + + var index8_3 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_3=='#') ) {s = 15;} + + else if ( (LA8_3=='a'||LA8_3=='g'||LA8_3=='l'||LA8_3=='q') && (( this.inQuotStr | this.inAposStr ))) {s = 16;} + + + input.seek(index8_3); + if ( s>=0 ) return s; + break; + case 5 : + var LA8_6 = input.LA(1); + + + var index8_6 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_6>='\t' && LA8_6<='\n')||LA8_6=='\r'||(LA8_6>=' ' && LA8_6<='%')||(LA8_6>='(' && LA8_6<=';')||(LA8_6>='=' && LA8_6<='z')||LA8_6=='|'||(LA8_6>='~' && LA8_6<='\uD7FF')||(LA8_6>='\uE000' && LA8_6<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_6=='<'||LA8_6=='{'||LA8_6=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_6=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 19; + + + input.seek(index8_6); + if ( s>=0 ) return s; + break; + case 6 : + var LA8_13 = input.LA(1); + + + var index8_13 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_13>='\t' && LA8_13<='\n')||LA8_13=='\r'||(LA8_13>=' ' && LA8_13<='!')||(LA8_13>='#' && LA8_13<='%')||(LA8_13>='\'' && LA8_13<=';')||(LA8_13>='=' && LA8_13<='z')||LA8_13=='|'||(LA8_13>='~' && LA8_13<='\uD7FF')||(LA8_13>='\uE000' && LA8_13<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_13=='<'||LA8_13=='{'||LA8_13=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_13=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 24; + + + input.seek(index8_13); + if ( s>=0 ) return s; + break; + case 7 : + var LA8_0 = input.LA(1); + + + var index8_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_0=='\"') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 1;} + + else if ( (LA8_0=='\'') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 2;} + + else if ( (LA8_0=='&') ) {s = 3;} + + else if ( ((LA8_0>='\t' && LA8_0<='\n')||LA8_0=='\r'||(LA8_0>=' ' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='%')||(LA8_0>='(' && LA8_0<=';')||(LA8_0>='=' && LA8_0<='z')||LA8_0=='|'||(LA8_0>='~' && LA8_0<='\uD7FF')||(LA8_0>='\uE000' && LA8_0<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 4;} + + else if ( (LA8_0=='<'||LA8_0=='{'||LA8_0=='}') && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + + input.seek(index8_0); + if ( s>=0 ) return s; + break; + case 8 : + var LA8_12 = input.LA(1); + + + var index8_12 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 23;} + + else if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_12); + if ( s>=0 ) return s; + break; + case 9 : + var LA8_7 = input.LA(1); + + + var index8_7 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 20;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_7); + if ( s>=0 ) return s; + break; + case 10 : + var LA8_5 = input.LA(1); + + + var index8_5 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_5>='\t' && LA8_5<='\n')||LA8_5=='\r'||(LA8_5>=' ' && LA8_5<='!')||(LA8_5>='#' && LA8_5<='%')||(LA8_5>='(' && LA8_5<='\uD7FF')||(LA8_5>='\uE000' && LA8_5<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + else if ( (LA8_5=='\'') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_5=='\"') && (( this.inAposStr ))) {s = 9;} + + else s = 18; + + + input.seek(index8_5); + if ( s>=0 ) return s; + break; + case 11 : + var LA8_19 = input.LA(1); + + + var index8_19 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 25;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_19); + if ( s>=0 ) return s; + break; + case 12 : + var LA8_22 = input.LA(1); + + + var index8_22 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inAposStr )) ) {s = 26;} + + else if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_22); + if ( s>=0 ) return s; + break; + case 13 : + var LA8_17 = input.LA(1); + + + var index8_17 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotStr )) ) {s = 14;} + + else if ( (( this.inAposStr )) ) {s = 9;} + + else if ( (( !this.inQuotStr && !this.inAposStr )) ) {s = 10;} + + + input.seek(index8_17); + if ( s>=0 ) return s; + break; + case 14 : + var LA8_1 = input.LA(1); + + + var index8_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA8_1=='\"') && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 6;} + + else if ( ((LA8_1>='\t' && LA8_1<='\n')||LA8_1=='\r'||(LA8_1>=' ' && LA8_1<='!')||(LA8_1>='#' && LA8_1<='%')||(LA8_1>='(' && LA8_1<=';')||(LA8_1>='=' && LA8_1<='z')||LA8_1=='|'||(LA8_1>='~' && LA8_1<='\uD7FF')||(LA8_1>='\uE000' && LA8_1<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_1=='<'||LA8_1=='{'||LA8_1=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_1=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 7; + + + input.seek(index8_1); + if ( s>=0 ) return s; + break; + case 15 : + var LA8_11 = input.LA(1); + + + var index8_11 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_11>='\t' && LA8_11<='\n')||LA8_11=='\r'||(LA8_11>=' ' && LA8_11<='!')||(LA8_11>='#' && LA8_11<='%')||(LA8_11>='\'' && LA8_11<=';')||(LA8_11>='=' && LA8_11<='z')||LA8_11=='|'||(LA8_11>='~' && LA8_11<='\uD7FF')||(LA8_11>='\uE000' && LA8_11<='\uFFFD')) && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_11=='<'||LA8_11=='{'||LA8_11=='}') && (( this.inQuotStr ))) {s = 14;} + + else if ( (LA8_11=='\"') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 22; + + + input.seek(index8_11); + if ( s>=0 ) return s; + break; + case 16 : + var LA8_8 = input.LA(1); + + + var index8_8 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_8>='\t' && LA8_8<='\n')||LA8_8=='\r'||(LA8_8>=' ' && LA8_8<='%')||(LA8_8>='(' && LA8_8<=';')||(LA8_8>='=' && LA8_8<='z')||LA8_8=='|'||(LA8_8>='~' && LA8_8<='\uD7FF')||(LA8_8>='\uE000' && LA8_8<='\uFFFD')) && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_8=='<'||LA8_8=='{'||LA8_8=='}') && (( this.inAposStr ))) {s = 9;} + + else if ( (LA8_8=='\'') && (( !this.inQuotStr && !this.inAposStr ))) {s = 10;} + + else s = 21; + + + input.seek(index8_8); + if ( s>=0 ) return s; + break; + case 17 : + var LA8_4 = input.LA(1); + + + var index8_4 = input.index(); + input.rewind(); + s = -1; + if ( ((LA8_4>='\t' && LA8_4<='\n')||LA8_4=='\r'||(LA8_4>=' ' && LA8_4<='!')||(LA8_4>='#' && LA8_4<='%')||(LA8_4>='(' && LA8_4<=';')||(LA8_4>='=' && LA8_4<='z')||LA8_4=='|'||(LA8_4>='~' && LA8_4<='\uD7FF')||(LA8_4>='\uE000' && LA8_4<='\uFFFD')) && ((( this.inAposStr )||( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 4;} + + else if ( (LA8_4=='\'') && ((( this.inQuotStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 13;} + + else if ( (LA8_4=='\"') && ((( this.inAposStr )||( !this.inQuotStr && !this.inAposStr )))) {s = 8;} + + else if ( (LA8_4=='<'||LA8_4=='{'||LA8_4=='}') && ((( this.inAposStr )||( this.inQuotStr )))) {s = 5;} + + else s = 17; + + + input.seek(index8_4); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 8, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.StringLexer = StringLexer; +}); \ No newline at end of file diff --git a/lib/ace/mode/xquery/XMLLexer.js b/lib/ace/mode/xquery/XMLLexer.js new file mode 100644 index 00000000..4edbee80 --- /dev/null +++ b/lib/ace/mode/xquery/XMLLexer.js @@ -0,0 +1,2993 @@ +define(function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XMLLexer.g 2012-05-24 17:09:26 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var XMLLexer = function(input, state) { +// alternate constructor @todo +// public XMLLexer(CharStream input) +// public XMLLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inElem = true; + this.inAposAttr = false; + this.inQuotAttr = false; + + this.isInElement = function() + { + return this.inElem; + } + + this.isInAposAttribute = function() + { + return this.inAposAttr; + } + + this.isInQuotAttr = function() + { + return this.inQuotAttr; + } + + this.addToStack = function(stack) { + if (!this.inAposAttr && !this.inQuotAttr) + this.inElem = false; + stack.push(this); + } + + + // dummy list for warning elimination + //List> dummy = new ArrayList>(); + + // when we start, the '<' has already been eaten by the other lexer + //boolean inElem = true; + //boolean inAposAttr = false; + //boolean inQuotAttr = false; + // + //public boolean isInElement() + //{ + // return inElem; + //} + // + //public boolean isInAposAttribute() + //{ + // return inAposAttr; + //} + // + //public boolean isInQuotAttr() + //{ + // return inQuotAttr; + //} + // + //@Override + //public void addToStack(List stack) { + // if (!inAposAttr && !inQuotAttr) + // inElem = false; + // stack.add(this); + //} + // + //private boolean log() { + // System.out.println("inApos:\t" + inAposAttr); + // System.out.println("inQuot:\t" + inQuotAttr); + // System.out.println("inElem:\t" + inElem); + // System.out.println("---------------------"); + // return false; + //} + + + }).call(this); + + this.dfa16 = new XMLLexer.DFA16(this); + XMLLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(XMLLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + NCNameUnprotected: 283, + XMLDigit: 284 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(XMLLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + NCNameUnprotected : 283, + XMLDigit : 284, + getGrammarFileName: function() { return "xquery/XMLLexer.g"; } +}); +org.antlr.lang.augmentObject(XMLLexer.prototype, { + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:132:6: ({...}? => '\"' ) + // xquery/XMLLexer.g:132:8: {...}? => '\"' + if ( !(( this.inElem || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "QUOT", " this.inElem || this.inQuotAttr "); + } + this.match('\"'); + if (!this.inAposAttr) this.inQuotAttr = (!this.inQuotAttr); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:133:6: ({...}? => '\\'' ) + // xquery/XMLLexer.g:133:8: {...}? => '\\'' + if ( !(( this.inElem || this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "APOS", " this.inElem || this.inAposAttr "); + } + this.match('\''); + if (!this.inQuotAttr) this.inAposAttr = !this.inAposAttr; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start L_QuotAttrContentChar + mL_QuotAttrContentChar: function() { + try { + var _type = this.L_QuotAttrContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:136:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:136:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_QuotAttrContentChar", " this.inQuotAttr "); + } + // xquery/XMLLexer.g:137:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt1=0; + loop1: + do { + var alt1=2; + var LA1_0 = this.input.LA(1); + + if ( ((LA1_0>='\t' && LA1_0<='\n')||LA1_0=='\r'||(LA1_0>=' ' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='%')||(LA1_0>='(' && LA1_0<=';')||(LA1_0>='=' && LA1_0<='z')||LA1_0=='|'||(LA1_0>='~' && LA1_0<='\uD7FF')||(LA1_0>='\uE000' && LA1_0<='\uFFFD')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt1 >= 1 ) { + break loop1; + } + var eee = new org.antlr.runtime.EarlyExitException(1, this.input); + throw eee; + } + cnt1++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_QuotAttrContentChar", + + // $ANTLR start L_AposAttrContentChar + mL_AposAttrContentChar: function() { + try { + var _type = this.L_AposAttrContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:143:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:143:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_AposAttrContentChar", " this.inAposAttr "); + } + // xquery/XMLLexer.g:144:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' | '\\u0021' | '\\u0023' .. '\\u0025' | '\\u0028' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' .. '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='\t' && LA2_0<='\n')||LA2_0=='\r'||(LA2_0>=' ' && LA2_0<='!')||(LA2_0>='#' && LA2_0<='%')||(LA2_0>='(' && LA2_0<=';')||(LA2_0>='=' && LA2_0<='z')||LA2_0=='|'||(LA2_0>='~' && LA2_0<='\uD7FF')||(LA2_0>='\uE000' && LA2_0<='\uFFFD')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='!')||(this.input.LA(1)>='#' && this.input.LA(1)<='%')||(this.input.LA(1)>='(' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AposAttrContentChar", + + // $ANTLR start L_ElementContentChar + mL_ElementContentChar: function() { + try { + var _type = this.L_ElementContentChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:151:2: ({...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ ) + // xquery/XMLLexer.g:151:4: {...}? => ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_ElementContentChar", " !this.inElem "); + } + // xquery/XMLLexer.g:152:3: ( '\\u0009' | '\\u000A' | '\\u000D' | '\\u0020' .. '\\u0025' | '\\u0027' .. '\\u003B' | '\\u003D' .. '\\u007A' | '\\u007C' | '\\u007E' .. '\\uD7FF' | '\\uE000' .. '\\uFFFD' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||(LA3_0>=' ' && LA3_0<='%')||(LA3_0>='\'' && LA3_0<=';')||(LA3_0>='=' && LA3_0<='z')||LA3_0=='|'||(LA3_0>='~' && LA3_0<='\uD7FF')||(LA3_0>='\uE000' && LA3_0<='\uFFFD')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||(this.input.LA(1)>=' ' && this.input.LA(1)<='%')||(this.input.LA(1)>='\'' && this.input.LA(1)<=';')||(this.input.LA(1)>='=' && this.input.LA(1)<='z')||this.input.LA(1)=='|'||(this.input.LA(1)>='~' && this.input.LA(1)<='\uD7FF')||(this.input.LA(1)>='\uE000' && this.input.LA(1)<='\uFFFD') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_ElementContentChar", + + // $ANTLR start GREATER + mGREATER: function() { + try { + var _type = this.GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:158:2: ({...}? => '>' ) + // xquery/XMLLexer.g:158:4: {...}? => '>' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "GREATER", " this.inElem "); + } + this.match('>'); + this.inElem = false; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER", + + // $ANTLR start EMPTY_CLOSE_TAG + mEMPTY_CLOSE_TAG: function() { + try { + var _type = this.EMPTY_CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:162:2: ({...}? => '/>' ) + // xquery/XMLLexer.g:162:4: {...}? => '/>' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "EMPTY_CLOSE_TAG", " this.inElem "); + } + this.match("/>"); + + this.inElem = false; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_CLOSE_TAG", + + // $ANTLR start S + mS: function() { + try { + var _type = this.S; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:166:2: ({...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // xquery/XMLLexer.g:166:4: {...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "S", " this.inElem "); + } + // xquery/XMLLexer.g:166:24: ( ' ' | '\\t' | '\\r' | '\\n' )+ + var cnt4=0; + loop4: + do { + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( ((LA4_0>='\t' && LA4_0<='\n')||LA4_0=='\r'||LA4_0==' ') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt4 >= 1 ) { + break loop4; + } + var eee = new org.antlr.runtime.EarlyExitException(4, this.input); + throw eee; + } + cnt4++; + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "S", + + // $ANTLR start L_NCName + mL_NCName: function() { + try { + var _type = this.L_NCName; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:172:2: ({...}? => NCNameUnprotected ) + // xquery/XMLLexer.g:172:4: {...}? => NCNameUnprotected + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_NCName", " this.inElem "); + } + this.mNCNameUnprotected(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_NCName", + + // $ANTLR start NCNameUnprotected + mNCNameUnprotected: function() { + try { + // xquery/XMLLexer.g:176:2: ( NCNameStartChar ( NCNameChar )* ) + // xquery/XMLLexer.g:176:4: NCNameStartChar ( NCNameChar )* + this.mNCNameStartChar(); + // xquery/XMLLexer.g:176:20: ( NCNameChar )* + loop5: + do { + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='-' && LA5_0<='.')||(LA5_0>='0' && LA5_0<='9')||(LA5_0>='A' && LA5_0<='Z')||LA5_0=='_'||(LA5_0>='a' && LA5_0<='z')) ) { + alt5=1; + } + + + switch (alt5) { + case 1 : + // xquery/XMLLexer.g:176:20: NCNameChar + this.mNCNameChar(); + + + break; + + default : + break loop5; + } + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "NCNameUnprotected", + + // $ANTLR start NCNameStartChar + mNCNameStartChar: function() { + try { + // xquery/XMLLexer.g:180:2: ( Letter | '_' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameStartChar", + + // $ANTLR start NCNameChar + mNCNameChar: function() { + try { + // xquery/XMLLexer.g:184:2: ( Letter | XMLDigit | '.' | '-' | '_' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='-' && this.input.LA(1)<='.')||(this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameChar", + + // $ANTLR start Letter + mLetter: function() { + try { + // xquery/XMLLexer.g:188:2: ( 'a' .. 'z' | 'A' .. 'Z' ) + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "Letter", + + // $ANTLR start XMLDigit + mXMLDigit: function() { + try { + // xquery/XMLLexer.g:192:2: ( '0' .. '9' ) + // xquery/XMLLexer.g:192:4: '0' .. '9' + this.matchRange('0','9'); + + + + } + finally { + } + }, + // $ANTLR end "XMLDigit", + + // $ANTLR start EQUAL + mEQUAL: function() { + try { + var _type = this.EQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:207:7: ({...}? => '=' ) + // xquery/XMLLexer.g:207:9: {...}? => '=' + if ( !(( this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "EQUAL", " this.inElem "); + } + this.match('='); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQUAL", + + // $ANTLR start ESCAPE_APOS + mESCAPE_APOS: function() { + try { + var _type = this.ESCAPE_APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:208:13: ({...}? => '\\'\\'' ) + // xquery/XMLLexer.g:208:15: {...}? => '\\'\\'' + if ( !(( this.inAposAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_APOS", " this.inAposAttr "); + } + this.match("''"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_APOS", + + // $ANTLR start ESCAPE_QUOT + mESCAPE_QUOT: function() { + try { + var _type = this.ESCAPE_QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:209:13: ({...}? => '\"\"' ) + // xquery/XMLLexer.g:209:15: {...}? => '\"\"' + if ( !(( this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_QUOT", " this.inQuotAttr "); + } + this.match("\"\""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_QUOT", + + // $ANTLR start ESCAPE_LBRACKET + mESCAPE_LBRACKET: function() { + try { + var _type = this.ESCAPE_LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:212:2: ({...}? => '{{' ) + // xquery/XMLLexer.g:212:4: {...}? => '{{' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_LBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("{{"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_LBRACKET", + + // $ANTLR start ESCAPE_RBRACKET + mESCAPE_RBRACKET: function() { + try { + var _type = this.ESCAPE_RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:216:2: ({...}? => '}}' ) + // xquery/XMLLexer.g:216:4: {...}? => '}}' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "ESCAPE_RBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("}}"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ESCAPE_RBRACKET", + + // $ANTLR start LBRACKET + mLBRACKET: function() { + try { + var _type = this.LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:219:10: ({...}? => '{' ) + // xquery/XMLLexer.g:219:12: {...}? => '{' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "LBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('{'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LBRACKET", + + // $ANTLR start RBRACKET + mRBRACKET: function() { + try { + var _type = this.RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:220:10: ({...}? => '}' ) + // xquery/XMLLexer.g:220:12: {...}? => '}' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "RBRACKET", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('}'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RBRACKET", + + // $ANTLR start SMALLER + mSMALLER: function() { + try { + var _type = this.SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:221:9: ( '<' ) + // xquery/XMLLexer.g:221:11: '<' + this.match('<'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER", + + // $ANTLR start CLOSE_TAG + mCLOSE_TAG: function() { + try { + var _type = this.CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:222:11: ({...}? => ' '' ) + // xquery/XMLLexer.g:225:14: ']]>' + this.match("]]>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CDATA_END", + + // $ANTLR start L_CDataSection + mL_CDataSection: function() { + try { + var _type = this.L_CDataSection; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:229:3: ({...}? => CDATA_START ( options {greedy=false; } : ( . )* ) CDATA_END ) + // xquery/XMLLexer.g:229:5: {...}? => CDATA_START ( options {greedy=false; } : ( . )* ) CDATA_END + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CDataSection", " !this.inElem "); + } + this.mCDATA_START(); + // xquery/XMLLexer.g:229:38: ( options {greedy=false; } : ( . )* ) + // xquery/XMLLexer.g:229:65: ( . )* + // xquery/XMLLexer.g:229:65: ( . )* + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( (LA6_0==']') ) { + var LA6_1 = this.input.LA(2); + + if ( (LA6_1==']') ) { + var LA6_3 = this.input.LA(3); + + if ( (LA6_3=='>') ) { + alt6=2; + } + else if ( ((LA6_3>='\u0000' && LA6_3<='=')||(LA6_3>='?' && LA6_3<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_1>='\u0000' && LA6_1<='\\')||(LA6_1>='^' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<='\\')||(LA6_0>='^' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/XMLLexer.g:229:65: . + this.matchAny(); + + + break; + + default : + break loop6; + } + } while (true); + + + + + this.mCDATA_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CDataSection", + + // $ANTLR start L_PredefinedEntityRef + mL_PredefinedEntityRef: function() { + try { + var _type = this.L_PredefinedEntityRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:237:2: ({...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' ) + // xquery/XMLLexer.g:237:4: {...}? => '&' ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) ';' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_PredefinedEntityRef", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match('&'); + // xquery/XMLLexer.g:237:67: ( 'lt' | 'gt' | 'apos' | 'quot' | 'amp' ) + var alt7=5; + switch ( this.input.LA(1) ) { + case 'l': + alt7=1; + break; + case 'g': + alt7=2; + break; + case 'a': + var LA7_3 = this.input.LA(2); + + if ( (LA7_3=='p') ) { + alt7=3; + } + else if ( (LA7_3=='m') ) { + alt7=5; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 7, 3, this.input); + + throw nvae; + } + break; + case 'q': + alt7=4; + break; + default: + var nvae = + new org.antlr.runtime.NoViableAltException("", 7, 0, this.input); + + throw nvae; + } + + switch (alt7) { + case 1 : + // xquery/XMLLexer.g:237:68: 'lt' + this.match("lt"); + + + + break; + case 2 : + // xquery/XMLLexer.g:237:75: 'gt' + this.match("gt"); + + + + break; + case 3 : + // xquery/XMLLexer.g:237:82: 'apos' + this.match("apos"); + + + + break; + case 4 : + // xquery/XMLLexer.g:237:91: 'quot' + this.match("quot"); + + + + break; + case 5 : + // xquery/XMLLexer.g:237:100: 'amp' + this.match("amp"); + + + + break; + + } + + this.match(';'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_PredefinedEntityRef", + + // $ANTLR start L_CharRef + mL_CharRef: function() { + try { + var _type = this.L_CharRef; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:242:2: ({...}? => '&#' ( '0' .. '9' )+ ';' | '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' ) + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0=='&') ) { + var LA10_1 = this.input.LA(2); + + if ( (LA10_1=='#') ) { + var LA10_2 = this.input.LA(3); + + if ( (LA10_2=='x') ) { + alt10=2; + } + else if ( ((LA10_2>='0' && LA10_2<='9')) && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) { + alt10=1; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 2, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 1, this.input); + + throw nvae; + } + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 0, this.input); + + throw nvae; + } + switch (alt10) { + case 1 : + // xquery/XMLLexer.g:242:4: {...}? => '&#' ( '0' .. '9' )+ ';' + if ( !(( !this.inElem || this.inAposAttr || this.inQuotAttr )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_CharRef", " !this.inElem || this.inAposAttr || this.inQuotAttr "); + } + this.match("&#"); + + // xquery/XMLLexer.g:242:68: ( '0' .. '9' )+ + var cnt8=0; + loop8: + do { + var alt8=2; + var LA8_0 = this.input.LA(1); + + if ( ((LA8_0>='0' && LA8_0<='9')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // xquery/XMLLexer.g:242:69: '0' .. '9' + this.matchRange('0','9'); + + + break; + + default : + if ( cnt8 >= 1 ) { + break loop8; + } + var eee = new org.antlr.runtime.EarlyExitException(8, this.input); + throw eee; + } + cnt8++; + } while (true); + + this.match(';'); + + + break; + case 2 : + // xquery/XMLLexer.g:242:86: '&#x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ ';' + this.match("&#x"); + + // xquery/XMLLexer.g:242:92: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ + var cnt9=0; + loop9: + do { + var alt9=2; + var LA9_0 = this.input.LA(1); + + if ( ((LA9_0>='0' && LA9_0<='9')||(LA9_0>='A' && LA9_0<='F')||(LA9_0>='a' && LA9_0<='f')) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt9 >= 1 ) { + break loop9; + } + var eee = new org.antlr.runtime.EarlyExitException(9, this.input); + throw eee; + } + cnt9++; + } while (true); + + this.match(';'); + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_CharRef", + + // $ANTLR start L_DirCommentConstructor + mL_DirCommentConstructor: function() { + try { + var _type = this.L_DirCommentConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:246:2: ({...}? => '' ) + // xquery/XMLLexer.g:246:4: {...}? => '' + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_DirCommentConstructor", " !this.inElem "); + } + this.match(""); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirCommentConstructor", + + // $ANTLR start L_DirPIConstructor + mL_DirPIConstructor: function() { + try { + var _type = this.L_DirPIConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:249:2: ({...}? => '' ) + // xquery/XMLLexer.g:249:4: {...}? => '' + if ( !(( !this.inElem )) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_DirPIConstructor", " !this.inElem "); + } + this.match("='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) { + alt12=1; + } + switch (alt12) { + case 1 : + // xquery/XMLLexer.g:250:8: SU + this.mSU(); + + + break; + + } + + this.mNCNameUnprotected(); + // xquery/XMLLexer.g:250:30: ( SU ( options {greedy=false; } : ( . )* ) )? + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( ((LA14_0>='\t' && LA14_0<='\n')||LA14_0=='\r'||LA14_0==' ') ) { + alt14=1; + } + switch (alt14) { + case 1 : + // xquery/XMLLexer.g:250:31: SU ( options {greedy=false; } : ( . )* ) + this.mSU(); + // xquery/XMLLexer.g:250:34: ( options {greedy=false; } : ( . )* ) + // xquery/XMLLexer.g:250:61: ( . )* + // xquery/XMLLexer.g:250:61: ( . )* + loop13: + do { + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0=='?') ) { + var LA13_1 = this.input.LA(2); + + if ( (LA13_1=='>') ) { + alt13=2; + } + else if ( ((LA13_1>='\u0000' && LA13_1<='=')||(LA13_1>='?' && LA13_1<='\uFFFF')) ) { + alt13=1; + } + + + } + else if ( ((LA13_0>='\u0000' && LA13_0<='>')||(LA13_0>='@' && LA13_0<='\uFFFF')) ) { + alt13=1; + } + + + switch (alt13) { + case 1 : + // xquery/XMLLexer.g:250:61: . + this.matchAny(); + + + break; + + default : + break loop13; + } + } while (true); + + + + + + + break; + + } + + this.match("?>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirPIConstructor", + + // $ANTLR start SU + mSU: function() { + try { + // xquery/XMLLexer.g:254:2: ( ( ' ' | '\\t' | '\\n' | '\\r' )+ ) + // xquery/XMLLexer.g:254:4: ( ' ' | '\\t' | '\\n' | '\\r' )+ + // xquery/XMLLexer.g:254:4: ( ' ' | '\\t' | '\\n' | '\\r' )+ + var cnt15=0; + loop15: + do { + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( ((LA15_0>='\t' && LA15_0<='\n')||LA15_0=='\r'||LA15_0==' ') ) { + alt15=1; + } + + + switch (alt15) { + case 1 : + // xquery/XMLLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt15 >= 1 ) { + break loop15; + } + var eee = new org.antlr.runtime.EarlyExitException(15, this.input); + throw eee; + } + cnt15++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "SU", + + // $ANTLR start COLON + mCOLON: function() { + try { + var _type = this.COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XMLLexer.g:257:7: ( ':' ) + // xquery/XMLLexer.g:257:9: ':' + this.match(':'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON", + + mTokens: function() { + // xquery/XMLLexer.g:1:8: ( QUOT | APOS | L_QuotAttrContentChar | L_AposAttrContentChar | L_ElementContentChar | GREATER | EMPTY_CLOSE_TAG | S | L_NCName | EQUAL | ESCAPE_APOS | ESCAPE_QUOT | ESCAPE_LBRACKET | ESCAPE_RBRACKET | LBRACKET | RBRACKET | SMALLER | CLOSE_TAG | CDATA_START | CDATA_END | L_CDataSection | L_PredefinedEntityRef | L_CharRef | L_DirCommentConstructor | L_DirPIConstructor | COLON ) + var alt16=26; + alt16 = this.dfa16.predict(this.input); + switch (alt16) { + case 1 : + // xquery/XMLLexer.g:1:10: QUOT + this.mQUOT(); + + + break; + case 2 : + // xquery/XMLLexer.g:1:15: APOS + this.mAPOS(); + + + break; + case 3 : + // xquery/XMLLexer.g:1:20: L_QuotAttrContentChar + this.mL_QuotAttrContentChar(); + + + break; + case 4 : + // xquery/XMLLexer.g:1:42: L_AposAttrContentChar + this.mL_AposAttrContentChar(); + + + break; + case 5 : + // xquery/XMLLexer.g:1:64: L_ElementContentChar + this.mL_ElementContentChar(); + + + break; + case 6 : + // xquery/XMLLexer.g:1:85: GREATER + this.mGREATER(); + + + break; + case 7 : + // xquery/XMLLexer.g:1:93: EMPTY_CLOSE_TAG + this.mEMPTY_CLOSE_TAG(); + + + break; + case 8 : + // xquery/XMLLexer.g:1:109: S + this.mS(); + + + break; + case 9 : + // xquery/XMLLexer.g:1:111: L_NCName + this.mL_NCName(); + + + break; + case 10 : + // xquery/XMLLexer.g:1:120: EQUAL + this.mEQUAL(); + + + break; + case 11 : + // xquery/XMLLexer.g:1:126: ESCAPE_APOS + this.mESCAPE_APOS(); + + + break; + case 12 : + // xquery/XMLLexer.g:1:138: ESCAPE_QUOT + this.mESCAPE_QUOT(); + + + break; + case 13 : + // xquery/XMLLexer.g:1:150: ESCAPE_LBRACKET + this.mESCAPE_LBRACKET(); + + + break; + case 14 : + // xquery/XMLLexer.g:1:166: ESCAPE_RBRACKET + this.mESCAPE_RBRACKET(); + + + break; + case 15 : + // xquery/XMLLexer.g:1:182: LBRACKET + this.mLBRACKET(); + + + break; + case 16 : + // xquery/XMLLexer.g:1:191: RBRACKET + this.mRBRACKET(); + + + break; + case 17 : + // xquery/XMLLexer.g:1:200: SMALLER + this.mSMALLER(); + + + break; + case 18 : + // xquery/XMLLexer.g:1:208: CLOSE_TAG + this.mCLOSE_TAG(); + + + break; + case 19 : + // xquery/XMLLexer.g:1:218: CDATA_START + this.mCDATA_START(); + + + break; + case 20 : + // xquery/XMLLexer.g:1:230: CDATA_END + this.mCDATA_END(); + + + break; + case 21 : + // xquery/XMLLexer.g:1:240: L_CDataSection + this.mL_CDataSection(); + + + break; + case 22 : + // xquery/XMLLexer.g:1:255: L_PredefinedEntityRef + this.mL_PredefinedEntityRef(); + + + break; + case 23 : + // xquery/XMLLexer.g:1:277: L_CharRef + this.mL_CharRef(); + + + break; + case 24 : + // xquery/XMLLexer.g:1:287: L_DirCommentConstructor + this.mL_DirCommentConstructor(); + + + break; + case 25 : + // xquery/XMLLexer.g:1:311: L_DirPIConstructor + this.mL_DirPIConstructor(); + + + break; + case 26 : + // xquery/XMLLexer.g:1:330: COLON + this.mCOLON(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XMLLexer, { + DFA16_eotS: + "\u0001\uffff\u0001\u0010\u0001\u0013\u0001\u0014\u0001\u0016\u0001"+ + "\u0017\u0001\u0018\u0001\u001a\u0001\u0016\u0001\u001d\u0001\u001f\u0001"+ + "\u0023\u0001\u0024\u0001\uffff\u0001\u0016\u0001\u0027\u0002\uffff\u0001"+ + "\u0029\u0002\uffff\u0001\u002e\u0003\uffff\u0001\u0018\u0001\uffff\u0001"+ + "\u0016\u0016\uffff\u0001\u0039\u000d\uffff\u0001\u0041\u0002\uffff", + DFA16_eofS: + "\u0043\uffff", + DFA16_minS: + "\u0009\u0009\u0001\u007b\u0001\u007d\u0001\u0021\u0001\u0009\u0001"+ + "\u0023\u0002\u0009\u0001\u0000\u0001\uffff\u0001\u0009\u0002\u0000\u0001"+ + "\u0009\u0003\u0000\u0001\u0009\u0001\u0000\u0001\u0009\u0005\uffff\u0001"+ + "\u002d\u0002\uffff\u0001\u0000\u0002\uffff\u0001\u0000\u0001\uffff\u0001"+ + "\u0000\u0004\uffff\u0001\u0000\u0003\uffff\u0001\u0009\u0001\u0043\u0005"+ + "\uffff\u0001\u0000\u0001\u0044\u0001\uffff\u0001\u0041\u0001\u0054\u0001"+ + "\u0041\u0001\u005b\u0001\u0000\u0002\uffff", + DFA16_maxS: + "\u0009\ufffd\u0001\u007b\u0001\u007d\u0001\u003f\u0001\ufffd\u0001"+ + "\u0071\u0002\ufffd\u0001\u0000\u0001\uffff\u0001\ufffd\u0002\u0000\u0001"+ + "\ufffd\u0003\u0000\u0001\ufffd\u0001\u0000\u0001\ufffd\u0005\uffff\u0001"+ + "\u005b\u0002\uffff\u0001\u0000\u0002\uffff\u0001\u0000\u0001\uffff\u0001"+ + "\u0000\u0004\uffff\u0001\u0000\u0003\uffff\u0001\ufffd\u0001\u0043\u0005"+ + "\uffff\u0001\u0000\u0001\u0044\u0001\uffff\u0001\u0041\u0001\u0054\u0001"+ + "\u0041\u0001\u005b\u0001\uffff\u0002\uffff", + DFA16_acceptS: + "\u0011\uffff\u0001\u0005\u000a\uffff\u0001\u000d\u0001\u000f\u0001"+ + "\u000e\u0001\u0010\u0001\u0012\u0001\uffff\u0001\u0019\u0001\u0011\u0001"+ + "\uffff\u0001\u0017\u0001\u0016\u0001\uffff\u0001\u0001\u0001\uffff\u0001"+ + "\u0002\u0001\u0003\u0001\u0004\u0001\u0006\u0001\uffff\u0001\u0008\u0001"+ + "\u0009\u0001\u000a\u0002\uffff\u0001\u0018\u0001\u001a\u0001\u000c\u0001"+ + "\u000b\u0001\u0007\u0002\uffff\u0001\u0014\u0005\uffff\u0001\u0013\u0001"+ + "\u0015", + DFA16_specialS: + "\u0001\u0000\u0001\u001f\u0001\u0022\u0001\u0004\u0001\u000d\u0001"+ + "\u001e\u0001\u0015\u0001\u0002\u0001\u000b\u0001\u0021\u0001\u0005\u0001"+ + "\u0011\u0001\u001b\u0001\u0020\u0001\u000c\u0001\u001a\u0001\u0009\u0001"+ + "\uffff\u0001\u0010\u0001\u000a\u0001\u001d\u0001\u0016\u0001\u000f\u0001"+ + "\u0018\u0001\u0019\u0001\u0003\u0001\u0017\u0001\u0008\u0005\uffff\u0001"+ + "\u0012\u0002\uffff\u0001\u000e\u0002\uffff\u0001\u0006\u0001\uffff\u0001"+ + "\u0007\u0004\uffff\u0001\u001c\u0003\uffff\u0001\u0013\u0006\uffff\u0001"+ + "\u0014\u0006\uffff\u0001\u0001\u0002\uffff}>", + DFA16_transitionS: [ + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0001\u0005"+ + "\u0001\u000e\u0001\u0001\u0003\u000e\u0001\u000d\u0001\u0002"+ + "\u0007\u000e\u0001\u0004\u000a\u000e\u0001\u000c\u0001\u000e"+ + "\u0001\u000b\u0001\u0007\u0001\u0003\u0002\u000e\u001a\u0006"+ + "\u0002\u000e\u0001\u0008\u0001\u000e\u0001\u0006\u0001\u000e"+ + "\u001a\u0006\u0001\u0009\u0001\u000e\u0001\u000a\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0002\u0011"+ + "\u0001\u000f\u0003\u0011\u0001\uffff\u0015\u0011\u0001\uffff"+ + "\u003e\u0011\u0001\uffff\u0001\u0011\u0001\uffff\ud782\u0011"+ + "\u0800\uffff\u1ffe\u0011", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0001\u0012\u0014\u0011\u0001\uffff\u003e\u0011"+ + "\u0001\uffff\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff"+ + "\u1ffe\u0011", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0001\u000e\u0001\u0015\u003c\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u0005\u0002\uffff\u0001\u0005\u0012\uffff\u0001\u0005"+ + "\u0001\u000e\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011"+ + "\u0014\u000e\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e"+ + "\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0005\u000e"+ + "\u0002\u0019\u0001\u000e\u000a\u0019\u0002\u000e\u0001\uffff"+ + "\u0004\u000e\u001a\u0019\u0004\u000e\u0001\u0019\u0001\u000e"+ + "\u001a\u0019\u0001\uffff\u0001\u000e\u0001\uffff\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0020\u000e\u0001\u001b\u001d\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u001c", + "\u0001\u001e", + "\u0001\u0021\u000d\uffff\u0001\u0020\u000f\uffff\u0001\u0022", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u0025\u003d\uffff\u0001\u0026\u0005\uffff\u0001\u0026"+ + "\u0004\uffff\u0001\u0026\u0004\uffff\u0001\u0026", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0015\u0011\u0001\uffff\u003e\u0011\u0001\uffff"+ + "\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff\u1ffe\u0011", + "\u0001\uffff", + "", + "\u0002\u0011\u0002\uffff\u0001\u0011\u0012\uffff\u0006\u0011"+ + "\u0001\uffff\u0015\u0011\u0001\uffff\u003e\u0011\u0001\uffff"+ + "\u0001\u0011\u0001\uffff\ud782\u0011\u0800\uffff\u1ffe\u0011", + "\u0001\uffff", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0005\u000e"+ + "\u0002\u0019\u0001\u000e\u000a\u0019\u0002\u000e\u0001\uffff"+ + "\u0004\u000e\u001a\u0019\u0004\u000e\u0001\u0019\u0001\u000e"+ + "\u001a\u0019\u0001\uffff\u0001\u000e\u0001\uffff\ud782\u000e"+ + "\u0800\uffff\u1ffe\u000e", + "\u0001\uffff", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u0001\u000e\u0001\u0032\u003c\u000e\u0001\uffff"+ + "\u0001\u000e\u0001\uffff\ud782\u000e\u0800\uffff\u1ffe\u000e", + "", + "", + "", + "", + "", + "\u0001\u0034\u002d\uffff\u0001\u0033", + "", + "", + "\u0001\uffff", + "", + "", + "\u0001\uffff", + "", + "\u0001\uffff", + "", + "", + "", + "", + "\u0001\uffff", + "", + "", + "", + "\u0002\u000e\u0002\uffff\u0001\u000e\u0012\uffff\u0002\u000e"+ + "\u0001\u0011\u0003\u000e\u0001\uffff\u0001\u0011\u0014\u000e"+ + "\u0001\uffff\u003e\u000e\u0001\uffff\u0001\u000e\u0001\uffff"+ + "\ud782\u000e\u0800\uffff\u1ffe\u000e", + "\u0001\u003a", + "", + "", + "", + "", + "", + "\u0001\uffff", + "\u0001\u003c", + "", + "\u0001\u003d", + "\u0001\u003e", + "\u0001\u003f", + "\u0001\u0040", + "\u0000\u0042", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XMLLexer, { + DFA16_eot: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_eotS), + DFA16_eof: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_eofS), + DFA16_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XMLLexer.DFA16_minS), + DFA16_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XMLLexer.DFA16_maxS), + DFA16_accept: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_acceptS), + DFA16_special: + org.antlr.runtime.DFA.unpackEncodedString(XMLLexer.DFA16_specialS), + DFA16_transition: (function() { + var a = [], + i, + numStates = XMLLexer.DFA16_transitionS.length; + for (i=0; i') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 3;} + + else if ( (LA16_0=='/') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 4;} + + else if ( ((LA16_0>='\t' && LA16_0<='\n')||LA16_0=='\r'||LA16_0==' ') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 5;} + + else if ( ((LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 6;} + + else if ( (LA16_0=='=') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 7;} + + else if ( (LA16_0==']') ) {s = 8;} + + else if ( (LA16_0=='{') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 9;} + + else if ( (LA16_0=='}') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 10;} + + else if ( (LA16_0=='<') ) {s = 11;} + + else if ( (LA16_0==':') ) {s = 12;} + + else if ( (LA16_0=='&') ) {s = 13;} + + else if ( (LA16_0=='!'||(LA16_0>='#' && LA16_0<='%')||(LA16_0>='(' && LA16_0<='.')||(LA16_0>='0' && LA16_0<='9')||LA16_0==';'||(LA16_0>='?' && LA16_0<='@')||(LA16_0>='[' && LA16_0<='\\')||LA16_0=='^'||LA16_0=='`'||LA16_0=='|'||(LA16_0>='~' && LA16_0<='\uD7FF')||(LA16_0>='\uE000' && LA16_0<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + + input.seek(index16_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA16_64 = input.LA(1); + + + var index16_64 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_64>='\u0000' && LA16_64<='\uFFFF')) && (( !this.inElem ))) {s = 66;} + + else s = 65; + + + input.seek(index16_64); + if ( s>=0 ) return s; + break; + case 2 : + var LA16_7 = input.LA(1); + + + var index16_7 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_7>='\t' && LA16_7<='\n')||LA16_7=='\r'||(LA16_7>=' ' && LA16_7<='!')||(LA16_7>='#' && LA16_7<='%')||(LA16_7>='(' && LA16_7<=';')||(LA16_7>='=' && LA16_7<='z')||LA16_7=='|'||(LA16_7>='~' && LA16_7<='\uD7FF')||(LA16_7>='\uE000' && LA16_7<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_7=='\"'||LA16_7=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 26; + + + input.seek(index16_7); + if ( s>=0 ) return s; + break; + case 3 : + var LA16_25 = input.LA(1); + + + var index16_25 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_25>='-' && LA16_25<='.')||(LA16_25>='0' && LA16_25<='9')||(LA16_25>='A' && LA16_25<='Z')||LA16_25=='_'||(LA16_25>='a' && LA16_25<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 25;} + + else if ( (LA16_25=='\"'||LA16_25=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( ((LA16_25>='\t' && LA16_25<='\n')||LA16_25=='\r'||(LA16_25>=' ' && LA16_25<='!')||(LA16_25>='#' && LA16_25<='%')||(LA16_25>='(' && LA16_25<=',')||LA16_25=='/'||(LA16_25>=':' && LA16_25<=';')||(LA16_25>='=' && LA16_25<='@')||(LA16_25>='[' && LA16_25<='^')||LA16_25=='`'||LA16_25=='|'||(LA16_25>='~' && LA16_25<='\uD7FF')||(LA16_25>='\uE000' && LA16_25<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 24; + + + input.seek(index16_25); + if ( s>=0 ) return s; + break; + case 4 : + var LA16_3 = input.LA(1); + + + var index16_3 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_3>='\t' && LA16_3<='\n')||LA16_3=='\r'||(LA16_3>=' ' && LA16_3<='!')||(LA16_3>='#' && LA16_3<='%')||(LA16_3>='(' && LA16_3<=';')||(LA16_3>='=' && LA16_3<='z')||LA16_3=='|'||(LA16_3>='~' && LA16_3<='\uD7FF')||(LA16_3>='\uE000' && LA16_3<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_3=='\"'||LA16_3=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 20; + + + input.seek(index16_3); + if ( s>=0 ) return s; + break; + case 5 : + var LA16_10 = input.LA(1); + + + var index16_10 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_10=='}') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 30;} + + else s = 31; + + + input.seek(index16_10); + if ( s>=0 ) return s; + break; + case 6 : + var LA16_39 = input.LA(1); + + + var index16_39 = input.index(); + input.rewind(); + s = -1; + if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inQuotAttr )) ) {s = 54;} + + + input.seek(index16_39); + if ( s>=0 ) return s; + break; + case 7 : + var LA16_41 = input.LA(1); + + + var index16_41 = input.index(); + input.rewind(); + s = -1; + if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inAposAttr )) ) {s = 55;} + + + input.seek(index16_41); + if ( s>=0 ) return s; + break; + case 8 : + var LA16_27 = input.LA(1); + + + var index16_27 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_27=='>') ) {s = 50;} + + else if ( ((LA16_27>='\t' && LA16_27<='\n')||LA16_27=='\r'||(LA16_27>=' ' && LA16_27<='!')||(LA16_27>='#' && LA16_27<='%')||(LA16_27>='(' && LA16_27<=';')||LA16_27=='='||(LA16_27>='?' && LA16_27<='z')||LA16_27=='|'||(LA16_27>='~' && LA16_27<='\uD7FF')||(LA16_27>='\uE000' && LA16_27<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_27=='\"'||LA16_27=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_27); + if ( s>=0 ) return s; + break; + case 9 : + var LA16_16 = input.LA(1); + + + var index16_16 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inElem || this.inQuotAttr )) ) {s = 40;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_16); + if ( s>=0 ) return s; + break; + case 10 : + var LA16_19 = input.LA(1); + + + var index16_19 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inElem || this.inAposAttr )) ) {s = 42;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_19); + if ( s>=0 ) return s; + break; + case 11 : + var LA16_8 = input.LA(1); + + + var index16_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_8==']') ) {s = 27;} + + else if ( ((LA16_8>='\t' && LA16_8<='\n')||LA16_8=='\r'||(LA16_8>=' ' && LA16_8<='!')||(LA16_8>='#' && LA16_8<='%')||(LA16_8>='(' && LA16_8<=';')||(LA16_8>='=' && LA16_8<='\\')||(LA16_8>='^' && LA16_8<='z')||LA16_8=='|'||(LA16_8>='~' && LA16_8<='\uD7FF')||(LA16_8>='\uE000' && LA16_8<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_8=='\"'||LA16_8=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_8); + if ( s>=0 ) return s; + break; + case 12 : + var LA16_14 = input.LA(1); + + + var index16_14 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_14>='\t' && LA16_14<='\n')||LA16_14=='\r'||(LA16_14>=' ' && LA16_14<='!')||(LA16_14>='#' && LA16_14<='%')||(LA16_14>='(' && LA16_14<=';')||(LA16_14>='=' && LA16_14<='z')||LA16_14=='|'||(LA16_14>='~' && LA16_14<='\uD7FF')||(LA16_14>='\uE000' && LA16_14<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_14=='\"'||LA16_14=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_14); + if ( s>=0 ) return s; + break; + case 13 : + var LA16_4 = input.LA(1); + + + var index16_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_4=='>') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 21;} + + else if ( ((LA16_4>='\t' && LA16_4<='\n')||LA16_4=='\r'||(LA16_4>=' ' && LA16_4<='!')||(LA16_4>='#' && LA16_4<='%')||(LA16_4>='(' && LA16_4<=';')||LA16_4=='='||(LA16_4>='?' && LA16_4<='z')||LA16_4=='|'||(LA16_4>='~' && LA16_4<='\uD7FF')||(LA16_4>='\uE000' && LA16_4<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_4=='\"'||LA16_4=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 22; + + + input.seek(index16_4); + if ( s>=0 ) return s; + break; + case 14 : + var LA16_36 = input.LA(1); + + + var index16_36 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (true) ) {s = 53;} + + + input.seek(index16_36); + if ( s>=0 ) return s; + break; + case 15 : + var LA16_22 = input.LA(1); + + + var index16_22 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + + input.seek(index16_22); + if ( s>=0 ) return s; + break; + case 16 : + var LA16_18 = input.LA(1); + + + var index16_18 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_18>='\t' && LA16_18<='\n')||LA16_18=='\r'||(LA16_18>=' ' && LA16_18<='%')||(LA16_18>='\'' && LA16_18<=';')||(LA16_18>='=' && LA16_18<='z')||LA16_18=='|'||(LA16_18>='~' && LA16_18<='\uD7FF')||(LA16_18>='\uE000' && LA16_18<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 41; + + + input.seek(index16_18); + if ( s>=0 ) return s; + break; + case 17 : + var LA16_11 = input.LA(1); + + + var index16_11 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_11=='/') && (( !this.inElem ))) {s = 32;} + + else if ( (LA16_11=='!') ) {s = 33;} + + else if ( (LA16_11=='?') && (( !this.inElem ))) {s = 34;} + + else s = 35; + + + input.seek(index16_11); + if ( s>=0 ) return s; + break; + case 18 : + var LA16_33 = input.LA(1); + + + var index16_33 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_33=='[') ) {s = 51;} + + else if ( (LA16_33=='-') && (( !this.inElem ))) {s = 52;} + + + input.seek(index16_33); + if ( s>=0 ) return s; + break; + case 19 : + var LA16_50 = input.LA(1); + + + var index16_50 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_50>='\t' && LA16_50<='\n')||LA16_50=='\r'||(LA16_50>=' ' && LA16_50<='!')||(LA16_50>='#' && LA16_50<='%')||(LA16_50>='(' && LA16_50<=';')||(LA16_50>='=' && LA16_50<='z')||LA16_50=='|'||(LA16_50>='~' && LA16_50<='\uD7FF')||(LA16_50>='\uE000' && LA16_50<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_50=='\"'||LA16_50=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 57; + + + input.seek(index16_50); + if ( s>=0 ) return s; + break; + case 20 : + var LA16_57 = input.LA(1); + + + var index16_57 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (true) ) {s = 59;} + + + input.seek(index16_57); + if ( s>=0 ) return s; + break; + case 21 : + var LA16_6 = input.LA(1); + + + var index16_6 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_6>='-' && LA16_6<='.')||(LA16_6>='0' && LA16_6<='9')||(LA16_6>='A' && LA16_6<='Z')||LA16_6=='_'||(LA16_6>='a' && LA16_6<='z')) && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 25;} + + else if ( (LA16_6=='\"'||LA16_6=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( ((LA16_6>='\t' && LA16_6<='\n')||LA16_6=='\r'||(LA16_6>=' ' && LA16_6<='!')||(LA16_6>='#' && LA16_6<='%')||(LA16_6>='(' && LA16_6<=',')||LA16_6=='/'||(LA16_6>=':' && LA16_6<=';')||(LA16_6>='=' && LA16_6<='@')||(LA16_6>='[' && LA16_6<='^')||LA16_6=='`'||LA16_6=='|'||(LA16_6>='~' && LA16_6<='\uD7FF')||(LA16_6>='\uE000' && LA16_6<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 24; + + + input.seek(index16_6); + if ( s>=0 ) return s; + break; + case 22 : + var LA16_21 = input.LA(1); + + + var index16_21 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_21>='\t' && LA16_21<='\n')||LA16_21=='\r'||(LA16_21>=' ' && LA16_21<='!')||(LA16_21>='#' && LA16_21<='%')||(LA16_21>='(' && LA16_21<=';')||(LA16_21>='=' && LA16_21<='z')||LA16_21=='|'||(LA16_21>='~' && LA16_21<='\uD7FF')||(LA16_21>='\uE000' && LA16_21<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_21=='\"'||LA16_21=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 46; + + + input.seek(index16_21); + if ( s>=0 ) return s; + break; + case 23 : + var LA16_26 = input.LA(1); + + + var index16_26 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 49;} + + + input.seek(index16_26); + if ( s>=0 ) return s; + break; + case 24 : + var LA16_23 = input.LA(1); + + + var index16_23 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 47;} + + + input.seek(index16_23); + if ( s>=0 ) return s; + break; + case 25 : + var LA16_24 = input.LA(1); + + + var index16_24 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 48;} + + + input.seek(index16_24); + if ( s>=0 ) return s; + break; + case 26 : + var LA16_15 = input.LA(1); + + + var index16_15 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_15>='\t' && LA16_15<='\n')||LA16_15=='\r'||(LA16_15>=' ' && LA16_15<='%')||(LA16_15>='\'' && LA16_15<=';')||(LA16_15>='=' && LA16_15<='z')||LA16_15=='|'||(LA16_15>='~' && LA16_15<='\uD7FF')||(LA16_15>='\uE000' && LA16_15<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 39; + + + input.seek(index16_15); + if ( s>=0 ) return s; + break; + case 27 : + var LA16_12 = input.LA(1); + + + var index16_12 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_12>='\t' && LA16_12<='\n')||LA16_12=='\r'||(LA16_12>=' ' && LA16_12<='!')||(LA16_12>='#' && LA16_12<='%')||(LA16_12>='(' && LA16_12<=';')||(LA16_12>='=' && LA16_12<='z')||LA16_12=='|'||(LA16_12>='~' && LA16_12<='\uD7FF')||(LA16_12>='\uE000' && LA16_12<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else if ( (LA16_12=='\"'||LA16_12=='\'') && (( !this.inElem ))) {s = 17;} + + else s = 36; + + + input.seek(index16_12); + if ( s>=0 ) return s; + break; + case 28 : + var LA16_46 = input.LA(1); + + + var index16_46 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 56;} + + + input.seek(index16_46); + if ( s>=0 ) return s; + break; + case 29 : + var LA16_20 = input.LA(1); + + + var index16_20 = input.index(); + input.rewind(); + s = -1; + if ( (( this.inQuotAttr )) ) {s = 43;} + + else if ( (( this.inAposAttr )) ) {s = 44;} + + else if ( (( !this.inElem )) ) {s = 17;} + + else if ( (( this.inElem )) ) {s = 45;} + + + input.seek(index16_20); + if ( s>=0 ) return s; + break; + case 30 : + var LA16_5 = input.LA(1); + + + var index16_5 = input.index(); + input.rewind(); + s = -1; + if ( ((LA16_5>='\t' && LA16_5<='\n')||LA16_5=='\r'||LA16_5==' ') && ((( this.inElem )||( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 5;} + + else if ( (LA16_5=='\"'||LA16_5=='\'') && (( !this.inElem ))) {s = 17;} + + else if ( (LA16_5=='!'||(LA16_5>='#' && LA16_5<='%')||(LA16_5>='(' && LA16_5<=';')||(LA16_5>='=' && LA16_5<='z')||LA16_5=='|'||(LA16_5>='~' && LA16_5<='\uD7FF')||(LA16_5>='\uE000' && LA16_5<='\uFFFD')) && ((( this.inQuotAttr )||( this.inAposAttr )||( !this.inElem )))) {s = 14;} + + else s = 23; + + + input.seek(index16_5); + if ( s>=0 ) return s; + break; + case 31 : + var LA16_1 = input.LA(1); + + + var index16_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_1=='\"') && ((( this.inQuotAttr )||( !this.inElem )))) {s = 15;} + + else if ( ((LA16_1>='\t' && LA16_1<='\n')||LA16_1=='\r'||(LA16_1>=' ' && LA16_1<='!')||(LA16_1>='#' && LA16_1<='%')||(LA16_1>='\'' && LA16_1<=';')||(LA16_1>='=' && LA16_1<='z')||LA16_1=='|'||(LA16_1>='~' && LA16_1<='\uD7FF')||(LA16_1>='\uE000' && LA16_1<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 16; + + + input.seek(index16_1); + if ( s>=0 ) return s; + break; + case 32 : + var LA16_13 = input.LA(1); + + + var index16_13 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_13=='#') ) {s = 37;} + + else if ( (LA16_13=='a'||LA16_13=='g'||LA16_13=='l'||LA16_13=='q') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 38;} + + + input.seek(index16_13); + if ( s>=0 ) return s; + break; + case 33 : + var LA16_9 = input.LA(1); + + + var index16_9 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_9=='{') && (( !this.inElem || this.inAposAttr || this.inQuotAttr ))) {s = 28;} + + else s = 29; + + + input.seek(index16_9); + if ( s>=0 ) return s; + break; + case 34 : + var LA16_2 = input.LA(1); + + + var index16_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA16_2=='\'') && ((( this.inAposAttr )||( !this.inElem )))) {s = 18;} + + else if ( ((LA16_2>='\t' && LA16_2<='\n')||LA16_2=='\r'||(LA16_2>=' ' && LA16_2<='%')||(LA16_2>='(' && LA16_2<=';')||(LA16_2>='=' && LA16_2<='z')||LA16_2=='|'||(LA16_2>='~' && LA16_2<='\uD7FF')||(LA16_2>='\uE000' && LA16_2<='\uFFFD')) && (( !this.inElem ))) {s = 17;} + + else s = 19; + + + input.seek(index16_2); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 16, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.XMLLexer = XMLLexer; +}); \ No newline at end of file diff --git a/lib/ace/mode/xquery/XQDTLexer.js b/lib/ace/mode/xquery/XQDTLexer.js new file mode 100644 index 00000000..d53d335a --- /dev/null +++ b/lib/ace/mode/xquery/XQDTLexer.js @@ -0,0 +1,69 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define(function(require, exports, module){ + +var org = require("./antlr3-all").org; + +var XQDTLexer = exports.XQDTLexer = function(input, state) +{ + XQDTLexer.superclass.constructor.call(this, input, state); +}; + +org.antlr.lang.extend(XQDTLexer, org.antlr.runtime.Lexer, { + + comments: [], + + addComment: function(start, stop){ this.comments.push({ start: start, stop: stop }); }, + + isWsExplicit: false, + + setIsWsExplicit: function (wsExplicit) { + //console.log("A WS: " + wsExplicit); + this.isWsExplicit = wsExplicit; + //console.log("B WS: " + wsExplicit); + }, + + addToStack: function (stack) { + stack.push(this); + }, + + rewindToIndex: function(index) { + var stream = this.input; + stream.seek(index); + } +}); + +}); diff --git a/lib/ace/mode/xquery/XQDTParser.js b/lib/ace/mode/xquery/XQDTParser.js new file mode 100644 index 00000000..781784c4 --- /dev/null +++ b/lib/ace/mode/xquery/XQDTParser.js @@ -0,0 +1,63 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define(function(require, exports, module){ + +var org = require("./antlr3-all").org; +var XQuerySemanticHighlighter = require("./XQuerySemanticHighlighter").XQuerySemanticHighlighter; + +var XQDTParser = exports.XQDTParser = function(input, state) +{ + this.highlighter = new XQuerySemanticHighlighter(); + var that = this; + + input.getTokenSource().addComment = function(start, stop) { + var comments = input.getTokenSource().comments; + for(var i in comments) + { + var c = comments[i]; + that.highlighter.addToken(c.start, c.stop, "comment"); + } + input.getTokenSource().comments = []; + that.highlighter.addToken(start, stop, "comment") + }; + XQDTParser.superclass.constructor.call(this, input, state); +}; + +org.antlr.lang.extend(XQDTParser, org.antlr.runtime.Parser, { + +}); + +}); diff --git a/lib/ace/mode/xquery/XQueryLexer.js b/lib/ace/mode/xquery/XQueryLexer.js new file mode 100644 index 00000000..4fea00d2 --- /dev/null +++ b/lib/ace/mode/xquery/XQueryLexer.js @@ -0,0 +1,10363 @@ +define(function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryLexer.g 2012-05-24 17:09:22 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var XQDTLexer = require("./XQDTLexer").XQDTLexer; + + +var XQueryLexer = function(input, state) { +// alternate constructor @todo +// public XQueryLexer(CharStream input) +// public XQueryLexer(CharStream input, RecognizerSharedState state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.inStr = false; + + // dummy list for warning elimination + //List> dummy = new ArrayList>(); + + // when we start, the '<' has already been eaten by the other lexer + //boolean inStr = false; + // + //public boolean isInString() + //{ + // return inStr; + //} + + + }).call(this); + + this.dfa19 = new XQueryLexer.DFA19(this); + XQueryLexer.superclass.constructor.call(this, input, state); + + +}; + +org.antlr.lang.augmentObject(XQueryLexer, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282 +}); + +(function(){ +var HIDDEN = org.antlr.runtime.Token.HIDDEN_CHANNEL, + EOF = org.antlr.runtime.Token.EOF; +org.antlr.lang.extend(XQueryLexer, XQDTLexer, { + EOF : -1, + L_QuotAttrContentChar : 4, + L_AposAttrContentChar : 5, + L_ElementContentChar : 6, + L_CDataSection : 7, + L_PredefinedEntityRef : 8, + L_CharRef : 9, + ESCAPE_LBRACKET : 10, + ESCAPE_RBRACKET : 11, + ESCAPE_APOS : 12, + ESCAPE_QUOT : 13, + CDATA_START : 14, + CDATA_END : 15, + ANCESTOR : 16, + ANCESTOR_OR_SELF : 17, + AND : 18, + AS : 19, + ASCENDING : 20, + AT : 21, + ATTRIBUTE : 22, + BASE_URI : 23, + BOUNDARY_SPACE : 24, + BY : 25, + CASE : 26, + CAST : 27, + CASTABLE : 28, + CHILD : 29, + COLLATION : 30, + COMMENT : 31, + CONSTRUCTION : 32, + COPY_NAMESPACES : 33, + DECLARE : 34, + DEFAULT : 35, + DESCENDANT : 36, + DESCENDANT_OR_SELF : 37, + DESCENDING : 38, + DIV : 39, + DOCUMENT : 40, + DOCUMENT_NODE : 41, + ELEMENT : 42, + ELSE : 43, + EMPTY : 44, + EMPTY_SEQUENCE : 45, + ENCODING : 46, + EQ : 47, + EVERY : 48, + EXCEPT : 49, + EXTERNAL : 50, + FOLLOWING : 51, + FOLLOWING_SIBLING : 52, + FOR : 53, + FUNCTION : 54, + GE : 55, + GREATEST : 56, + GT : 57, + IDIV : 58, + IF : 59, + IMPORT : 60, + IN : 61, + INHERIT : 62, + INSTANCE : 63, + INTERSECT : 64, + IS : 65, + ITEM : 66, + LAX : 67, + LE : 68, + LEAST : 69, + LET : 70, + LT : 71, + MOD : 72, + MODULE : 73, + NAMESPACE : 74, + NE : 75, + NO_INHERIT : 76, + NO_PRESERVE : 77, + NODE : 78, + OF : 79, + OPTION : 80, + OR : 81, + ORDER : 82, + ORDERED : 83, + ORDERING : 84, + PARENT : 85, + PRECEDING : 86, + PRECEDING_SIBLING : 87, + PRESERVE : 88, + PROCESSING_INSTRUCTION : 89, + RETURN : 90, + SATISFIES : 91, + SCHEMA : 92, + SCHEMA_ATTRIBUTE : 93, + SCHEMA_ELEMENT : 94, + SELF : 95, + SOME : 96, + STABLE : 97, + STRICT : 98, + STRIP : 99, + TEXT : 100, + THEN : 101, + TO : 102, + TREAT : 103, + TYPESWITCH : 104, + UNION : 105, + UNORDERED : 106, + VALIDATE : 107, + VARIABLE : 108, + VERSION : 109, + WHERE : 110, + XQUERY : 111, + ALLOWING : 112, + CATCH : 113, + CONTEXT : 114, + COUNT : 115, + DECIMAL_FORMAT : 116, + DECIMAL_SEPARATOR : 117, + DIGIT : 118, + END : 119, + GROUP : 120, + GROUPING_SEPARATOR : 121, + INFINITY : 122, + MINUS_SIGN : 123, + NAMESPACE_NODE : 124, + NAN : 125, + NEXT : 126, + ONLY : 127, + PATTERN_SEPARATOR : 128, + PERCENT : 129, + PER_MILLE : 130, + PREVIOUS : 131, + SLIDING : 132, + START : 133, + SWITCH : 134, + TRY : 135, + TUMBLING : 136, + TYPE : 137, + WHEN : 138, + WINDOW : 139, + ZERO_DIGIT : 140, + AFTER : 141, + BEFORE : 142, + COPY : 143, + DELETE : 144, + FIRST : 145, + INSERT : 146, + INTO : 147, + LAST : 148, + MODIFY : 149, + NODES : 150, + RENAME : 151, + REPLACE : 152, + REVALIDATION : 153, + SKIP : 154, + UPDATING : 155, + VALUE : 156, + WITH : 157, + ALL : 158, + ANY : 159, + CONTAINS : 160, + CONTENT : 161, + DIACRITICS : 162, + DIFFERENT : 163, + DISTANCE : 164, + ENTIRE : 165, + EXACTLY : 166, + FROM : 167, + FT_OPTION : 168, + FTAND : 169, + FTNOT : 170, + FTOR : 171, + INSENSITIVE : 172, + LANGUAGE : 173, + LEVELS : 174, + LOWERCASE : 175, + MOST : 176, + NO : 177, + NOT : 178, + OCCURS : 179, + PARAGRAPH : 180, + PARAGRAPHS : 181, + PHRASE : 182, + RELATIONSHIP : 183, + SAME : 184, + SCORE : 185, + SENSITIVE : 186, + SENTENCE : 187, + SENTENCES : 188, + STEMMING : 189, + STOP : 190, + THESAURUS : 191, + TIMES : 192, + UPPERCASE : 193, + USING : 194, + WEIGHT : 195, + WILDCARDS : 196, + WITHOUT : 197, + WORD : 198, + WORDS : 199, + BREAK : 200, + CONTINUE : 201, + EXIT : 202, + LOOP : 203, + RETURNING : 204, + WHILE : 205, + CHECK : 206, + COLLECTION : 207, + CONSTRAINT : 208, + FOREACH : 209, + FOREIGN : 210, + INDEX : 211, + INTEGRITY : 212, + KEY : 213, + ON : 214, + UNIQUE : 215, + BINARY : 216, + AMP_ER : 217, + APOS_ER : 218, + QUOT_ER : 219, + CONCAT : 220, + LPAREN : 221, + RPAREN : 222, + DOLLAR : 223, + LBRACKET : 224, + RBRACKET : 225, + LSQUARE : 226, + RSQUARE : 227, + EQUAL : 228, + BIND : 229, + NOTEQUAL : 230, + ANN_PERCENT : 231, + HASH : 232, + AMP : 233, + COMMA : 234, + QUESTION : 235, + STAR : 236, + PLUS : 237, + MINUS : 238, + SMALLER : 239, + GREATER : 240, + SMALLEREQ : 241, + GREATEREQ : 242, + SMALLER_SMALLER : 243, + GREATER_GREATER : 244, + SLASH : 245, + SLASH_SLASH : 246, + DOT : 247, + DOT_DOT : 248, + COLON : 249, + COLON_COLON : 250, + EMPTY_CLOSE_TAG : 251, + CLOSE_TAG : 252, + SEMICOLON : 253, + VBAR : 254, + PRAGMA_START : 255, + PRAGMA_END : 256, + XML_COMMENT_START : 257, + XML_COMMENT_END : 258, + PI_START : 259, + PI_END : 260, + ATTR_SIGN : 261, + CHARREF_DEC : 262, + CHARREF_HEX : 263, + APOS : 264, + QUOT : 265, + NCNameStartChar : 266, + NCNameChar : 267, + L_NCName : 268, + Letter : 269, + HexLetter : 270, + Digit : 271, + Digits : 272, + S : 273, + SU : 274, + L_Pragma : 275, + L_DirCommentConstructor : 276, + L_DirPIConstructor : 277, + L_IntegerLiteral : 278, + L_DecimalLiteral : 279, + L_DoubleLiteral : 280, + L_Comment : 281, + L_AnyChar : 282, + getGrammarFileName: function() { return "xquery/XQueryLexer.g"; } +}); +org.antlr.lang.augmentObject(XQueryLexer.prototype, { + // $ANTLR start ANCESTOR + mANCESTOR: function() { + try { + var _type = this.ANCESTOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:85:29: ( 'ancestor' ) + // xquery/XQueryLexer.g:85:31: 'ancestor' + this.match("ancestor"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANCESTOR", + + // $ANTLR start ANCESTOR_OR_SELF + mANCESTOR_OR_SELF: function() { + try { + var _type = this.ANCESTOR_OR_SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:86:29: ( 'ancestor-or-self' ) + // xquery/XQueryLexer.g:86:31: 'ancestor-or-self' + this.match("ancestor-or-self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANCESTOR_OR_SELF", + + // $ANTLR start AND + mAND: function() { + try { + var _type = this.AND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:87:29: ( 'and' ) + // xquery/XQueryLexer.g:87:31: 'and' + this.match("and"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AND", + + // $ANTLR start AS + mAS: function() { + try { + var _type = this.AS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:88:29: ( 'as' ) + // xquery/XQueryLexer.g:88:31: 'as' + this.match("as"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AS", + + // $ANTLR start ASCENDING + mASCENDING: function() { + try { + var _type = this.ASCENDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:89:29: ( 'ascending' ) + // xquery/XQueryLexer.g:89:31: 'ascending' + this.match("ascending"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ASCENDING", + + // $ANTLR start AT + mAT: function() { + try { + var _type = this.AT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:90:29: ( 'at' ) + // xquery/XQueryLexer.g:90:31: 'at' + this.match("at"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AT", + + // $ANTLR start ATTRIBUTE + mATTRIBUTE: function() { + try { + var _type = this.ATTRIBUTE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:91:29: ( 'attribute' ) + // xquery/XQueryLexer.g:91:31: 'attribute' + this.match("attribute"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ATTRIBUTE", + + // $ANTLR start BASE_URI + mBASE_URI: function() { + try { + var _type = this.BASE_URI; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:92:29: ( 'base-uri' ) + // xquery/XQueryLexer.g:92:31: 'base-uri' + this.match("base-uri"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BASE_URI", + + // $ANTLR start BOUNDARY_SPACE + mBOUNDARY_SPACE: function() { + try { + var _type = this.BOUNDARY_SPACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:93:29: ( 'boundary-space' ) + // xquery/XQueryLexer.g:93:31: 'boundary-space' + this.match("boundary-space"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BOUNDARY_SPACE", + + // $ANTLR start BY + mBY: function() { + try { + var _type = this.BY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:94:29: ( 'by' ) + // xquery/XQueryLexer.g:94:31: 'by' + this.match("by"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BY", + + // $ANTLR start CASE + mCASE: function() { + try { + var _type = this.CASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:95:29: ( 'case' ) + // xquery/XQueryLexer.g:95:31: 'case' + this.match("case"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CASE", + + // $ANTLR start CAST + mCAST: function() { + try { + var _type = this.CAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:96:29: ( 'cast' ) + // xquery/XQueryLexer.g:96:31: 'cast' + this.match("cast"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CAST", + + // $ANTLR start CASTABLE + mCASTABLE: function() { + try { + var _type = this.CASTABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:97:29: ( 'castable' ) + // xquery/XQueryLexer.g:97:31: 'castable' + this.match("castable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CASTABLE", + + // $ANTLR start CHILD + mCHILD: function() { + try { + var _type = this.CHILD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:98:29: ( 'child' ) + // xquery/XQueryLexer.g:98:31: 'child' + this.match("child"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHILD", + + // $ANTLR start COLLATION + mCOLLATION: function() { + try { + var _type = this.COLLATION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:99:29: ( 'collation' ) + // xquery/XQueryLexer.g:99:31: 'collation' + this.match("collation"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLLATION", + + // $ANTLR start COMMENT + mCOMMENT: function() { + try { + var _type = this.COMMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:100:29: ( 'comment' ) + // xquery/XQueryLexer.g:100:31: 'comment' + this.match("comment"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COMMENT", + + // $ANTLR start CONSTRUCTION + mCONSTRUCTION: function() { + try { + var _type = this.CONSTRUCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:101:29: ( 'construction' ) + // xquery/XQueryLexer.g:101:31: 'construction' + this.match("construction"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONSTRUCTION", + + // $ANTLR start COPY_NAMESPACES + mCOPY_NAMESPACES: function() { + try { + var _type = this.COPY_NAMESPACES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:102:29: ( 'copy-namespaces' ) + // xquery/XQueryLexer.g:102:31: 'copy-namespaces' + this.match("copy-namespaces"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COPY_NAMESPACES", + + // $ANTLR start DECLARE + mDECLARE: function() { + try { + var _type = this.DECLARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:103:29: ( 'declare' ) + // xquery/XQueryLexer.g:103:31: 'declare' + this.match("declare"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECLARE", + + // $ANTLR start DEFAULT + mDEFAULT: function() { + try { + var _type = this.DEFAULT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:104:29: ( 'default' ) + // xquery/XQueryLexer.g:104:31: 'default' + this.match("default"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DEFAULT", + + // $ANTLR start DESCENDANT + mDESCENDANT: function() { + try { + var _type = this.DESCENDANT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:105:29: ( 'descendant' ) + // xquery/XQueryLexer.g:105:31: 'descendant' + this.match("descendant"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDANT", + + // $ANTLR start DESCENDANT_OR_SELF + mDESCENDANT_OR_SELF: function() { + try { + var _type = this.DESCENDANT_OR_SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:106:29: ( 'descendant-or-self' ) + // xquery/XQueryLexer.g:106:31: 'descendant-or-self' + this.match("descendant-or-self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDANT_OR_SELF", + + // $ANTLR start DESCENDING + mDESCENDING: function() { + try { + var _type = this.DESCENDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:107:29: ( 'descending' ) + // xquery/XQueryLexer.g:107:31: 'descending' + this.match("descending"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DESCENDING", + + // $ANTLR start DIV + mDIV: function() { + try { + var _type = this.DIV; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:108:29: ( 'div' ) + // xquery/XQueryLexer.g:108:31: 'div' + this.match("div"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIV", + + // $ANTLR start DOCUMENT + mDOCUMENT: function() { + try { + var _type = this.DOCUMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:109:29: ( 'document' ) + // xquery/XQueryLexer.g:109:31: 'document' + this.match("document"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOCUMENT", + + // $ANTLR start DOCUMENT_NODE + mDOCUMENT_NODE: function() { + try { + var _type = this.DOCUMENT_NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:110:29: ( 'document-node' ) + // xquery/XQueryLexer.g:110:31: 'document-node' + this.match("document-node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOCUMENT_NODE", + + // $ANTLR start ELEMENT + mELEMENT: function() { + try { + var _type = this.ELEMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:111:29: ( 'element' ) + // xquery/XQueryLexer.g:111:31: 'element' + this.match("element"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ELEMENT", + + // $ANTLR start ELSE + mELSE: function() { + try { + var _type = this.ELSE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:112:29: ( 'else' ) + // xquery/XQueryLexer.g:112:31: 'else' + this.match("else"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ELSE", + + // $ANTLR start EMPTY + mEMPTY: function() { + try { + var _type = this.EMPTY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:113:29: ( 'empty' ) + // xquery/XQueryLexer.g:113:31: 'empty' + this.match("empty"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY", + + // $ANTLR start EMPTY_SEQUENCE + mEMPTY_SEQUENCE: function() { + try { + var _type = this.EMPTY_SEQUENCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:114:29: ( 'empty-sequence' ) + // xquery/XQueryLexer.g:114:31: 'empty-sequence' + this.match("empty-sequence"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_SEQUENCE", + + // $ANTLR start ENCODING + mENCODING: function() { + try { + var _type = this.ENCODING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:115:29: ( 'encoding' ) + // xquery/XQueryLexer.g:115:31: 'encoding' + this.match("encoding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ENCODING", + + // $ANTLR start EQ + mEQ: function() { + try { + var _type = this.EQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:116:29: ( 'eq' ) + // xquery/XQueryLexer.g:116:31: 'eq' + this.match("eq"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQ", + + // $ANTLR start EVERY + mEVERY: function() { + try { + var _type = this.EVERY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:117:29: ( 'every' ) + // xquery/XQueryLexer.g:117:31: 'every' + this.match("every"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EVERY", + + // $ANTLR start EXCEPT + mEXCEPT: function() { + try { + var _type = this.EXCEPT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:118:29: ( 'except' ) + // xquery/XQueryLexer.g:118:31: 'except' + this.match("except"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXCEPT", + + // $ANTLR start EXTERNAL + mEXTERNAL: function() { + try { + var _type = this.EXTERNAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:119:29: ( 'external' ) + // xquery/XQueryLexer.g:119:31: 'external' + this.match("external"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXTERNAL", + + // $ANTLR start FOLLOWING + mFOLLOWING: function() { + try { + var _type = this.FOLLOWING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:120:29: ( 'following' ) + // xquery/XQueryLexer.g:120:31: 'following' + this.match("following"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOLLOWING", + + // $ANTLR start FOLLOWING_SIBLING + mFOLLOWING_SIBLING: function() { + try { + var _type = this.FOLLOWING_SIBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:121:29: ( 'following-sibling' ) + // xquery/XQueryLexer.g:121:31: 'following-sibling' + this.match("following-sibling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOLLOWING_SIBLING", + + // $ANTLR start FOR + mFOR: function() { + try { + var _type = this.FOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:122:29: ( 'for' ) + // xquery/XQueryLexer.g:122:31: 'for' + this.match("for"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOR", + + // $ANTLR start FUNCTION + mFUNCTION: function() { + try { + var _type = this.FUNCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:123:29: ( 'function' ) + // xquery/XQueryLexer.g:123:31: 'function' + this.match("function"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FUNCTION", + + // $ANTLR start GE + mGE: function() { + try { + var _type = this.GE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:124:29: ( 'ge' ) + // xquery/XQueryLexer.g:124:31: 'ge' + this.match("ge"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GE", + + // $ANTLR start GREATEST + mGREATEST: function() { + try { + var _type = this.GREATEST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:125:29: ( 'greatest' ) + // xquery/XQueryLexer.g:125:31: 'greatest' + this.match("greatest"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATEST", + + // $ANTLR start GT + mGT: function() { + try { + var _type = this.GT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:126:29: ( 'gt' ) + // xquery/XQueryLexer.g:126:31: 'gt' + this.match("gt"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GT", + + // $ANTLR start IDIV + mIDIV: function() { + try { + var _type = this.IDIV; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:127:29: ( 'idiv' ) + // xquery/XQueryLexer.g:127:31: 'idiv' + this.match("idiv"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IDIV", + + // $ANTLR start IF + mIF: function() { + try { + var _type = this.IF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:128:29: ( 'if' ) + // xquery/XQueryLexer.g:128:31: 'if' + this.match("if"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IF", + + // $ANTLR start IMPORT + mIMPORT: function() { + try { + var _type = this.IMPORT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:129:29: ( 'import' ) + // xquery/XQueryLexer.g:129:31: 'import' + this.match("import"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IMPORT", + + // $ANTLR start IN + mIN: function() { + try { + var _type = this.IN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:130:29: ( 'in' ) + // xquery/XQueryLexer.g:130:31: 'in' + this.match("in"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IN", + + // $ANTLR start INHERIT + mINHERIT: function() { + try { + var _type = this.INHERIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:131:29: ( 'inherit' ) + // xquery/XQueryLexer.g:131:31: 'inherit' + this.match("inherit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INHERIT", + + // $ANTLR start INSTANCE + mINSTANCE: function() { + try { + var _type = this.INSTANCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:132:29: ( 'instance' ) + // xquery/XQueryLexer.g:132:31: 'instance' + this.match("instance"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSTANCE", + + // $ANTLR start INTERSECT + mINTERSECT: function() { + try { + var _type = this.INTERSECT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:133:29: ( 'intersect' ) + // xquery/XQueryLexer.g:133:31: 'intersect' + this.match("intersect"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTERSECT", + + // $ANTLR start IS + mIS: function() { + try { + var _type = this.IS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:134:29: ( 'is' ) + // xquery/XQueryLexer.g:134:31: 'is' + this.match("is"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "IS", + + // $ANTLR start ITEM + mITEM: function() { + try { + var _type = this.ITEM; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:135:29: ( 'item' ) + // xquery/XQueryLexer.g:135:31: 'item' + this.match("item"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ITEM", + + // $ANTLR start LAX + mLAX: function() { + try { + var _type = this.LAX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:136:29: ( 'lax' ) + // xquery/XQueryLexer.g:136:31: 'lax' + this.match("lax"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LAX", + + // $ANTLR start LE + mLE: function() { + try { + var _type = this.LE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:137:29: ( 'le' ) + // xquery/XQueryLexer.g:137:31: 'le' + this.match("le"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LE", + + // $ANTLR start LEAST + mLEAST: function() { + try { + var _type = this.LEAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:138:29: ( 'least' ) + // xquery/XQueryLexer.g:138:31: 'least' + this.match("least"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LEAST", + + // $ANTLR start LET + mLET: function() { + try { + var _type = this.LET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:139:29: ( 'let' ) + // xquery/XQueryLexer.g:139:31: 'let' + this.match("let"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LET", + + // $ANTLR start LT + mLT: function() { + try { + var _type = this.LT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:140:29: ( 'lt' ) + // xquery/XQueryLexer.g:140:31: 'lt' + this.match("lt"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LT", + + // $ANTLR start MOD + mMOD: function() { + try { + var _type = this.MOD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:141:29: ( 'mod' ) + // xquery/XQueryLexer.g:141:31: 'mod' + this.match("mod"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MOD", + + // $ANTLR start MODULE + mMODULE: function() { + try { + var _type = this.MODULE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:142:29: ( 'module' ) + // xquery/XQueryLexer.g:142:31: 'module' + this.match("module"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MODULE", + + // $ANTLR start NAMESPACE + mNAMESPACE: function() { + try { + var _type = this.NAMESPACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:143:29: ( 'namespace' ) + // xquery/XQueryLexer.g:143:31: 'namespace' + this.match("namespace"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAMESPACE", + + // $ANTLR start NE + mNE: function() { + try { + var _type = this.NE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:144:29: ( 'ne' ) + // xquery/XQueryLexer.g:144:31: 'ne' + this.match("ne"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NE", + + // $ANTLR start NO_INHERIT + mNO_INHERIT: function() { + try { + var _type = this.NO_INHERIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:145:29: ( 'no-inherit' ) + // xquery/XQueryLexer.g:145:31: 'no-inherit' + this.match("no-inherit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO_INHERIT", + + // $ANTLR start NO_PRESERVE + mNO_PRESERVE: function() { + try { + var _type = this.NO_PRESERVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:146:29: ( 'no-preserve' ) + // xquery/XQueryLexer.g:146:31: 'no-preserve' + this.match("no-preserve"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO_PRESERVE", + + // $ANTLR start NODE + mNODE: function() { + try { + var _type = this.NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:147:29: ( 'node' ) + // xquery/XQueryLexer.g:147:31: 'node' + this.match("node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NODE", + + // $ANTLR start OF + mOF: function() { + try { + var _type = this.OF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:148:29: ( 'of' ) + // xquery/XQueryLexer.g:148:31: 'of' + this.match("of"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OF", + + // $ANTLR start OPTION + mOPTION: function() { + try { + var _type = this.OPTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:149:29: ( 'option' ) + // xquery/XQueryLexer.g:149:31: 'option' + this.match("option"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OPTION", + + // $ANTLR start OR + mOR: function() { + try { + var _type = this.OR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:150:29: ( 'or' ) + // xquery/XQueryLexer.g:150:31: 'or' + this.match("or"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OR", + + // $ANTLR start ORDER + mORDER: function() { + try { + var _type = this.ORDER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:151:29: ( 'order' ) + // xquery/XQueryLexer.g:151:31: 'order' + this.match("order"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDER", + + // $ANTLR start ORDERED + mORDERED: function() { + try { + var _type = this.ORDERED; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:152:29: ( 'ordered' ) + // xquery/XQueryLexer.g:152:31: 'ordered' + this.match("ordered"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDERED", + + // $ANTLR start ORDERING + mORDERING: function() { + try { + var _type = this.ORDERING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:153:29: ( 'ordering' ) + // xquery/XQueryLexer.g:153:31: 'ordering' + this.match("ordering"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ORDERING", + + // $ANTLR start PARENT + mPARENT: function() { + try { + var _type = this.PARENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:154:29: ( 'parent' ) + // xquery/XQueryLexer.g:154:31: 'parent' + this.match("parent"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARENT", + + // $ANTLR start PRECEDING + mPRECEDING: function() { + try { + var _type = this.PRECEDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:155:29: ( 'preceding' ) + // xquery/XQueryLexer.g:155:31: 'preceding' + this.match("preceding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRECEDING", + + // $ANTLR start PRECEDING_SIBLING + mPRECEDING_SIBLING: function() { + try { + var _type = this.PRECEDING_SIBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:156:29: ( 'preceding-sibling' ) + // xquery/XQueryLexer.g:156:31: 'preceding-sibling' + this.match("preceding-sibling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRECEDING_SIBLING", + + // $ANTLR start PRESERVE + mPRESERVE: function() { + try { + var _type = this.PRESERVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:157:29: ( 'preserve' ) + // xquery/XQueryLexer.g:157:31: 'preserve' + this.match("preserve"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PRESERVE", + + // $ANTLR start PROCESSING_INSTRUCTION + mPROCESSING_INSTRUCTION: function() { + try { + var _type = this.PROCESSING_INSTRUCTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:158:29: ( 'processing-instruction' ) + // xquery/XQueryLexer.g:158:31: 'processing-instruction' + this.match("processing-instruction"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PROCESSING_INSTRUCTION", + + // $ANTLR start RETURN + mRETURN: function() { + try { + var _type = this.RETURN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:159:29: ( 'return' ) + // xquery/XQueryLexer.g:159:31: 'return' + this.match("return"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RETURN", + + // $ANTLR start SATISFIES + mSATISFIES: function() { + try { + var _type = this.SATISFIES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:160:29: ( 'satisfies' ) + // xquery/XQueryLexer.g:160:31: 'satisfies' + this.match("satisfies"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SATISFIES", + + // $ANTLR start SCHEMA + mSCHEMA: function() { + try { + var _type = this.SCHEMA; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:161:29: ( 'schema' ) + // xquery/XQueryLexer.g:161:31: 'schema' + this.match("schema"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA", + + // $ANTLR start SCHEMA_ATTRIBUTE + mSCHEMA_ATTRIBUTE: function() { + try { + var _type = this.SCHEMA_ATTRIBUTE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:162:29: ( 'schema-attribute' ) + // xquery/XQueryLexer.g:162:31: 'schema-attribute' + this.match("schema-attribute"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA_ATTRIBUTE", + + // $ANTLR start SCHEMA_ELEMENT + mSCHEMA_ELEMENT: function() { + try { + var _type = this.SCHEMA_ELEMENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:163:29: ( 'schema-element' ) + // xquery/XQueryLexer.g:163:31: 'schema-element' + this.match("schema-element"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCHEMA_ELEMENT", + + // $ANTLR start SELF + mSELF: function() { + try { + var _type = this.SELF; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:164:29: ( 'self' ) + // xquery/XQueryLexer.g:164:31: 'self' + this.match("self"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SELF", + + // $ANTLR start SOME + mSOME: function() { + try { + var _type = this.SOME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:165:29: ( 'some' ) + // xquery/XQueryLexer.g:165:31: 'some' + this.match("some"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SOME", + + // $ANTLR start STABLE + mSTABLE: function() { + try { + var _type = this.STABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:166:29: ( 'stable' ) + // xquery/XQueryLexer.g:166:31: 'stable' + this.match("stable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STABLE", + + // $ANTLR start STRICT + mSTRICT: function() { + try { + var _type = this.STRICT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:167:29: ( 'strict' ) + // xquery/XQueryLexer.g:167:31: 'strict' + this.match("strict"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STRICT", + + // $ANTLR start STRIP + mSTRIP: function() { + try { + var _type = this.STRIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:168:29: ( 'strip' ) + // xquery/XQueryLexer.g:168:31: 'strip' + this.match("strip"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STRIP", + + // $ANTLR start TEXT + mTEXT: function() { + try { + var _type = this.TEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:169:29: ( 'text' ) + // xquery/XQueryLexer.g:169:31: 'text' + this.match("text"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TEXT", + + // $ANTLR start THEN + mTHEN: function() { + try { + var _type = this.THEN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:170:29: ( 'then' ) + // xquery/XQueryLexer.g:170:31: 'then' + this.match("then"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "THEN", + + // $ANTLR start TO + mTO: function() { + try { + var _type = this.TO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:171:29: ( 'to' ) + // xquery/XQueryLexer.g:171:31: 'to' + this.match("to"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TO", + + // $ANTLR start TREAT + mTREAT: function() { + try { + var _type = this.TREAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:172:29: ( 'treat' ) + // xquery/XQueryLexer.g:172:31: 'treat' + this.match("treat"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TREAT", + + // $ANTLR start TYPESWITCH + mTYPESWITCH: function() { + try { + var _type = this.TYPESWITCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:173:29: ( 'typeswitch' ) + // xquery/XQueryLexer.g:173:31: 'typeswitch' + this.match("typeswitch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TYPESWITCH", + + // $ANTLR start UNION + mUNION: function() { + try { + var _type = this.UNION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:174:29: ( 'union' ) + // xquery/XQueryLexer.g:174:31: 'union' + this.match("union"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNION", + + // $ANTLR start UNORDERED + mUNORDERED: function() { + try { + var _type = this.UNORDERED; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:175:29: ( 'unordered' ) + // xquery/XQueryLexer.g:175:31: 'unordered' + this.match("unordered"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNORDERED", + + // $ANTLR start VALIDATE + mVALIDATE: function() { + try { + var _type = this.VALIDATE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:176:29: ( 'validate' ) + // xquery/XQueryLexer.g:176:31: 'validate' + this.match("validate"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VALIDATE", + + // $ANTLR start VARIABLE + mVARIABLE: function() { + try { + var _type = this.VARIABLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:177:29: ( 'variable' ) + // xquery/XQueryLexer.g:177:31: 'variable' + this.match("variable"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VARIABLE", + + // $ANTLR start VERSION + mVERSION: function() { + try { + var _type = this.VERSION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:178:29: ( 'version' ) + // xquery/XQueryLexer.g:178:31: 'version' + this.match("version"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VERSION", + + // $ANTLR start WHERE + mWHERE: function() { + try { + var _type = this.WHERE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:179:29: ( 'where' ) + // xquery/XQueryLexer.g:179:31: 'where' + this.match("where"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHERE", + + // $ANTLR start XQUERY + mXQUERY: function() { + try { + var _type = this.XQUERY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:180:29: ( 'xquery' ) + // xquery/XQueryLexer.g:180:31: 'xquery' + this.match("xquery"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "XQUERY", + + // $ANTLR start ALLOWING + mALLOWING: function() { + try { + var _type = this.ALLOWING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:182:29: ( 'allowing' ) + // xquery/XQueryLexer.g:182:31: 'allowing' + this.match("allowing"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ALLOWING", + + // $ANTLR start CATCH + mCATCH: function() { + try { + var _type = this.CATCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:183:29: ( 'catch' ) + // xquery/XQueryLexer.g:183:31: 'catch' + this.match("catch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CATCH", + + // $ANTLR start CONTEXT + mCONTEXT: function() { + try { + var _type = this.CONTEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:184:29: ( 'context' ) + // xquery/XQueryLexer.g:184:31: 'context' + this.match("context"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTEXT", + + // $ANTLR start COUNT + mCOUNT: function() { + try { + var _type = this.COUNT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:185:29: ( 'count' ) + // xquery/XQueryLexer.g:185:31: 'count' + this.match("count"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COUNT", + + // $ANTLR start DECIMAL_FORMAT + mDECIMAL_FORMAT: function() { + try { + var _type = this.DECIMAL_FORMAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:186:29: ( 'decimal-format' ) + // xquery/XQueryLexer.g:186:31: 'decimal-format' + this.match("decimal-format"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECIMAL_FORMAT", + + // $ANTLR start DECIMAL_SEPARATOR + mDECIMAL_SEPARATOR: function() { + try { + var _type = this.DECIMAL_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:187:29: ( 'decimal-separator' ) + // xquery/XQueryLexer.g:187:31: 'decimal-separator' + this.match("decimal-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DECIMAL_SEPARATOR", + + // $ANTLR start DIGIT + mDIGIT: function() { + try { + var _type = this.DIGIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:188:29: ( 'digit' ) + // xquery/XQueryLexer.g:188:31: 'digit' + this.match("digit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIGIT", + + // $ANTLR start END + mEND: function() { + try { + var _type = this.END; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:189:29: ( 'end' ) + // xquery/XQueryLexer.g:189:31: 'end' + this.match("end"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "END", + + // $ANTLR start GROUP + mGROUP: function() { + try { + var _type = this.GROUP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:190:29: ( 'group' ) + // xquery/XQueryLexer.g:190:31: 'group' + this.match("group"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GROUP", + + // $ANTLR start GROUPING_SEPARATOR + mGROUPING_SEPARATOR: function() { + try { + var _type = this.GROUPING_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:191:29: ( 'grouping-separator' ) + // xquery/XQueryLexer.g:191:31: 'grouping-separator' + this.match("grouping-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GROUPING_SEPARATOR", + + // $ANTLR start INFINITY + mINFINITY: function() { + try { + var _type = this.INFINITY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:192:29: ( 'infinity' ) + // xquery/XQueryLexer.g:192:31: 'infinity' + this.match("infinity"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INFINITY", + + // $ANTLR start MINUS_SIGN + mMINUS_SIGN: function() { + try { + var _type = this.MINUS_SIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:193:29: ( 'minus-sign' ) + // xquery/XQueryLexer.g:193:31: 'minus-sign' + this.match("minus-sign"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MINUS_SIGN", + + // $ANTLR start NAMESPACE_NODE + mNAMESPACE_NODE: function() { + try { + var _type = this.NAMESPACE_NODE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:194:29: ( 'namespace-node' ) + // xquery/XQueryLexer.g:194:31: 'namespace-node' + this.match("namespace-node"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAMESPACE_NODE", + + // $ANTLR start NAN + mNAN: function() { + try { + var _type = this.NAN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:195:29: ( 'NaN' ) + // xquery/XQueryLexer.g:195:31: 'NaN' + this.match("NaN"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NAN", + + // $ANTLR start NEXT + mNEXT: function() { + try { + var _type = this.NEXT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:196:29: ( 'next' ) + // xquery/XQueryLexer.g:196:31: 'next' + this.match("next"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NEXT", + + // $ANTLR start ONLY + mONLY: function() { + try { + var _type = this.ONLY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:197:29: ( 'only' ) + // xquery/XQueryLexer.g:197:31: 'only' + this.match("only"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ONLY", + + // $ANTLR start PATTERN_SEPARATOR + mPATTERN_SEPARATOR: function() { + try { + var _type = this.PATTERN_SEPARATOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:198:29: ( 'pattern-separator' ) + // xquery/XQueryLexer.g:198:31: 'pattern-separator' + this.match("pattern-separator"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PATTERN_SEPARATOR", + + // $ANTLR start PERCENT + mPERCENT: function() { + try { + var _type = this.PERCENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:199:29: ( 'percent' ) + // xquery/XQueryLexer.g:199:31: 'percent' + this.match("percent"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PERCENT", + + // $ANTLR start PER_MILLE + mPER_MILLE: function() { + try { + var _type = this.PER_MILLE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:200:29: ( 'per-mille' ) + // xquery/XQueryLexer.g:200:31: 'per-mille' + this.match("per-mille"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PER_MILLE", + + // $ANTLR start PREVIOUS + mPREVIOUS: function() { + try { + var _type = this.PREVIOUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:201:29: ( 'previous' ) + // xquery/XQueryLexer.g:201:31: 'previous' + this.match("previous"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PREVIOUS", + + // $ANTLR start SLIDING + mSLIDING: function() { + try { + var _type = this.SLIDING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:202:29: ( 'sliding' ) + // xquery/XQueryLexer.g:202:31: 'sliding' + this.match("sliding"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLIDING", + + // $ANTLR start START + mSTART: function() { + try { + var _type = this.START; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:203:29: ( 'start' ) + // xquery/XQueryLexer.g:203:31: 'start' + this.match("start"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "START", + + // $ANTLR start SWITCH + mSWITCH: function() { + try { + var _type = this.SWITCH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:204:29: ( 'switch' ) + // xquery/XQueryLexer.g:204:31: 'switch' + this.match("switch"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SWITCH", + + // $ANTLR start TRY + mTRY: function() { + try { + var _type = this.TRY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:205:29: ( 'try' ) + // xquery/XQueryLexer.g:205:31: 'try' + this.match("try"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TRY", + + // $ANTLR start TUMBLING + mTUMBLING: function() { + try { + var _type = this.TUMBLING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:206:29: ( 'tumbling' ) + // xquery/XQueryLexer.g:206:31: 'tumbling' + this.match("tumbling"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TUMBLING", + + // $ANTLR start TYPE + mTYPE: function() { + try { + var _type = this.TYPE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:207:29: ( 'type' ) + // xquery/XQueryLexer.g:207:31: 'type' + this.match("type"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TYPE", + + // $ANTLR start WHEN + mWHEN: function() { + try { + var _type = this.WHEN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:208:29: ( 'when' ) + // xquery/XQueryLexer.g:208:31: 'when' + this.match("when"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHEN", + + // $ANTLR start WINDOW + mWINDOW: function() { + try { + var _type = this.WINDOW; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:209:29: ( 'window' ) + // xquery/XQueryLexer.g:209:31: 'window' + this.match("window"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WINDOW", + + // $ANTLR start ZERO_DIGIT + mZERO_DIGIT: function() { + try { + var _type = this.ZERO_DIGIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:210:29: ( 'zero-digit' ) + // xquery/XQueryLexer.g:210:31: 'zero-digit' + this.match("zero-digit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ZERO_DIGIT", + + // $ANTLR start AFTER + mAFTER: function() { + try { + var _type = this.AFTER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:212:29: ( 'after' ) + // xquery/XQueryLexer.g:212:31: 'after' + this.match("after"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AFTER", + + // $ANTLR start BEFORE + mBEFORE: function() { + try { + var _type = this.BEFORE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:213:29: ( 'before' ) + // xquery/XQueryLexer.g:213:31: 'before' + this.match("before"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BEFORE", + + // $ANTLR start COPY + mCOPY: function() { + try { + var _type = this.COPY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:214:29: ( 'copy' ) + // xquery/XQueryLexer.g:214:31: 'copy' + this.match("copy"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COPY", + + // $ANTLR start DELETE + mDELETE: function() { + try { + var _type = this.DELETE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:215:29: ( 'delete' ) + // xquery/XQueryLexer.g:215:31: 'delete' + this.match("delete"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DELETE", + + // $ANTLR start FIRST + mFIRST: function() { + try { + var _type = this.FIRST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:216:29: ( 'first' ) + // xquery/XQueryLexer.g:216:31: 'first' + this.match("first"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FIRST", + + // $ANTLR start INSERT + mINSERT: function() { + try { + var _type = this.INSERT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:217:29: ( 'insert' ) + // xquery/XQueryLexer.g:217:31: 'insert' + this.match("insert"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSERT", + + // $ANTLR start INTO + mINTO: function() { + try { + var _type = this.INTO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:218:29: ( 'into' ) + // xquery/XQueryLexer.g:218:31: 'into' + this.match("into"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTO", + + // $ANTLR start LAST + mLAST: function() { + try { + var _type = this.LAST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:219:29: ( 'last' ) + // xquery/XQueryLexer.g:219:31: 'last' + this.match("last"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LAST", + + // $ANTLR start MODIFY + mMODIFY: function() { + try { + var _type = this.MODIFY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:220:29: ( 'modify' ) + // xquery/XQueryLexer.g:220:31: 'modify' + this.match("modify"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MODIFY", + + // $ANTLR start NODES + mNODES: function() { + try { + var _type = this.NODES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:221:29: ( 'nodes' ) + // xquery/XQueryLexer.g:221:31: 'nodes' + this.match("nodes"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NODES", + + // $ANTLR start RENAME + mRENAME: function() { + try { + var _type = this.RENAME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:222:29: ( 'rename' ) + // xquery/XQueryLexer.g:222:31: 'rename' + this.match("rename"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RENAME", + + // $ANTLR start REPLACE + mREPLACE: function() { + try { + var _type = this.REPLACE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:223:29: ( 'replace' ) + // xquery/XQueryLexer.g:223:31: 'replace' + this.match("replace"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "REPLACE", + + // $ANTLR start REVALIDATION + mREVALIDATION: function() { + try { + var _type = this.REVALIDATION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:224:29: ( 'revalidation' ) + // xquery/XQueryLexer.g:224:31: 'revalidation' + this.match("revalidation"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "REVALIDATION", + + // $ANTLR start SKIP + mSKIP: function() { + try { + var _type = this.SKIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:225:29: ( 'skip' ) + // xquery/XQueryLexer.g:225:31: 'skip' + this.match("skip"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SKIP", + + // $ANTLR start UPDATING + mUPDATING: function() { + try { + var _type = this.UPDATING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:226:29: ( 'updating' ) + // xquery/XQueryLexer.g:226:31: 'updating' + this.match("updating"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UPDATING", + + // $ANTLR start VALUE + mVALUE: function() { + try { + var _type = this.VALUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:227:29: ( 'value' ) + // xquery/XQueryLexer.g:227:31: 'value' + this.match("value"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "VALUE", + + // $ANTLR start WITH + mWITH: function() { + try { + var _type = this.WITH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:228:29: ( 'with' ) + // xquery/XQueryLexer.g:228:31: 'with' + this.match("with"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WITH", + + // $ANTLR start ALL + mALL: function() { + try { + var _type = this.ALL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:230:29: ( 'all' ) + // xquery/XQueryLexer.g:230:31: 'all' + this.match("all"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ALL", + + // $ANTLR start ANY + mANY: function() { + try { + var _type = this.ANY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:231:29: ( 'any' ) + // xquery/XQueryLexer.g:231:31: 'any' + this.match("any"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANY", + + // $ANTLR start CONTAINS + mCONTAINS: function() { + try { + var _type = this.CONTAINS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:232:29: ( 'contains' ) + // xquery/XQueryLexer.g:232:31: 'contains' + this.match("contains"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTAINS", + + // $ANTLR start CONTENT + mCONTENT: function() { + try { + var _type = this.CONTENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:233:29: ( 'content' ) + // xquery/XQueryLexer.g:233:31: 'content' + this.match("content"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTENT", + + // $ANTLR start DIACRITICS + mDIACRITICS: function() { + try { + var _type = this.DIACRITICS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:234:29: ( 'diacritics' ) + // xquery/XQueryLexer.g:234:31: 'diacritics' + this.match("diacritics"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIACRITICS", + + // $ANTLR start DIFFERENT + mDIFFERENT: function() { + try { + var _type = this.DIFFERENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:235:29: ( 'different' ) + // xquery/XQueryLexer.g:235:31: 'different' + this.match("different"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DIFFERENT", + + // $ANTLR start DISTANCE + mDISTANCE: function() { + try { + var _type = this.DISTANCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:236:29: ( 'distance' ) + // xquery/XQueryLexer.g:236:31: 'distance' + this.match("distance"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DISTANCE", + + // $ANTLR start ENTIRE + mENTIRE: function() { + try { + var _type = this.ENTIRE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:237:29: ( 'entire' ) + // xquery/XQueryLexer.g:237:31: 'entire' + this.match("entire"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ENTIRE", + + // $ANTLR start EXACTLY + mEXACTLY: function() { + try { + var _type = this.EXACTLY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:238:29: ( 'exactly' ) + // xquery/XQueryLexer.g:238:31: 'exactly' + this.match("exactly"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXACTLY", + + // $ANTLR start FROM + mFROM: function() { + try { + var _type = this.FROM; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:239:29: ( 'from' ) + // xquery/XQueryLexer.g:239:31: 'from' + this.match("from"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FROM", + + // $ANTLR start FT_OPTION + mFT_OPTION: function() { + try { + var _type = this.FT_OPTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:240:29: ( 'ft-option' ) + // xquery/XQueryLexer.g:240:31: 'ft-option' + this.match("ft-option"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FT_OPTION", + + // $ANTLR start FTAND + mFTAND: function() { + try { + var _type = this.FTAND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:241:29: ( 'ftand' ) + // xquery/XQueryLexer.g:241:31: 'ftand' + this.match("ftand"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTAND", + + // $ANTLR start FTNOT + mFTNOT: function() { + try { + var _type = this.FTNOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:242:29: ( 'ftnot' ) + // xquery/XQueryLexer.g:242:31: 'ftnot' + this.match("ftnot"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTNOT", + + // $ANTLR start FTOR + mFTOR: function() { + try { + var _type = this.FTOR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:243:29: ( 'ftor' ) + // xquery/XQueryLexer.g:243:31: 'ftor' + this.match("ftor"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FTOR", + + // $ANTLR start INSENSITIVE + mINSENSITIVE: function() { + try { + var _type = this.INSENSITIVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:244:29: ( 'insensitive' ) + // xquery/XQueryLexer.g:244:31: 'insensitive' + this.match("insensitive"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INSENSITIVE", + + // $ANTLR start LANGUAGE + mLANGUAGE: function() { + try { + var _type = this.LANGUAGE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:245:29: ( 'language' ) + // xquery/XQueryLexer.g:245:31: 'language' + this.match("language"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LANGUAGE", + + // $ANTLR start LEVELS + mLEVELS: function() { + try { + var _type = this.LEVELS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:246:29: ( 'levels' ) + // xquery/XQueryLexer.g:246:31: 'levels' + this.match("levels"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LEVELS", + + // $ANTLR start LOWERCASE + mLOWERCASE: function() { + try { + var _type = this.LOWERCASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:247:29: ( 'lowercase' ) + // xquery/XQueryLexer.g:247:31: 'lowercase' + this.match("lowercase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LOWERCASE", + + // $ANTLR start MOST + mMOST: function() { + try { + var _type = this.MOST; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:248:29: ( 'most' ) + // xquery/XQueryLexer.g:248:31: 'most' + this.match("most"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MOST", + + // $ANTLR start NO + mNO: function() { + try { + var _type = this.NO; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:249:29: ( 'no' ) + // xquery/XQueryLexer.g:249:31: 'no' + this.match("no"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NO", + + // $ANTLR start NOT + mNOT: function() { + try { + var _type = this.NOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:250:29: ( 'not' ) + // xquery/XQueryLexer.g:250:31: 'not' + this.match("not"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NOT", + + // $ANTLR start OCCURS + mOCCURS: function() { + try { + var _type = this.OCCURS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:251:29: ( 'occurs' ) + // xquery/XQueryLexer.g:251:31: 'occurs' + this.match("occurs"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "OCCURS", + + // $ANTLR start PARAGRAPH + mPARAGRAPH: function() { + try { + var _type = this.PARAGRAPH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:252:29: ( 'paragraph' ) + // xquery/XQueryLexer.g:252:31: 'paragraph' + this.match("paragraph"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARAGRAPH", + + // $ANTLR start PARAGRAPHS + mPARAGRAPHS: function() { + try { + var _type = this.PARAGRAPHS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:253:29: ( 'paragraphs' ) + // xquery/XQueryLexer.g:253:31: 'paragraphs' + this.match("paragraphs"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PARAGRAPHS", + + // $ANTLR start PHRASE + mPHRASE: function() { + try { + var _type = this.PHRASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:254:29: ( 'phrase' ) + // xquery/XQueryLexer.g:254:31: 'phrase' + this.match("phrase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PHRASE", + + // $ANTLR start RELATIONSHIP + mRELATIONSHIP: function() { + try { + var _type = this.RELATIONSHIP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:255:29: ( 'relationship' ) + // xquery/XQueryLexer.g:255:31: 'relationship' + this.match("relationship"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RELATIONSHIP", + + // $ANTLR start SAME + mSAME: function() { + try { + var _type = this.SAME; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:256:29: ( 'same' ) + // xquery/XQueryLexer.g:256:31: 'same' + this.match("same"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SAME", + + // $ANTLR start SCORE + mSCORE: function() { + try { + var _type = this.SCORE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:257:29: ( 'score' ) + // xquery/XQueryLexer.g:257:31: 'score' + this.match("score"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SCORE", + + // $ANTLR start SENSITIVE + mSENSITIVE: function() { + try { + var _type = this.SENSITIVE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:258:29: ( 'sensitive' ) + // xquery/XQueryLexer.g:258:31: 'sensitive' + this.match("sensitive"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENSITIVE", + + // $ANTLR start SENTENCE + mSENTENCE: function() { + try { + var _type = this.SENTENCE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:259:29: ( 'sentence' ) + // xquery/XQueryLexer.g:259:31: 'sentence' + this.match("sentence"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENTENCE", + + // $ANTLR start SENTENCES + mSENTENCES: function() { + try { + var _type = this.SENTENCES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:260:29: ( 'sentences' ) + // xquery/XQueryLexer.g:260:31: 'sentences' + this.match("sentences"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SENTENCES", + + // $ANTLR start STEMMING + mSTEMMING: function() { + try { + var _type = this.STEMMING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:261:29: ( 'stemming' ) + // xquery/XQueryLexer.g:261:31: 'stemming' + this.match("stemming"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STEMMING", + + // $ANTLR start STOP + mSTOP: function() { + try { + var _type = this.STOP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:262:29: ( 'stop' ) + // xquery/XQueryLexer.g:262:31: 'stop' + this.match("stop"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STOP", + + // $ANTLR start THESAURUS + mTHESAURUS: function() { + try { + var _type = this.THESAURUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:263:29: ( 'thesaurus' ) + // xquery/XQueryLexer.g:263:31: 'thesaurus' + this.match("thesaurus"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "THESAURUS", + + // $ANTLR start TIMES + mTIMES: function() { + try { + var _type = this.TIMES; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:264:29: ( 'times' ) + // xquery/XQueryLexer.g:264:31: 'times' + this.match("times"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "TIMES", + + // $ANTLR start UPPERCASE + mUPPERCASE: function() { + try { + var _type = this.UPPERCASE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:265:29: ( 'uppercase' ) + // xquery/XQueryLexer.g:265:31: 'uppercase' + this.match("uppercase"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UPPERCASE", + + // $ANTLR start USING + mUSING: function() { + try { + var _type = this.USING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:266:29: ( 'using' ) + // xquery/XQueryLexer.g:266:31: 'using' + this.match("using"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "USING", + + // $ANTLR start WEIGHT + mWEIGHT: function() { + try { + var _type = this.WEIGHT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:267:29: ( 'weight' ) + // xquery/XQueryLexer.g:267:31: 'weight' + this.match("weight"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WEIGHT", + + // $ANTLR start WILDCARDS + mWILDCARDS: function() { + try { + var _type = this.WILDCARDS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:268:29: ( 'wildcards' ) + // xquery/XQueryLexer.g:268:31: 'wildcards' + this.match("wildcards"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WILDCARDS", + + // $ANTLR start WITHOUT + mWITHOUT: function() { + try { + var _type = this.WITHOUT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:269:29: ( 'without' ) + // xquery/XQueryLexer.g:269:31: 'without' + this.match("without"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WITHOUT", + + // $ANTLR start WORD + mWORD: function() { + try { + var _type = this.WORD; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:270:29: ( 'word' ) + // xquery/XQueryLexer.g:270:31: 'word' + this.match("word"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WORD", + + // $ANTLR start WORDS + mWORDS: function() { + try { + var _type = this.WORDS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:271:29: ( 'words' ) + // xquery/XQueryLexer.g:271:31: 'words' + this.match("words"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WORDS", + + // $ANTLR start BREAK + mBREAK: function() { + try { + var _type = this.BREAK; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:273:29: ( 'break' ) + // xquery/XQueryLexer.g:273:31: 'break' + this.match("break"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BREAK", + + // $ANTLR start CONTINUE + mCONTINUE: function() { + try { + var _type = this.CONTINUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:274:29: ( 'continue' ) + // xquery/XQueryLexer.g:274:31: 'continue' + this.match("continue"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONTINUE", + + // $ANTLR start EXIT + mEXIT: function() { + try { + var _type = this.EXIT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:275:29: ( 'exit' ) + // xquery/XQueryLexer.g:275:31: 'exit' + this.match("exit"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EXIT", + + // $ANTLR start LOOP + mLOOP: function() { + try { + var _type = this.LOOP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:276:29: ( 'loop' ) + // xquery/XQueryLexer.g:276:31: 'loop' + this.match("loop"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LOOP", + + // $ANTLR start RETURNING + mRETURNING: function() { + try { + var _type = this.RETURNING; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:277:29: ( 'returning' ) + // xquery/XQueryLexer.g:277:31: 'returning' + this.match("returning"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RETURNING", + + // $ANTLR start WHILE + mWHILE: function() { + try { + var _type = this.WHILE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:278:29: ( 'while' ) + // xquery/XQueryLexer.g:278:31: 'while' + this.match("while"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "WHILE", + + // $ANTLR start CHECK + mCHECK: function() { + try { + var _type = this.CHECK; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:280:29: ( 'check' ) + // xquery/XQueryLexer.g:280:31: 'check' + this.match("check"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHECK", + + // $ANTLR start COLLECTION + mCOLLECTION: function() { + try { + var _type = this.COLLECTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:281:29: ( 'collection' ) + // xquery/XQueryLexer.g:281:31: 'collection' + this.match("collection"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLLECTION", + + // $ANTLR start CONSTRAINT + mCONSTRAINT: function() { + try { + var _type = this.CONSTRAINT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:282:29: ( 'constraint' ) + // xquery/XQueryLexer.g:282:31: 'constraint' + this.match("constraint"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONSTRAINT", + + // $ANTLR start FOREACH + mFOREACH: function() { + try { + var _type = this.FOREACH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:283:29: ( 'foreach' ) + // xquery/XQueryLexer.g:283:31: 'foreach' + this.match("foreach"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOREACH", + + // $ANTLR start FOREIGN + mFOREIGN: function() { + try { + var _type = this.FOREIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:284:29: ( 'foreign' ) + // xquery/XQueryLexer.g:284:31: 'foreign' + this.match("foreign"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "FOREIGN", + + // $ANTLR start INDEX + mINDEX: function() { + try { + var _type = this.INDEX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:285:29: ( 'index' ) + // xquery/XQueryLexer.g:285:31: 'index' + this.match("index"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INDEX", + + // $ANTLR start INTEGRITY + mINTEGRITY: function() { + try { + var _type = this.INTEGRITY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:286:29: ( 'integrity' ) + // xquery/XQueryLexer.g:286:31: 'integrity' + this.match("integrity"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "INTEGRITY", + + // $ANTLR start KEY + mKEY: function() { + try { + var _type = this.KEY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:287:29: ( 'key' ) + // xquery/XQueryLexer.g:287:31: 'key' + this.match("key"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "KEY", + + // $ANTLR start ON + mON: function() { + try { + var _type = this.ON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:288:29: ( 'on' ) + // xquery/XQueryLexer.g:288:31: 'on' + this.match("on"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ON", + + // $ANTLR start UNIQUE + mUNIQUE: function() { + try { + var _type = this.UNIQUE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:289:29: ( 'unique' ) + // xquery/XQueryLexer.g:289:31: 'unique' + this.match("unique"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "UNIQUE", + + // $ANTLR start BINARY + mBINARY: function() { + try { + var _type = this.BINARY; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:291:29: ( 'binary' ) + // xquery/XQueryLexer.g:291:31: 'binary' + this.match("binary"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BINARY", + + // $ANTLR start AMP_ER + mAMP_ER: function() { + try { + var _type = this.AMP_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:294:9: ( 'amp' ) + // xquery/XQueryLexer.g:294:11: 'amp' + this.match("amp"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AMP_ER", + + // $ANTLR start APOS_ER + mAPOS_ER: function() { + try { + var _type = this.APOS_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:295:9: ( 'apos' ) + // xquery/XQueryLexer.g:295:11: 'apos' + this.match("apos"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS_ER", + + // $ANTLR start QUOT_ER + mQUOT_ER: function() { + try { + var _type = this.QUOT_ER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:296:9: ( 'quot' ) + // xquery/XQueryLexer.g:296:11: 'quot' + this.match("quot"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT_ER", + + // $ANTLR start CONCAT + mCONCAT: function() { + try { + var _type = this.CONCAT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:303:25: ( '||' ) + // xquery/XQueryLexer.g:303:27: '||' + this.match("||"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CONCAT", + + // $ANTLR start LPAREN + mLPAREN: function() { + try { + var _type = this.LPAREN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:304:25: ( '(' ) + // xquery/XQueryLexer.g:304:27: '(' + this.match('('); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LPAREN", + + // $ANTLR start RPAREN + mRPAREN: function() { + try { + var _type = this.RPAREN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:305:25: ( ')' ) + // xquery/XQueryLexer.g:305:27: ')' + this.match(')'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RPAREN", + + // $ANTLR start DOLLAR + mDOLLAR: function() { + try { + var _type = this.DOLLAR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:306:25: ( '$' ) + // xquery/XQueryLexer.g:306:27: '$' + this.match('$'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOLLAR", + + // $ANTLR start LBRACKET + mLBRACKET: function() { + try { + var _type = this.LBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:307:25: ( '{' ) + // xquery/XQueryLexer.g:307:27: '{' + this.match('{'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LBRACKET", + + // $ANTLR start RBRACKET + mRBRACKET: function() { + try { + var _type = this.RBRACKET; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:308:25: ( '}' ) + // xquery/XQueryLexer.g:308:27: '}' + this.match('}'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RBRACKET", + + // $ANTLR start LSQUARE + mLSQUARE: function() { + try { + var _type = this.LSQUARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:309:25: ( '[' ) + // xquery/XQueryLexer.g:309:27: '[' + this.match('['); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "LSQUARE", + + // $ANTLR start RSQUARE + mRSQUARE: function() { + try { + var _type = this.RSQUARE; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:310:25: ( ']' ) + // xquery/XQueryLexer.g:310:27: ']' + this.match(']'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "RSQUARE", + + // $ANTLR start EQUAL + mEQUAL: function() { + try { + var _type = this.EQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:311:25: ( '=' ) + // xquery/XQueryLexer.g:311:27: '=' + this.match('='); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EQUAL", + + // $ANTLR start BIND + mBIND: function() { + try { + var _type = this.BIND; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:312:25: ( ':=' ) + // xquery/XQueryLexer.g:312:27: ':=' + this.match(":="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "BIND", + + // $ANTLR start NOTEQUAL + mNOTEQUAL: function() { + try { + var _type = this.NOTEQUAL; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:313:25: ( '!=' ) + // xquery/XQueryLexer.g:313:27: '!=' + this.match("!="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "NOTEQUAL", + + // $ANTLR start ANN_PERCENT + mANN_PERCENT: function() { + try { + var _type = this.ANN_PERCENT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:314:25: ( '%' ) + // xquery/XQueryLexer.g:314:27: '%' + this.match('%'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ANN_PERCENT", + + // $ANTLR start HASH + mHASH: function() { + try { + var _type = this.HASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:315:25: ( '#' ) + // xquery/XQueryLexer.g:315:27: '#' + this.match('#'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "HASH", + + // $ANTLR start AMP + mAMP: function() { + try { + var _type = this.AMP; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:316:25: ( '&' ) + // xquery/XQueryLexer.g:316:27: '&' + this.match('&'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "AMP", + + // $ANTLR start COMMA + mCOMMA: function() { + try { + var _type = this.COMMA; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:317:25: ( ',' ) + // xquery/XQueryLexer.g:317:27: ',' + this.match(','); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COMMA", + + // $ANTLR start QUESTION + mQUESTION: function() { + try { + var _type = this.QUESTION; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:318:25: ( '?' ) + // xquery/XQueryLexer.g:318:27: '?' + this.match('?'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUESTION", + + // $ANTLR start STAR + mSTAR: function() { + try { + var _type = this.STAR; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:319:25: ( '*' ) + // xquery/XQueryLexer.g:319:27: '*' + this.match('*'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "STAR", + + // $ANTLR start PLUS + mPLUS: function() { + try { + var _type = this.PLUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:320:25: ( '+' ) + // xquery/XQueryLexer.g:320:27: '+' + this.match('+'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PLUS", + + // $ANTLR start MINUS + mMINUS: function() { + try { + var _type = this.MINUS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:321:25: ( '-' ) + // xquery/XQueryLexer.g:321:27: '-' + this.match('-'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "MINUS", + + // $ANTLR start SMALLER + mSMALLER: function() { + try { + var _type = this.SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:322:25: ( '<' ) + // xquery/XQueryLexer.g:322:27: '<' + this.match('<'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER", + + // $ANTLR start GREATER + mGREATER: function() { + try { + var _type = this.GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:323:25: ( '>' ) + // xquery/XQueryLexer.g:323:27: '>' + this.match('>'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER", + + // $ANTLR start SMALLEREQ + mSMALLEREQ: function() { + try { + var _type = this.SMALLEREQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:324:25: ( '<=' ) + // xquery/XQueryLexer.g:324:27: '<=' + this.match("<="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLEREQ", + + // $ANTLR start GREATEREQ + mGREATEREQ: function() { + try { + var _type = this.GREATEREQ; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:325:25: ( '>=' ) + // xquery/XQueryLexer.g:325:27: '>=' + this.match(">="); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATEREQ", + + // $ANTLR start SMALLER_SMALLER + mSMALLER_SMALLER: function() { + try { + var _type = this.SMALLER_SMALLER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:326:25: ( '<<' ) + // xquery/XQueryLexer.g:326:27: '<<' + this.match("<<"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SMALLER_SMALLER", + + // $ANTLR start GREATER_GREATER + mGREATER_GREATER: function() { + try { + var _type = this.GREATER_GREATER; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:327:25: ( '>>' ) + // xquery/XQueryLexer.g:327:27: '>>' + this.match(">>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "GREATER_GREATER", + + // $ANTLR start SLASH + mSLASH: function() { + try { + var _type = this.SLASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:328:25: ( '/' ) + // xquery/XQueryLexer.g:328:27: '/' + this.match('/'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLASH", + + // $ANTLR start SLASH_SLASH + mSLASH_SLASH: function() { + try { + var _type = this.SLASH_SLASH; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:329:25: ( '//' ) + // xquery/XQueryLexer.g:329:27: '//' + this.match("//"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "SLASH_SLASH", + + // $ANTLR start DOT + mDOT: function() { + try { + var _type = this.DOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:330:25: ( '.' ) + // xquery/XQueryLexer.g:330:27: '.' + this.match('.'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOT", + + // $ANTLR start DOT_DOT + mDOT_DOT: function() { + try { + var _type = this.DOT_DOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:331:25: ( '..' ) + // xquery/XQueryLexer.g:331:27: '..' + this.match(".."); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "DOT_DOT", + + // $ANTLR start COLON + mCOLON: function() { + try { + var _type = this.COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:332:25: ( ':' ) + // xquery/XQueryLexer.g:332:27: ':' + this.match(':'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON", + + // $ANTLR start COLON_COLON + mCOLON_COLON: function() { + try { + var _type = this.COLON_COLON; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:333:25: ( '::' ) + // xquery/XQueryLexer.g:333:27: '::' + this.match("::"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "COLON_COLON", + + // $ANTLR start EMPTY_CLOSE_TAG + mEMPTY_CLOSE_TAG: function() { + try { + var _type = this.EMPTY_CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:334:25: ( '/>' ) + // xquery/XQueryLexer.g:334:27: '/>' + this.match("/>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "EMPTY_CLOSE_TAG", + + // $ANTLR start CLOSE_TAG + mCLOSE_TAG: function() { + try { + var _type = this.CLOSE_TAG; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:335:25: ( '' ) + // xquery/XQueryLexer.g:341:27: '-->' + this.match("-->"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "XML_COMMENT_END", + + // $ANTLR start PI_START + mPI_START: function() { + try { + var _type = this.PI_START; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:342:25: ( '' ) + // xquery/XQueryLexer.g:343:27: '?>' + this.match("?>"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "PI_END", + + // $ANTLR start ATTR_SIGN + mATTR_SIGN: function() { + try { + var _type = this.ATTR_SIGN; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:344:25: ( '@' ) + // xquery/XQueryLexer.g:344:27: '@' + this.match('@'); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "ATTR_SIGN", + + // $ANTLR start CHARREF_DEC + mCHARREF_DEC: function() { + try { + var _type = this.CHARREF_DEC; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:345:25: ( '&#' ) + // xquery/XQueryLexer.g:345:27: '&#' + this.match("&#"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHARREF_DEC", + + // $ANTLR start CHARREF_HEX + mCHARREF_HEX: function() { + try { + var _type = this.CHARREF_HEX; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:346:25: ( '&#x' ) + // xquery/XQueryLexer.g:346:27: '&#x' + this.match("&#x"); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "CHARREF_HEX", + + // $ANTLR start APOS + mAPOS: function() { + try { + var _type = this.APOS; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:347:25: ( '\\'' ) + // xquery/XQueryLexer.g:347:27: '\\'' + this.match('\''); + if (!this.inStr) this.inStr = true; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "APOS", + + // $ANTLR start QUOT + mQUOT: function() { + try { + var _type = this.QUOT; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:348:25: ( '\"' ) + // xquery/XQueryLexer.g:348:27: '\"' + this.match('\"'); + if (!this.inStr) this.inStr = true; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "QUOT", + + // $ANTLR start L_NCName + mL_NCName: function() { + try { + var _type = this.L_NCName; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:352:9: ( NCNameStartChar ( NCNameChar )* ) + // xquery/XQueryLexer.g:352:13: NCNameStartChar ( NCNameChar )* + this.mNCNameStartChar(); + // xquery/XQueryLexer.g:352:29: ( NCNameChar )* + loop1: + do { + var alt1=2; + var LA1_0 = this.input.LA(1); + + if ( ((LA1_0>='-' && LA1_0<='.')||(LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) { + alt1=1; + } + + + switch (alt1) { + case 1 : + // xquery/XQueryLexer.g:352:29: NCNameChar + this.mNCNameChar(); + + + break; + + default : + break loop1; + } + } while (true); + + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_NCName", + + // $ANTLR start Letter + mLetter: function() { + try { + // xquery/XQueryLexer.g:355:29: ( 'a' .. 'z' | 'A' .. 'Z' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "Letter", + + // $ANTLR start HexLetter + mHexLetter: function() { + try { + // xquery/XQueryLexer.g:356:29: ( 'a' .. 'f' | 'A' .. 'F' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='F')||(this.input.LA(1)>='a' && this.input.LA(1)<='f') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "HexLetter", + + // $ANTLR start Digit + mDigit: function() { + try { + // xquery/XQueryLexer.g:357:29: ( '0' .. '9' ) + // xquery/XQueryLexer.g:357:31: '0' .. '9' + this.matchRange('0','9'); + + + + } + finally { + } + }, + // $ANTLR end "Digit", + + // $ANTLR start Digits + mDigits: function() { + try { + // xquery/XQueryLexer.g:358:29: ( ( Digit )+ ) + // xquery/XQueryLexer.g:358:31: ( Digit )+ + // xquery/XQueryLexer.g:358:31: ( Digit )+ + var cnt2=0; + loop2: + do { + var alt2=2; + var LA2_0 = this.input.LA(1); + + if ( ((LA2_0>='0' && LA2_0<='9')) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // xquery/XQueryLexer.g:358:31: Digit + this.mDigit(); + + + break; + + default : + if ( cnt2 >= 1 ) { + break loop2; + } + var eee = new org.antlr.runtime.EarlyExitException(2, this.input); + throw eee; + } + cnt2++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "Digits", + + // $ANTLR start NCNameStartChar + mNCNameStartChar: function() { + try { + // xquery/XQueryLexer.g:360:29: ( Letter | '_' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameStartChar", + + // $ANTLR start NCNameChar + mNCNameChar: function() { + try { + // xquery/XQueryLexer.g:361:29: ( Letter | Digit | '.' | '-' | '_' ) + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='-' && this.input.LA(1)<='.')||(this.input.LA(1)>='0' && this.input.LA(1)<='9')||(this.input.LA(1)>='A' && this.input.LA(1)<='Z')||this.input.LA(1)=='_'||(this.input.LA(1)>='a' && this.input.LA(1)<='z') ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + + } + finally { + } + }, + // $ANTLR end "NCNameChar", + + // $ANTLR start S + mS: function() { + try { + var _type = this.S; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:364:9: ( ( '\\t' | ' ' | '\\n' | '\\r' )+ ) + // xquery/XQueryLexer.g:364:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + // xquery/XQueryLexer.g:364:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + var cnt3=0; + loop3: + do { + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( ((LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||LA3_0==' ') ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt3 >= 1 ) { + break loop3; + } + var eee = new org.antlr.runtime.EarlyExitException(3, this.input); + throw eee; + } + cnt3++; + } while (true); + + _channel = HIDDEN; + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "S", + + // $ANTLR start SU + mSU: function() { + try { + // xquery/XQueryLexer.g:367:9: ( ( '\\t' | ' ' | '\\n' | '\\r' )+ ) + // xquery/XQueryLexer.g:367:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + // xquery/XQueryLexer.g:367:11: ( '\\t' | ' ' | '\\n' | '\\r' )+ + var cnt4=0; + loop4: + do { + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( ((LA4_0>='\t' && LA4_0<='\n')||LA4_0=='\r'||LA4_0==' ') ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // xquery/XQueryLexer.g: + if ( (this.input.LA(1)>='\t' && this.input.LA(1)<='\n')||this.input.LA(1)=='\r'||this.input.LA(1)==' ' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + default : + if ( cnt4 >= 1 ) { + break loop4; + } + var eee = new org.antlr.runtime.EarlyExitException(4, this.input); + throw eee; + } + cnt4++; + } while (true); + + + + + } + finally { + } + }, + // $ANTLR end "SU", + + // $ANTLR start L_Pragma + mL_Pragma: function() { + try { + var _type = this.L_Pragma; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:378:9: ( PRAGMA_START ( SU )? L_NCName COLON L_NCName ( SU ( options {greedy=false; } : . )* )? PRAGMA_END ) + // xquery/XQueryLexer.g:378:11: PRAGMA_START ( SU )? L_NCName COLON L_NCName ( SU ( options {greedy=false; } : . )* )? PRAGMA_END + this.mPRAGMA_START(); + // xquery/XQueryLexer.g:378:24: ( SU )? + var alt5=2; + var LA5_0 = this.input.LA(1); + + if ( ((LA5_0>='\t' && LA5_0<='\n')||LA5_0=='\r'||LA5_0==' ') ) { + alt5=1; + } + switch (alt5) { + case 1 : + // xquery/XQueryLexer.g:378:24: SU + this.mSU(); + + + break; + + } + + this.mL_NCName(); + this.mCOLON(); + this.mL_NCName(); + // xquery/XQueryLexer.g:378:52: ( SU ( options {greedy=false; } : . )* )? + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0=='\r'||LA7_0==' ') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // xquery/XQueryLexer.g:378:53: SU ( options {greedy=false; } : . )* + this.mSU(); + // xquery/XQueryLexer.g:378:56: ( options {greedy=false; } : . )* + loop6: + do { + var alt6=2; + var LA6_0 = this.input.LA(1); + + if ( (LA6_0=='#') ) { + var LA6_1 = this.input.LA(2); + + if ( (LA6_1==')') ) { + alt6=2; + } + else if ( ((LA6_1>='\u0000' && LA6_1<='(')||(LA6_1>='*' && LA6_1<='\uFFFF')) ) { + alt6=1; + } + + + } + else if ( ((LA6_0>='\u0000' && LA6_0<='\"')||(LA6_0>='$' && LA6_0<='\uFFFF')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // xquery/XQueryLexer.g:378:83: . + this.matchAny(); + + + break; + + default : + break loop6; + } + } while (true); + + + + break; + + } + + this.mPRAGMA_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_Pragma", + + // $ANTLR start L_DirCommentConstructor + mL_DirCommentConstructor: function() { + try { + var _type = this.L_DirCommentConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:388:9: ( XML_COMMENT_START ( options {greedy=false; } : ( . )* ) XML_COMMENT_END ) + // xquery/XQueryLexer.g:388:11: XML_COMMENT_START ( options {greedy=false; } : ( . )* ) XML_COMMENT_END + this.mXML_COMMENT_START(); + // xquery/XQueryLexer.g:388:29: ( options {greedy=false; } : ( . )* ) + // xquery/XQueryLexer.g:388:56: ( . )* + // xquery/XQueryLexer.g:388:56: ( . )* + loop8: + do { + var alt8=2; + var LA8_0 = this.input.LA(1); + + if ( (LA8_0=='-') ) { + var LA8_1 = this.input.LA(2); + + if ( (LA8_1=='-') ) { + var LA8_3 = this.input.LA(3); + + if ( (LA8_3=='>') ) { + alt8=2; + } + else if ( ((LA8_3>='\u0000' && LA8_3<='=')||(LA8_3>='?' && LA8_3<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_1>='\u0000' && LA8_1<=',')||(LA8_1>='.' && LA8_1<='\uFFFF')) ) { + alt8=1; + } + + + } + else if ( ((LA8_0>='\u0000' && LA8_0<=',')||(LA8_0>='.' && LA8_0<='\uFFFF')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // xquery/XQueryLexer.g:388:56: . + this.matchAny(); + + + break; + + default : + break loop8; + } + } while (true); + + + + + this.mXML_COMMENT_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirCommentConstructor", + + // $ANTLR start L_DirPIConstructor + mL_DirPIConstructor: function() { + try { + var _type = this.L_DirPIConstructor; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:397:9: ( PI_START ( SU )? L_NCName ( SU ( options {greedy=false; } : ( . )* ) )? PI_END ) + // xquery/XQueryLexer.g:397:11: PI_START ( SU )? L_NCName ( SU ( options {greedy=false; } : ( . )* ) )? PI_END + this.mPI_START(); + // xquery/XQueryLexer.g:397:20: ( SU )? + var alt9=2; + var LA9_0 = this.input.LA(1); + + if ( ((LA9_0>='\t' && LA9_0<='\n')||LA9_0=='\r'||LA9_0==' ') ) { + alt9=1; + } + switch (alt9) { + case 1 : + // xquery/XQueryLexer.g:397:20: SU + this.mSU(); + + + break; + + } + + this.mL_NCName(); + // xquery/XQueryLexer.g:397:33: ( SU ( options {greedy=false; } : ( . )* ) )? + var alt11=2; + var LA11_0 = this.input.LA(1); + + if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) { + alt11=1; + } + switch (alt11) { + case 1 : + // xquery/XQueryLexer.g:397:34: SU ( options {greedy=false; } : ( . )* ) + this.mSU(); + // xquery/XQueryLexer.g:397:36: ( options {greedy=false; } : ( . )* ) + // xquery/XQueryLexer.g:397:63: ( . )* + // xquery/XQueryLexer.g:397:63: ( . )* + loop10: + do { + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0=='?') ) { + var LA10_1 = this.input.LA(2); + + if ( (LA10_1=='>') ) { + alt10=2; + } + else if ( ((LA10_1>='\u0000' && LA10_1<='=')||(LA10_1>='?' && LA10_1<='\uFFFF')) ) { + alt10=1; + } + + + } + else if ( ((LA10_0>='\u0000' && LA10_0<='>')||(LA10_0>='@' && LA10_0<='\uFFFF')) ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // xquery/XQueryLexer.g:397:63: . + this.matchAny(); + + + break; + + default : + break loop10; + } + } while (true); + + + + + + + break; + + } + + this.mPI_END(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DirPIConstructor", + + // $ANTLR start L_IntegerLiteral + mL_IntegerLiteral: function() { + try { + var _type = this.L_IntegerLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:405:9: ( Digits ) + // xquery/XQueryLexer.g:405:13: Digits + this.mDigits(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_IntegerLiteral", + + // $ANTLR start L_DecimalLiteral + mL_DecimalLiteral: function() { + try { + var _type = this.L_DecimalLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:410:9: ( ( '.' Digits ) | ( Digits '.' ( Digit )* ) ) + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0=='.') ) { + alt13=1; + } + else if ( ((LA13_0>='0' && LA13_0<='9')) ) { + alt13=2; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 13, 0, this.input); + + throw nvae; + } + switch (alt13) { + case 1 : + // xquery/XQueryLexer.g:410:11: ( '.' Digits ) + // xquery/XQueryLexer.g:410:11: ( '.' Digits ) + // xquery/XQueryLexer.g:410:12: '.' Digits + this.match('.'); + this.mDigits(); + + + + + + break; + case 2 : + // xquery/XQueryLexer.g:410:26: ( Digits '.' ( Digit )* ) + // xquery/XQueryLexer.g:410:26: ( Digits '.' ( Digit )* ) + // xquery/XQueryLexer.g:410:27: Digits '.' ( Digit )* + this.mDigits(); + this.match('.'); + // xquery/XQueryLexer.g:410:38: ( Digit )* + loop12: + do { + var alt12=2; + var LA12_0 = this.input.LA(1); + + if ( ((LA12_0>='0' && LA12_0<='9')) ) { + alt12=1; + } + + + switch (alt12) { + case 1 : + // xquery/XQueryLexer.g:410:38: Digit + this.mDigit(); + + + break; + + default : + break loop12; + } + } while (true); + + + + + + + break; + + } + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DecimalLiteral", + + // $ANTLR start L_DoubleLiteral + mL_DoubleLiteral: function() { + try { + var _type = this.L_DoubleLiteral; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:415:9: ( ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) ( 'e' | 'E' ) ( '+' | '-' )? Digits ) + // xquery/XQueryLexer.g:415:11: ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) ( 'e' | 'E' ) ( '+' | '-' )? Digits + // xquery/XQueryLexer.g:415:11: ( ( '.' Digits ) | ( Digits ( '.' ( Digit )* )? ) ) + var alt16=2; + var LA16_0 = this.input.LA(1); + + if ( (LA16_0=='.') ) { + alt16=1; + } + else if ( ((LA16_0>='0' && LA16_0<='9')) ) { + alt16=2; + } + else { + var nvae = + new org.antlr.runtime.NoViableAltException("", 16, 0, this.input); + + throw nvae; + } + switch (alt16) { + case 1 : + // xquery/XQueryLexer.g:415:12: ( '.' Digits ) + // xquery/XQueryLexer.g:415:12: ( '.' Digits ) + // xquery/XQueryLexer.g:415:13: '.' Digits + this.match('.'); + this.mDigits(); + + + + + + break; + case 2 : + // xquery/XQueryLexer.g:415:27: ( Digits ( '.' ( Digit )* )? ) + // xquery/XQueryLexer.g:415:27: ( Digits ( '.' ( Digit )* )? ) + // xquery/XQueryLexer.g:415:28: Digits ( '.' ( Digit )* )? + this.mDigits(); + // xquery/XQueryLexer.g:415:35: ( '.' ( Digit )* )? + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( (LA15_0=='.') ) { + alt15=1; + } + switch (alt15) { + case 1 : + // xquery/XQueryLexer.g:415:36: '.' ( Digit )* + this.match('.'); + // xquery/XQueryLexer.g:415:40: ( Digit )* + loop14: + do { + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( ((LA14_0>='0' && LA14_0<='9')) ) { + alt14=1; + } + + + switch (alt14) { + case 1 : + // xquery/XQueryLexer.g:415:40: Digit + this.mDigit(); + + + break; + + default : + break loop14; + } + } while (true); + + + + break; + + } + + + + + + + break; + + } + + if ( this.input.LA(1)=='E'||this.input.LA(1)=='e' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + // xquery/XQueryLexer.g:415:63: ( '+' | '-' )? + var alt17=2; + var LA17_0 = this.input.LA(1); + + if ( (LA17_0=='+'||LA17_0=='-') ) { + alt17=1; + } + switch (alt17) { + case 1 : + // xquery/XQueryLexer.g: + if ( this.input.LA(1)=='+'||this.input.LA(1)=='-' ) { + this.input.consume(); + + } + else { + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + this.recover(mse); + throw mse;} + + + + break; + + } + + this.mDigits(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_DoubleLiteral", + + // $ANTLR start L_Comment + mL_Comment: function() { + try { + var _type = this.L_Comment; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:420:9: ({...}? => '(:' ( options {greedy=false; } : L_Comment | . )* ':)' ) + // xquery/XQueryLexer.g:420:11: {...}? => '(:' ( options {greedy=false; } : L_Comment | . )* ':)' + if ( !((!this.inStr)) ) { + throw new org.antlr.runtime.FailedPredicateException(this.input, "L_Comment", "!this.inStr"); + } + this.match("(:"); + + // xquery/XQueryLexer.g:420:33: ( options {greedy=false; } : L_Comment | . )* + loop18: + do { + var alt18=3; + var LA18_0 = this.input.LA(1); + + if ( (LA18_0==':') ) { + var LA18_1 = this.input.LA(2); + + if ( (LA18_1==')') ) { + alt18=3; + } + else if ( ((LA18_1>='\u0000' && LA18_1<='(')||(LA18_1>='*' && LA18_1<='\uFFFF')) ) { + alt18=2; + } + + + } + else if ( (LA18_0=='(') ) { + var LA18_2 = this.input.LA(2); + + if ( (LA18_2==':') ) { + var LA18_5 = this.input.LA(3); + + if ( ((!this.inStr)) ) { + alt18=1; + } + else if ( (true) ) { + alt18=2; + } + + + } + else if ( ((LA18_2>='\u0000' && LA18_2<='9')||(LA18_2>=';' && LA18_2<='\uFFFF')) ) { + alt18=2; + } + + + } + else if ( ((LA18_0>='\u0000' && LA18_0<='\'')||(LA18_0>=')' && LA18_0<='9')||(LA18_0>=';' && LA18_0<='\uFFFF')) ) { + alt18=2; + } + + + switch (alt18) { + case 1 : + // xquery/XQueryLexer.g:420:59: L_Comment + this.mL_Comment(); + + + break; + case 2 : + // xquery/XQueryLexer.g:420:71: . + this.matchAny(); + + + break; + + default : + break loop18; + } + } while (true); + + this.match(":)"); + + _channel = HIDDEN; this.addComment(this.state.tokenStartCharIndex, (this.getCharIndex()-1)); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_Comment", + + // $ANTLR start L_AnyChar + mL_AnyChar: function() { + try { + var _type = this.L_AnyChar; + var _channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + // xquery/XQueryLexer.g:423:11: ( . ) + // xquery/XQueryLexer.g:423:13: . + this.matchAny(); + + + + this.state.type = _type; + this.state.channel = _channel; + } + finally { + } + }, + // $ANTLR end "L_AnyChar", + + mTokens: function() { + // xquery/XQueryLexer.g:1:8: ( ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | SWITCH | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER | CONCAT | LPAREN | RPAREN | DOLLAR | LBRACKET | RBRACKET | LSQUARE | RSQUARE | EQUAL | BIND | NOTEQUAL | ANN_PERCENT | HASH | AMP | COMMA | QUESTION | STAR | PLUS | MINUS | SMALLER | GREATER | SMALLEREQ | GREATEREQ | SMALLER_SMALLER | GREATER_GREATER | SLASH | SLASH_SLASH | DOT | DOT_DOT | COLON | COLON_COLON | EMPTY_CLOSE_TAG | CLOSE_TAG | SEMICOLON | VBAR | PRAGMA_START | PRAGMA_END | XML_COMMENT_START | XML_COMMENT_END | PI_START | PI_END | ATTR_SIGN | CHARREF_DEC | CHARREF_HEX | APOS | QUOT | L_NCName | S | L_Pragma | L_DirCommentConstructor | L_DirPIConstructor | L_IntegerLiteral | L_DecimalLiteral | L_DoubleLiteral | L_Comment | L_AnyChar ) + var alt19=260; + alt19 = this.dfa19.predict(this.input); + switch (alt19) { + case 1 : + // xquery/XQueryLexer.g:1:10: ANCESTOR + this.mANCESTOR(); + + + break; + case 2 : + // xquery/XQueryLexer.g:1:19: ANCESTOR_OR_SELF + this.mANCESTOR_OR_SELF(); + + + break; + case 3 : + // xquery/XQueryLexer.g:1:36: AND + this.mAND(); + + + break; + case 4 : + // xquery/XQueryLexer.g:1:40: AS + this.mAS(); + + + break; + case 5 : + // xquery/XQueryLexer.g:1:43: ASCENDING + this.mASCENDING(); + + + break; + case 6 : + // xquery/XQueryLexer.g:1:53: AT + this.mAT(); + + + break; + case 7 : + // xquery/XQueryLexer.g:1:56: ATTRIBUTE + this.mATTRIBUTE(); + + + break; + case 8 : + // xquery/XQueryLexer.g:1:66: BASE_URI + this.mBASE_URI(); + + + break; + case 9 : + // xquery/XQueryLexer.g:1:75: BOUNDARY_SPACE + this.mBOUNDARY_SPACE(); + + + break; + case 10 : + // xquery/XQueryLexer.g:1:90: BY + this.mBY(); + + + break; + case 11 : + // xquery/XQueryLexer.g:1:93: CASE + this.mCASE(); + + + break; + case 12 : + // xquery/XQueryLexer.g:1:98: CAST + this.mCAST(); + + + break; + case 13 : + // xquery/XQueryLexer.g:1:103: CASTABLE + this.mCASTABLE(); + + + break; + case 14 : + // xquery/XQueryLexer.g:1:112: CHILD + this.mCHILD(); + + + break; + case 15 : + // xquery/XQueryLexer.g:1:118: COLLATION + this.mCOLLATION(); + + + break; + case 16 : + // xquery/XQueryLexer.g:1:128: COMMENT + this.mCOMMENT(); + + + break; + case 17 : + // xquery/XQueryLexer.g:1:136: CONSTRUCTION + this.mCONSTRUCTION(); + + + break; + case 18 : + // xquery/XQueryLexer.g:1:149: COPY_NAMESPACES + this.mCOPY_NAMESPACES(); + + + break; + case 19 : + // xquery/XQueryLexer.g:1:165: DECLARE + this.mDECLARE(); + + + break; + case 20 : + // xquery/XQueryLexer.g:1:173: DEFAULT + this.mDEFAULT(); + + + break; + case 21 : + // xquery/XQueryLexer.g:1:181: DESCENDANT + this.mDESCENDANT(); + + + break; + case 22 : + // xquery/XQueryLexer.g:1:192: DESCENDANT_OR_SELF + this.mDESCENDANT_OR_SELF(); + + + break; + case 23 : + // xquery/XQueryLexer.g:1:211: DESCENDING + this.mDESCENDING(); + + + break; + case 24 : + // xquery/XQueryLexer.g:1:222: DIV + this.mDIV(); + + + break; + case 25 : + // xquery/XQueryLexer.g:1:226: DOCUMENT + this.mDOCUMENT(); + + + break; + case 26 : + // xquery/XQueryLexer.g:1:235: DOCUMENT_NODE + this.mDOCUMENT_NODE(); + + + break; + case 27 : + // xquery/XQueryLexer.g:1:249: ELEMENT + this.mELEMENT(); + + + break; + case 28 : + // xquery/XQueryLexer.g:1:257: ELSE + this.mELSE(); + + + break; + case 29 : + // xquery/XQueryLexer.g:1:262: EMPTY + this.mEMPTY(); + + + break; + case 30 : + // xquery/XQueryLexer.g:1:268: EMPTY_SEQUENCE + this.mEMPTY_SEQUENCE(); + + + break; + case 31 : + // xquery/XQueryLexer.g:1:283: ENCODING + this.mENCODING(); + + + break; + case 32 : + // xquery/XQueryLexer.g:1:292: EQ + this.mEQ(); + + + break; + case 33 : + // xquery/XQueryLexer.g:1:295: EVERY + this.mEVERY(); + + + break; + case 34 : + // xquery/XQueryLexer.g:1:301: EXCEPT + this.mEXCEPT(); + + + break; + case 35 : + // xquery/XQueryLexer.g:1:308: EXTERNAL + this.mEXTERNAL(); + + + break; + case 36 : + // xquery/XQueryLexer.g:1:317: FOLLOWING + this.mFOLLOWING(); + + + break; + case 37 : + // xquery/XQueryLexer.g:1:327: FOLLOWING_SIBLING + this.mFOLLOWING_SIBLING(); + + + break; + case 38 : + // xquery/XQueryLexer.g:1:345: FOR + this.mFOR(); + + + break; + case 39 : + // xquery/XQueryLexer.g:1:349: FUNCTION + this.mFUNCTION(); + + + break; + case 40 : + // xquery/XQueryLexer.g:1:358: GE + this.mGE(); + + + break; + case 41 : + // xquery/XQueryLexer.g:1:361: GREATEST + this.mGREATEST(); + + + break; + case 42 : + // xquery/XQueryLexer.g:1:370: GT + this.mGT(); + + + break; + case 43 : + // xquery/XQueryLexer.g:1:373: IDIV + this.mIDIV(); + + + break; + case 44 : + // xquery/XQueryLexer.g:1:378: IF + this.mIF(); + + + break; + case 45 : + // xquery/XQueryLexer.g:1:381: IMPORT + this.mIMPORT(); + + + break; + case 46 : + // xquery/XQueryLexer.g:1:388: IN + this.mIN(); + + + break; + case 47 : + // xquery/XQueryLexer.g:1:391: INHERIT + this.mINHERIT(); + + + break; + case 48 : + // xquery/XQueryLexer.g:1:399: INSTANCE + this.mINSTANCE(); + + + break; + case 49 : + // xquery/XQueryLexer.g:1:408: INTERSECT + this.mINTERSECT(); + + + break; + case 50 : + // xquery/XQueryLexer.g:1:418: IS + this.mIS(); + + + break; + case 51 : + // xquery/XQueryLexer.g:1:421: ITEM + this.mITEM(); + + + break; + case 52 : + // xquery/XQueryLexer.g:1:426: LAX + this.mLAX(); + + + break; + case 53 : + // xquery/XQueryLexer.g:1:430: LE + this.mLE(); + + + break; + case 54 : + // xquery/XQueryLexer.g:1:433: LEAST + this.mLEAST(); + + + break; + case 55 : + // xquery/XQueryLexer.g:1:439: LET + this.mLET(); + + + break; + case 56 : + // xquery/XQueryLexer.g:1:443: LT + this.mLT(); + + + break; + case 57 : + // xquery/XQueryLexer.g:1:446: MOD + this.mMOD(); + + + break; + case 58 : + // xquery/XQueryLexer.g:1:450: MODULE + this.mMODULE(); + + + break; + case 59 : + // xquery/XQueryLexer.g:1:457: NAMESPACE + this.mNAMESPACE(); + + + break; + case 60 : + // xquery/XQueryLexer.g:1:467: NE + this.mNE(); + + + break; + case 61 : + // xquery/XQueryLexer.g:1:470: NO_INHERIT + this.mNO_INHERIT(); + + + break; + case 62 : + // xquery/XQueryLexer.g:1:481: NO_PRESERVE + this.mNO_PRESERVE(); + + + break; + case 63 : + // xquery/XQueryLexer.g:1:493: NODE + this.mNODE(); + + + break; + case 64 : + // xquery/XQueryLexer.g:1:498: OF + this.mOF(); + + + break; + case 65 : + // xquery/XQueryLexer.g:1:501: OPTION + this.mOPTION(); + + + break; + case 66 : + // xquery/XQueryLexer.g:1:508: OR + this.mOR(); + + + break; + case 67 : + // xquery/XQueryLexer.g:1:511: ORDER + this.mORDER(); + + + break; + case 68 : + // xquery/XQueryLexer.g:1:517: ORDERED + this.mORDERED(); + + + break; + case 69 : + // xquery/XQueryLexer.g:1:525: ORDERING + this.mORDERING(); + + + break; + case 70 : + // xquery/XQueryLexer.g:1:534: PARENT + this.mPARENT(); + + + break; + case 71 : + // xquery/XQueryLexer.g:1:541: PRECEDING + this.mPRECEDING(); + + + break; + case 72 : + // xquery/XQueryLexer.g:1:551: PRECEDING_SIBLING + this.mPRECEDING_SIBLING(); + + + break; + case 73 : + // xquery/XQueryLexer.g:1:569: PRESERVE + this.mPRESERVE(); + + + break; + case 74 : + // xquery/XQueryLexer.g:1:578: PROCESSING_INSTRUCTION + this.mPROCESSING_INSTRUCTION(); + + + break; + case 75 : + // xquery/XQueryLexer.g:1:601: RETURN + this.mRETURN(); + + + break; + case 76 : + // xquery/XQueryLexer.g:1:608: SATISFIES + this.mSATISFIES(); + + + break; + case 77 : + // xquery/XQueryLexer.g:1:618: SCHEMA + this.mSCHEMA(); + + + break; + case 78 : + // xquery/XQueryLexer.g:1:625: SCHEMA_ATTRIBUTE + this.mSCHEMA_ATTRIBUTE(); + + + break; + case 79 : + // xquery/XQueryLexer.g:1:642: SCHEMA_ELEMENT + this.mSCHEMA_ELEMENT(); + + + break; + case 80 : + // xquery/XQueryLexer.g:1:657: SELF + this.mSELF(); + + + break; + case 81 : + // xquery/XQueryLexer.g:1:662: SOME + this.mSOME(); + + + break; + case 82 : + // xquery/XQueryLexer.g:1:667: STABLE + this.mSTABLE(); + + + break; + case 83 : + // xquery/XQueryLexer.g:1:674: STRICT + this.mSTRICT(); + + + break; + case 84 : + // xquery/XQueryLexer.g:1:681: STRIP + this.mSTRIP(); + + + break; + case 85 : + // xquery/XQueryLexer.g:1:687: TEXT + this.mTEXT(); + + + break; + case 86 : + // xquery/XQueryLexer.g:1:692: THEN + this.mTHEN(); + + + break; + case 87 : + // xquery/XQueryLexer.g:1:697: TO + this.mTO(); + + + break; + case 88 : + // xquery/XQueryLexer.g:1:700: TREAT + this.mTREAT(); + + + break; + case 89 : + // xquery/XQueryLexer.g:1:706: TYPESWITCH + this.mTYPESWITCH(); + + + break; + case 90 : + // xquery/XQueryLexer.g:1:717: UNION + this.mUNION(); + + + break; + case 91 : + // xquery/XQueryLexer.g:1:723: UNORDERED + this.mUNORDERED(); + + + break; + case 92 : + // xquery/XQueryLexer.g:1:733: VALIDATE + this.mVALIDATE(); + + + break; + case 93 : + // xquery/XQueryLexer.g:1:742: VARIABLE + this.mVARIABLE(); + + + break; + case 94 : + // xquery/XQueryLexer.g:1:751: VERSION + this.mVERSION(); + + + break; + case 95 : + // xquery/XQueryLexer.g:1:759: WHERE + this.mWHERE(); + + + break; + case 96 : + // xquery/XQueryLexer.g:1:765: XQUERY + this.mXQUERY(); + + + break; + case 97 : + // xquery/XQueryLexer.g:1:772: ALLOWING + this.mALLOWING(); + + + break; + case 98 : + // xquery/XQueryLexer.g:1:781: CATCH + this.mCATCH(); + + + break; + case 99 : + // xquery/XQueryLexer.g:1:787: CONTEXT + this.mCONTEXT(); + + + break; + case 100 : + // xquery/XQueryLexer.g:1:795: COUNT + this.mCOUNT(); + + + break; + case 101 : + // xquery/XQueryLexer.g:1:801: DECIMAL_FORMAT + this.mDECIMAL_FORMAT(); + + + break; + case 102 : + // xquery/XQueryLexer.g:1:816: DECIMAL_SEPARATOR + this.mDECIMAL_SEPARATOR(); + + + break; + case 103 : + // xquery/XQueryLexer.g:1:834: DIGIT + this.mDIGIT(); + + + break; + case 104 : + // xquery/XQueryLexer.g:1:840: END + this.mEND(); + + + break; + case 105 : + // xquery/XQueryLexer.g:1:844: GROUP + this.mGROUP(); + + + break; + case 106 : + // xquery/XQueryLexer.g:1:850: GROUPING_SEPARATOR + this.mGROUPING_SEPARATOR(); + + + break; + case 107 : + // xquery/XQueryLexer.g:1:869: INFINITY + this.mINFINITY(); + + + break; + case 108 : + // xquery/XQueryLexer.g:1:878: MINUS_SIGN + this.mMINUS_SIGN(); + + + break; + case 109 : + // xquery/XQueryLexer.g:1:889: NAMESPACE_NODE + this.mNAMESPACE_NODE(); + + + break; + case 110 : + // xquery/XQueryLexer.g:1:904: NAN + this.mNAN(); + + + break; + case 111 : + // xquery/XQueryLexer.g:1:908: NEXT + this.mNEXT(); + + + break; + case 112 : + // xquery/XQueryLexer.g:1:913: ONLY + this.mONLY(); + + + break; + case 113 : + // xquery/XQueryLexer.g:1:918: PATTERN_SEPARATOR + this.mPATTERN_SEPARATOR(); + + + break; + case 114 : + // xquery/XQueryLexer.g:1:936: PERCENT + this.mPERCENT(); + + + break; + case 115 : + // xquery/XQueryLexer.g:1:944: PER_MILLE + this.mPER_MILLE(); + + + break; + case 116 : + // xquery/XQueryLexer.g:1:954: PREVIOUS + this.mPREVIOUS(); + + + break; + case 117 : + // xquery/XQueryLexer.g:1:963: SLIDING + this.mSLIDING(); + + + break; + case 118 : + // xquery/XQueryLexer.g:1:971: START + this.mSTART(); + + + break; + case 119 : + // xquery/XQueryLexer.g:1:977: SWITCH + this.mSWITCH(); + + + break; + case 120 : + // xquery/XQueryLexer.g:1:984: TRY + this.mTRY(); + + + break; + case 121 : + // xquery/XQueryLexer.g:1:988: TUMBLING + this.mTUMBLING(); + + + break; + case 122 : + // xquery/XQueryLexer.g:1:997: TYPE + this.mTYPE(); + + + break; + case 123 : + // xquery/XQueryLexer.g:1:1002: WHEN + this.mWHEN(); + + + break; + case 124 : + // xquery/XQueryLexer.g:1:1007: WINDOW + this.mWINDOW(); + + + break; + case 125 : + // xquery/XQueryLexer.g:1:1014: ZERO_DIGIT + this.mZERO_DIGIT(); + + + break; + case 126 : + // xquery/XQueryLexer.g:1:1025: AFTER + this.mAFTER(); + + + break; + case 127 : + // xquery/XQueryLexer.g:1:1031: BEFORE + this.mBEFORE(); + + + break; + case 128 : + // xquery/XQueryLexer.g:1:1038: COPY + this.mCOPY(); + + + break; + case 129 : + // xquery/XQueryLexer.g:1:1043: DELETE + this.mDELETE(); + + + break; + case 130 : + // xquery/XQueryLexer.g:1:1050: FIRST + this.mFIRST(); + + + break; + case 131 : + // xquery/XQueryLexer.g:1:1056: INSERT + this.mINSERT(); + + + break; + case 132 : + // xquery/XQueryLexer.g:1:1063: INTO + this.mINTO(); + + + break; + case 133 : + // xquery/XQueryLexer.g:1:1068: LAST + this.mLAST(); + + + break; + case 134 : + // xquery/XQueryLexer.g:1:1073: MODIFY + this.mMODIFY(); + + + break; + case 135 : + // xquery/XQueryLexer.g:1:1080: NODES + this.mNODES(); + + + break; + case 136 : + // xquery/XQueryLexer.g:1:1086: RENAME + this.mRENAME(); + + + break; + case 137 : + // xquery/XQueryLexer.g:1:1093: REPLACE + this.mREPLACE(); + + + break; + case 138 : + // xquery/XQueryLexer.g:1:1101: REVALIDATION + this.mREVALIDATION(); + + + break; + case 139 : + // xquery/XQueryLexer.g:1:1114: SKIP + this.mSKIP(); + + + break; + case 140 : + // xquery/XQueryLexer.g:1:1119: UPDATING + this.mUPDATING(); + + + break; + case 141 : + // xquery/XQueryLexer.g:1:1128: VALUE + this.mVALUE(); + + + break; + case 142 : + // xquery/XQueryLexer.g:1:1134: WITH + this.mWITH(); + + + break; + case 143 : + // xquery/XQueryLexer.g:1:1139: ALL + this.mALL(); + + + break; + case 144 : + // xquery/XQueryLexer.g:1:1143: ANY + this.mANY(); + + + break; + case 145 : + // xquery/XQueryLexer.g:1:1147: CONTAINS + this.mCONTAINS(); + + + break; + case 146 : + // xquery/XQueryLexer.g:1:1156: CONTENT + this.mCONTENT(); + + + break; + case 147 : + // xquery/XQueryLexer.g:1:1164: DIACRITICS + this.mDIACRITICS(); + + + break; + case 148 : + // xquery/XQueryLexer.g:1:1175: DIFFERENT + this.mDIFFERENT(); + + + break; + case 149 : + // xquery/XQueryLexer.g:1:1185: DISTANCE + this.mDISTANCE(); + + + break; + case 150 : + // xquery/XQueryLexer.g:1:1194: ENTIRE + this.mENTIRE(); + + + break; + case 151 : + // xquery/XQueryLexer.g:1:1201: EXACTLY + this.mEXACTLY(); + + + break; + case 152 : + // xquery/XQueryLexer.g:1:1209: FROM + this.mFROM(); + + + break; + case 153 : + // xquery/XQueryLexer.g:1:1214: FT_OPTION + this.mFT_OPTION(); + + + break; + case 154 : + // xquery/XQueryLexer.g:1:1224: FTAND + this.mFTAND(); + + + break; + case 155 : + // xquery/XQueryLexer.g:1:1230: FTNOT + this.mFTNOT(); + + + break; + case 156 : + // xquery/XQueryLexer.g:1:1236: FTOR + this.mFTOR(); + + + break; + case 157 : + // xquery/XQueryLexer.g:1:1241: INSENSITIVE + this.mINSENSITIVE(); + + + break; + case 158 : + // xquery/XQueryLexer.g:1:1253: LANGUAGE + this.mLANGUAGE(); + + + break; + case 159 : + // xquery/XQueryLexer.g:1:1262: LEVELS + this.mLEVELS(); + + + break; + case 160 : + // xquery/XQueryLexer.g:1:1269: LOWERCASE + this.mLOWERCASE(); + + + break; + case 161 : + // xquery/XQueryLexer.g:1:1279: MOST + this.mMOST(); + + + break; + case 162 : + // xquery/XQueryLexer.g:1:1284: NO + this.mNO(); + + + break; + case 163 : + // xquery/XQueryLexer.g:1:1287: NOT + this.mNOT(); + + + break; + case 164 : + // xquery/XQueryLexer.g:1:1291: OCCURS + this.mOCCURS(); + + + break; + case 165 : + // xquery/XQueryLexer.g:1:1298: PARAGRAPH + this.mPARAGRAPH(); + + + break; + case 166 : + // xquery/XQueryLexer.g:1:1308: PARAGRAPHS + this.mPARAGRAPHS(); + + + break; + case 167 : + // xquery/XQueryLexer.g:1:1319: PHRASE + this.mPHRASE(); + + + break; + case 168 : + // xquery/XQueryLexer.g:1:1326: RELATIONSHIP + this.mRELATIONSHIP(); + + + break; + case 169 : + // xquery/XQueryLexer.g:1:1339: SAME + this.mSAME(); + + + break; + case 170 : + // xquery/XQueryLexer.g:1:1344: SCORE + this.mSCORE(); + + + break; + case 171 : + // xquery/XQueryLexer.g:1:1350: SENSITIVE + this.mSENSITIVE(); + + + break; + case 172 : + // xquery/XQueryLexer.g:1:1360: SENTENCE + this.mSENTENCE(); + + + break; + case 173 : + // xquery/XQueryLexer.g:1:1369: SENTENCES + this.mSENTENCES(); + + + break; + case 174 : + // xquery/XQueryLexer.g:1:1379: STEMMING + this.mSTEMMING(); + + + break; + case 175 : + // xquery/XQueryLexer.g:1:1388: STOP + this.mSTOP(); + + + break; + case 176 : + // xquery/XQueryLexer.g:1:1393: THESAURUS + this.mTHESAURUS(); + + + break; + case 177 : + // xquery/XQueryLexer.g:1:1403: TIMES + this.mTIMES(); + + + break; + case 178 : + // xquery/XQueryLexer.g:1:1409: UPPERCASE + this.mUPPERCASE(); + + + break; + case 179 : + // xquery/XQueryLexer.g:1:1419: USING + this.mUSING(); + + + break; + case 180 : + // xquery/XQueryLexer.g:1:1425: WEIGHT + this.mWEIGHT(); + + + break; + case 181 : + // xquery/XQueryLexer.g:1:1432: WILDCARDS + this.mWILDCARDS(); + + + break; + case 182 : + // xquery/XQueryLexer.g:1:1442: WITHOUT + this.mWITHOUT(); + + + break; + case 183 : + // xquery/XQueryLexer.g:1:1450: WORD + this.mWORD(); + + + break; + case 184 : + // xquery/XQueryLexer.g:1:1455: WORDS + this.mWORDS(); + + + break; + case 185 : + // xquery/XQueryLexer.g:1:1461: BREAK + this.mBREAK(); + + + break; + case 186 : + // xquery/XQueryLexer.g:1:1467: CONTINUE + this.mCONTINUE(); + + + break; + case 187 : + // xquery/XQueryLexer.g:1:1476: EXIT + this.mEXIT(); + + + break; + case 188 : + // xquery/XQueryLexer.g:1:1481: LOOP + this.mLOOP(); + + + break; + case 189 : + // xquery/XQueryLexer.g:1:1486: RETURNING + this.mRETURNING(); + + + break; + case 190 : + // xquery/XQueryLexer.g:1:1496: WHILE + this.mWHILE(); + + + break; + case 191 : + // xquery/XQueryLexer.g:1:1502: CHECK + this.mCHECK(); + + + break; + case 192 : + // xquery/XQueryLexer.g:1:1508: COLLECTION + this.mCOLLECTION(); + + + break; + case 193 : + // xquery/XQueryLexer.g:1:1519: CONSTRAINT + this.mCONSTRAINT(); + + + break; + case 194 : + // xquery/XQueryLexer.g:1:1530: FOREACH + this.mFOREACH(); + + + break; + case 195 : + // xquery/XQueryLexer.g:1:1538: FOREIGN + this.mFOREIGN(); + + + break; + case 196 : + // xquery/XQueryLexer.g:1:1546: INDEX + this.mINDEX(); + + + break; + case 197 : + // xquery/XQueryLexer.g:1:1552: INTEGRITY + this.mINTEGRITY(); + + + break; + case 198 : + // xquery/XQueryLexer.g:1:1562: KEY + this.mKEY(); + + + break; + case 199 : + // xquery/XQueryLexer.g:1:1566: ON + this.mON(); + + + break; + case 200 : + // xquery/XQueryLexer.g:1:1569: UNIQUE + this.mUNIQUE(); + + + break; + case 201 : + // xquery/XQueryLexer.g:1:1576: BINARY + this.mBINARY(); + + + break; + case 202 : + // xquery/XQueryLexer.g:1:1583: AMP_ER + this.mAMP_ER(); + + + break; + case 203 : + // xquery/XQueryLexer.g:1:1590: APOS_ER + this.mAPOS_ER(); + + + break; + case 204 : + // xquery/XQueryLexer.g:1:1598: QUOT_ER + this.mQUOT_ER(); + + + break; + case 205 : + // xquery/XQueryLexer.g:1:1606: CONCAT + this.mCONCAT(); + + + break; + case 206 : + // xquery/XQueryLexer.g:1:1613: LPAREN + this.mLPAREN(); + + + break; + case 207 : + // xquery/XQueryLexer.g:1:1620: RPAREN + this.mRPAREN(); + + + break; + case 208 : + // xquery/XQueryLexer.g:1:1627: DOLLAR + this.mDOLLAR(); + + + break; + case 209 : + // xquery/XQueryLexer.g:1:1634: LBRACKET + this.mLBRACKET(); + + + break; + case 210 : + // xquery/XQueryLexer.g:1:1643: RBRACKET + this.mRBRACKET(); + + + break; + case 211 : + // xquery/XQueryLexer.g:1:1652: LSQUARE + this.mLSQUARE(); + + + break; + case 212 : + // xquery/XQueryLexer.g:1:1660: RSQUARE + this.mRSQUARE(); + + + break; + case 213 : + // xquery/XQueryLexer.g:1:1668: EQUAL + this.mEQUAL(); + + + break; + case 214 : + // xquery/XQueryLexer.g:1:1674: BIND + this.mBIND(); + + + break; + case 215 : + // xquery/XQueryLexer.g:1:1679: NOTEQUAL + this.mNOTEQUAL(); + + + break; + case 216 : + // xquery/XQueryLexer.g:1:1688: ANN_PERCENT + this.mANN_PERCENT(); + + + break; + case 217 : + // xquery/XQueryLexer.g:1:1700: HASH + this.mHASH(); + + + break; + case 218 : + // xquery/XQueryLexer.g:1:1705: AMP + this.mAMP(); + + + break; + case 219 : + // xquery/XQueryLexer.g:1:1709: COMMA + this.mCOMMA(); + + + break; + case 220 : + // xquery/XQueryLexer.g:1:1715: QUESTION + this.mQUESTION(); + + + break; + case 221 : + // xquery/XQueryLexer.g:1:1724: STAR + this.mSTAR(); + + + break; + case 222 : + // xquery/XQueryLexer.g:1:1729: PLUS + this.mPLUS(); + + + break; + case 223 : + // xquery/XQueryLexer.g:1:1734: MINUS + this.mMINUS(); + + + break; + case 224 : + // xquery/XQueryLexer.g:1:1740: SMALLER + this.mSMALLER(); + + + break; + case 225 : + // xquery/XQueryLexer.g:1:1748: GREATER + this.mGREATER(); + + + break; + case 226 : + // xquery/XQueryLexer.g:1:1756: SMALLEREQ + this.mSMALLEREQ(); + + + break; + case 227 : + // xquery/XQueryLexer.g:1:1766: GREATEREQ + this.mGREATEREQ(); + + + break; + case 228 : + // xquery/XQueryLexer.g:1:1776: SMALLER_SMALLER + this.mSMALLER_SMALLER(); + + + break; + case 229 : + // xquery/XQueryLexer.g:1:1792: GREATER_GREATER + this.mGREATER_GREATER(); + + + break; + case 230 : + // xquery/XQueryLexer.g:1:1808: SLASH + this.mSLASH(); + + + break; + case 231 : + // xquery/XQueryLexer.g:1:1814: SLASH_SLASH + this.mSLASH_SLASH(); + + + break; + case 232 : + // xquery/XQueryLexer.g:1:1826: DOT + this.mDOT(); + + + break; + case 233 : + // xquery/XQueryLexer.g:1:1830: DOT_DOT + this.mDOT_DOT(); + + + break; + case 234 : + // xquery/XQueryLexer.g:1:1838: COLON + this.mCOLON(); + + + break; + case 235 : + // xquery/XQueryLexer.g:1:1844: COLON_COLON + this.mCOLON_COLON(); + + + break; + case 236 : + // xquery/XQueryLexer.g:1:1856: EMPTY_CLOSE_TAG + this.mEMPTY_CLOSE_TAG(); + + + break; + case 237 : + // xquery/XQueryLexer.g:1:1872: CLOSE_TAG + this.mCLOSE_TAG(); + + + break; + case 238 : + // xquery/XQueryLexer.g:1:1882: SEMICOLON + this.mSEMICOLON(); + + + break; + case 239 : + // xquery/XQueryLexer.g:1:1892: VBAR + this.mVBAR(); + + + break; + case 240 : + // xquery/XQueryLexer.g:1:1897: PRAGMA_START + this.mPRAGMA_START(); + + + break; + case 241 : + // xquery/XQueryLexer.g:1:1910: PRAGMA_END + this.mPRAGMA_END(); + + + break; + case 242 : + // xquery/XQueryLexer.g:1:1921: XML_COMMENT_START + this.mXML_COMMENT_START(); + + + break; + case 243 : + // xquery/XQueryLexer.g:1:1939: XML_COMMENT_END + this.mXML_COMMENT_END(); + + + break; + case 244 : + // xquery/XQueryLexer.g:1:1955: PI_START + this.mPI_START(); + + + break; + case 245 : + // xquery/XQueryLexer.g:1:1964: PI_END + this.mPI_END(); + + + break; + case 246 : + // xquery/XQueryLexer.g:1:1971: ATTR_SIGN + this.mATTR_SIGN(); + + + break; + case 247 : + // xquery/XQueryLexer.g:1:1981: CHARREF_DEC + this.mCHARREF_DEC(); + + + break; + case 248 : + // xquery/XQueryLexer.g:1:1993: CHARREF_HEX + this.mCHARREF_HEX(); + + + break; + case 249 : + // xquery/XQueryLexer.g:1:2005: APOS + this.mAPOS(); + + + break; + case 250 : + // xquery/XQueryLexer.g:1:2010: QUOT + this.mQUOT(); + + + break; + case 251 : + // xquery/XQueryLexer.g:1:2015: L_NCName + this.mL_NCName(); + + + break; + case 252 : + // xquery/XQueryLexer.g:1:2024: S + this.mS(); + + + break; + case 253 : + // xquery/XQueryLexer.g:1:2026: L_Pragma + this.mL_Pragma(); + + + break; + case 254 : + // xquery/XQueryLexer.g:1:2035: L_DirCommentConstructor + this.mL_DirCommentConstructor(); + + + break; + case 255 : + // xquery/XQueryLexer.g:1:2059: L_DirPIConstructor + this.mL_DirPIConstructor(); + + + break; + case 256 : + // xquery/XQueryLexer.g:1:2078: L_IntegerLiteral + this.mL_IntegerLiteral(); + + + break; + case 257 : + // xquery/XQueryLexer.g:1:2095: L_DecimalLiteral + this.mL_DecimalLiteral(); + + + break; + case 258 : + // xquery/XQueryLexer.g:1:2112: L_DoubleLiteral + this.mL_DoubleLiteral(); + + + break; + case 259 : + // xquery/XQueryLexer.g:1:2128: L_Comment + this.mL_Comment(); + + + break; + case 260 : + // xquery/XQueryLexer.g:1:2138: L_AnyChar + this.mL_AnyChar(); + + + break; + + } + + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XQueryLexer, { + DFA19_eotS: + "\u0001\uffff\u0018\u003f\u0001\u0091\u0001\u0094\u0007\uffff\u0001"+ + "\u009e\u0001\u0037\u0001\uffff\u0001\u00a2\u0001\u00a4\u0001\uffff\u0001"+ + "\u00a7\u0002\uffff\u0001\u00ab\u0001\u00b1\u0001\u00b4\u0001\u00b7\u0001"+ + "\u00b9\u0006\uffff\u0001\u00c0\u0001\uffff\u0001\u003f\u0001\u00c8\u0001"+ + "\u00ca\u0004\u003f\u0001\uffff\u0002\u003f\u0001\u00d1\u000c\u003f\u0001"+ + "\u00ee\u0007\u003f\u0001\u00fd\u0001\u003f\u0001\u0100\u0001\u003f\u0001"+ + "\u0102\u0001\u003f\u0001\u0109\u0001\u010a\u0002\u003f\u0001\u0112\u0001"+ + "\u0113\u0004\u003f\u0001\u011b\u0001\u011f\u0001\u0120\u0001\u003f\u0001"+ + "\u0123\u0001\u0125\u0010\u003f\u0001\u0142\u0012\u003f\u0002\uffff\u0001"+ + "\u015c\u0010\uffff\u0001\u015f\u000c\uffff\u0001\u0161\u0009\uffff\u0001"+ + "\u0163\u0006\uffff\u0001\u00c0\u0001\u0163\u0001\uffff\u0001\u003f\u0001"+ + "\u0166\u0001\u0167\u0001\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u016b\u0001\u003f\u0001\u016d\u0003\u003f\u0001\uffff\u0010\u003f\u0001"+ + "\u0184\u0009\u003f\u0001\u018e\u0001\u003f\u0001\uffff\u0006\u003f\u0001"+ + "\u0197\u0007\u003f\u0001\uffff\u0002\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0006\u003f\u0002\uffff\u0001\u003f\u0001\u01ab\u0003\u003f\u0001"+ + "\u01af\u0001\u003f\u0002\uffff\u0002\u003f\u0001\u01b5\u0004\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\u01bd\u0002\uffff\u0002\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u001c\u003f\u0001\uffff\u0001\u003f\u0001\u01e5\u0013"+ + "\u003f\u0001\u01fc\u0001\u003f\u0001\u01fe\u0001\u003f\u0008\uffff\u0001"+ + "\u0163\u0001\u003f\u0002\uffff\u0003\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0001\u0206\u0005\u003f\u0001\u020c\u0001\u020e\u0007\u003f\u0001"+ + "\u021a\u0006\u003f\u0001\uffff\u0006\u003f\u0001\u0227\u0002\u003f\u0001"+ + "\uffff\u0005\u003f\u0001\u022f\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\u0235\u0003\u003f\u0001\u0239\u0002\u003f\u0001\u023c\u0005\u003f\u0001"+ + "\u0244\u0002\u003f\u0001\u0247\u0001\uffff\u0001\u0248\u0002\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\u024d\u0002\u003f\u0001\uffff\u0001\u0250\u0002"+ + "\u003f\u0001\u0253\u0002\u003f\u0001\u0257\u0001\uffff\u0002\u003f\u0001"+ + "\u025a\u0011\u003f\u0001\u026c\u0002\u003f\u0001\u026f\u0002\u003f\u0001"+ + "\u0272\u0004\u003f\u0001\u0278\u0002\u003f\u0001\u027b\u0001\u027c\u0001"+ + "\u027d\u0002\u003f\u0001\uffff\u0001\u0281\u000d\u003f\u0001\u028f\u0002"+ + "\u003f\u0001\u0293\u0002\u003f\u0001\u0297\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0001\u029a\u0001\u029b\u0004\u003f\u0001\u02a1\u0001"+ + "\uffff\u0003\u003f\u0001\u02a5\u0001\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0001\u02a8\u0001\u02a9\u0001\u02aa\u0008\u003f\u0001\uffff\u0001"+ + "\u02b4\u0005\u003f\u0001\u02ba\u0005\u003f\u0001\uffff\u0001\u02c1\u0002"+ + "\u003f\u0001\u02c4\u0003\u003f\u0001\uffff\u0004\u003f\u0001\u02cc\u0001"+ + "\uffff\u0001\u003f\u0001\u02ce\u0001\u02cf\u0001\uffff\u0001\u003f\u0001"+ + "\u02d2\u0001\uffff\u0007\u003f\u0001\uffff\u0001\u003f\u0001\u02db\u0002"+ + "\uffff\u0001\u003f\u0001\u02dd\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0001\u02e6\u0001\uffff\u0001"+ + "\u003f\u0001\u02ea\u0001\uffff\u0011\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\u02fd\u0001\uffff\u0002\u003f\u0001\uffff\u0001\u003f\u0001\u0301\u0001"+ + "\u003f\u0001\u0303\u0001\u003f\u0001\uffff\u0002\u003f\u0003\uffff\u0001"+ + "\u003f\u0001\u0308\u0001\u003f\u0001\uffff\u0001\u003f\u0001\u030b\u0001"+ + "\u030c\u0004\u003f\u0001\u0311\u0001\u003f\u0001\u0313\u0002\u003f\u0001"+ + "\u0316\u0001\uffff\u0001\u0317\u0002\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\u031c\u0001\uffff\u0002\u003f\u0003\uffff\u0004\u003f\u0001\uffff\u0002"+ + "\u003f\u0001\u0325\u0001\uffff\u0001\u0326\u0001\u003f\u0003\uffff\u0009"+ + "\u003f\u0001\uffff\u0004\u003f\u0001\u0336\u0001\uffff\u0006\u003f\u0001"+ + "\uffff\u0001\u003f\u0001\u033e\u0001\uffff\u0001\u033f\u0006\u003f\u0001"+ + "\uffff\u0001\u003f\u0002\uffff\u0002\u003f\u0001\uffff\u0001\u0349\u0002"+ + "\u003f\u0001\u034c\u0004\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u0352\u0001\u003f\u0001\u0354\u0001\u0355\u0004\u003f\u0001\uffff\u0001"+ + "\u035a\u0002\u003f\u0001\uffff\u0001\u035d\u0001\u035e\u0008\u003f\u0001"+ + "\u0367\u0001\u0369\u0001\u036a\u0004\u003f\u0001\u0370\u0001\uffff\u0002"+ + "\u003f\u0001\u0373\u0001\uffff\u0001\u0374\u0001\uffff\u0002\u003f\u0001"+ + "\u0377\u0001\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001\u037b\u0003"+ + "\u003f\u0001\uffff\u0001\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001"+ + "\u0382\u0002\u003f\u0001\u0385\u0001\uffff\u0001\u0386\u0007\u003f\u0002"+ + "\uffff\u0003\u003f\u0001\u0391\u0002\u003f\u0001\u0394\u0001\u0395\u0003"+ + "\u003f\u0001\u0399\u0001\u003f\u0001\u039b\u0001\u003f\u0001\uffff\u0004"+ + "\u003f\u0001\u03a2\u0002\u003f\u0002\uffff\u0001\u003f\u0001\u03a6\u0001"+ + "\u003f\u0001\u03a8\u0001\u03a9\u0004\u003f\u0001\uffff\u0001\u03ae\u0001"+ + "\u003f\u0001\uffff\u0005\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0004"+ + "\u003f\u0001\uffff\u0001\u03ba\u0001\u003f\u0002\uffff\u0006\u003f\u0001"+ + "\u03c2\u0001\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0001\u03c5\u0004"+ + "\u003f\u0001\uffff\u0002\u003f\u0002\uffff\u0001\u003f\u0001\u03ce\u0001"+ + "\uffff\u0003\u003f\u0001\uffff\u0005\u003f\u0001\u03d7\u0001\uffff\u0001"+ + "\u03d8\u0001\u003f\u0002\uffff\u0001\u003f\u0001\u03dc\u0002\u003f\u0001"+ + "\u03df\u0001\u03e0\u0001\u003f\u0001\u03e2\u0002\u003f\u0001\uffff\u0002"+ + "\u003f\u0002\uffff\u0001\u03e7\u0001\u03e8\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0004\u003f\u0001\u03f0\u0001\u03f2\u0001\uffff\u0001"+ + "\u003f\u0001\u03f4\u0001\u03f5\u0001\uffff\u0001\u003f\u0002\uffff\u0001"+ + "\u03f7\u0001\u003f\u0001\u03f9\u0001\u003f\u0001\uffff\u0001\u03fb\u0003"+ + "\u003f\u0001\u03ff\u0001\u0400\u0005\u003f\u0001\uffff\u0001\u0406\u0003"+ + "\u003f\u0001\u040a\u0001\u040b\u0001\u003f\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0006\u003f\u0001\u0416\u0001\u0417\u0001\uffff\u0002\u003f\u0001"+ + "\u041a\u0001\u003f\u0001\u041c\u0001\u003f\u0001\u041e\u0001\u041f\u0002"+ + "\uffff\u0003\u003f\u0001\uffff\u0001\u0423\u0001\u0424\u0002\uffff\u0001"+ + "\u003f\u0001\uffff\u0001\u0426\u0003\u003f\u0002\uffff\u0006\u003f\u0001"+ + "\u0430\u0001\uffff\u0001\u003f\u0001\uffff\u0001\u003f\u0002\uffff\u0001"+ + "\u0434\u0001\uffff\u0001\u0435\u0001\uffff\u0001\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\u0438\u0001\u0439\u0002\uffff\u0001\u043a\u0001\u003f\u0001"+ + "\u043d\u0002\u003f\u0001\uffff\u0001\u0441\u0001\u003f\u0001\u0444\u0002"+ + "\uffff\u0001\u003f\u0001\u0446\u0001\u0447\u0002\u003f\u0001\u044a\u0002"+ + "\u003f\u0001\u044d\u0001\u044e\u0002\uffff\u0001\u044f\u0001\u003f\u0001"+ + "\uffff\u0001\u0451\u0001\uffff\u0001\u0452\u0002\uffff\u0001\u0453\u0002"+ + "\u003f\u0002\uffff\u0001\u003f\u0001\uffff\u0001\u0457\u0001\u003f\u0001"+ + "\u0459\u0003\u003f\u0001\u045e\u0001\u045f\u0001\u0460\u0001\uffff\u0003"+ + "\u003f\u0002\uffff\u0002\u003f\u0003\uffff\u0001\u0466\u0001\u003f\u0001"+ + "\uffff\u0001\u0468\u0001\u003f\u0001\u046a\u0001\uffff\u0002\u003f\u0001"+ + "\uffff\u0001\u003f\u0002\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0003"+ + "\uffff\u0001\u0472\u0003\uffff\u0001\u0473\u0002\u003f\u0001\uffff\u0001"+ + "\u003f\u0001\uffff\u0004\u003f\u0003\uffff\u0004\u003f\u0001\u047f\u0001"+ + "\uffff\u0001\u003f\u0001\uffff\u0001\u0481\u0001\uffff\u0007\u003f\u0002"+ + "\uffff\u0002\u003f\u0001\u048b\u0008\u003f\u0001\uffff\u0001\u003f\u0001"+ + "\uffff\u0003\u003f\u0001\u0498\u0001\u0499\u0004\u003f\u0001\uffff\u0004"+ + "\u003f\u0001\u04a2\u0007\u003f\u0002\uffff\u0003\u003f\u0001\u04ad\u0001"+ + "\u003f\u0001\u04af\u0002\u003f\u0001\uffff\u0001\u04b2\u0002\u003f\u0001"+ + "\u04b5\u0004\u003f\u0001\u04ba\u0001\u003f\u0001\uffff\u0001\u04bc\u0001"+ + "\uffff\u0002\u003f\u0001\uffff\u0002\u003f\u0001\uffff\u0004\u003f\u0001"+ + "\uffff\u0001\u04c5\u0001\uffff\u0007\u003f\u0001\u04cd\u0001\uffff\u0001"+ + "\u04ce\u0001\u003f\u0001\u04d0\u0001\u003f\u0001\u04d2\u0001\u04d3\u0001"+ + "\u003f\u0002\uffff\u0001\u04d5\u0001\uffff\u0001\u04d6\u0002\uffff\u0001"+ + "\u003f\u0002\uffff\u0003\u003f\u0001\u04db\u0001\uffff", + DFA19_eofS: + "\u04dc\uffff", + DFA19_minS: + "\u0001\u0000\u0001\u0066\u0002\u0061\u0001\u0065\u0001\u006c\u0001"+ + "\u0069\u0001\u0065\u0001\u0064\u0001\u0061\u0001\u0069\u0001\u0061\u0001"+ + "\u0063\u0001\u0061\u0001\u0065\u0001\u0061\u0001\u0065\u0001\u006e\u0001"+ + "\u0061\u0001\u0065\u0001\u0071\u0001\u0061\u0002\u0065\u0001\u0075\u0001"+ + "\u007c\u0001\u0023\u0007\uffff\u0001\u003a\u0001\u003d\u0001\uffff\u0001"+ + "\u0029\u0001\u0023\u0001\uffff\u0001\u003e\u0002\uffff\u0001\u002d\u0001"+ + "\u0021\u0001\u003d\u0001\u002f\u0001\u002e\u0006\uffff\u0001\u002e\u0001"+ + "\uffff\u0001\u0063\u0002\u002d\u0001\u006c\u0001\u0074\u0001\u0070\u0001"+ + "\u006f\u0001\uffff\u0001\u0073\u0001\u0075\u0001\u002d\u0001\u0066\u0001"+ + "\u0065\u0001\u006e\u0001\u0073\u0001\u0065\u0001\u006c\u0001\u0063\u0001"+ + "\u0061\u0001\u0063\u0001\u0065\u0001\u0070\u0001\u0063\u0001\u002d\u0001"+ + "\u0065\u0001\u0061\u0001\u006c\u0001\u006e\u0001\u0072\u0001\u006f\u0002"+ + "\u002d\u0001\u0065\u0001\u002d\u0001\u0069\u0001\u002d\u0001\u0070\u0002"+ + "\u002d\u0001\u0065\u0001\u006e\u0002\u002d\u0001\u006f\u0001\u0064\u0001"+ + "\u006e\u0001\u006d\u0003\u002d\u0001\u0074\u0002\u002d\u0001\u0063\u0001"+ + "\u0072\u0001\u0065\u0002\u0072\u0001\u006c\u0001\u006d\u0001\u0068\u0001"+ + "\u006c\u0001\u006d\u0001\u0061\u0003\u0069\u0001\u0078\u0001\u0065\u0001"+ + "\u002d\u0001\u0065\u0001\u0070\u0002\u006d\u0001\u0069\u0001\u0064\u0001"+ + "\u0069\u0001\u006c\u0001\u0072\u0001\u0065\u0001\u006c\u0001\u0069\u0001"+ + "\u0072\u0001\u0075\u0001\u004e\u0001\u0072\u0001\u0079\u0001\u006f\u0002"+ + "\uffff\u0001\u0009\u0010\uffff\u0001\u0078\u000b\uffff\u0001\u002d\u0001"+ + "\u0009\u0009\uffff\u0001\u0030\u0006\uffff\u0001\u002e\u0001\u0030\u0001"+ + "\uffff\u0001\u0065\u0002\u002d\u0001\u0065\u0001\uffff\u0001\u0072\u0001"+ + "\uffff\u0001\u002d\u0001\u0065\u0001\u002d\u0001\u0073\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u006f\u0002\u0061\u0001\u0065\u0001\u0063\u0001"+ + "\u006c\u0001\u0063\u0001\u006c\u0001\u006d\u0001\u0073\u0001\u0079\u0001"+ + "\u006e\u0001\u0069\u0001\u0061\u0001\u0063\u0001\u0065\u0001\u002d\u0001"+ + "\u0069\u0001\u0063\u0001\u0066\u0001\u0074\u0001\u0075\u0001\u006d\u0001"+ + "\u0065\u0001\u0074\u0001\u006f\u0001\u002d\u0001\u0069\u0001\uffff\u0001"+ + "\u0072\u0002\u0065\u0001\u0063\u0001\u0074\u0001\u006c\u0001\u002d\u0001"+ + "\u0063\u0001\u0073\u0001\u006d\u0001\u006f\u0001\u006e\u0001\u006f\u0001"+ + "\u0072\u0001\uffff\u0001\u0061\u0001\u0075\u0001\uffff\u0001\u0076\u0001"+ + "\uffff\u0001\u006f\u0003\u0065\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u006d\u0001\u002d\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u002d\u0001"+ + "\u0065\u0002\uffff\u0001\u0065\u0001\u0070\u0001\u002d\u0001\u0074\u0001"+ + "\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001\u0069\u0001\u0065\u0001"+ + "\u002d\u0002\uffff\u0001\u0069\u0001\u0065\u0001\uffff\u0001\u0079\u0001"+ + "\uffff\u0001\u0075\u0001\u0061\u0001\u0074\u0002\u0063\u0001\u002d\u0001"+ + "\u0061\u0001\u0075\u0001\u0061\u0001\u006c\u0002\u0061\u0001\u0069\u0002"+ + "\u0065\u0001\u0072\u0001\u0066\u0001\u0073\u0001\u0065\u0001\u0062\u0001"+ + "\u0069\u0001\u006d\u0001\u0070\u0001\u0064\u0001\u0074\u0001\u0070\u0001"+ + "\u0074\u0001\u006e\u0001\uffff\u0001\u0061\u0001\u002d\u0001\u0065\u0001"+ + "\u0062\u0001\u0065\u0001\u006f\u0001\u0072\u0001\u0061\u0001\u0065\u0001"+ + "\u006e\u0002\u0069\u0001\u0073\u0001\u006e\u0001\u006c\u0001\u0064\u0001"+ + "\u0068\u0001\u0064\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u002d\u0001"+ + "\u006f\u0001\u002d\u0001\u0074\u0004\uffff\u0001\u002d\u0003\uffff\u0001"+ + "\u0030\u0001\u0073\u0002\uffff\u0001\u006e\u0001\u0069\u0001\u0077\u0001"+ + "\uffff\u0001\u0072\u0001\uffff\u0002\u002d\u0001\u0064\u0001\u0072\u0001"+ + "\u006b\u0001\u0072\u0002\u002d\u0001\u0068\u0001\u0064\u0001\u006b\u0001"+ + "\u0061\u0001\u0065\u0001\u0074\u0001\u0061\u0001\u002d\u0001\u0074\u0001"+ + "\u0061\u0001\u006d\u0001\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001"+ + "\u0074\u0001\u0072\u0001\u0065\u0001\u0061\u0001\u006d\u0001\u0065\u0001"+ + "\u002d\u0001\u0079\u0001\u0064\u0001\uffff\u0001\u0072\u0001\u0079\u0001"+ + "\u0070\u0001\u0072\u0001\u0074\u0001\u002d\u0001\u006f\u0001\u0061\u0001"+ + "\uffff\u0002\u0074\u0001\u002d\u0001\u0070\u0001\u0064\u0001\u0074\u0001"+ + "\u002d\u0001\u0074\u0001\u0070\u0001\u002d\u0002\u0072\u0001\u0061\u0001"+ + "\u006e\u0001\u0067\u0001\u002d\u0001\u006e\u0001\u0078\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\u0075\u0001\u0074\u0001\uffff\u0001\u006c\u0001"+ + "\u0072\u0001\u002d\u0001\u006c\u0001\u0066\u0001\uffff\u0001\u002d\u0002"+ + "\u0073\u0001\u002d\u0001\u006e\u0001\u0072\u0001\u002d\u0001\uffff\u0001"+ + "\u006f\u0001\u0072\u0001\u002d\u0001\u0072\u0001\u006e\u0001\u0067\u0003"+ + "\u0065\u0001\u0069\u0002\u0065\u0001\u006d\u0001\u0073\u0001\u0072\u0001"+ + "\u006d\u0001\u0061\u0001\u006c\u0001\u0074\u0001\u0073\u0001\u002d\u0001"+ + "\u006d\u0001\u0065\u0001\u002d\u0001\u0069\u0001\u0065\u0001\u002d\u0001"+ + "\u006c\u0001\u0074\u0001\u0063\u0001\u006d\u0001\u002d\u0001\u0069\u0001"+ + "\u0063\u0003\u002d\u0001\u0061\u0001\u0074\u0001\uffff\u0001\u002d\u0001"+ + "\u006c\u0001\u0073\u0001\u006e\u0001\u0075\u0001\u0064\u0001\u0074\u0001"+ + "\u0072\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u0061\u0001\u0069\u0001"+ + "\u0065\u0001\u002d\u0001\u0065\u0001\u006f\u0001\u002d\u0001\u0063\u0001"+ + "\u0068\u0001\u002d\u0001\u0072\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u002d\u0001\u0000\u0001\u0074\u0001\u0064\u0001\u0062\u0001\u0069\u0001"+ + "\u002d\u0001\uffff\u0001\u0075\u0001\u0061\u0001\u0065\u0001\u002d\u0001"+ + "\u0079\u0001\uffff\u0001\u0062\u0001\uffff\u0003\u002d\u0001\u0074\u0001"+ + "\u0063\u0001\u006e\u0001\u0072\u0001\u006e\u0001\u0069\u0002\u006e\u0001"+ + "\uffff\u0001\u002d\u0001\u0072\u0001\u0061\u0001\u006c\u0001\u006e\u0001"+ + "\u0065\u0001\u002d\u0001\u0069\u0001\u0072\u0001\u006e\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u002d\u0001\u0069\u0001\u0065\u0001\u002d\u0001"+ + "\u0074\u0001\u006e\u0001\u006c\u0001\uffff\u0001\u0077\u0001\u0063\u0001"+ + "\u0067\u0001\u0069\u0001\u002d\u0001\uffff\u0001\u0074\u0002\u002d\u0001"+ + "\uffff\u0001\u0065\u0001\u002d\u0001\uffff\u0001\u0074\u0001\u0069\u0001"+ + "\u006e\u0001\u0074\u0002\u0073\u0001\u0072\u0001\uffff\u0001\u0069\u0001"+ + "\u002d\u0002\uffff\u0001\u0061\u0001\u002d\u0001\u0073\u0001\u0063\u0001"+ + "\uffff\u0001\u0065\u0001\u0079\u0001\uffff\u0001\u002d\u0001\u0070\u0001"+ + "\uffff\u0001\u0068\u0001\u0065\u0001\u002d\u0001\uffff\u0001\u006e\u0001"+ + "\u002d\u0001\uffff\u0001\u0073\u0001\u0074\u0002\u0072\u0001\u0064\u0001"+ + "\u0072\u0001\u006f\u0001\u0073\u0001\u006e\u0001\u0069\u0001\u0065\u0001"+ + "\u006e\u0001\u0065\u0001\u0063\u0002\u0069\u0001\u0066\u0001\uffff\u0001"+ + "\u0061\u0001\u002d\u0001\uffff\u0001\u0074\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u002d\u0001\u0074\u0001\u002d\u0001\u0069\u0001\uffff\u0001"+ + "\u006e\u0001\u0068\u0003\uffff\u0001\u0075\u0001\u002d\u0001\u0077\u0001"+ + "\uffff\u0001\u0069\u0002\u002d\u0002\u0065\u0001\u0069\u0001\u0063\u0001"+ + "\u002d\u0001\u0061\u0001\u002d\u0001\u0062\u0001\u006f\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\u0077\u0001\u0075\u0001\uffff\u0001\u0061\u0001"+ + "\u0074\u0001\u002d\u0001\uffff\u0001\u0079\u0001\u0064\u0003\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\u0075\u0001\u006e\u0001\uffff\u0002\u0072\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0001\u006c\u0003\uffff\u0001\u0069\u0002"+ + "\u0074\u0001\u0061\u0002\u0074\u0001\u006e\u0001\u0075\u0001\u0061\u0001"+ + "\uffff\u0001\u0065\u0001\u006c\u0001\u0074\u0001\u0064\u0001\u002d\u0001"+ + "\uffff\u0001\u0074\u0001\u0065\u0001\u0063\u0001\u006e\u0001\u0074\u0001"+ + "\u0073\u0001\uffff\u0001\u006e\u0001\u002d\u0001\uffff\u0001\u002d\u0001"+ + "\u0061\u0001\u0079\u0001\u0069\u0001\u0068\u0001\u006e\u0001\u006f\u0001"+ + "\uffff\u0001\u0069\u0002\uffff\u0001\u0073\u0001\u006e\u0001\uffff\u0001"+ + "\u002d\u0001\u0074\u0001\u0063\u0001\u002d\u0001\u0069\u0001\u0065\u0001"+ + "\u0069\u0001\u0074\u0001\uffff\u0001\u0067\u0001\uffff\u0001\u002d\u0001"+ + "\u0061\u0002\u002d\u0001\u0073\u0001\u0061\u0001\u0065\u0001\u0073\u0001"+ + "\uffff\u0001\u002d\u0001\u0064\u0001\u006e\u0001\uffff\u0002\u002d\u0001"+ + "\u0061\u0001\u006e\u0001\u0069\u0001\u0076\u0001\u0075\u0001\u0073\u0001"+ + "\u0074\u0001\u006c\u0003\u002d\u0001\u0065\u0001\u0064\u0001\u006f\u0001"+ + "\u0069\u0001\u002d\u0001\uffff\u0001\u0069\u0001\u0063\u0001\u002d\u0001"+ + "\uffff\u0001\u002d\u0001\uffff\u0001\u006e\u0001\u0067\u0001\u002d\u0001"+ + "\u0072\u0001\uffff\u0001\u0069\u0001\u006e\u0002\uffff\u0001\u002d\u0001"+ + "\u0072\u0001\u006e\u0001\u0061\u0001\uffff\u0001\u0074\u0001\uffff\u0001"+ + "\u006c\u0001\u006e\u0002\uffff\u0001\u002d\u0001\u0074\u0001\u0072\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0001\u0069\u0001\u0072\u0001\u006e\u0001"+ + "\u0074\u0001\u0067\u0001\u0069\u0001\u0079\u0002\uffff\u0001\u0065\u0001"+ + "\u006f\u0001\u0069\u0001\u002d\u0001\u0063\u0001\u0069\u0002\u002d\u0001"+ + "\u0073\u0001\u0065\u0001\u006d\u0003\u002d\u0001\u0061\u0001\uffff\u0001"+ + "\u0069\u0001\u006e\u0001\u0065\u0001\u0074\u0001\u002d\u0001\u0065\u0001"+ + "\u0067\u0002\uffff\u0001\u006c\u0001\u002d\u0001\u006e\u0002\u002d\u0001"+ + "\u006e\u0001\u006f\u0001\u0074\u0001\u0067\u0001\uffff\u0001\u002d\u0001"+ + "\u0065\u0001\uffff\u0001\u0074\u0001\u0063\u0001\u0074\u0001\u0079\u0001"+ + "\u0065\u0001\uffff\u0001\u0073\u0002\uffff\u0001\u0069\u0001\u0063\u0001"+ + "\u0072\u0001\u0065\u0001\uffff\u0001\u002d\u0001\u0067\u0002\uffff\u0001"+ + "\u0070\u0001\u002d\u0001\u006e\u0001\u0065\u0001\u0073\u0001\u0069\u0001"+ + "\u002d\u0001\u006c\u0001\uffff\u0001\u006e\u0002\uffff\u0001\u002d\u0001"+ + "\u0061\u0001\u006e\u0001\u0065\u0001\u0061\u0001\uffff\u0001\u0076\u0001"+ + "\u0065\u0002\uffff\u0001\u0067\u0001\u002d\u0001\uffff\u0001\u0075\u0001"+ + "\u0074\u0001\u0067\u0001\uffff\u0001\u0065\u0001\u0067\u0001\u0073\u0002"+ + "\u0065\u0001\u002d\u0001\uffff\u0001\u002d\u0001\u0064\u0002\uffff\u0001"+ + "\u0067\u0001\u002d\u0001\u0067\u0001\u0065\u0004\u002d\u0001\u006e\u0001"+ + "\u006f\u0001\uffff\u0001\u0074\u0001\u006e\u0002\uffff\u0002\u002d\u0001"+ + "\u0065\u0001\uffff\u0001\u0066\u0001\uffff\u0002\u006e\u0001\u0063\u0001"+ + "\u0074\u0002\u002d\u0001\uffff\u0001\u0071\u0002\u002d\u0001\uffff\u0001"+ + "\u0067\u0002\uffff\u0001\u002d\u0001\u006e\u0002\u002d\u0001\uffff\u0001"+ + "\u002d\u0001\u0069\u0001\u0074\u0001\u0079\u0002\u002d\u0001\u0065\u0001"+ + "\u0067\u0001\u0065\u0001\u0069\u0001\u0072\u0001\uffff\u0001\u002d\u0001"+ + "\u0068\u0001\u0073\u0001\u0067\u0002\u002d\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u0067\u0001\uffff\u0001\u0074\u0002\u0073\u0001\u0074\u0001"+ + "\u006c\u0001\u0065\u0002\u002d\u0001\uffff\u0001\u0073\u0001\u0063\u0001"+ + "\u002d\u0001\u0064\u0001\u002d\u0001\u0065\u0002\u002d\u0002\uffff\u0001"+ + "\u0073\u0001\u0069\u0001\u006f\u0001\uffff\u0002\u002d\u0002\uffff\u0001"+ + "\u0073\u0001\uffff\u0001\u002d\u0001\u006e\u0001\u0069\u0001\u0074\u0002"+ + "\uffff\u0001\u0073\u0001\u006f\u0001\u0065\u0001\u0074\u0001\u0067\u0001"+ + "\u0073\u0001\u002d\u0001\uffff\u0001\u006e\u0001\uffff\u0001\u0075\u0002"+ + "\uffff\u0001\u002d\u0001\uffff\u0001\u002d\u0001\uffff\u0001\u0073\u0001"+ + "\uffff\u0001\u0076\u0002\u002d\u0002\uffff\u0001\u002d\u0001\u006e\u0001"+ + "\u002d\u0001\u0074\u0001\u0076\u0001\uffff\u0001\u002d\u0001\u0065\u0001"+ + "\u002d\u0002\uffff\u0001\u0067\u0002\u002d\u0001\u0069\u0001\u0068\u0001"+ + "\u002d\u0001\u0074\u0001\u0065\u0002\u002d\u0002\uffff\u0001\u002d\u0001"+ + "\u0068\u0001\uffff\u0001\u002d\u0001\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u002d\u0001\u0074\u0001\u0072\u0002\uffff\u0001\u0070\u0001\uffff\u0001"+ + "\u002d\u0001\u006f\u0001\u002d\u0001\u0070\u0001\u0072\u0001\u0070\u0003"+ + "\u002d\u0001\uffff\u0001\u006f\u0001\u0065\u0001\u0073\u0002\uffff\u0002"+ + "\u0065\u0003\uffff\u0001\u002d\u0001\u006e\u0001\uffff\u0001\u002d\u0001"+ + "\u0065\u0001\u002d\u0001\uffff\u0001\u0070\u0001\u0073\u0001\uffff\u0001"+ + "\u002d\u0002\uffff\u0001\u006f\u0001\u0069\u0001\uffff\u0001\u0072\u0001"+ + "\u006d\u0003\uffff\u0001\u002d\u0003\uffff\u0002\u002d\u0001\u0061\u0001"+ + "\uffff\u0001\u006e\u0001\uffff\u0001\u0061\u0001\u006d\u0001\u0061\u0001"+ + "\u006f\u0003\uffff\u0001\u0064\u0001\u006e\u0001\u0069\u0001\u0070\u0001"+ + "\u002d\u0001\uffff\u0001\u006f\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u0061\u0002\u0069\u0001\u006e\u0001\u0070\u0001\u0069\u0001\u0065\u0002"+ + "\uffff\u0001\u0073\u0001\u0063\u0001\u002d\u0001\u0063\u0001\u0061\u0002"+ + "\u0072\u0001\u0065\u0001\u0063\u0001\u0062\u0001\u0061\u0001\uffff\u0001"+ + "\u0064\u0001\uffff\u0001\u0072\u0001\u0062\u0001\u006e\u0002\u002d\u0001"+ + "\u0062\u0001\u006e\u0002\u0065\u0001\uffff\u0001\u0065\u0001\u0074\u0001"+ + "\u0061\u0002\u002d\u0001\u0065\u0001\u006c\u0001\u0072\u0001\u0065\u0001"+ + "\u0061\u0001\u006c\u0001\u0073\u0002\uffff\u0001\u0075\u0001\u0074\u0001"+ + "\u006c\u0001\u002d\u0001\u0073\u0001\u002d\u0001\u0074\u0001\u0073\u0001"+ + "\uffff\u0001\u002d\u0001\u0069\u0001\u0061\u0001\u002d\u0001\u0074\u0001"+ + "\u0069\u0002\u0074\u0001\u002d\u0001\u0066\u0001\uffff\u0001\u002d\u0001"+ + "\uffff\u0001\u006f\u0001\u0065\u0001\uffff\u0001\u006e\u0001\u0074\u0001"+ + "\uffff\u0001\u006f\u0001\u006e\u0001\u0072\u0001\u0065\u0001\uffff\u0001"+ + "\u002d\u0001\uffff\u0001\u0072\u0001\u006c\u0001\u0067\u0001\u006f\u0001"+ + "\u0072\u0001\u0067\u0001\u0075\u0001\u002d\u0001\uffff\u0001\u002d\u0001"+ + "\u0066\u0001\u002d\u0001\u0072\u0002\u002d\u0001\u0063\u0002\uffff\u0001"+ + "\u002d\u0001\uffff\u0001\u002d\u0002\uffff\u0001\u0074\u0002\uffff\u0001"+ + "\u0069\u0001\u006f\u0001\u006e\u0001\u002d\u0001\uffff", + DFA19_maxS: + "\u0001\uffff\u0001\u0074\u0001\u0079\u0002\u006f\u0001\u0078\u0001"+ + "\u0075\u0003\u0074\u0002\u006f\u0002\u0072\u0001\u0065\u0001\u0077\u0001"+ + "\u0079\u0001\u0073\u0001\u0065\u0001\u006f\u0001\u0071\u0001\u0061\u0002"+ + "\u0065\u0001\u0075\u0001\u007c\u0001\u003a\u0007\uffff\u0002\u003d\u0001"+ + "\uffff\u0001\u0029\u0001\u0023\u0001\uffff\u0001\u003e\u0002\uffff\u0001"+ + "\u002d\u0001\u003f\u0002\u003e\u0001\u0039\u0006\uffff\u0001\u0065\u0001"+ + "\uffff\u0001\u0079\u0002\u007a\u0001\u006c\u0001\u0074\u0001\u0070\u0001"+ + "\u006f\u0001\uffff\u0001\u0073\u0001\u0075\u0001\u007a\u0001\u0066\u0001"+ + "\u0065\u0001\u006e\u0001\u0074\u0001\u0069\u0001\u0075\u0001\u0073\u0001"+ + "\u0076\u0001\u0063\u0001\u0073\u0001\u0070\u0001\u0074\u0001\u007a\u0001"+ + "\u0065\u0001\u0074\u0001\u0072\u0001\u006e\u0001\u0072\u0002\u006f\u0001"+ + "\u007a\u0001\u006f\u0001\u007a\u0001\u0069\u0001\u007a\u0001\u0070\u0002"+ + "\u007a\u0001\u0065\u0001\u0078\u0002\u007a\u0001\u0077\u0001\u0073\u0001"+ + "\u006e\u0001\u006d\u0003\u007a\u0001\u0074\u0002\u007a\u0001\u0063\u0001"+ + "\u0074\u0001\u006f\u0002\u0072\u0001\u0076\u0001\u0074\u0001\u006f\u0001"+ + "\u006e\u0001\u006d\u0001\u0072\u0003\u0069\u0001\u0078\u0001\u0065\u0001"+ + "\u007a\u0001\u0079\u0001\u0070\u0002\u006d\u0001\u006f\u0001\u0070\u0001"+ + "\u0069\u0002\u0072\u0001\u0069\u0001\u0074\u0001\u0069\u0001\u0072\u0001"+ + "\u0075\u0001\u004e\u0001\u0072\u0001\u0079\u0001\u006f\u0002\uffff\u0001"+ + "\u007a\u0010\uffff\u0001\u0078\u000b\uffff\u0001\u002d\u0001\u007a\u0009"+ + "\uffff\u0001\u0065\u0006\uffff\u0002\u0065\u0001\uffff\u0001\u0065\u0002"+ + "\u007a\u0001\u0065\u0001\uffff\u0001\u0072\u0001\uffff\u0001\u007a\u0001"+ + "\u0065\u0001\u007a\u0001\u0073\u0001\u0065\u0001\u006e\u0001\uffff\u0001"+ + "\u006f\u0002\u0061\u0001\u0074\u0001\u0063\u0001\u006c\u0001\u0063\u0001"+ + "\u006c\u0001\u006d\u0001\u0074\u0001\u0079\u0001\u006e\u0001\u006c\u0001"+ + "\u0061\u0001\u0063\u0001\u0065\u0001\u007a\u0001\u0069\u0001\u0063\u0001"+ + "\u0066\u0001\u0074\u0001\u0075\u0001\u006d\u0001\u0065\u0001\u0074\u0001"+ + "\u006f\u0001\u007a\u0001\u0069\u0001\uffff\u0001\u0072\u0002\u0065\u0001"+ + "\u0063\u0001\u0074\u0001\u006c\u0001\u007a\u0001\u0063\u0001\u0073\u0001"+ + "\u006d\u0001\u006f\u0001\u006e\u0001\u006f\u0001\u0072\u0001\uffff\u0001"+ + "\u0061\u0001\u0075\u0001\uffff\u0001\u0076\u0001\uffff\u0001\u006f\u0001"+ + "\u0065\u0001\u0074\u0001\u006f\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u006d\u0001\u007a\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u007a\u0001"+ + "\u0065\u0002\uffff\u0001\u0065\u0001\u0070\u0001\u007a\u0001\u0074\u0001"+ + "\u0075\u0001\u0065\u0001\u0074\u0001\uffff\u0001\u0070\u0001\u0065\u0001"+ + "\u007a\u0002\uffff\u0001\u0069\u0001\u0065\u0001\uffff\u0001\u0079\u0001"+ + "\uffff\u0001\u0075\u0001\u0065\u0001\u0074\u0001\u0076\u0002\u0063\u0001"+ + "\u0061\u0001\u0075\u0001\u0061\u0001\u006c\u0002\u0061\u0001\u0069\u0002"+ + "\u0065\u0001\u0072\u0001\u0066\u0001\u0074\u0001\u0065\u0001\u0072\u0001"+ + "\u0069\u0001\u006d\u0001\u0070\u0001\u0064\u0001\u0074\u0001\u0070\u0001"+ + "\u0074\u0001\u0073\u0001\uffff\u0001\u0061\u0001\u007a\u0001\u0065\u0001"+ + "\u0062\u0001\u0065\u0001\u0071\u0001\u0072\u0001\u0061\u0001\u0065\u0001"+ + "\u006e\u0001\u0075\u0001\u0069\u0001\u0073\u0001\u0072\u0001\u006c\u0001"+ + "\u0064\u0001\u0068\u0001\u0064\u0001\u0067\u0001\u0064\u0001\u0065\u0001"+ + "\u007a\u0001\u006f\u0001\u007a\u0001\u0074\u0004\uffff\u0001\u002d\u0003"+ + "\uffff\u0001\u0065\u0001\u0073\u0002\uffff\u0001\u006e\u0001\u0069\u0001"+ + "\u0077\u0001\uffff\u0001\u0072\u0001\uffff\u0001\u007a\u0001\u002d\u0001"+ + "\u0064\u0001\u0072\u0001\u006b\u0001\u0072\u0002\u007a\u0001\u0068\u0001"+ + "\u0064\u0001\u006b\u0002\u0065\u0001\u0074\u0001\u0069\u0001\u007a\u0001"+ + "\u0074\u0001\u0061\u0001\u006d\u0001\u0075\u0001\u0065\u0001\u0074\u0001"+ + "\uffff\u0001\u0074\u0001\u0072\u0001\u0065\u0001\u0061\u0001\u006d\u0001"+ + "\u0065\u0001\u007a\u0001\u0079\u0001\u0064\u0001\uffff\u0001\u0072\u0001"+ + "\u0079\u0001\u0070\u0001\u0072\u0001\u0074\u0001\u007a\u0001\u006f\u0001"+ + "\u0069\u0001\uffff\u0002\u0074\u0001\u007a\u0001\u0070\u0001\u0064\u0001"+ + "\u0074\u0001\u007a\u0001\u0074\u0001\u0070\u0001\u007a\u0002\u0072\u0001"+ + "\u0061\u0002\u0072\u0001\u007a\u0001\u006e\u0001\u0078\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\u0075\u0001\u0074\u0001\uffff\u0001\u006c\u0001"+ + "\u0072\u0001\u007a\u0001\u006c\u0001\u0066\u0001\uffff\u0001\u007a\u0002"+ + "\u0073\u0001\u007a\u0001\u006e\u0001\u0072\u0001\u007a\u0001\uffff\u0001"+ + "\u006f\u0001\u0072\u0001\u007a\u0001\u0072\u0001\u006e\u0001\u0067\u0003"+ + "\u0065\u0001\u0069\u0002\u0065\u0001\u006d\u0001\u0073\u0001\u0072\u0001"+ + "\u006d\u0001\u0061\u0001\u006c\u0001\u0074\u0001\u0073\u0001\u007a\u0001"+ + "\u006d\u0001\u0065\u0001\u007a\u0001\u0069\u0001\u0065\u0001\u007a\u0001"+ + "\u006c\u0001\u0074\u0001\u0070\u0001\u006d\u0001\u007a\u0001\u0069\u0001"+ + "\u0063\u0003\u007a\u0001\u0061\u0001\u0074\u0001\uffff\u0001\u007a\u0001"+ + "\u006c\u0001\u0073\u0001\u006e\u0001\u0075\u0001\u0064\u0001\u0074\u0001"+ + "\u0072\u0001\u0067\u0001\u0064\u0001\u0065\u0001\u0061\u0001\u0069\u0001"+ + "\u0065\u0001\u007a\u0001\u0065\u0001\u006f\u0001\u007a\u0001\u0063\u0001"+ + "\u0068\u0001\u007a\u0001\u0072\u0001\uffff\u0001\u002d\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u0074\u0001\u0064\u0001\u0062\u0001\u0069\u0001"+ + "\u007a\u0001\uffff\u0001\u0075\u0001\u0061\u0001\u0065\u0001\u007a\u0001"+ + "\u0079\u0001\uffff\u0001\u0062\u0001\uffff\u0003\u007a\u0001\u0074\u0001"+ + "\u0063\u0001\u006e\u0001\u0072\u0001\u0078\u0001\u0069\u0002\u006e\u0001"+ + "\uffff\u0001\u007a\u0001\u0072\u0001\u0061\u0001\u006c\u0001\u006e\u0001"+ + "\u0065\u0001\u007a\u0001\u0069\u0001\u0072\u0001\u006e\u0001\u0065\u0001"+ + "\u006e\u0001\uffff\u0001\u007a\u0001\u0069\u0001\u0065\u0001\u007a\u0001"+ + "\u0074\u0001\u006e\u0001\u006c\u0001\uffff\u0001\u0077\u0001\u0063\u0001"+ + "\u0067\u0001\u0069\u0001\u007a\u0001\uffff\u0001\u0074\u0002\u007a\u0001"+ + "\uffff\u0001\u0065\u0001\u007a\u0001\uffff\u0001\u0074\u0001\u0069\u0001"+ + "\u006e\u0001\u0074\u0002\u0073\u0001\u0072\u0001\uffff\u0001\u0069\u0001"+ + "\u007a\u0002\uffff\u0001\u0061\u0001\u007a\u0001\u0073\u0001\u0063\u0001"+ + "\uffff\u0001\u0065\u0001\u0079\u0001\uffff\u0001\u002d\u0001\u0070\u0001"+ + "\uffff\u0001\u0068\u0001\u0065\u0001\u007a\u0001\uffff\u0001\u006e\u0001"+ + "\u007a\u0001\uffff\u0001\u0073\u0001\u0074\u0002\u0072\u0001\u0064\u0001"+ + "\u0072\u0001\u006f\u0001\u0073\u0001\u006e\u0001\u0069\u0001\u0065\u0001"+ + "\u006e\u0001\u0065\u0001\u0063\u0002\u0069\u0001\u0066\u0001\uffff\u0001"+ + "\u0061\u0001\u007a\u0001\uffff\u0001\u0074\u0001\u006e\u0001\uffff\u0001"+ + "\u0065\u0001\u007a\u0001\u0074\u0001\u007a\u0001\u0069\u0001\uffff\u0001"+ + "\u006e\u0001\u0068\u0003\uffff\u0001\u0075\u0001\u007a\u0001\u0077\u0001"+ + "\uffff\u0001\u0069\u0002\u007a\u0002\u0065\u0001\u0069\u0001\u0063\u0001"+ + "\u007a\u0001\u0061\u0001\u007a\u0001\u0062\u0001\u006f\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\u0077\u0001\u0075\u0001\uffff\u0001\u0061\u0001"+ + "\u0074\u0001\u007a\u0001\uffff\u0001\u0079\u0001\u0064\u0003\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\u0075\u0001\u006e\u0001\uffff\u0002\u0072\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0001\u006c\u0003\uffff\u0001\u0069\u0002"+ + "\u0074\u0001\u0075\u0002\u0074\u0001\u006e\u0001\u0075\u0001\u0061\u0001"+ + "\uffff\u0001\u0065\u0001\u006c\u0001\u0074\u0001\u0064\u0001\u007a\u0001"+ + "\uffff\u0001\u0074\u0001\u0065\u0001\u0063\u0001\u006e\u0001\u0074\u0001"+ + "\u0073\u0001\uffff\u0001\u006e\u0001\u007a\u0001\uffff\u0001\u007a\u0001"+ + "\u0061\u0001\u0079\u0001\u0069\u0001\u0068\u0001\u006e\u0001\u006f\u0001"+ + "\uffff\u0001\u0069\u0002\uffff\u0001\u0073\u0001\u006e\u0001\uffff\u0001"+ + "\u007a\u0001\u0074\u0001\u0063\u0001\u007a\u0001\u0069\u0001\u0065\u0001"+ + "\u0069\u0001\u0074\u0001\uffff\u0001\u0067\u0001\uffff\u0001\u007a\u0001"+ + "\u0061\u0002\u007a\u0001\u0073\u0001\u0061\u0001\u0065\u0001\u0073\u0001"+ + "\uffff\u0001\u007a\u0001\u0064\u0001\u006e\u0001\uffff\u0002\u007a\u0001"+ + "\u0061\u0001\u006e\u0001\u0069\u0001\u0076\u0001\u0075\u0001\u0073\u0001"+ + "\u0074\u0001\u006c\u0003\u007a\u0001\u0065\u0001\u0064\u0001\u006f\u0001"+ + "\u0069\u0001\u007a\u0001\uffff\u0001\u0069\u0001\u0063\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\uffff\u0001\u006e\u0001\u0067\u0001\u007a\u0001"+ + "\u0072\u0001\uffff\u0001\u0069\u0001\u006e\u0002\uffff\u0001\u007a\u0001"+ + "\u0072\u0001\u006e\u0001\u0061\u0001\uffff\u0001\u0074\u0001\uffff\u0001"+ + "\u006c\u0001\u006e\u0002\uffff\u0001\u007a\u0001\u0074\u0001\u0072\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0001\u0069\u0001\u0072\u0001\u006e\u0001"+ + "\u0074\u0001\u0067\u0001\u0069\u0001\u0079\u0002\uffff\u0001\u0065\u0001"+ + "\u006f\u0001\u0069\u0001\u007a\u0001\u0063\u0001\u0069\u0002\u007a\u0001"+ + "\u0073\u0001\u0065\u0001\u006d\u0001\u007a\u0001\u002d\u0001\u007a\u0001"+ + "\u0069\u0001\uffff\u0001\u0069\u0001\u006e\u0001\u0065\u0001\u0074\u0001"+ + "\u007a\u0001\u0065\u0001\u0067\u0002\uffff\u0001\u006c\u0001\u007a\u0001"+ + "\u006e\u0002\u007a\u0001\u006e\u0001\u006f\u0001\u0074\u0001\u0067\u0001"+ + "\uffff\u0001\u007a\u0001\u0065\u0001\uffff\u0001\u0074\u0001\u0063\u0001"+ + "\u0074\u0001\u0079\u0001\u0065\u0001\uffff\u0001\u0073\u0002\uffff\u0001"+ + "\u0069\u0001\u0063\u0001\u0072\u0001\u0065\u0001\uffff\u0001\u007a\u0001"+ + "\u0067\u0002\uffff\u0001\u0070\u0001\u002d\u0001\u006e\u0001\u0065\u0001"+ + "\u0073\u0001\u0069\u0001\u007a\u0001\u006c\u0001\uffff\u0001\u006e\u0002"+ + "\uffff\u0001\u007a\u0001\u0061\u0001\u006e\u0002\u0065\u0001\uffff\u0001"+ + "\u0076\u0001\u0065\u0002\uffff\u0001\u0067\u0001\u007a\u0001\uffff\u0001"+ + "\u0075\u0001\u0074\u0001\u0067\u0001\uffff\u0001\u0065\u0001\u0067\u0001"+ + "\u0073\u0002\u0065\u0001\u007a\u0001\uffff\u0001\u007a\u0001\u0064\u0002"+ + "\uffff\u0001\u0067\u0001\u007a\u0001\u0067\u0001\u0065\u0002\u007a\u0001"+ + "\u002d\u0001\u007a\u0001\u006e\u0001\u006f\u0001\uffff\u0001\u0074\u0001"+ + "\u006e\u0002\uffff\u0002\u007a\u0001\u0065\u0001\uffff\u0001\u0073\u0001"+ + "\uffff\u0002\u006e\u0001\u0063\u0001\u0074\u0002\u007a\u0001\uffff\u0001"+ + "\u0071\u0002\u007a\u0001\uffff\u0001\u0067\u0002\uffff\u0001\u007a\u0001"+ + "\u006e\u0001\u007a\u0001\u002d\u0001\uffff\u0001\u007a\u0001\u0069\u0001"+ + "\u0074\u0001\u0079\u0002\u007a\u0001\u0065\u0001\u0067\u0001\u0065\u0001"+ + "\u0069\u0001\u0072\u0001\uffff\u0001\u007a\u0001\u0068\u0001\u0073\u0001"+ + "\u0067\u0002\u007a\u0001\u006e\u0001\uffff\u0001\u0065\u0001\u0067\u0001"+ + "\uffff\u0001\u0074\u0002\u0073\u0001\u0074\u0001\u006c\u0001\u0065\u0002"+ + "\u007a\u0001\uffff\u0001\u0073\u0001\u0063\u0001\u007a\u0001\u0064\u0001"+ + "\u007a\u0001\u0065\u0002\u007a\u0002\uffff\u0001\u0073\u0001\u0069\u0001"+ + "\u006f\u0001\uffff\u0002\u007a\u0002\uffff\u0001\u0073\u0001\uffff\u0001"+ + "\u007a\u0001\u006e\u0001\u0069\u0001\u0074\u0002\uffff\u0001\u0073\u0001"+ + "\u006f\u0001\u0065\u0001\u0074\u0001\u0067\u0001\u0073\u0001\u007a\u0001"+ + "\uffff\u0001\u006e\u0001\uffff\u0001\u0075\u0002\uffff\u0001\u007a\u0001"+ + "\uffff\u0001\u007a\u0001\uffff\u0001\u0073\u0001\uffff\u0001\u0076\u0002"+ + "\u007a\u0002\uffff\u0001\u007a\u0001\u006e\u0001\u007a\u0001\u0074\u0001"+ + "\u0076\u0001\uffff\u0001\u007a\u0001\u0065\u0001\u007a\u0002\uffff\u0001"+ + "\u0067\u0002\u007a\u0001\u0069\u0001\u0068\u0001\u007a\u0001\u0074\u0001"+ + "\u0065\u0002\u007a\u0002\uffff\u0001\u007a\u0001\u0068\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0002\uffff\u0001\u007a\u0001\u0074\u0001"+ + "\u0072\u0002\uffff\u0001\u0070\u0001\uffff\u0001\u007a\u0001\u006f\u0001"+ + "\u007a\u0001\u0070\u0001\u0072\u0001\u0070\u0003\u007a\u0001\uffff\u0001"+ + "\u006f\u0001\u0065\u0001\u0073\u0002\uffff\u0002\u0065\u0003\uffff\u0001"+ + "\u007a\u0001\u006e\u0001\uffff\u0001\u007a\u0001\u0065\u0001\u007a\u0001"+ + "\uffff\u0001\u0070\u0001\u0073\u0001\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u006f\u0001\u0069\u0001\uffff\u0001\u0072\u0001\u006d\u0003\uffff\u0001"+ + "\u007a\u0003\uffff\u0001\u007a\u0001\u002d\u0001\u0061\u0001\uffff\u0001"+ + "\u006e\u0001\uffff\u0001\u0061\u0001\u006d\u0001\u0061\u0001\u006f\u0003"+ + "\uffff\u0001\u0064\u0001\u006e\u0001\u0069\u0001\u0070\u0001\u007a\u0001"+ + "\uffff\u0001\u006f\u0001\uffff\u0001\u007a\u0001\uffff\u0001\u0061\u0002"+ + "\u0069\u0001\u006e\u0001\u0070\u0001\u0069\u0001\u0065\u0002\uffff\u0001"+ + "\u0073\u0001\u0063\u0001\u007a\u0001\u0063\u0001\u0061\u0002\u0072\u0001"+ + "\u0065\u0001\u0063\u0001\u0062\u0001\u0061\u0001\uffff\u0001\u0064\u0001"+ + "\uffff\u0001\u0072\u0001\u0062\u0001\u006e\u0002\u007a\u0001\u0062\u0001"+ + "\u006e\u0002\u0065\u0001\uffff\u0001\u0065\u0001\u0074\u0001\u0061\u0001"+ + "\u002d\u0001\u007a\u0001\u0065\u0001\u006c\u0001\u0072\u0001\u0065\u0001"+ + "\u0061\u0001\u006c\u0001\u0073\u0002\uffff\u0001\u0075\u0001\u0074\u0001"+ + "\u006c\u0001\u007a\u0001\u0073\u0001\u007a\u0001\u0074\u0001\u0073\u0001"+ + "\uffff\u0001\u007a\u0001\u0069\u0001\u0061\u0001\u007a\u0001\u0074\u0001"+ + "\u0069\u0002\u0074\u0001\u007a\u0001\u0066\u0001\uffff\u0001\u007a\u0001"+ + "\uffff\u0001\u006f\u0001\u0065\u0001\uffff\u0001\u006e\u0001\u0074\u0001"+ + "\uffff\u0001\u006f\u0001\u006e\u0001\u0072\u0001\u0065\u0001\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u0072\u0001\u006c\u0001\u0067\u0001\u006f\u0001"+ + "\u0072\u0001\u0067\u0001\u0075\u0001\u007a\u0001\uffff\u0001\u007a\u0001"+ + "\u0066\u0001\u007a\u0001\u0072\u0002\u007a\u0001\u0063\u0002\uffff\u0001"+ + "\u007a\u0001\uffff\u0001\u007a\u0002\uffff\u0001\u0074\u0002\uffff\u0001"+ + "\u0069\u0001\u006f\u0001\u006e\u0001\u007a\u0001\uffff", + DFA19_acceptS: + "\u001b\uffff\u0001\u00cf\u0001\u00d0\u0001\u00d1\u0001\u00d2\u0001"+ + "\u00d3\u0001\u00d4\u0001\u00d5\u0002\uffff\u0001\u00d8\u0002\uffff\u0001"+ + "\u00db\u0001\uffff\u0001\u00dd\u0001\u00de\u0005\uffff\u0001\u00ee\u0001"+ + "\u00f6\u0001\u00f9\u0001\u00fa\u0001\u00fb\u0001\u00fc\u0001\uffff\u0001"+ + "\u0104\u0007\uffff\u0001\u00fb\u0050\uffff\u0001\u00cd\u0001\u00ef\u0001"+ + "\uffff\u0001\u0103\u0001\u00ce\u0001\u00cf\u0001\u00d0\u0001\u00d1\u0001"+ + "\u00d2\u0001\u00d3\u0001\u00d4\u0001\u00d5\u0001\u00d6\u0001\u00eb\u0001"+ + "\u00ea\u0001\u00d7\u0001\u00d8\u0001\u00f1\u0001\u00d9\u0001\uffff\u0001"+ + "\u00da\u0001\u00db\u0001\u00f5\u0001\u00dc\u0001\u00dd\u0001\u00de\u0001"+ + "\u00f3\u0001\u00df\u0001\u00e2\u0001\u00e4\u0001\u00ed\u0002\uffff\u0001"+ + "\u00e0\u0001\u00e3\u0001\u00e5\u0001\u00e1\u0001\u00e7\u0001\u00ec\u0001"+ + "\u00e6\u0001\u00e9\u0001\u00e8\u0001\uffff\u0001\u00ee\u0001\u00f6\u0001"+ + "\u00f9\u0001\u00fa\u0001\u00fc\u0001\u0100\u0002\uffff\u0001\u0102\u0004"+ + "\uffff\u0001\u0004\u0001\uffff\u0001\u0006\u0006\uffff\u0001\u000a\u001c"+ + "\uffff\u0001\u0020\u000e\uffff\u0001\u0028\u0002\uffff\u0001\u002a\u0001"+ + "\uffff\u0001\u002c\u0006\uffff\u0001\u002e\u0001\u0032\u0007\uffff\u0001"+ + "\u0035\u0001\u0038\u0007\uffff\u0001\u003c\u0003\uffff\u0001\u00a2\u0001"+ + "\u0040\u0002\uffff\u0001\u0042\u0001\uffff\u0001\u00c7\u001c\uffff\u0001"+ + "\u0057\u0019\uffff\u0001\u00f0\u0001\u00fd\u0001\u00f8\u0001\u00f7\u0001"+ + "\uffff\u0001\u00f4\u0001\u00ff\u0001\u0101\u0002\uffff\u0001\u0003\u0001"+ + "\u0090\u0003\uffff\u0001\u008f\u0001\uffff\u0001\u00ca\u0016\uffff\u0001"+ + "\u0018\u0009\uffff\u0001\u0068\u0008\uffff\u0001\u0026\u0013\uffff\u0001"+ + "\u0034\u0003\uffff\u0001\u0037\u0005\uffff\u0001\u0039\u0007\uffff\u0001"+ + "\u00a3\u0027\uffff\u0001\u0078\u0016\uffff\u0001\u006e\u0001\uffff\u0001"+ + "\u00c6\u0007\uffff\u0001\u00cb\u0005\uffff\u0001\u000b\u0001\uffff\u0001"+ + "\u000c\u000b\uffff\u0001\u0080\u000c\uffff\u0001\u001c\u0007\uffff\u0001"+ + "\u00bb\u0005\uffff\u0001\u0098\u0003\uffff\u0001\u009c\u0002\uffff\u0001"+ + "\u002b\u0007\uffff\u0001\u0084\u0002\uffff\u0001\u0033\u0001\u0085\u0004"+ + "\uffff\u0001\u00bc\u0002\uffff\u0001\u00a1\u0002\uffff\u0001\u006f\u0003"+ + "\uffff\u0001\u003f\u0002\uffff\u0001\u0070\u0011\uffff\u0001\u00a9\u0002"+ + "\uffff\u0001\u0050\u0002\uffff\u0001\u0051\u0005\uffff\u0001\u00af\u0002"+ + "\uffff\u0001\u008b\u0001\u0055\u0001\u0056\u0003\uffff\u0001\u007a\u000d"+ + "\uffff\u0001\u007b\u0003\uffff\u0001\u008e\u0003\uffff\u0001\u00b7\u0002"+ + "\uffff\u0001\u00cc\u0001\u00f2\u0001\u00fe\u0004\uffff\u0001\u007e\u0003"+ + "\uffff\u0001\u00b9\u0002\uffff\u0001\u0062\u0001\u000e\u0001\u00bf\u0009"+ + "\uffff\u0001\u0064\u0005\uffff\u0001\u0067\u0006\uffff\u0001\u001d\u0002"+ + "\uffff\u0001\u0021\u0007\uffff\u0001\u0082\u0001\uffff\u0001\u009a\u0001"+ + "\u009b\u0002\uffff\u0001\u0069\u0008\uffff\u0001\u00c4\u0001\uffff\u0001"+ + "\u0036\u0008\uffff\u0001\u0087\u0003\uffff\u0001\u0043\u0012\uffff\u0001"+ + "\u00aa\u0003\uffff\u0001\u0076\u0001\uffff\u0001\u0054\u0004\uffff\u0001"+ + "\u0058\u0002\uffff\u0001\u00b1\u0001\u005a\u0004\uffff\u0001\u00b3\u0001"+ + "\uffff\u0001\u008d\u0002\uffff\u0001\u005f\u0001\u00be\u0004\uffff\u0001"+ + "\u00b8\u0008\uffff\u0001\u007f\u0001\u00c9\u000f\uffff\u0001\u0081\u0007"+ + "\uffff\u0001\u0096\u0001\u0022\u0009\uffff\u0001\u002d\u0002\uffff\u0001"+ + "\u0083\u0005\uffff\u0001\u009f\u0001\uffff\u0001\u003a\u0001\u0086\u0004"+ + "\uffff\u0001\u0041\u0002\uffff\u0001\u00a4\u0001\u0046\u0008\uffff\u0001"+ + "\u00a7\u0001\uffff\u0001\u004b\u0001\u0088\u0005\uffff\u0001\u004d\u0002"+ + "\uffff\u0001\u0052\u0001\u0053\u0002\uffff\u0001\u0077\u0003\uffff\u0001"+ + "\u00c8\u0006\uffff\u0001\u007c\u0002\uffff\u0001\u00b4\u0001\u0060\u000a"+ + "\uffff\u0001\u0010\u0002\uffff\u0001\u0063\u0001\u0092\u0003\uffff\u0001"+ + "\u0013\u0001\uffff\u0001\u0014\u0006\uffff\u0001\u001b\u0003\uffff\u0001"+ + "\u0097\u0001\uffff\u0001\u00c2\u0001\u00c3\u0004\uffff\u0001\u002f\u000b"+ + "\uffff\u0001\u0044\u0007\uffff\u0001\u0072\u0002\uffff\u0001\u0089\u0008"+ + "\uffff\u0001\u0075\u0008\uffff\u0001\u005e\u0001\u00b6\u0003\uffff\u0001"+ + "\u0001\u0002\uffff\u0001\u0061\u0001\u0008\u0001\uffff\u0001\u000d\u0004"+ + "\uffff\u0001\u0091\u0001\u00ba\u0007\uffff\u0001\u0095\u0001\uffff\u0001"+ + "\u0019\u0001\uffff\u0001\u001f\u0001\u0023\u0001\uffff\u0001\u0027\u0001"+ + "\uffff\u0001\u0029\u0001\uffff\u0001\u0030\u0003\uffff\u0001\u006b\u0001"+ + "\u009e\u0005\uffff\u0001\u0045\u0003\uffff\u0001\u0049\u0001\u0074\u000a"+ + "\uffff\u0001\u00ac\u0001\u00ae\u0002\uffff\u0001\u0079\u0001\uffff\u0001"+ + "\u008c\u0001\uffff\u0001\u005c\u0001\u005d\u0003\uffff\u0001\u0005\u0001"+ + "\u0007\u0001\uffff\u0001\u000f\u0009\uffff\u0001\u0094\u0003\uffff\u0001"+ + "\u0024\u0001\u0099\u0002\uffff\u0001\u0031\u0001\u00c5\u0001\u00a0\u0002"+ + "\uffff\u0001\u003b\u0003\uffff\u0001\u00a5\u0002\uffff\u0001\u0047\u0001"+ + "\uffff\u0001\u0073\u0001\u00bd\u0002\uffff\u0001\u004c\u0002\uffff\u0001"+ + "\u00ab\u0001\u00ad\u0001\u00b0\u0001\uffff\u0001\u005b\u0001\u00b2\u0001"+ + "\u00b5\u0003\uffff\u0001\u00c0\u0001\uffff\u0001\u00c1\u0004\uffff\u0001"+ + "\u0015\u0001\u0017\u0001\u0093\u0005\uffff\u0001\u006c\u0001\uffff\u0001"+ + "\u003d\u0001\uffff\u0001\u00a6\u0007\uffff\u0001\u0059\u0001\u007d\u000b"+ + "\uffff\u0001\u009d\u0001\uffff\u0001\u003e\u0009\uffff\u0001\u0011\u000c"+ + "\uffff\u0001\u008a\u0001\u00a8\u0008\uffff\u0001\u001a\u000a\uffff\u0001"+ + "\u0009\u0001\uffff\u0001\u0065\u0002\uffff\u0001\u001e\u0002\uffff\u0001"+ + "\u006d\u0004\uffff\u0001\u004f\u0001\uffff\u0001\u0012\u0008\uffff\u0001"+ + "\u0002\u0007\uffff\u0001\u004e\u0001\u0066\u0001\uffff\u0001\u0025\u0001"+ + "\uffff\u0001\u0071\u0001\u0048\u0001\uffff\u0001\u0016\u0001\u006a\u0004"+ + "\uffff\u0001\u004a", + DFA19_specialS: + "\u0001\u0000\u0019\uffff\u0001\u0001\u01e5\uffff\u0001\u0002\u02db"+ + "\uffff}>", + DFA19_transitionS: [ + "\u0009\u0037\u0002\u0035\u0002\u0037\u0001\u0035\u0012\u0037"+ + "\u0001\u0035\u0001\u0023\u0001\u0033\u0001\u0025\u0001\u001c"+ + "\u0001\u0024\u0001\u0026\u0001\u0032\u0001\u001a\u0001\u001b"+ + "\u0001\u0029\u0001\u002a\u0001\u0027\u0001\u002b\u0001\u002f"+ + "\u0001\u002e\u000a\u0036\u0001\u0022\u0001\u0030\u0001\u002c"+ + "\u0001\u0021\u0001\u002d\u0001\u0028\u0001\u0031\u000d\u0034"+ + "\u0001\u0015\u000c\u0034\u0001\u001f\u0001\u0037\u0001\u0020"+ + "\u0001\u0037\u0001\u0034\u0001\u0037\u0001\u0001\u0001\u0002"+ + "\u0001\u0003\u0001\u0004\u0001\u0005\u0001\u0006\u0001\u0007"+ + "\u0001\u0034\u0001\u0008\u0001\u0034\u0001\u0017\u0001\u0009"+ + "\u0001\u000a\u0001\u000b\u0001\u000c\u0001\u000d\u0001\u0018"+ + "\u0001\u000e\u0001\u000f\u0001\u0010\u0001\u0011\u0001\u0012"+ + "\u0001\u0013\u0001\u0014\u0001\u0034\u0001\u0016\u0001\u001d"+ + "\u0001\u0019\u0001\u001e\uff82\u0037", + "\u0001\u003c\u0005\uffff\u0001\u003b\u0001\u003d\u0001\u0038"+ + "\u0001\uffff\u0001\u003e\u0002\uffff\u0001\u0039\u0001\u003a", + "\u0001\u0040\u0003\uffff\u0001\u0043\u0003\uffff\u0001\u0045"+ + "\u0005\uffff\u0001\u0041\u0002\uffff\u0001\u0044\u0006\uffff"+ + "\u0001\u0042", + "\u0001\u0046\u0006\uffff\u0001\u0047\u0006\uffff\u0001\u0048", + "\u0001\u0049\u0003\uffff\u0001\u004a\u0005\uffff\u0001\u004b", + "\u0001\u004c\u0001\u004d\u0001\u004e\u0002\uffff\u0001\u004f"+ + "\u0004\uffff\u0001\u0050\u0001\uffff\u0001\u0051", + "\u0001\u0054\u0005\uffff\u0001\u0052\u0002\uffff\u0001\u0055"+ + "\u0001\uffff\u0001\u0056\u0001\u0053", + "\u0001\u0057\u000c\uffff\u0001\u0058\u0001\uffff\u0001\u0059", + "\u0001\u005a\u0001\uffff\u0001\u005b\u0006\uffff\u0001\u005c"+ + "\u0001\u005d\u0004\uffff\u0001\u005e\u0001\u005f", + "\u0001\u0060\u0003\uffff\u0001\u0061\u0009\uffff\u0001\u0063"+ + "\u0004\uffff\u0001\u0062", + "\u0001\u0065\u0005\uffff\u0001\u0064", + "\u0001\u0066\u0003\uffff\u0001\u0067\u0009\uffff\u0001\u0068", + "\u0001\u006d\u0002\uffff\u0001\u0069\u0007\uffff\u0001\u006c"+ + "\u0001\uffff\u0001\u006a\u0001\uffff\u0001\u006b", + "\u0001\u006e\u0003\uffff\u0001\u0070\u0002\uffff\u0001\u0071"+ + "\u0009\uffff\u0001\u006f", + "\u0001\u0072", + "\u0001\u0073\u0001\uffff\u0001\u0074\u0001\uffff\u0001\u0075"+ + "\u0005\uffff\u0001\u007a\u0001\u0078\u0002\uffff\u0001\u0076"+ + "\u0004\uffff\u0001\u0077\u0002\uffff\u0001\u0079", + "\u0001\u007b\u0002\uffff\u0001\u007c\u0001\u0081\u0005\uffff"+ + "\u0001\u007d\u0002\uffff\u0001\u007e\u0002\uffff\u0001\u0080"+ + "\u0003\uffff\u0001\u007f", + "\u0001\u0082\u0001\uffff\u0001\u0083\u0002\uffff\u0001\u0084", + "\u0001\u0085\u0003\uffff\u0001\u0086", + "\u0001\u0089\u0002\uffff\u0001\u0087\u0001\u0088\u0005\uffff"+ + "\u0001\u008a", + "\u0001\u008b", + "\u0001\u008c", + "\u0001\u008d", + "\u0001\u008e", + "\u0001\u008f", + "\u0001\u0090", + "\u0001\u0092\u0016\uffff\u0001\u0093", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u009d\u0002\uffff\u0001\u009c", + "\u0001\u009f", + "", + "\u0001\u00a1", + "\u0001\u00a3", + "", + "\u0001\u00a6", + "", + "", + "\u0001\u00aa", + "\u0001\u00af\u000d\uffff\u0001\u00ae\u000c\uffff\u0001\u00ad"+ + "\u0001\u00ac\u0001\uffff\u0001\u00b0", + "\u0001\u00b2\u0001\u00b3", + "\u0001\u00b5\u000e\uffff\u0001\u00b6", + "\u0001\u00b8\u0001\uffff\u000a\u00ba", + "", + "", + "", + "", + "", + "", + "\u0001\u00c2\u0001\uffff\u000a\u00c1\u000b\uffff\u0001\u00c3"+ + "\u001f\uffff\u0001\u00c3", + "", + "\u0001\u00c4\u0001\u00c5\u0014\uffff\u0001\u00c6", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0002\u003f\u0001\u00c7"+ + "\u0017\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0013\u003f\u0001\u00c9"+ + "\u0006\u003f", + "\u0001\u00cb", + "\u0001\u00cc", + "\u0001\u00cd", + "\u0001\u00ce", + "", + "\u0001\u00cf", + "\u0001\u00d0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00d2", + "\u0001\u00d3", + "\u0001\u00d4", + "\u0001\u00d5\u0001\u00d6", + "\u0001\u00d8\u0003\uffff\u0001\u00d7", + "\u0001\u00d9\u0001\u00da\u0001\u00db\u0001\uffff\u0001\u00dc"+ + "\u0004\uffff\u0001\u00dd", + "\u0001\u00de\u0002\uffff\u0001\u00df\u0005\uffff\u0001\u00e1"+ + "\u0006\uffff\u0001\u00e0", + "\u0001\u00e4\u0004\uffff\u0001\u00e5\u0001\u00e3\u000b\uffff"+ + "\u0001\u00e6\u0002\uffff\u0001\u00e2", + "\u0001\u00e7", + "\u0001\u00e8\u000d\uffff\u0001\u00e9", + "\u0001\u00ea", + "\u0001\u00eb\u0001\u00ec\u000f\uffff\u0001\u00ed", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00ef", + "\u0001\u00f2\u0001\uffff\u0001\u00f0\u0005\uffff\u0001\u00f3"+ + "\u000a\uffff\u0001\u00f1", + "\u0001\u00f4\u0005\uffff\u0001\u00f5", + "\u0001\u00f6", + "\u0001\u00f7", + "\u0001\u00f8", + "\u0001\u00f9\u0033\uffff\u0001\u00fa\u000c\uffff\u0001\u00fb"+ + "\u0001\u00fc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u00fe\u0009\uffff\u0001\u00ff", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0101", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0103", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f\u0001\u0108"+ + "\u0001\u003f\u0001\u0107\u0001\u003f\u0001\u0104\u000a\u003f"+ + "\u0001\u0105\u0001\u0106\u0006\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u010b", + "\u0001\u010e\u0004\uffff\u0001\u010d\u0004\uffff\u0001\u010c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0001\u010f\u0012\u003f"+ + "\u0001\u0110\u0001\u003f\u0001\u0111\u0004\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0115\u0007\uffff\u0001\u0114", + "\u0001\u0116\u000e\uffff\u0001\u0117", + "\u0001\u0118", + "\u0001\u0119", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0017\u003f\u0001\u011a"+ + "\u0002\u003f", + "\u0001\u011c\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f"+ + "\u0001\u011d\u000f\u003f\u0001\u011e\u0006\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0121", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0003\u003f\u0001\u0122"+ + "\u0016\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000b\u003f\u0001\u0124"+ + "\u000e\u003f", + "\u0001\u0126", + "\u0001\u0127\u0001\uffff\u0001\u0128", + "\u0001\u0129\u0009\uffff\u0001\u012a", + "\u0001\u012b", + "\u0001\u012c", + "\u0001\u0131\u0001\uffff\u0001\u012e\u0001\uffff\u0001\u012f"+ + "\u0003\uffff\u0001\u012d\u0001\uffff\u0001\u0130", + "\u0001\u0133\u0006\uffff\u0001\u0132", + "\u0001\u0134\u0006\uffff\u0001\u0135", + "\u0001\u0136\u0001\uffff\u0001\u0137", + "\u0001\u0138", + "\u0001\u0139\u0003\uffff\u0001\u013b\u0009\uffff\u0001\u013c"+ + "\u0002\uffff\u0001\u013a", + "\u0001\u013d", + "\u0001\u013e", + "\u0001\u013f", + "\u0001\u0140", + "\u0001\u0141", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0143\u0013\uffff\u0001\u0144", + "\u0001\u0145", + "\u0001\u0146", + "\u0001\u0147", + "\u0001\u0148\u0005\uffff\u0001\u0149", + "\u0001\u014a\u000b\uffff\u0001\u014b", + "\u0001\u014c", + "\u0001\u014d\u0005\uffff\u0001\u014e", + "\u0001\u014f", + "\u0001\u0150\u0003\uffff\u0001\u0151", + "\u0001\u0154\u0001\uffff\u0001\u0152\u0005\uffff\u0001\u0153", + "\u0001\u0155", + "\u0001\u0156", + "\u0001\u0157", + "\u0001\u0158", + "\u0001\u0159", + "\u0001\u015a", + "\u0001\u015b", + "", + "", + "\u0002\u015d\u0002\uffff\u0001\u015d\u0012\uffff\u0001\u015d"+ + "\u0020\uffff\u001a\u015d\u0004\uffff\u0001\u015d\u0001\uffff"+ + "\u001a\u015d", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u015e", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u0001\u0160", + "\u0002\u0162\u0002\uffff\u0001\u0162\u0012\uffff\u0001\u0162"+ + "\u0020\uffff\u001a\u0162\u0004\uffff\u0001\u0162\u0001\uffff"+ + "\u001a\u0162", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\u000a\u00ba\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "", + "", + "", + "", + "", + "", + "\u0001\u00c2\u0001\uffff\u000a\u00c1\u000b\uffff\u0001\u00c3"+ + "\u001f\uffff\u0001\u00c3", + "\u000a\u0164\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "", + "\u0001\u0165", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0168", + "", + "\u0001\u0169", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000e\u003f\u0001\u016a"+ + "\u000b\u003f", + "\u0001\u016c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u016e", + "\u0001\u016f", + "\u0001\u0170", + "", + "\u0001\u0171", + "\u0001\u0172", + "\u0001\u0173", + "\u0001\u0174\u000e\uffff\u0001\u0175", + "\u0001\u0176", + "\u0001\u0177", + "\u0001\u0178", + "\u0001\u0179", + "\u0001\u017a", + "\u0001\u017b\u0001\u017c", + "\u0001\u017d", + "\u0001\u017e", + "\u0001\u0180\u0002\uffff\u0001\u017f", + "\u0001\u0181", + "\u0001\u0182", + "\u0001\u0183", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0185", + "\u0001\u0186", + "\u0001\u0187", + "\u0001\u0188", + "\u0001\u0189", + "\u0001\u018a", + "\u0001\u018b", + "\u0001\u018c", + "\u0001\u018d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u018f", + "", + "\u0001\u0190", + "\u0001\u0191", + "\u0001\u0192", + "\u0001\u0193", + "\u0001\u0194", + "\u0001\u0195", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0004\u003f\u0001\u0196"+ + "\u0015\u003f", + "\u0001\u0198", + "\u0001\u0199", + "\u0001\u019a", + "\u0001\u019b", + "\u0001\u019c", + "\u0001\u019d", + "\u0001\u019e", + "", + "\u0001\u019f", + "\u0001\u01a0", + "", + "\u0001\u01a1", + "", + "\u0001\u01a2", + "\u0001\u01a3", + "\u0001\u01a5\u000e\uffff\u0001\u01a4", + "\u0001\u01a6\u0009\uffff\u0001\u01a7", + "\u0001\u01a8", + "\u0001\u01a9", + "", + "", + "\u0001\u01aa", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01ac", + "\u0001\u01ad", + "\u0001\u01ae", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01b0", + "", + "", + "\u0001\u01b1", + "\u0001\u01b2", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u01b4"+ + "\u000b\u003f\u0001\u01b3\u0005\u003f", + "\u0001\u01b6", + "\u0001\u01b7", + "\u0001\u01b8", + "\u0001\u01b9", + "", + "\u0001\u01ba\u0006\uffff\u0001\u01bb", + "\u0001\u01bc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u01be", + "\u0001\u01bf", + "", + "\u0001\u01c0", + "", + "\u0001\u01c1", + "\u0001\u01c3\u0003\uffff\u0001\u01c2", + "\u0001\u01c4", + "\u0001\u01c5\u000f\uffff\u0001\u01c6\u0002\uffff\u0001\u01c7", + "\u0001\u01c8", + "\u0001\u01ca\u0035\uffff\u0001\u01c9", + "\u0001\u01cb", + "\u0001\u01cc", + "\u0001\u01cd", + "\u0001\u01ce", + "\u0001\u01cf", + "\u0001\u01d0", + "\u0001\u01d1", + "\u0001\u01d2", + "\u0001\u01d3", + "\u0001\u01d4", + "\u0001\u01d5", + "\u0001\u01d6\u0001\u01d7", + "\u0001\u01d8", + "\u0001\u01d9\u000f\uffff\u0001\u01da", + "\u0001\u01db", + "\u0001\u01dc", + "\u0001\u01dd", + "\u0001\u01de", + "\u0001\u01df", + "\u0001\u01e0", + "\u0001\u01e1", + "\u0001\u01e2\u0004\uffff\u0001\u01e3", + "", + "\u0001\u01e4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01e6", + "\u0001\u01e7", + "\u0001\u01e8", + "\u0001\u01e9\u0001\uffff\u0001\u01ea", + "\u0001\u01eb", + "\u0001\u01ec", + "\u0001\u01ed", + "\u0001\u01ee", + "\u0001\u01ef\u000b\uffff\u0001\u01f0", + "\u0001\u01f1", + "\u0001\u01f2", + "\u0001\u01f4\u0003\uffff\u0001\u01f3", + "\u0001\u01f5", + "\u0001\u01f6", + "\u0001\u01f7", + "\u0001\u01f8", + "\u0001\u01f9", + "\u0001\u01fa", + "\u0001\u01fb", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01fd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u01ff", + "", + "", + "", + "", + "\u0001\u0200", + "", + "", + "", + "\u000a\u0164\u000b\uffff\u0001\u00c3\u001f\uffff\u0001\u00c3", + "\u0001\u0201", + "", + "", + "\u0001\u0202", + "\u0001\u0203", + "\u0001\u0204", + "", + "\u0001\u0205", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0207", + "\u0001\u0208", + "\u0001\u0209", + "\u0001\u020a", + "\u0001\u020b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0001\u020d\u0019\u003f", + "\u0001\u020f", + "\u0001\u0210", + "\u0001\u0211", + "\u0001\u0212\u0003\uffff\u0001\u0213", + "\u0001\u0214", + "\u0001\u0215", + "\u0001\u0217\u0003\uffff\u0001\u0216\u0003\uffff\u0001\u0218", + "\u0001\u0219\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u021b", + "\u0001\u021c", + "\u0001\u021d", + "\u0001\u021e", + "\u0001\u021f", + "\u0001\u0220", + "", + "\u0001\u0221", + "\u0001\u0222", + "\u0001\u0223", + "\u0001\u0224", + "\u0001\u0225", + "\u0001\u0226", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0228", + "\u0001\u0229", + "", + "\u0001\u022a", + "\u0001\u022b", + "\u0001\u022c", + "\u0001\u022d", + "\u0001\u022e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0230", + "\u0001\u0231\u0007\uffff\u0001\u0232", + "", + "\u0001\u0233", + "\u0001\u0234", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0236", + "\u0001\u0237", + "\u0001\u0238", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u023a", + "\u0001\u023b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u023d", + "\u0001\u023e", + "\u0001\u023f", + "\u0001\u0241\u0003\uffff\u0001\u0240", + "\u0001\u0243\u000a\uffff\u0001\u0242", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0245", + "\u0001\u0246", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0249", + "\u0001\u024a", + "", + "\u0001\u024b", + "\u0001\u024c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u024e", + "\u0001\u024f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0251", + "\u0001\u0252", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0254", + "\u0001\u0255", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0256"+ + "\u0007\u003f", + "", + "\u0001\u0258", + "\u0001\u0259", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u025b", + "\u0001\u025c", + "\u0001\u025d", + "\u0001\u025e", + "\u0001\u025f", + "\u0001\u0260", + "\u0001\u0261", + "\u0001\u0262", + "\u0001\u0263", + "\u0001\u0264", + "\u0001\u0265", + "\u0001\u0266", + "\u0001\u0267", + "\u0001\u0268", + "\u0001\u0269", + "\u0001\u026a", + "\u0001\u026b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u026d", + "\u0001\u026e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0270", + "\u0001\u0271", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0273", + "\u0001\u0274", + "\u0001\u0275\u000c\uffff\u0001\u0276", + "\u0001\u0277", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0279", + "\u0001\u027a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u027e", + "\u0001\u027f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0280"+ + "\u0007\u003f", + "\u0001\u0282", + "\u0001\u0283", + "\u0001\u0284", + "\u0001\u0285", + "\u0001\u0286", + "\u0001\u0287", + "\u0001\u0288", + "\u0001\u0289", + "\u0001\u028a", + "\u0001\u028b", + "\u0001\u028c", + "\u0001\u028d", + "\u0001\u028e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0290", + "\u0001\u0291", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u000e\u003f\u0001\u0292"+ + "\u000b\u003f", + "\u0001\u0294", + "\u0001\u0295", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0296"+ + "\u0007\u003f", + "\u0001\u0298", + "", + "\u0001\u0299", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0000\u029c", + "\u0001\u029d", + "\u0001\u029e", + "\u0001\u029f", + "\u0001\u02a0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02a2", + "\u0001\u02a3", + "\u0001\u02a4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02a6", + "", + "\u0001\u02a7", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02ab", + "\u0001\u02ac", + "\u0001\u02ad", + "\u0001\u02ae", + "\u0001\u02b0\u0009\uffff\u0001\u02af", + "\u0001\u02b1", + "\u0001\u02b2", + "\u0001\u02b3", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02b5", + "\u0001\u02b6", + "\u0001\u02b7", + "\u0001\u02b8", + "\u0001\u02b9", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02bb", + "\u0001\u02bc", + "\u0001\u02bd", + "\u0001\u02be", + "\u0001\u02bf", + "", + "\u0001\u02c0\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02c2", + "\u0001\u02c3", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02c5", + "\u0001\u02c6", + "\u0001\u02c7", + "", + "\u0001\u02c8", + "\u0001\u02c9", + "\u0001\u02ca", + "\u0001\u02cb", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02cd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02d0", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u02d1"+ + "\u0011\u003f", + "", + "\u0001\u02d3", + "\u0001\u02d4", + "\u0001\u02d5", + "\u0001\u02d6", + "\u0001\u02d7", + "\u0001\u02d8", + "\u0001\u02d9", + "", + "\u0001\u02da", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u02dc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u02de", + "\u0001\u02df", + "", + "\u0001\u02e0", + "\u0001\u02e1", + "", + "\u0001\u02e2", + "\u0001\u02e3", + "", + "\u0001\u02e4", + "\u0001\u02e5", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02e7", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0004\u003f\u0001\u02e8"+ + "\u0003\u003f\u0001\u02e9\u0011\u003f", + "", + "\u0001\u02eb", + "\u0001\u02ec", + "\u0001\u02ed", + "\u0001\u02ee", + "\u0001\u02ef", + "\u0001\u02f0", + "\u0001\u02f1", + "\u0001\u02f2", + "\u0001\u02f3", + "\u0001\u02f4", + "\u0001\u02f5", + "\u0001\u02f6", + "\u0001\u02f7", + "\u0001\u02f8", + "\u0001\u02f9", + "\u0001\u02fa", + "\u0001\u02fb", + "", + "\u0001\u02fc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u02fe", + "\u0001\u02ff", + "", + "\u0001\u0300", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0302", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0304", + "", + "\u0001\u0305", + "\u0001\u0306", + "", + "", + "", + "\u0001\u0307", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0309", + "", + "\u0001\u030a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u030d", + "\u0001\u030e", + "\u0001\u030f", + "\u0001\u0310", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0312", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0314", + "\u0001\u0315", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0318", + "\u0001\u0319", + "", + "\u0001\u031a", + "\u0001\u031b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u031d", + "\u0001\u031e", + "", + "", + "", + "\u0001\u031f", + "\u0001\u0320", + "\u0001\u0321", + "\u0001\u0322", + "", + "\u0001\u0323", + "\u0001\u0324", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0327", + "", + "", + "", + "\u0001\u0328", + "\u0001\u0329", + "\u0001\u032a", + "\u0001\u032c\u0013\uffff\u0001\u032b", + "\u0001\u032d", + "\u0001\u032e", + "\u0001\u032f", + "\u0001\u0330", + "\u0001\u0331", + "", + "\u0001\u0332", + "\u0001\u0333", + "\u0001\u0334", + "\u0001\u0335", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0337", + "\u0001\u0338", + "\u0001\u0339", + "\u0001\u033a", + "\u0001\u033b", + "\u0001\u033c", + "", + "\u0001\u033d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0340", + "\u0001\u0341", + "\u0001\u0342", + "\u0001\u0343", + "\u0001\u0344", + "\u0001\u0345", + "", + "\u0001\u0346", + "", + "", + "\u0001\u0347", + "\u0001\u0348", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u034a", + "\u0001\u034b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u034d", + "\u0001\u034e", + "\u0001\u034f", + "\u0001\u0350", + "", + "\u0001\u0351", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0353", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0356", + "\u0001\u0357", + "\u0001\u0358", + "\u0001\u0359", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u035b", + "\u0001\u035c", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u035f", + "\u0001\u0360", + "\u0001\u0361", + "\u0001\u0362", + "\u0001\u0363", + "\u0001\u0364", + "\u0001\u0365", + "\u0001\u0366", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0008\u003f\u0001\u0368"+ + "\u0011\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u036b", + "\u0001\u036c", + "\u0001\u036d", + "\u0001\u036e", + "\u0001\u036f\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0371", + "\u0001\u0372", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0375", + "\u0001\u0376", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0378", + "", + "\u0001\u0379", + "\u0001\u037a", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u037c", + "\u0001\u037d", + "\u0001\u037e", + "", + "\u0001\u037f", + "", + "\u0001\u0380", + "\u0001\u0381", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0383", + "\u0001\u0384", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0387", + "\u0001\u0388", + "\u0001\u0389", + "\u0001\u038a", + "\u0001\u038b", + "\u0001\u038c", + "\u0001\u038d", + "", + "", + "\u0001\u038e", + "\u0001\u038f", + "\u0001\u0390", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0392", + "\u0001\u0393", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0396", + "\u0001\u0397", + "\u0001\u0398", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u039a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u039c\u0007\uffff\u0001\u039d", + "", + "\u0001\u039e", + "\u0001\u039f", + "\u0001\u03a0", + "\u0001\u03a1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03a3", + "\u0001\u03a4", + "", + "", + "\u0001\u03a5", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03a7", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03aa", + "\u0001\u03ab", + "\u0001\u03ac", + "\u0001\u03ad", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03af", + "", + "\u0001\u03b0", + "\u0001\u03b1", + "\u0001\u03b2", + "\u0001\u03b3", + "\u0001\u03b4", + "", + "\u0001\u03b5", + "", + "", + "\u0001\u03b6", + "\u0001\u03b7", + "\u0001\u03b8", + "\u0001\u03b9", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03bb", + "", + "", + "\u0001\u03bc", + "\u0001\u03bd", + "\u0001\u03be", + "\u0001\u03bf", + "\u0001\u03c0", + "\u0001\u03c1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03c3", + "", + "\u0001\u03c4", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03c6", + "\u0001\u03c7", + "\u0001\u03c8", + "\u0001\u03c9\u0003\uffff\u0001\u03ca", + "", + "\u0001\u03cb", + "\u0001\u03cc", + "", + "", + "\u0001\u03cd", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03cf", + "\u0001\u03d0", + "\u0001\u03d1", + "", + "\u0001\u03d2", + "\u0001\u03d3", + "\u0001\u03d4", + "\u0001\u03d5", + "\u0001\u03d6", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03d9", + "", + "", + "\u0001\u03da", + "\u0001\u03db\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03dd", + "\u0001\u03de", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e3", + "\u0001\u03e4", + "", + "\u0001\u03e5", + "\u0001\u03e6", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03e9", + "", + "\u0001\u03ea\u000c\uffff\u0001\u03eb", + "", + "\u0001\u03ec", + "\u0001\u03ed", + "\u0001\u03ee", + "\u0001\u03ef", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03f1\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03f3", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u03f6", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03f8", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03fa", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u03fc", + "\u0001\u03fd", + "\u0001\u03fe", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0401", + "\u0001\u0402", + "\u0001\u0403", + "\u0001\u0404", + "\u0001\u0405", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0407", + "\u0001\u0408", + "\u0001\u0409", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u040c", + "", + "\u0001\u040d", + "\u0001\u040e", + "", + "\u0001\u040f", + "\u0001\u0410", + "\u0001\u0411", + "\u0001\u0412", + "\u0001\u0413", + "\u0001\u0414", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0415"+ + "\u0007\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0418", + "\u0001\u0419", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u041b", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u041d", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0420", + "\u0001\u0421", + "\u0001\u0422", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0425", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0427", + "\u0001\u0428", + "\u0001\u0429", + "", + "", + "\u0001\u042a", + "\u0001\u042b", + "\u0001\u042c", + "\u0001\u042d", + "\u0001\u042e", + "\u0001\u042f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0431", + "", + "\u0001\u0432", + "", + "", + "\u0001\u0433\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0436", + "", + "\u0001\u0437", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u043b", + "\u0001\u043c\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u043e", + "\u0001\u043f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u0012\u003f\u0001\u0440"+ + "\u0007\u003f", + "\u0001\u0442", + "\u0001\u0443\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u0445", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0448", + "\u0001\u0449", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u044b", + "\u0001\u044c", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0450", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0454", + "\u0001\u0455", + "", + "", + "\u0001\u0456", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0458", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u045a", + "\u0001\u045b", + "\u0001\u045c", + "\u0001\u045d\u0001\u003f\u0001\uffff\u000a\u003f\u0007\uffff"+ + "\u001a\u003f\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0461", + "\u0001\u0462", + "\u0001\u0463", + "", + "", + "\u0001\u0464", + "\u0001\u0465", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0467", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0469", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u046b", + "\u0001\u046c", + "", + "\u0001\u046d", + "", + "", + "\u0001\u046e", + "\u0001\u046f", + "", + "\u0001\u0470", + "\u0001\u0471", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u0474", + "\u0001\u0475", + "", + "\u0001\u0476", + "", + "\u0001\u0477", + "\u0001\u0478", + "\u0001\u0479", + "\u0001\u047a", + "", + "", + "", + "\u0001\u047b", + "\u0001\u047c", + "\u0001\u047d", + "\u0001\u047e", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0480", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u0482", + "\u0001\u0483", + "\u0001\u0484", + "\u0001\u0485", + "\u0001\u0486", + "\u0001\u0487", + "\u0001\u0488", + "", + "", + "\u0001\u0489", + "\u0001\u048a", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u048c", + "\u0001\u048d", + "\u0001\u048e", + "\u0001\u048f", + "\u0001\u0490", + "\u0001\u0491", + "\u0001\u0492", + "\u0001\u0493", + "", + "\u0001\u0494", + "", + "\u0001\u0495", + "\u0001\u0496", + "\u0001\u0497", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u049a", + "\u0001\u049b", + "\u0001\u049c", + "\u0001\u049d", + "", + "\u0001\u049e", + "\u0001\u049f", + "\u0001\u04a0", + "\u0001\u04a1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04a3", + "\u0001\u04a4", + "\u0001\u04a5", + "\u0001\u04a6", + "\u0001\u04a7", + "\u0001\u04a8", + "\u0001\u04a9", + "", + "", + "\u0001\u04aa", + "\u0001\u04ab", + "\u0001\u04ac", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04ae", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b0", + "\u0001\u04b1", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b3", + "\u0001\u04b4", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04b6", + "\u0001\u04b7", + "\u0001\u04b8", + "\u0001\u04b9", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04bb", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u04bd", + "\u0001\u04be", + "", + "\u0001\u04bf", + "\u0001\u04c0", + "", + "\u0001\u04c1", + "\u0001\u04c2", + "\u0001\u04c3", + "\u0001\u04c4", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0001\u04c6", + "\u0001\u04c7", + "\u0001\u04c8", + "\u0001\u04c9", + "\u0001\u04ca", + "\u0001\u04cb", + "\u0001\u04cc", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04cf", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04d1", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "\u0001\u04d4", + "", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "", + "", + "\u0001\u04d7", + "", + "", + "\u0001\u04d8", + "\u0001\u04d9", + "\u0001\u04da", + "\u0002\u003f\u0001\uffff\u000a\u003f\u0007\uffff\u001a\u003f"+ + "\u0004\uffff\u0001\u003f\u0001\uffff\u001a\u003f", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryLexer, { + DFA19_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_eotS), + DFA19_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_eofS), + DFA19_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryLexer.DFA19_minS), + DFA19_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryLexer.DFA19_maxS), + DFA19_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_acceptS), + DFA19_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryLexer.DFA19_specialS), + DFA19_transition: (function() { + var a = [], + i, + numStates = XQueryLexer.DFA19_transitionS.length; + for (i=0; i') ) {s = 45;} + + else if ( (LA19_0=='/') ) {s = 46;} + + else if ( (LA19_0=='.') ) {s = 47;} + + else if ( (LA19_0==';') ) {s = 48;} + + else if ( (LA19_0=='@') ) {s = 49;} + + else if ( (LA19_0=='\'') ) {s = 50;} + + else if ( (LA19_0=='\"') ) {s = 51;} + + else if ( ((LA19_0>='A' && LA19_0<='M')||(LA19_0>='O' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='h'||LA19_0=='j'||LA19_0=='y') ) {s = 52;} + + else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 53;} + + else if ( ((LA19_0>='0' && LA19_0<='9')) ) {s = 54;} + + else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='\\'||LA19_0=='^'||LA19_0=='`'||(LA19_0>='~' && LA19_0<='\uFFFF')) ) {s = 55;} + + if ( s>=0 ) return s; + break; + case 1 : + var LA19_26 = input.LA(1); + + + var index19_26 = input.index(); + input.rewind(); + s = -1; + if ( (LA19_26=='#') ) {s = 146;} + + else if ( (LA19_26==':') && ((!this.inStr))) {s = 147;} + + else s = 148; + + + input.seek(index19_26); + if ( s>=0 ) return s; + break; + case 2 : + var LA19_512 = input.LA(1); + + s = -1; + if ( ((LA19_512>='\u0000' && LA19_512<='\uFFFF')) ) {s = 668;} + + else s = 667; + + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 19, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + +})(); +exports.XQueryLexer = XQueryLexer; +}); \ No newline at end of file diff --git a/lib/ace/mode/xquery/XQueryParser.js b/lib/ace/mode/xquery/XQueryParser.js new file mode 100644 index 00000000..cf67ba83 --- /dev/null +++ b/lib/ace/mode/xquery/XQueryParser.js @@ -0,0 +1,42525 @@ +define(function(require, exports, module) { +// $ANTLR 3.3 Nov 30, 2010 12:50:56 xquery/XQueryParser.g 2012-05-24 17:09:31 + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +var org = require("./antlr3-all").org; +var StringLexer = require("./StringLexer").StringLexer; +var XMLLexer = require("./XMLLexer").XMLLexer; +var XQueryLexer = require("./XQueryLexer").XQueryLexer; +var XQDTParser = require("./XQDTParser").XQDTParser; +var Position = require("./Position").Position; +var Exception = function(){}; + +var XQS = true; +var XQU = true; +var ZORBA = true; +var MLS = false; + + + +var XQueryParser = function(input, state) { + if (!state) { + state = new org.antlr.runtime.RecognizerSharedState(); + } + + (function(){ + + + this.isInAttr = false; + + this.errors = []; + + this.hasErrors = function(){ + return this.errors.length > 0; + }; + + this.addError = function(error){ + this.errors.push(error); + }; + + this.getErrors = function(){ + return this.errors; + }; + + this.source = null; + this.setSource = function(s){ + this.source = s; + this.highlighter.setSource(s); + }; + + this.lexerStack = new Array(); + + this.lc = function(b){ return b; }; + this.popLexer = function (){ + //console.log("popLexer"); + if(this.lexerStack.length == 0) return; + this.getTokenStream().mark(); + var oldLexer = this.getTokenStream().getTokenSource(); + var newLexer = this.lexerStack.pop(); + if(oldLexer instanceof StringLexer && newLexer instanceof XQueryLexer) { + newLexer.inStr = false; + } + this.getTokenStream().setTokenSource(newLexer); + }; + + this.pushXQueryLexer = function() { + xqueryLexer = new XQueryLexer(this.source); + this.pushLexer(xqueryLexer); + }; + + this.pushStringLexer = function(isAposStr){ + //console.log("pushStringLexer"); + var stringLexer = new StringLexer(this.source); + stringLexer.inAposStr = isAposStr; + stringLexer.inQuotStr = !isAposStr; + stringLexer.setIsWsExplicit(true); + this.pushLexer(stringLexer); + }; + + this.pushXMLLexer = function(){ + //console.log("pushXMLLexer"); + var xmlLexer = new XMLLexer(this.source); + xmlLexer.setIsWsExplicit(true); + this.pushLexer(xmlLexer); + }; + + this.pushLexer = function(lexer){ + var oldLexer = this.getTokenStream().getTokenSource(); + oldLexer.addToStack(this.lexerStack); + this.getTokenStream().setTokenSource(lexer); + }; + + this.setWsExplicit = function(isExplicit){ + this.getTokenStream().setWsExplicit(isExplicit); + }; + + this.ap = function(token) + { + this.addToken(token, "xml_pe"); + }; + + this.ax = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "xml_pe"); + }; + + this.at = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "meta.tag"); + }; + + this.av = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "variable"); + }; + + this.af = function(start, stop) + { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "support.function"); + }; + + this.ao = function(t) + { + this.addToken(t, "keyword.operator"); + }; + + this.ak = function(t) + { + this.addToken(t, "keyword"); + }; + + this.ad = function(t) + { + this.addToken(t, "constant"); + }; + + this.addString = function(start, stop) + { + if(stop == undefined) { + this.addToken(start, "string"); + } else { + this.highlighter.addToken(start.getStartIndex(), stop.getStopIndex(), "string"); + } + }; + + this.ac = function(t) + { + this.addToken(t, "comment"); + }; + + this.addToken = function(k, type){ + if(org.antlr.lang.isArray(k)){ + for(i in k) + { + this.highlighter.addToken(k[i].getStartIndex(), k[i].getStopIndex(), type); + } + } else if(k != null ) { + this.highlighter.addToken(k.getStartIndex(), k.getStopIndex(), type); + } + }; + + + }).call(this); + + XQueryParser.superclass.constructor.call(this, input, state); + + this.dfa1 = new XQueryParser.DFA1(this); + this.dfa2 = new XQueryParser.DFA2(this); + this.dfa6 = new XQueryParser.DFA6(this); + this.dfa9 = new XQueryParser.DFA9(this); + this.dfa44 = new XQueryParser.DFA44(this); + this.dfa46 = new XQueryParser.DFA46(this); + this.dfa117 = new XQueryParser.DFA117(this); + this.dfa119 = new XQueryParser.DFA119(this); + this.dfa121 = new XQueryParser.DFA121(this); + this.dfa126 = new XQueryParser.DFA126(this); + this.dfa134 = new XQueryParser.DFA134(this); + this.dfa162 = new XQueryParser.DFA162(this); + this.dfa164 = new XQueryParser.DFA164(this); + this.dfa218 = new XQueryParser.DFA218(this); + this.dfa237 = new XQueryParser.DFA237(this); + this.dfa253 = new XQueryParser.DFA253(this); + + + + /* @todo only create adaptor if output=AST */ + this.adaptor = new org.antlr.runtime.tree.CommonTreeAdaptor(); + +}; + +org.antlr.lang.augmentObject(XQueryParser, { + EOF: -1, + L_QuotAttrContentChar: 4, + L_AposAttrContentChar: 5, + L_ElementContentChar: 6, + L_CDataSection: 7, + L_PredefinedEntityRef: 8, + L_CharRef: 9, + ESCAPE_LBRACKET: 10, + ESCAPE_RBRACKET: 11, + ESCAPE_APOS: 12, + ESCAPE_QUOT: 13, + CDATA_START: 14, + CDATA_END: 15, + ANCESTOR: 16, + ANCESTOR_OR_SELF: 17, + AND: 18, + AS: 19, + ASCENDING: 20, + AT: 21, + ATTRIBUTE: 22, + BASE_URI: 23, + BOUNDARY_SPACE: 24, + BY: 25, + CASE: 26, + CAST: 27, + CASTABLE: 28, + CHILD: 29, + COLLATION: 30, + COMMENT: 31, + CONSTRUCTION: 32, + COPY_NAMESPACES: 33, + DECLARE: 34, + DEFAULT: 35, + DESCENDANT: 36, + DESCENDANT_OR_SELF: 37, + DESCENDING: 38, + DIV: 39, + DOCUMENT: 40, + DOCUMENT_NODE: 41, + ELEMENT: 42, + ELSE: 43, + EMPTY: 44, + EMPTY_SEQUENCE: 45, + ENCODING: 46, + EQ: 47, + EVERY: 48, + EXCEPT: 49, + EXTERNAL: 50, + FOLLOWING: 51, + FOLLOWING_SIBLING: 52, + FOR: 53, + FUNCTION: 54, + GE: 55, + GREATEST: 56, + GT: 57, + IDIV: 58, + IF: 59, + IMPORT: 60, + IN: 61, + INHERIT: 62, + INSTANCE: 63, + INTERSECT: 64, + IS: 65, + ITEM: 66, + LAX: 67, + LE: 68, + LEAST: 69, + LET: 70, + LT: 71, + MOD: 72, + MODULE: 73, + NAMESPACE: 74, + NE: 75, + NO_INHERIT: 76, + NO_PRESERVE: 77, + NODE: 78, + OF: 79, + OPTION: 80, + OR: 81, + ORDER: 82, + ORDERED: 83, + ORDERING: 84, + PARENT: 85, + PRECEDING: 86, + PRECEDING_SIBLING: 87, + PRESERVE: 88, + PROCESSING_INSTRUCTION: 89, + RETURN: 90, + SATISFIES: 91, + SCHEMA: 92, + SCHEMA_ATTRIBUTE: 93, + SCHEMA_ELEMENT: 94, + SELF: 95, + SOME: 96, + STABLE: 97, + STRICT: 98, + STRIP: 99, + TEXT: 100, + THEN: 101, + TO: 102, + TREAT: 103, + TYPESWITCH: 104, + UNION: 105, + UNORDERED: 106, + VALIDATE: 107, + VARIABLE: 108, + VERSION: 109, + WHERE: 110, + XQUERY: 111, + ALLOWING: 112, + CATCH: 113, + CONTEXT: 114, + COUNT: 115, + DECIMAL_FORMAT: 116, + DECIMAL_SEPARATOR: 117, + DIGIT: 118, + END: 119, + GROUP: 120, + GROUPING_SEPARATOR: 121, + INFINITY: 122, + MINUS_SIGN: 123, + NAMESPACE_NODE: 124, + NAN: 125, + NEXT: 126, + ONLY: 127, + PATTERN_SEPARATOR: 128, + PERCENT: 129, + PER_MILLE: 130, + PREVIOUS: 131, + SLIDING: 132, + START: 133, + SWITCH: 134, + TRY: 135, + TUMBLING: 136, + TYPE: 137, + WHEN: 138, + WINDOW: 139, + ZERO_DIGIT: 140, + AFTER: 141, + BEFORE: 142, + COPY: 143, + DELETE: 144, + FIRST: 145, + INSERT: 146, + INTO: 147, + LAST: 148, + MODIFY: 149, + NODES: 150, + RENAME: 151, + REPLACE: 152, + REVALIDATION: 153, + SKIP: 154, + UPDATING: 155, + VALUE: 156, + WITH: 157, + ALL: 158, + ANY: 159, + CONTAINS: 160, + CONTENT: 161, + DIACRITICS: 162, + DIFFERENT: 163, + DISTANCE: 164, + ENTIRE: 165, + EXACTLY: 166, + FROM: 167, + FT_OPTION: 168, + FTAND: 169, + FTNOT: 170, + FTOR: 171, + INSENSITIVE: 172, + LANGUAGE: 173, + LEVELS: 174, + LOWERCASE: 175, + MOST: 176, + NO: 177, + NOT: 178, + OCCURS: 179, + PARAGRAPH: 180, + PARAGRAPHS: 181, + PHRASE: 182, + RELATIONSHIP: 183, + SAME: 184, + SCORE: 185, + SENSITIVE: 186, + SENTENCE: 187, + SENTENCES: 188, + STEMMING: 189, + STOP: 190, + THESAURUS: 191, + TIMES: 192, + UPPERCASE: 193, + USING: 194, + WEIGHT: 195, + WILDCARDS: 196, + WITHOUT: 197, + WORD: 198, + WORDS: 199, + BREAK: 200, + CONTINUE: 201, + EXIT: 202, + LOOP: 203, + RETURNING: 204, + WHILE: 205, + CHECK: 206, + COLLECTION: 207, + CONSTRAINT: 208, + FOREACH: 209, + FOREIGN: 210, + INDEX: 211, + INTEGRITY: 212, + KEY: 213, + ON: 214, + UNIQUE: 215, + BINARY: 216, + AMP_ER: 217, + APOS_ER: 218, + QUOT_ER: 219, + CONCAT: 220, + LPAREN: 221, + RPAREN: 222, + DOLLAR: 223, + LBRACKET: 224, + RBRACKET: 225, + LSQUARE: 226, + RSQUARE: 227, + EQUAL: 228, + BIND: 229, + NOTEQUAL: 230, + ANN_PERCENT: 231, + HASH: 232, + AMP: 233, + COMMA: 234, + QUESTION: 235, + STAR: 236, + PLUS: 237, + MINUS: 238, + SMALLER: 239, + GREATER: 240, + SMALLEREQ: 241, + GREATEREQ: 242, + SMALLER_SMALLER: 243, + GREATER_GREATER: 244, + SLASH: 245, + SLASH_SLASH: 246, + DOT: 247, + DOT_DOT: 248, + COLON: 249, + COLON_COLON: 250, + EMPTY_CLOSE_TAG: 251, + CLOSE_TAG: 252, + SEMICOLON: 253, + VBAR: 254, + PRAGMA_START: 255, + PRAGMA_END: 256, + XML_COMMENT_START: 257, + XML_COMMENT_END: 258, + PI_START: 259, + PI_END: 260, + ATTR_SIGN: 261, + CHARREF_DEC: 262, + CHARREF_HEX: 263, + APOS: 264, + QUOT: 265, + NCNameStartChar: 266, + NCNameChar: 267, + L_NCName: 268, + Letter: 269, + HexLetter: 270, + Digit: 271, + Digits: 272, + S: 273, + SU: 274, + L_Pragma: 275, + L_DirCommentConstructor: 276, + L_DirPIConstructor: 277, + L_IntegerLiteral: 278, + L_DecimalLiteral: 279, + L_DoubleLiteral: 280, + L_Comment: 281, + L_AnyChar: 282, + L_QuotStringLiteralChar: 283, + L_AposStringLiteralChar: 284, + LibraryModule: 285, + MainModule: 286, + VersionDecl: 287, + VersionDeclEncoding: 288, + VersionDeclVersion: 289, + ModuleDecl: 290, + Prolog: 291, + DefaultNamespaceDecls: 292, + DefaultNamespaceDecl: 293, + Setters: 294, + Setter: 295, + NamespaceDecls: 296, + NamespaceDecl: 297, + Imports: 298, + FTOptionDecls: 299, + SchemaImport: 300, + SchemaPrefix: 301, + NamespaceName: 302, + DefaultElementNamespace: 303, + AtHints: 304, + ModuleImport: 305, + BaseURIDecl: 306, + OrderedDecls: 307, + VarDecl: 308, + VarType: 309, + VarValue: 310, + VarDefaultValue: 311, + VarVariableDecl: 312, + FunctionDecl: 313, + ParamList: 314, + ReturnType: 315, + OptionDecl: 316, + TypeDeclaration: 317, + Param: 318, + EnclosedExpr: 319, + QueryBody: 320, + UnaryExpr: 321, + DirElemConstructor: 322, + DirAttributeList: 323, + DirAttributeValue: 324, + DirElemContent: 325, + CommonContent: 326, + SequenceType: 327, + EmptySequenceTest: 328, + KindTest: 329, + ItemTest: 330, + FunctionTest: 331, + AtomicType: 332, + AtomicOrUnionType: 333, + StringLiteral: 334, + ElementContentChar: 335, + AttributeValueChar: 336, + QName: 337, + BlockExpr: 338, + BinaryTest: 339, + EXPLICITLY: 340 +}); + +(function(){ +// public class variables +var EOF= -1, + L_QuotAttrContentChar= 4, + L_AposAttrContentChar= 5, + L_ElementContentChar= 6, + L_CDataSection= 7, + L_PredefinedEntityRef= 8, + L_CharRef= 9, + ESCAPE_LBRACKET= 10, + ESCAPE_RBRACKET= 11, + ESCAPE_APOS= 12, + ESCAPE_QUOT= 13, + CDATA_START= 14, + CDATA_END= 15, + ANCESTOR= 16, + ANCESTOR_OR_SELF= 17, + AND= 18, + AS= 19, + ASCENDING= 20, + AT= 21, + ATTRIBUTE= 22, + BASE_URI= 23, + BOUNDARY_SPACE= 24, + BY= 25, + CASE= 26, + CAST= 27, + CASTABLE= 28, + CHILD= 29, + COLLATION= 30, + COMMENT= 31, + CONSTRUCTION= 32, + COPY_NAMESPACES= 33, + DECLARE= 34, + DEFAULT= 35, + DESCENDANT= 36, + DESCENDANT_OR_SELF= 37, + DESCENDING= 38, + DIV= 39, + DOCUMENT= 40, + DOCUMENT_NODE= 41, + ELEMENT= 42, + ELSE= 43, + EMPTY= 44, + EMPTY_SEQUENCE= 45, + ENCODING= 46, + EQ= 47, + EVERY= 48, + EXCEPT= 49, + EXTERNAL= 50, + FOLLOWING= 51, + FOLLOWING_SIBLING= 52, + FOR= 53, + FUNCTION= 54, + GE= 55, + GREATEST= 56, + GT= 57, + IDIV= 58, + IF= 59, + IMPORT= 60, + IN= 61, + INHERIT= 62, + INSTANCE= 63, + INTERSECT= 64, + IS= 65, + ITEM= 66, + LAX= 67, + LE= 68, + LEAST= 69, + LET= 70, + LT= 71, + MOD= 72, + MODULE= 73, + NAMESPACE= 74, + NE= 75, + NO_INHERIT= 76, + NO_PRESERVE= 77, + NODE= 78, + OF= 79, + OPTION= 80, + OR= 81, + ORDER= 82, + ORDERED= 83, + ORDERING= 84, + PARENT= 85, + PRECEDING= 86, + PRECEDING_SIBLING= 87, + PRESERVE= 88, + PROCESSING_INSTRUCTION= 89, + RETURN= 90, + SATISFIES= 91, + SCHEMA= 92, + SCHEMA_ATTRIBUTE= 93, + SCHEMA_ELEMENT= 94, + SELF= 95, + SOME= 96, + STABLE= 97, + STRICT= 98, + STRIP= 99, + TEXT= 100, + THEN= 101, + TO= 102, + TREAT= 103, + TYPESWITCH= 104, + UNION= 105, + UNORDERED= 106, + VALIDATE= 107, + VARIABLE= 108, + VERSION= 109, + WHERE= 110, + XQUERY= 111, + ALLOWING= 112, + CATCH= 113, + CONTEXT= 114, + COUNT= 115, + DECIMAL_FORMAT= 116, + DECIMAL_SEPARATOR= 117, + DIGIT= 118, + END= 119, + GROUP= 120, + GROUPING_SEPARATOR= 121, + INFINITY= 122, + MINUS_SIGN= 123, + NAMESPACE_NODE= 124, + NAN= 125, + NEXT= 126, + ONLY= 127, + PATTERN_SEPARATOR= 128, + PERCENT= 129, + PER_MILLE= 130, + PREVIOUS= 131, + SLIDING= 132, + START= 133, + SWITCH= 134, + TRY= 135, + TUMBLING= 136, + TYPE= 137, + WHEN= 138, + WINDOW= 139, + ZERO_DIGIT= 140, + AFTER= 141, + BEFORE= 142, + COPY= 143, + DELETE= 144, + FIRST= 145, + INSERT= 146, + INTO= 147, + LAST= 148, + MODIFY= 149, + NODES= 150, + RENAME= 151, + REPLACE= 152, + REVALIDATION= 153, + SKIP= 154, + UPDATING= 155, + VALUE= 156, + WITH= 157, + ALL= 158, + ANY= 159, + CONTAINS= 160, + CONTENT= 161, + DIACRITICS= 162, + DIFFERENT= 163, + DISTANCE= 164, + ENTIRE= 165, + EXACTLY= 166, + FROM= 167, + FT_OPTION= 168, + FTAND= 169, + FTNOT= 170, + FTOR= 171, + INSENSITIVE= 172, + LANGUAGE= 173, + LEVELS= 174, + LOWERCASE= 175, + MOST= 176, + NO= 177, + NOT= 178, + OCCURS= 179, + PARAGRAPH= 180, + PARAGRAPHS= 181, + PHRASE= 182, + RELATIONSHIP= 183, + SAME= 184, + SCORE= 185, + SENSITIVE= 186, + SENTENCE= 187, + SENTENCES= 188, + STEMMING= 189, + STOP= 190, + THESAURUS= 191, + TIMES= 192, + UPPERCASE= 193, + USING= 194, + WEIGHT= 195, + WILDCARDS= 196, + WITHOUT= 197, + WORD= 198, + WORDS= 199, + BREAK= 200, + CONTINUE= 201, + EXIT= 202, + LOOP= 203, + RETURNING= 204, + WHILE= 205, + CHECK= 206, + COLLECTION= 207, + CONSTRAINT= 208, + FOREACH= 209, + FOREIGN= 210, + INDEX= 211, + INTEGRITY= 212, + KEY= 213, + ON= 214, + UNIQUE= 215, + BINARY= 216, + AMP_ER= 217, + APOS_ER= 218, + QUOT_ER= 219, + CONCAT= 220, + LPAREN= 221, + RPAREN= 222, + DOLLAR= 223, + LBRACKET= 224, + RBRACKET= 225, + LSQUARE= 226, + RSQUARE= 227, + EQUAL= 228, + BIND= 229, + NOTEQUAL= 230, + ANN_PERCENT= 231, + HASH= 232, + AMP= 233, + COMMA= 234, + QUESTION= 235, + STAR= 236, + PLUS= 237, + MINUS= 238, + SMALLER= 239, + GREATER= 240, + SMALLEREQ= 241, + GREATEREQ= 242, + SMALLER_SMALLER= 243, + GREATER_GREATER= 244, + SLASH= 245, + SLASH_SLASH= 246, + DOT= 247, + DOT_DOT= 248, + COLON= 249, + COLON_COLON= 250, + EMPTY_CLOSE_TAG= 251, + CLOSE_TAG= 252, + SEMICOLON= 253, + VBAR= 254, + PRAGMA_START= 255, + PRAGMA_END= 256, + XML_COMMENT_START= 257, + XML_COMMENT_END= 258, + PI_START= 259, + PI_END= 260, + ATTR_SIGN= 261, + CHARREF_DEC= 262, + CHARREF_HEX= 263, + APOS= 264, + QUOT= 265, + NCNameStartChar= 266, + NCNameChar= 267, + L_NCName= 268, + Letter= 269, + HexLetter= 270, + Digit= 271, + Digits= 272, + S= 273, + SU= 274, + L_Pragma= 275, + L_DirCommentConstructor= 276, + L_DirPIConstructor= 277, + L_IntegerLiteral= 278, + L_DecimalLiteral= 279, + L_DoubleLiteral= 280, + L_Comment= 281, + L_AnyChar= 282, + L_QuotStringLiteralChar= 283, + L_AposStringLiteralChar= 284, + LibraryModule= 285, + MainModule= 286, + VersionDecl= 287, + VersionDeclEncoding= 288, + VersionDeclVersion= 289, + ModuleDecl= 290, + Prolog= 291, + DefaultNamespaceDecls= 292, + DefaultNamespaceDecl= 293, + Setters= 294, + Setter= 295, + NamespaceDecls= 296, + NamespaceDecl= 297, + Imports= 298, + FTOptionDecls= 299, + SchemaImport= 300, + SchemaPrefix= 301, + NamespaceName= 302, + DefaultElementNamespace= 303, + AtHints= 304, + ModuleImport= 305, + BaseURIDecl= 306, + OrderedDecls= 307, + VarDecl= 308, + VarType= 309, + VarValue= 310, + VarDefaultValue= 311, + VarVariableDecl= 312, + FunctionDecl= 313, + ParamList= 314, + ReturnType= 315, + OptionDecl= 316, + TypeDeclaration= 317, + Param= 318, + EnclosedExpr= 319, + QueryBody= 320, + UnaryExpr= 321, + DirElemConstructor= 322, + DirAttributeList= 323, + DirAttributeValue= 324, + DirElemContent= 325, + CommonContent= 326, + SequenceType= 327, + EmptySequenceTest= 328, + KindTest= 329, + ItemTest= 330, + FunctionTest= 331, + AtomicType= 332, + AtomicOrUnionType= 333, + StringLiteral= 334, + ElementContentChar= 335, + AttributeValueChar= 336, + QName= 337, + BlockExpr= 338, + BinaryTest= 339, + EXPLICITLY= 340; + +// public instance methods/vars +org.antlr.lang.extend(XQueryParser, XQDTParser, { + + setTreeAdaptor: function(adaptor) { + this.adaptor = adaptor; + }, + getTreeAdaptor: function() { + return this.adaptor; + }, + + getTokenNames: function() { return XQueryParser.tokenNames; }, + getGrammarFileName: function() { return "xquery/XQueryParser.g"; } +}); +org.antlr.lang.augmentObject(XQueryParser.prototype, { + + // inline static return class + p_Module_return: (function() { + XQueryParser.p_Module_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Module_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:295:1: p_Module : (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF ; + // $ANTLR start "p_Module" + p_Module: function() { + var retval = new XQueryParser.p_Module_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var EOF1 = null; + var vd = null; + var lm = null; + var mm = null; + + var EOF1_tree=null; + var stream_EOF=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EOF"); + var stream_p_VersionDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VersionDecl"); + var stream_p_LibraryModule=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_LibraryModule"); + var stream_p_MainModule=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_MainModule"); + try { + // xquery/XQueryParser.g:296:9: ( (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF ) + // xquery/XQueryParser.g:296:11: (vd= p_VersionDecl )? (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) EOF + // xquery/XQueryParser.g:296:13: (vd= p_VersionDecl )? + var alt1=2; + alt1 = this.dfa1.predict(this.input); + switch (alt1) { + case 1 : + // xquery/XQueryParser.g:296:13: vd= p_VersionDecl + this.pushFollow(XQueryParser.FOLLOW_p_VersionDecl_in_p_Module507); + vd=this.p_VersionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VersionDecl.add(vd.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:297:13: (lm= p_LibraryModule[$vd.tree] -> | mm= p_MainModule[$vd.tree] ->) + var alt2=2; + alt2 = this.dfa2.predict(this.input); + switch (alt2) { + case 1 : + // xquery/XQueryParser.g:298:15: lm= p_LibraryModule[$vd.tree] + this.pushFollow(XQueryParser.FOLLOW_p_LibraryModule_in_p_Module540); + lm=this.p_LibraryModule((vd?vd.tree:null)); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_LibraryModule.add(lm.getTree()); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 298:44: -> + { + this.adaptor.addChild(root_0, (lm?lm.tree:null)); + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:299:15: mm= p_MainModule[$vd.tree] + this.pushFollow(XQueryParser.FOLLOW_p_MainModule_in_p_Module563); + mm=this.p_MainModule((vd?vd.tree:null)); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_MainModule.add(mm.getTree()); + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 299:44: -> + { + this.adaptor.addChild(root_0, (mm?mm.tree:null)); + + } + + retval.tree = root_0;} + + break; + + } + + EOF1=this.match(this.input,EOF,XQueryParser.FOLLOW_EOF_in_p_Module587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EOF.add(EOF1); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VersionDecl_return: (function() { + XQueryParser.p_VersionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VersionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:304:1: p_VersionDecl : k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) ; + // $ANTLR start "p_VersionDecl" + p_VersionDecl: function() { + var retval = new XQueryParser.p_VersionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON2 = null; + var enc = null; + var ver = null; + + var k_tree=null; + var SEMICOLON2_tree=null; + var stream_ENCODING=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ENCODING"); + var stream_VERSION=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token VERSION"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_XQUERY=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token XQUERY"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:305:9: (k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) ) + // xquery/XQueryParser.g:305:11: k= XQUERY ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) SEMICOLON + k=this.match(this.input,XQUERY,XQueryParser.FOLLOW_XQUERY_in_p_VersionDecl615); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_XQUERY.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:305:35: ( (k= ENCODING enc= p_StringLiteral ) | (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) ) + var alt4=2; + var LA4_0 = this.input.LA(1); + + if ( (LA4_0==ENCODING) ) { + alt4=1; + } + else if ( (LA4_0==VERSION) ) { + alt4=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 4, 0, this.input); + + throw nvae; + } + switch (alt4) { + case 1 : + // xquery/XQueryParser.g:305:36: (k= ENCODING enc= p_StringLiteral ) + // xquery/XQueryParser.g:305:36: (k= ENCODING enc= p_StringLiteral ) + // xquery/XQueryParser.g:305:37: k= ENCODING enc= p_StringLiteral + k=this.match(this.input,ENCODING,XQueryParser.FOLLOW_ENCODING_in_p_VersionDecl623); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ENCODING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl629); + enc=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(enc.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:306:13: (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) + // xquery/XQueryParser.g:306:13: (k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? ) + // xquery/XQueryParser.g:306:14: k= VERSION ver= p_StringLiteral (k= ENCODING enc= p_StringLiteral )? + k=this.match(this.input,VERSION,XQueryParser.FOLLOW_VERSION_in_p_VersionDecl650); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_VERSION.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl656); + ver=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ver.getTree()); + // xquery/XQueryParser.g:306:59: (k= ENCODING enc= p_StringLiteral )? + var alt3=2; + var LA3_0 = this.input.LA(1); + + if ( (LA3_0==ENCODING) ) { + alt3=1; + } + switch (alt3) { + case 1 : + // xquery/XQueryParser.g:306:60: k= ENCODING enc= p_StringLiteral + k=this.match(this.input,ENCODING,XQueryParser.FOLLOW_ENCODING_in_p_VersionDecl661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ENCODING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_VersionDecl667); + enc=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(enc.getTree()); + + + break; + + } + + + + + + + break; + + } + + SEMICOLON2=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_VersionDecl673); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON2); + + + + // AST REWRITE + // elements: enc, ver + // token labels: + // rule labels: retval, ver, enc + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_ver=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ver",ver!=null?ver.tree:null); + var stream_enc=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token enc",enc!=null?enc.tree:null); + + root_0 = this.adaptor.nil(); + // 307:17: -> ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) + { + // xquery/XQueryParser.g:307:20: ^( VersionDecl ^( VersionDeclVersion ( $ver)? ) ^( VersionDeclEncoding ( $enc)? ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(VersionDecl, "VersionDecl"), root_1); + + // xquery/XQueryParser.g:307:34: ^( VersionDeclVersion ( $ver)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VersionDeclVersion, "VersionDeclVersion"), root_2); + + // xquery/XQueryParser.g:307:55: ( $ver)? + if ( stream_ver.hasNext() ) { + this.adaptor.addChild(root_2, stream_ver.nextTree()); + + } + stream_ver.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:307:62: ^( VersionDeclEncoding ( $enc)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VersionDeclEncoding, "VersionDeclEncoding"), root_2); + + // xquery/XQueryParser.g:307:84: ( $enc)? + if ( stream_enc.hasNext() ) { + this.adaptor.addChild(root_2, stream_enc.nextTree()); + + } + stream_enc.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_MainModule_return: (function() { + XQueryParser.p_MainModule_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_MainModule_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:311:1: p_MainModule[vd] : pm_Prolog pm_QueryBody -> ^( MainModule pm_Prolog ) ; + // $ANTLR start "p_MainModule" + p_MainModule: function(vd) { + var retval = new XQueryParser.p_MainModule_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_Prolog3 = null; + var pm_QueryBody4 = null; + + var stream_pm_QueryBody=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_QueryBody"); + var stream_pm_Prolog=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_Prolog"); + try { + // xquery/XQueryParser.g:312:9: ( pm_Prolog pm_QueryBody -> ^( MainModule pm_Prolog ) ) + // xquery/XQueryParser.g:312:11: pm_Prolog pm_QueryBody + this.pushFollow(XQueryParser.FOLLOW_pm_Prolog_in_p_MainModule739); + pm_Prolog3=this.pm_Prolog(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_Prolog.add(pm_Prolog3.getTree()); + this.pushFollow(XQueryParser.FOLLOW_pm_QueryBody_in_p_MainModule741); + pm_QueryBody4=this.pm_QueryBody(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_QueryBody.add(pm_QueryBody4.getTree()); + + + // AST REWRITE + // elements: pm_Prolog + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 313:17: -> ^( MainModule pm_Prolog ) + { + // xquery/XQueryParser.g:313:20: ^( MainModule pm_Prolog ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(MainModule, "MainModule"), root_1); + + this.adaptor.addChild(root_1, vd); + this.adaptor.addChild(root_1, stream_pm_Prolog.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LibraryModule_return: (function() { + XQueryParser.p_LibraryModule_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LibraryModule_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:317:1: p_LibraryModule[vd] : p_ModuleDecl pm_Prolog -> ^( LibraryModule p_ModuleDecl pm_Prolog ) ; + // $ANTLR start "p_LibraryModule" + p_LibraryModule: function(vd) { + var retval = new XQueryParser.p_LibraryModule_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ModuleDecl5 = null; + var pm_Prolog6 = null; + + var stream_pm_Prolog=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_Prolog"); + var stream_p_ModuleDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ModuleDecl"); + try { + // xquery/XQueryParser.g:318:9: ( p_ModuleDecl pm_Prolog -> ^( LibraryModule p_ModuleDecl pm_Prolog ) ) + // xquery/XQueryParser.g:318:11: p_ModuleDecl pm_Prolog + this.pushFollow(XQueryParser.FOLLOW_p_ModuleDecl_in_p_LibraryModule797); + p_ModuleDecl5=this.p_ModuleDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ModuleDecl.add(p_ModuleDecl5.getTree()); + this.pushFollow(XQueryParser.FOLLOW_pm_Prolog_in_p_LibraryModule799); + pm_Prolog6=this.pm_Prolog(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_Prolog.add(pm_Prolog6.getTree()); + + + // AST REWRITE + // elements: p_ModuleDecl, pm_Prolog + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 319:17: -> ^( LibraryModule p_ModuleDecl pm_Prolog ) + { + // xquery/XQueryParser.g:319:20: ^( LibraryModule p_ModuleDecl pm_Prolog ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(LibraryModule, "LibraryModule"), root_1); + + this.adaptor.addChild(root_1, vd); + this.adaptor.addChild(root_1, stream_p_ModuleDecl.nextTree()); + this.adaptor.addChild(root_1, stream_pm_Prolog.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ModuleDecl_return: (function() { + XQueryParser.p_ModuleDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ModuleDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:323:1: p_ModuleDecl : k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON -> ^( ModuleDecl p_NCName p_StringLiteral ) ; + // $ANTLR start "p_ModuleDecl" + p_ModuleDecl: function() { + var retval = new XQueryParser.p_ModuleDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var EQUAL8 = null; + var SEMICOLON10 = null; + var k = null; + var list_k=null; + var p_NCName7 = null; + var p_StringLiteral9 = null; + + var EQUAL8_tree=null; + var SEMICOLON10_tree=null; + var k_tree=null; + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_MODULE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MODULE"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:324:9: (k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON -> ^( ModuleDecl p_NCName p_StringLiteral ) ) + // xquery/XQueryParser.g:324:11: k+= MODULE k+= NAMESPACE p_NCName EQUAL p_StringLiteral SEMICOLON + k=this.match(this.input,MODULE,XQueryParser.FOLLOW_MODULE_in_p_ModuleDecl855); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MODULE.add(k); + + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_ModuleDecl859); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_ModuleDecl863); + p_NCName7=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(p_NCName7.getTree()); + EQUAL8=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_ModuleDecl865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL8); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_ModuleDecl867); + p_StringLiteral9=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(p_StringLiteral9.getTree()); + SEMICOLON10=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ModuleDecl869); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON10); + + + + // AST REWRITE + // elements: p_NCName, p_StringLiteral + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 325:17: -> ^( ModuleDecl p_NCName p_StringLiteral ) + { + // xquery/XQueryParser.g:325:21: ^( ModuleDecl p_NCName p_StringLiteral ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ModuleDecl, "ModuleDecl"), root_1); + + this.adaptor.addChild(root_1, stream_p_NCName.nextTree()); + this.adaptor.addChild(root_1, stream_p_StringLiteral.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_Prolog_return: (function() { + XQueryParser.pm_Prolog_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_Prolog_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:331:1: pm_Prolog : ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) ; + // $ANTLR start "pm_Prolog" + pm_Prolog: function() { + var retval = new XQueryParser.pm_Prolog_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var list_dnd=null; + var list_s=null; + var list_nd=null; + var list_i=null; + var list_fto=null; + var list_od=null; + var dnd = null; + var s = null; + var nd = null; + var i = null; + var fto = null; + var od = null; + var stream_pm_NamespaceDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_NamespaceDecl"); + var stream_p_Import=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Import"); + var stream_p_Setter=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Setter"); + var stream_pm_DefaultNamespaceDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_DefaultNamespaceDecl"); + var stream_pg_OrderedDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_OrderedDecl"); + var stream_pm_FTOptionDecl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_FTOptionDecl"); + try { + // xquery/XQueryParser.g:332:9: ( ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) ) + // xquery/XQueryParser.g:332:11: ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* (od+= pg_OrderedDecl )* + // xquery/XQueryParser.g:332:11: ( (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) )* + loop6: + do { + var alt6=2; + alt6 = this.dfa6.predict(this.input); + switch (alt6) { + case 1 : + // xquery/XQueryParser.g:332:12: (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) + // xquery/XQueryParser.g:332:12: (dnd+= pm_DefaultNamespaceDecl | s+= p_Setter | nd+= pm_NamespaceDecl | i+= p_Import | fto+= pm_FTOptionDecl ) + var alt5=5; + var LA5_0 = this.input.LA(1); + + if ( (LA5_0==DECLARE) ) { + var LA5_1 = this.input.LA(2); + + if ( (LA5_1==REVALIDATION) && ((this.lc(XQU)))) { + alt5=2; + } + else if ( (LA5_1==FT_OPTION) ) { + alt5=5; + } + else if ( (LA5_1==DEFAULT) ) { + var LA5_5 = this.input.LA(3); + + if ( (LA5_5==ELEMENT||LA5_5==FUNCTION) ) { + alt5=1; + } + else if ( (LA5_5==COLLATION||LA5_5==ORDER||LA5_5==DECIMAL_FORMAT) ) { + alt5=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 5, this.input); + + throw nvae; + } + } + else if ( ((LA5_1>=BASE_URI && LA5_1<=BOUNDARY_SPACE)||(LA5_1>=CONSTRUCTION && LA5_1<=COPY_NAMESPACES)||LA5_1==ORDERING||LA5_1==DECIMAL_FORMAT) ) { + alt5=2; + } + else if ( (LA5_1==NAMESPACE) ) { + alt5=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 1, this.input); + + throw nvae; + } + } + else if ( (LA5_0==IMPORT) ) { + alt5=4; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 5, 0, this.input); + + throw nvae; + } + switch (alt5) { + case 1 : + // xquery/XQueryParser.g:332:13: dnd+= pm_DefaultNamespaceDecl + this.pushFollow(XQueryParser.FOLLOW_pm_DefaultNamespaceDecl_in_pm_Prolog928); + dnd=this.pm_DefaultNamespaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_DefaultNamespaceDecl.add(dnd.getTree()); + if (org.antlr.lang.isNull(list_dnd)) list_dnd = []; + list_dnd.push(dnd.getTree()); + + + + break; + case 2 : + // xquery/XQueryParser.g:332:44: s+= p_Setter + this.pushFollow(XQueryParser.FOLLOW_p_Setter_in_pm_Prolog934); + s=this.p_Setter(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Setter.add(s.getTree()); + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s.getTree()); + + + + break; + case 3 : + // xquery/XQueryParser.g:332:58: nd+= pm_NamespaceDecl + this.pushFollow(XQueryParser.FOLLOW_pm_NamespaceDecl_in_pm_Prolog940); + nd=this.pm_NamespaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_NamespaceDecl.add(nd.getTree()); + if (org.antlr.lang.isNull(list_nd)) list_nd = []; + list_nd.push(nd.getTree()); + + + + break; + case 4 : + // xquery/XQueryParser.g:332:81: i+= p_Import + this.pushFollow(XQueryParser.FOLLOW_p_Import_in_pm_Prolog946); + i=this.p_Import(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Import.add(i.getTree()); + if (org.antlr.lang.isNull(list_i)) list_i = []; + list_i.push(i.getTree()); + + + + break; + case 5 : + // xquery/XQueryParser.g:332:95: fto+= pm_FTOptionDecl + this.pushFollow(XQueryParser.FOLLOW_pm_FTOptionDecl_in_pm_Prolog952); + fto=this.pm_FTOptionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_FTOptionDecl.add(fto.getTree()); + if (org.antlr.lang.isNull(list_fto)) list_fto = []; + list_fto.push(fto.getTree()); + + + + break; + + } + + + + break; + + default : + break loop6; + } + } while (true); + + // xquery/XQueryParser.g:332:121: (od+= pg_OrderedDecl )* + loop7: + do { + var alt7=2; + var LA7_0 = this.input.LA(1); + + if ( (LA7_0==DECLARE) ) { + var LA7_3 = this.input.LA(2); + + if ( (LA7_3==FUNCTION||LA7_3==OPTION||LA7_3==VARIABLE||LA7_3==CONTEXT||LA7_3==UPDATING||LA7_3==COLLECTION||(LA7_3>=INDEX && LA7_3<=INTEGRITY)||LA7_3==ANN_PERCENT) ) { + alt7=1; + } + + + } + + + switch (alt7) { + case 1 : + // xquery/XQueryParser.g:332:121: od+= pg_OrderedDecl + this.pushFollow(XQueryParser.FOLLOW_pg_OrderedDecl_in_pm_Prolog959); + od=this.pg_OrderedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_OrderedDecl.add(od.getTree()); + if (org.antlr.lang.isNull(list_od)) list_od = []; + list_od.push(od.getTree()); + + + + break; + + default : + break loop7; + } + } while (true); + + + + // AST REWRITE + // elements: dnd, i, fto, nd, od, s + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: od, s, fto, nd, dnd, i + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_od=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token od",list_od); + var stream_s=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token s",list_s); + var stream_fto=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token fto",list_fto); + var stream_nd=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nd",list_nd); + var stream_dnd=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token dnd",list_dnd); + var stream_i=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token i",list_i); + root_0 = this.adaptor.nil(); + // 333:17: -> ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) + { + // xquery/XQueryParser.g:333:21: ^( Prolog ^( DefaultNamespaceDecls ( $dnd)* ) ^( Setters ( $s)* ) ^( NamespaceDecls ( $nd)* ) ^( Imports ( $i)* ) ^( FTOptionDecls ( $fto)* ) ^( OrderedDecls ( $od)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(Prolog, "Prolog"), root_1); + + // xquery/XQueryParser.g:334:33: ^( DefaultNamespaceDecls ( $dnd)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DefaultNamespaceDecls, "DefaultNamespaceDecls"), root_2); + + // xquery/XQueryParser.g:334:57: ( $dnd)* + while ( stream_dnd.hasNext() ) { + this.adaptor.addChild(root_2, stream_dnd.nextTree()); + + } + stream_dnd.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:335:33: ^( Setters ( $s)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(Setters, "Setters"), root_2); + + // xquery/XQueryParser.g:335:43: ( $s)* + while ( stream_s.hasNext() ) { + this.adaptor.addChild(root_2, stream_s.nextTree()); + + } + stream_s.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:336:33: ^( NamespaceDecls ( $nd)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceDecls, "NamespaceDecls"), root_2); + + // xquery/XQueryParser.g:336:50: ( $nd)* + while ( stream_nd.hasNext() ) { + this.adaptor.addChild(root_2, stream_nd.nextTree()); + + } + stream_nd.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:337:33: ^( Imports ( $i)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(Imports, "Imports"), root_2); + + // xquery/XQueryParser.g:337:43: ( $i)* + while ( stream_i.hasNext() ) { + this.adaptor.addChild(root_2, stream_i.nextTree()); + + } + stream_i.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:338:33: ^( FTOptionDecls ( $fto)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(FTOptionDecls, "FTOptionDecls"), root_2); + + // xquery/XQueryParser.g:338:49: ( $fto)* + while ( stream_fto.hasNext() ) { + this.adaptor.addChild(root_2, stream_fto.nextTree()); + + } + stream_fto.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:339:33: ^( OrderedDecls ( $od)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(OrderedDecls, "OrderedDecls"), root_2); + + // xquery/XQueryParser.g:339:48: ( $od)* + while ( stream_od.hasNext() ) { + this.adaptor.addChild(root_2, stream_od.nextTree()); + + } + stream_od.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_OrderedDecl_return: (function() { + XQueryParser.pg_OrderedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_OrderedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:347:1: pg_OrderedDecl : ( pm_ContextItemDecl | pm_AnnotatedDecl | pm_OptionDecl ); + // $ANTLR start "pg_OrderedDecl" + pg_OrderedDecl: function() { + var retval = new XQueryParser.pg_OrderedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_ContextItemDecl11 = null; + var pm_AnnotatedDecl12 = null; + var pm_OptionDecl13 = null; + + + try { + // xquery/XQueryParser.g:348:9: ( pm_ContextItemDecl | pm_AnnotatedDecl | pm_OptionDecl ) + var alt8=3; + var LA8_0 = this.input.LA(1); + + if ( (LA8_0==DECLARE) ) { + switch ( this.input.LA(2) ) { + case CONTEXT: + alt8=1; + break; + case FUNCTION: + case VARIABLE: + case UPDATING: + case COLLECTION: + case INDEX: + case INTEGRITY: + case ANN_PERCENT: + alt8=2; + break; + case OPTION: + alt8=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 8, 1, this.input); + + throw nvae; + } + + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 8, 0, this.input); + + throw nvae; + } + switch (alt8) { + case 1 : + // xquery/XQueryParser.g:348:11: pm_ContextItemDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ContextItemDecl_in_pg_OrderedDecl1274); + pm_ContextItemDecl11=this.pm_ContextItemDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ContextItemDecl11.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:349:11: pm_AnnotatedDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_AnnotatedDecl_in_pg_OrderedDecl1286); + pm_AnnotatedDecl12=this.pm_AnnotatedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_AnnotatedDecl12.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:350:11: pm_OptionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_OptionDecl_in_pg_OrderedDecl1298); + pm_OptionDecl13=this.pm_OptionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_OptionDecl13.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Setter_return: (function() { + XQueryParser.p_Setter_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Setter_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:358:1: p_Setter : ( pm_BoundarySpaceDecl | pm_DefaultCollationDecl | pm_BaseURIDecl | pm_ConstructionDecl | pm_OrderingModeDecl | pm_EmptyOrderDecl | {...}? => pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl ); + // $ANTLR start "p_Setter" + p_Setter: function() { + var retval = new XQueryParser.p_Setter_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_BoundarySpaceDecl14 = null; + var pm_DefaultCollationDecl15 = null; + var pm_BaseURIDecl16 = null; + var pm_ConstructionDecl17 = null; + var pm_OrderingModeDecl18 = null; + var pm_EmptyOrderDecl19 = null; + var pm_RevalidationDecl20 = null; + var pm_CopyNamespacesDecl21 = null; + var pm_DecimalFormatDecl22 = null; + + + try { + // xquery/XQueryParser.g:359:9: ( pm_BoundarySpaceDecl | pm_DefaultCollationDecl | pm_BaseURIDecl | pm_ConstructionDecl | pm_OrderingModeDecl | pm_EmptyOrderDecl | {...}? => pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl ) + var alt9=9; + alt9 = this.dfa9.predict(this.input); + switch (alt9) { + case 1 : + // xquery/XQueryParser.g:359:11: pm_BoundarySpaceDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_BoundarySpaceDecl_in_p_Setter1328); + pm_BoundarySpaceDecl14=this.pm_BoundarySpaceDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_BoundarySpaceDecl14.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:360:11: pm_DefaultCollationDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_DefaultCollationDecl_in_p_Setter1340); + pm_DefaultCollationDecl15=this.pm_DefaultCollationDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_DefaultCollationDecl15.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:361:11: pm_BaseURIDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_BaseURIDecl_in_p_Setter1352); + pm_BaseURIDecl16=this.pm_BaseURIDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_BaseURIDecl16.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:362:11: pm_ConstructionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ConstructionDecl_in_p_Setter1364); + pm_ConstructionDecl17=this.pm_ConstructionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ConstructionDecl17.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:363:11: pm_OrderingModeDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_OrderingModeDecl_in_p_Setter1376); + pm_OrderingModeDecl18=this.pm_OrderingModeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_OrderingModeDecl18.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:364:11: pm_EmptyOrderDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_EmptyOrderDecl_in_p_Setter1388); + pm_EmptyOrderDecl19=this.pm_EmptyOrderDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_EmptyOrderDecl19.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:365:11: {...}? => pm_RevalidationDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_Setter", "this.lc(XQU)"); + } + this.pushFollow(XQueryParser.FOLLOW_pm_RevalidationDecl_in_p_Setter1403); + pm_RevalidationDecl20=this.pm_RevalidationDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_RevalidationDecl20.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:366:11: pm_CopyNamespacesDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CopyNamespacesDecl_in_p_Setter1415); + pm_CopyNamespacesDecl21=this.pm_CopyNamespacesDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CopyNamespacesDecl21.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:367:11: pm_DecimalFormatDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_DecimalFormatDecl_in_p_Setter1427); + pm_DecimalFormatDecl22=this.pm_DecimalFormatDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_DecimalFormatDecl22.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_BoundarySpaceDecl_return: (function() { + XQueryParser.pm_BoundarySpaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_BoundarySpaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:371:1: pm_BoundarySpaceDecl : k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON ; + // $ANTLR start "pm_BoundarySpaceDecl" + pm_BoundarySpaceDecl: function() { + var retval = new XQueryParser.pm_BoundarySpaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON23 = null; + + var k_tree=null; + var SEMICOLON23_tree=null; + + try { + // xquery/XQueryParser.g:372:9: (k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON ) + // xquery/XQueryParser.g:372:11: k= DECLARE k= BOUNDARY_SPACE ( (k= PRESERVE ) | (k= STRIP ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_BoundarySpaceDecl1459); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BOUNDARY_SPACE,XQueryParser.FOLLOW_BOUNDARY_SPACE_in_pm_BoundarySpaceDecl1465); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:372:68: ( (k= PRESERVE ) | (k= STRIP ) ) + var alt10=2; + var LA10_0 = this.input.LA(1); + + if ( (LA10_0==PRESERVE) ) { + alt10=1; + } + else if ( (LA10_0==STRIP) ) { + alt10=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 10, 0, this.input); + + throw nvae; + } + switch (alt10) { + case 1 : + // xquery/XQueryParser.g:372:70: (k= PRESERVE ) + // xquery/XQueryParser.g:372:70: (k= PRESERVE ) + // xquery/XQueryParser.g:372:71: k= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_pm_BoundarySpaceDecl1474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + case 2 : + // xquery/XQueryParser.g:372:100: (k= STRIP ) + // xquery/XQueryParser.g:372:100: (k= STRIP ) + // xquery/XQueryParser.g:372:101: k= STRIP + k=this.match(this.input,STRIP,XQueryParser.FOLLOW_STRIP_in_pm_BoundarySpaceDecl1484); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + + } + + SEMICOLON23=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_BoundarySpaceDecl1491); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON23_tree = this.adaptor.create(SEMICOLON23); + this.adaptor.addChild(root_0, SEMICOLON23_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DefaultCollationDecl_return: (function() { + XQueryParser.pm_DefaultCollationDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DefaultCollationDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:376:1: pm_DefaultCollationDecl : k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_DefaultCollationDecl" + pm_DefaultCollationDecl: function() { + var retval = new XQueryParser.pm_DefaultCollationDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON25 = null; + var p_StringLiteral24 = null; + + var k_tree=null; + var SEMICOLON25_tree=null; + + try { + // xquery/XQueryParser.g:377:9: (k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:377:11: k= DECLARE k= DEFAULT k= COLLATION p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DefaultCollationDecl1519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DefaultCollationDecl1525); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_pm_DefaultCollationDecl1531); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DefaultCollationDecl1535); + p_StringLiteral24=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral24.getTree()); + SEMICOLON25=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DefaultCollationDecl1537); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON25_tree = this.adaptor.create(SEMICOLON25); + this.adaptor.addChild(root_0, SEMICOLON25_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_BaseURIDecl_return: (function() { + XQueryParser.pm_BaseURIDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_BaseURIDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:381:1: pm_BaseURIDecl : k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON -> ^( BaseURIDecl $sl) ; + // $ANTLR start "pm_BaseURIDecl" + pm_BaseURIDecl: function() { + var retval = new XQueryParser.pm_BaseURIDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON26 = null; + var sl = null; + + var k_tree=null; + var SEMICOLON26_tree=null; + var stream_DECLARE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DECLARE"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_BASE_URI=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BASE_URI"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:382:9: (k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON -> ^( BaseURIDecl $sl) ) + // xquery/XQueryParser.g:382:11: k= DECLARE k= BASE_URI sl= p_StringLiteral SEMICOLON + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_BaseURIDecl1573); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DECLARE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BASE_URI,XQueryParser.FOLLOW_BASE_URI_in_pm_BaseURIDecl1579); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BASE_URI.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_BaseURIDecl1585); + sl=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(sl.getTree()); + SEMICOLON26=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_BaseURIDecl1587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON26); + + + + // AST REWRITE + // elements: sl + // token labels: + // rule labels: sl, retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_sl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token sl",sl!=null?sl.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 383:17: -> ^( BaseURIDecl $sl) + { + // xquery/XQueryParser.g:383:20: ^( BaseURIDecl $sl) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(BaseURIDecl, "BaseURIDecl"), root_1); + + this.adaptor.addChild(root_1, stream_sl.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ConstructionDecl_return: (function() { + XQueryParser.pm_ConstructionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ConstructionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:387:1: pm_ConstructionDecl : k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON ; + // $ANTLR start "pm_ConstructionDecl" + pm_ConstructionDecl: function() { + var retval = new XQueryParser.pm_ConstructionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON27 = null; + + var k_tree=null; + var SEMICOLON27_tree=null; + + try { + // xquery/XQueryParser.g:388:9: (k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON ) + // xquery/XQueryParser.g:388:11: k= DECLARE k= CONSTRUCTION ( (k= STRIP | k= PRESERVE ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_ConstructionDecl1640); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONSTRUCTION,XQueryParser.FOLLOW_CONSTRUCTION_in_pm_ConstructionDecl1646); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:388:66: ( (k= STRIP | k= PRESERVE ) ) + // xquery/XQueryParser.g:388:68: (k= STRIP | k= PRESERVE ) + // xquery/XQueryParser.g:388:68: (k= STRIP | k= PRESERVE ) + var alt11=2; + var LA11_0 = this.input.LA(1); + + if ( (LA11_0==STRIP) ) { + alt11=1; + } + else if ( (LA11_0==PRESERVE) ) { + alt11=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 11, 0, this.input); + + throw nvae; + } + switch (alt11) { + case 1 : + // xquery/XQueryParser.g:388:69: k= STRIP + k=this.match(this.input,STRIP,XQueryParser.FOLLOW_STRIP_in_pm_ConstructionDecl1655); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:388:79: k= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_pm_ConstructionDecl1661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON27=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ConstructionDecl1668); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON27_tree = this.adaptor.create(SEMICOLON27); + this.adaptor.addChild(root_0, SEMICOLON27_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_OrderingModeDecl_return: (function() { + XQueryParser.pm_OrderingModeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_OrderingModeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:392:1: pm_OrderingModeDecl : k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON ; + // $ANTLR start "pm_OrderingModeDecl" + pm_OrderingModeDecl: function() { + var retval = new XQueryParser.pm_OrderingModeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON28 = null; + + var k_tree=null; + var SEMICOLON28_tree=null; + + try { + // xquery/XQueryParser.g:393:9: (k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON ) + // xquery/XQueryParser.g:393:11: k= DECLARE k= ORDERING ( (k= ORDERED | k= UNORDERED ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_OrderingModeDecl1696); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ORDERING,XQueryParser.FOLLOW_ORDERING_in_pm_OrderingModeDecl1702); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:393:62: ( (k= ORDERED | k= UNORDERED ) ) + // xquery/XQueryParser.g:393:64: (k= ORDERED | k= UNORDERED ) + // xquery/XQueryParser.g:393:64: (k= ORDERED | k= UNORDERED ) + var alt12=2; + var LA12_0 = this.input.LA(1); + + if ( (LA12_0==ORDERED) ) { + alt12=1; + } + else if ( (LA12_0==UNORDERED) ) { + alt12=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 12, 0, this.input); + + throw nvae; + } + switch (alt12) { + case 1 : + // xquery/XQueryParser.g:393:65: k= ORDERED + k=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_pm_OrderingModeDecl1711); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:393:77: k= UNORDERED + k=this.match(this.input,UNORDERED,XQueryParser.FOLLOW_UNORDERED_in_pm_OrderingModeDecl1717); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON28=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_OrderingModeDecl1724); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON28_tree = this.adaptor.create(SEMICOLON28); + this.adaptor.addChild(root_0, SEMICOLON28_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_EmptyOrderDecl_return: (function() { + XQueryParser.pm_EmptyOrderDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_EmptyOrderDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:397:1: pm_EmptyOrderDecl : k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON ; + // $ANTLR start "pm_EmptyOrderDecl" + pm_EmptyOrderDecl: function() { + var retval = new XQueryParser.pm_EmptyOrderDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON29 = null; + + var k_tree=null; + var SEMICOLON29_tree=null; + + try { + // xquery/XQueryParser.g:398:9: (k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON ) + // xquery/XQueryParser.g:398:11: k= DECLARE k= DEFAULT k= ORDER k= EMPTY ( (k= GREATEST | k= LEAST ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_EmptyOrderDecl1752); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_EmptyOrderDecl1758); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_pm_EmptyOrderDecl1764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_pm_EmptyOrderDecl1770); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:398:107: ( (k= GREATEST | k= LEAST ) ) + // xquery/XQueryParser.g:398:109: (k= GREATEST | k= LEAST ) + // xquery/XQueryParser.g:398:109: (k= GREATEST | k= LEAST ) + var alt13=2; + var LA13_0 = this.input.LA(1); + + if ( (LA13_0==GREATEST) ) { + alt13=1; + } + else if ( (LA13_0==LEAST) ) { + alt13=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 13, 0, this.input); + + throw nvae; + } + switch (alt13) { + case 1 : + // xquery/XQueryParser.g:398:110: k= GREATEST + k=this.match(this.input,GREATEST,XQueryParser.FOLLOW_GREATEST_in_pm_EmptyOrderDecl1779); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:398:123: k= LEAST + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_pm_EmptyOrderDecl1785); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + SEMICOLON29=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_EmptyOrderDecl1792); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON29_tree = this.adaptor.create(SEMICOLON29); + this.adaptor.addChild(root_0, SEMICOLON29_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CopyNamespacesDecl_return: (function() { + XQueryParser.pm_CopyNamespacesDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CopyNamespacesDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:402:1: pm_CopyNamespacesDecl : k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON ; + // $ANTLR start "pm_CopyNamespacesDecl" + pm_CopyNamespacesDecl: function() { + var retval = new XQueryParser.pm_CopyNamespacesDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA31 = null; + var SEMICOLON33 = null; + var p_PreserveMode30 = null; + var p_InheritMode32 = null; + + var k_tree=null; + var COMMA31_tree=null; + var SEMICOLON33_tree=null; + + try { + // xquery/XQueryParser.g:403:9: (k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON ) + // xquery/XQueryParser.g:403:11: k= DECLARE k= COPY_NAMESPACES p_PreserveMode COMMA p_InheritMode SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_CopyNamespacesDecl1820); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COPY_NAMESPACES,XQueryParser.FOLLOW_COPY_NAMESPACES_in_pm_CopyNamespacesDecl1826); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PreserveMode_in_pm_CopyNamespacesDecl1830); + p_PreserveMode30=this.p_PreserveMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PreserveMode30.getTree()); + COMMA31=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_CopyNamespacesDecl1832); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA31_tree = this.adaptor.create(COMMA31); + this.adaptor.addChild(root_0, COMMA31_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_InheritMode_in_pm_CopyNamespacesDecl1834); + p_InheritMode32=this.p_InheritMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InheritMode32.getTree()); + SEMICOLON33=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_CopyNamespacesDecl1836); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON33_tree = this.adaptor.create(SEMICOLON33); + this.adaptor.addChild(root_0, SEMICOLON33_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PreserveMode_return: (function() { + XQueryParser.p_PreserveMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PreserveMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:407:1: p_PreserveMode : (k+= PRESERVE | k+= NO_PRESERVE ) ; + // $ANTLR start "p_PreserveMode" + p_PreserveMode: function() { + var retval = new XQueryParser.p_PreserveMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:408:9: ( (k+= PRESERVE | k+= NO_PRESERVE ) ) + // xquery/XQueryParser.g:408:11: (k+= PRESERVE | k+= NO_PRESERVE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:408:11: (k+= PRESERVE | k+= NO_PRESERVE ) + var alt14=2; + var LA14_0 = this.input.LA(1); + + if ( (LA14_0==PRESERVE) ) { + alt14=1; + } + else if ( (LA14_0==NO_PRESERVE) ) { + alt14=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 14, 0, this.input); + + throw nvae; + } + switch (alt14) { + case 1 : + // xquery/XQueryParser.g:408:12: k+= PRESERVE + k=this.match(this.input,PRESERVE,XQueryParser.FOLLOW_PRESERVE_in_p_PreserveMode1865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:408:26: k+= NO_PRESERVE + k=this.match(this.input,NO_PRESERVE,XQueryParser.FOLLOW_NO_PRESERVE_in_p_PreserveMode1871); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InheritMode_return: (function() { + XQueryParser.p_InheritMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InheritMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:412:1: p_InheritMode : (k+= INHERIT | k+= NO_INHERIT ) ; + // $ANTLR start "p_InheritMode" + p_InheritMode: function() { + var retval = new XQueryParser.p_InheritMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:413:9: ( (k+= INHERIT | k+= NO_INHERIT ) ) + // xquery/XQueryParser.g:413:11: (k+= INHERIT | k+= NO_INHERIT ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:413:11: (k+= INHERIT | k+= NO_INHERIT ) + var alt15=2; + var LA15_0 = this.input.LA(1); + + if ( (LA15_0==INHERIT) ) { + alt15=1; + } + else if ( (LA15_0==NO_INHERIT) ) { + alt15=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 15, 0, this.input); + + throw nvae; + } + switch (alt15) { + case 1 : + // xquery/XQueryParser.g:413:12: k+= INHERIT + k=this.match(this.input,INHERIT,XQueryParser.FOLLOW_INHERIT_in_p_InheritMode1903); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:413:25: k+= NO_INHERIT + k=this.match(this.input,NO_INHERIT,XQueryParser.FOLLOW_NO_INHERIT_in_p_InheritMode1909); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DecimalFormatDecl_return: (function() { + XQueryParser.pm_DecimalFormatDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DecimalFormatDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:417:1: pm_DecimalFormatDecl : k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON ; + // $ANTLR start "pm_DecimalFormatDecl" + pm_DecimalFormatDecl: function() { + var retval = new XQueryParser.pm_DecimalFormatDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL36 = null; + var SEMICOLON38 = null; + var p_QName34 = null; + var p_DFPropertyName35 = null; + var p_StringLiteral37 = null; + + var k_tree=null; + var EQUAL36_tree=null; + var SEMICOLON38_tree=null; + + try { + // xquery/XQueryParser.g:418:9: (k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON ) + // xquery/XQueryParser.g:418:11: k= DECLARE ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) ( p_DFPropertyName EQUAL p_StringLiteral )* SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DecimalFormatDecl1948); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:418:36: ( (k= DECIMAL_FORMAT p_QName ) | (k= DEFAULT k= DECIMAL_FORMAT ) ) + var alt16=2; + var LA16_0 = this.input.LA(1); + + if ( (LA16_0==DECIMAL_FORMAT) ) { + alt16=1; + } + else if ( (LA16_0==DEFAULT) ) { + alt16=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 16, 0, this.input); + + throw nvae; + } + switch (alt16) { + case 1 : + // xquery/XQueryParser.g:418:37: (k= DECIMAL_FORMAT p_QName ) + // xquery/XQueryParser.g:418:37: (k= DECIMAL_FORMAT p_QName ) + // xquery/XQueryParser.g:418:38: k= DECIMAL_FORMAT p_QName + k=this.match(this.input,DECIMAL_FORMAT,XQueryParser.FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1956); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_DecimalFormatDecl1960); + p_QName34=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName34.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:418:81: (k= DEFAULT k= DECIMAL_FORMAT ) + // xquery/XQueryParser.g:418:81: (k= DEFAULT k= DECIMAL_FORMAT ) + // xquery/XQueryParser.g:418:82: k= DEFAULT k= DECIMAL_FORMAT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DecimalFormatDecl1968); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DECIMAL_FORMAT,XQueryParser.FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + + + break; + + } + + // xquery/XQueryParser.g:418:141: ( p_DFPropertyName EQUAL p_StringLiteral )* + loop17: + do { + var alt17=2; + var LA17_0 = this.input.LA(1); + + if ( ((LA17_0>=DECIMAL_SEPARATOR && LA17_0<=DIGIT)||(LA17_0>=GROUPING_SEPARATOR && LA17_0<=MINUS_SIGN)||LA17_0==NAN||(LA17_0>=PATTERN_SEPARATOR && LA17_0<=PER_MILLE)||LA17_0==ZERO_DIGIT) ) { + alt17=1; + } + + + switch (alt17) { + case 1 : + // xquery/XQueryParser.g:418:142: p_DFPropertyName EQUAL p_StringLiteral + this.pushFollow(XQueryParser.FOLLOW_p_DFPropertyName_in_pm_DecimalFormatDecl1981); + p_DFPropertyName35=this.p_DFPropertyName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DFPropertyName35.getTree()); + EQUAL36=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_DecimalFormatDecl1983); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + EQUAL36_tree = this.adaptor.create(EQUAL36); + this.adaptor.addChild(root_0, EQUAL36_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DecimalFormatDecl1985); + p_StringLiteral37=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral37.getTree()); + + + break; + + default : + break loop17; + } + } while (true); + + SEMICOLON38=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DecimalFormatDecl1989); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON38_tree = this.adaptor.create(SEMICOLON38); + this.adaptor.addChild(root_0, SEMICOLON38_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DFPropertyName_return: (function() { + XQueryParser.p_DFPropertyName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DFPropertyName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:422:1: p_DFPropertyName : (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) ; + // $ANTLR start "p_DFPropertyName" + p_DFPropertyName: function() { + var retval = new XQueryParser.p_DFPropertyName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:423:9: ( (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) ) + // xquery/XQueryParser.g:423:11: (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:423:11: (k= DECIMAL_SEPARATOR | k= GROUPING_SEPARATOR | k= INFINITY | k= MINUS_SIGN | k= NAN | k= PERCENT | k= PER_MILLE | k= ZERO_DIGIT | k= DIGIT | k= PATTERN_SEPARATOR ) + var alt18=10; + switch ( this.input.LA(1) ) { + case DECIMAL_SEPARATOR: + alt18=1; + break; + case GROUPING_SEPARATOR: + alt18=2; + break; + case INFINITY: + alt18=3; + break; + case MINUS_SIGN: + alt18=4; + break; + case NAN: + alt18=5; + break; + case PERCENT: + alt18=6; + break; + case PER_MILLE: + alt18=7; + break; + case ZERO_DIGIT: + alt18=8; + break; + case DIGIT: + alt18=9; + break; + case PATTERN_SEPARATOR: + alt18=10; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 18, 0, this.input); + + throw nvae; + } + + switch (alt18) { + case 1 : + // xquery/XQueryParser.g:423:12: k= DECIMAL_SEPARATOR + k=this.match(this.input,DECIMAL_SEPARATOR,XQueryParser.FOLLOW_DECIMAL_SEPARATOR_in_p_DFPropertyName2018); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:423:34: k= GROUPING_SEPARATOR + k=this.match(this.input,GROUPING_SEPARATOR,XQueryParser.FOLLOW_GROUPING_SEPARATOR_in_p_DFPropertyName2024); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:423:57: k= INFINITY + k=this.match(this.input,INFINITY,XQueryParser.FOLLOW_INFINITY_in_p_DFPropertyName2030); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:423:70: k= MINUS_SIGN + k=this.match(this.input,MINUS_SIGN,XQueryParser.FOLLOW_MINUS_SIGN_in_p_DFPropertyName2036); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:423:85: k= NAN + k=this.match(this.input,NAN,XQueryParser.FOLLOW_NAN_in_p_DFPropertyName2042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:423:93: k= PERCENT + k=this.match(this.input,PERCENT,XQueryParser.FOLLOW_PERCENT_in_p_DFPropertyName2048); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 7 : + // xquery/XQueryParser.g:423:105: k= PER_MILLE + k=this.match(this.input,PER_MILLE,XQueryParser.FOLLOW_PER_MILLE_in_p_DFPropertyName2054); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 8 : + // xquery/XQueryParser.g:423:119: k= ZERO_DIGIT + k=this.match(this.input,ZERO_DIGIT,XQueryParser.FOLLOW_ZERO_DIGIT_in_p_DFPropertyName2060); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 9 : + // xquery/XQueryParser.g:423:134: k= DIGIT + k=this.match(this.input,DIGIT,XQueryParser.FOLLOW_DIGIT_in_p_DFPropertyName2066); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 10 : + // xquery/XQueryParser.g:423:144: k= PATTERN_SEPARATOR + k=this.match(this.input,PATTERN_SEPARATOR,XQueryParser.FOLLOW_PATTERN_SEPARATOR_in_p_DFPropertyName2072); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Import_return: (function() { + XQueryParser.p_Import_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Import_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:427:1: p_Import : ( pm_SchemaImport | pm_ModuleImport ); + // $ANTLR start "p_Import" + p_Import: function() { + var retval = new XQueryParser.p_Import_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_SchemaImport39 = null; + var pm_ModuleImport40 = null; + + + try { + // xquery/XQueryParser.g:428:9: ( pm_SchemaImport | pm_ModuleImport ) + var alt19=2; + var LA19_0 = this.input.LA(1); + + if ( (LA19_0==IMPORT) ) { + var LA19_1 = this.input.LA(2); + + if ( (LA19_1==SCHEMA) ) { + alt19=1; + } + else if ( (LA19_1==MODULE) ) { + alt19=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 19, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 19, 0, this.input); + + throw nvae; + } + switch (alt19) { + case 1 : + // xquery/XQueryParser.g:428:11: pm_SchemaImport + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_SchemaImport_in_p_Import2101); + pm_SchemaImport39=this.pm_SchemaImport(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_SchemaImport39.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:428:29: pm_ModuleImport + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_ModuleImport_in_p_Import2105); + pm_ModuleImport40=this.pm_ModuleImport(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ModuleImport40.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_SchemaImport_return: (function() { + XQueryParser.pm_SchemaImport_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_SchemaImport_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:432:1: pm_SchemaImport : k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) ; + // $ANTLR start "pm_SchemaImport" + pm_SchemaImport: function() { + var retval = new XQueryParser.pm_SchemaImport_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA41 = null; + var SEMICOLON42 = null; + var list_ah=null; + var sp = null; + var us = null; + var ah = null; + var k_tree=null; + var COMMA41_tree=null; + var SEMICOLON42_tree=null; + var stream_AT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AT"); + var stream_IMPORT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token IMPORT"); + var stream_SCHEMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SCHEMA"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_p_SchemaPrefix=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SchemaPrefix"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:433:9: (k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) ) + // xquery/XQueryParser.g:433:11: k= IMPORT k= SCHEMA (sp= p_SchemaPrefix )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON + k=this.match(this.input,IMPORT,XQueryParser.FOLLOW_IMPORT_in_pm_SchemaImport2141); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_IMPORT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,SCHEMA,XQueryParser.FOLLOW_SCHEMA_in_pm_SchemaImport2147); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SCHEMA.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:433:61: (sp= p_SchemaPrefix )? + var alt20=2; + var LA20_0 = this.input.LA(1); + + if ( (LA20_0==DEFAULT||LA20_0==NAMESPACE) ) { + alt20=1; + } + switch (alt20) { + case 1 : + // xquery/XQueryParser.g:433:61: sp= p_SchemaPrefix + this.pushFollow(XQueryParser.FOLLOW_p_SchemaPrefix_in_pm_SchemaImport2153); + sp=this.p_SchemaPrefix(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SchemaPrefix.add(sp.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2158); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + // xquery/XQueryParser.g:433:97: (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? + var alt22=2; + var LA22_0 = this.input.LA(1); + + if ( (LA22_0==AT) ) { + alt22=1; + } + switch (alt22) { + case 1 : + // xquery/XQueryParser.g:433:98: k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_pm_SchemaImport2163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2169); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + // xquery/XQueryParser.g:433:138: ( COMMA ah+= p_StringLiteral )* + loop21: + do { + var alt21=2; + var LA21_0 = this.input.LA(1); + + if ( (LA21_0==COMMA) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // xquery/XQueryParser.g:433:139: COMMA ah+= p_StringLiteral + COMMA41=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_SchemaImport2172); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA41); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_SchemaImport2176); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + + + break; + + default : + break loop21; + } + } while (true); + + + + break; + + } + + SEMICOLON42=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_SchemaImport2182); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON42); + + + + // AST REWRITE + // elements: sp, ah, us + // token labels: + // rule labels: retval, sp, us + // token list labels: + // rule list labels: ah + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_sp=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token sp",sp!=null?sp.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + var stream_ah=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ah",list_ah); + root_0 = this.adaptor.nil(); + // 434:17: -> ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) + { + // xquery/XQueryParser.g:434:20: ^( SchemaImport ^( SchemaPrefix ( $sp)? ) $us ^( AtHints ( $ah)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SchemaImport, "SchemaImport"), root_1); + + // xquery/XQueryParser.g:434:35: ^( SchemaPrefix ( $sp)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(SchemaPrefix, "SchemaPrefix"), root_2); + + // xquery/XQueryParser.g:434:50: ( $sp)? + if ( stream_sp.hasNext() ) { + this.adaptor.addChild(root_2, stream_sp.nextTree()); + + } + stream_sp.reset(); + + this.adaptor.addChild(root_1, root_2); + } + this.adaptor.addChild(root_1, stream_us.nextTree()); + // xquery/XQueryParser.g:434:60: ^( AtHints ( $ah)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(AtHints, "AtHints"), root_2); + + // xquery/XQueryParser.g:434:70: ( $ah)* + while ( stream_ah.hasNext() ) { + this.adaptor.addChild(root_2, stream_ah.nextTree()); + + } + stream_ah.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaPrefix_return: (function() { + XQueryParser.p_SchemaPrefix_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaPrefix_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:438:1: p_SchemaPrefix : (k= NAMESPACE nn= p_NCName EQUAL -> ^( NamespaceName $nn) | k= DEFAULT k= ELEMENT k= NAMESPACE -> DefaultElementNamespace ); + // $ANTLR start "p_SchemaPrefix" + p_SchemaPrefix: function() { + var retval = new XQueryParser.p_SchemaPrefix_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL43 = null; + var nn = null; + + var k_tree=null; + var EQUAL43_tree=null; + var stream_ELEMENT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ELEMENT"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_DEFAULT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DEFAULT"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + try { + // xquery/XQueryParser.g:439:9: (k= NAMESPACE nn= p_NCName EQUAL -> ^( NamespaceName $nn) | k= DEFAULT k= ELEMENT k= NAMESPACE -> DefaultElementNamespace ) + var alt23=2; + var LA23_0 = this.input.LA(1); + + if ( (LA23_0==NAMESPACE) ) { + alt23=1; + } + else if ( (LA23_0==DEFAULT) ) { + alt23=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 23, 0, this.input); + + throw nvae; + } + switch (alt23) { + case 1 : + // xquery/XQueryParser.g:439:11: k= NAMESPACE nn= p_NCName EQUAL + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_SchemaPrefix2252); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_SchemaPrefix2258); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL43=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_SchemaPrefix2260); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL43); + + + + // AST REWRITE + // elements: nn + // token labels: + // rule labels: retval, nn + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + + root_0 = this.adaptor.nil(); + // 440:17: -> ^( NamespaceName $nn) + { + // xquery/XQueryParser.g:440:20: ^( NamespaceName $nn) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceName, "NamespaceName"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:441:11: k= DEFAULT k= ELEMENT k= NAMESPACE + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SchemaPrefix2299); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DEFAULT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_p_SchemaPrefix2305); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ELEMENT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_SchemaPrefix2311); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + // AST REWRITE + // elements: + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 442:17: -> DefaultElementNamespace + { + this.adaptor.addChild(root_0, this.adaptor.create(DefaultElementNamespace, "DefaultElementNamespace")); + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ModuleImport_return: (function() { + XQueryParser.pm_ModuleImport_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ModuleImport_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:446:1: pm_ModuleImport : k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) ; + // $ANTLR start "pm_ModuleImport" + pm_ModuleImport: function() { + var retval = new XQueryParser.pm_ModuleImport_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL44 = null; + var COMMA45 = null; + var SEMICOLON46 = null; + var list_ah=null; + var nn = null; + var us = null; + var ah = null; + var k_tree=null; + var EQUAL44_tree=null; + var COMMA45_tree=null; + var SEMICOLON46_tree=null; + var stream_AT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AT"); + var stream_IMPORT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token IMPORT"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_MODULE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MODULE"); + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:447:9: (k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) ) + // xquery/XQueryParser.g:447:11: k= IMPORT k= MODULE (k= NAMESPACE nn= p_NCName EQUAL )? us= p_StringLiteral (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? SEMICOLON + k=this.match(this.input,IMPORT,XQueryParser.FOLLOW_IMPORT_in_pm_ModuleImport2361); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_IMPORT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,MODULE,XQueryParser.FOLLOW_MODULE_in_pm_ModuleImport2367); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MODULE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:447:59: (k= NAMESPACE nn= p_NCName EQUAL )? + var alt24=2; + var LA24_0 = this.input.LA(1); + + if ( (LA24_0==NAMESPACE) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // xquery/XQueryParser.g:447:60: k= NAMESPACE nn= p_NCName EQUAL + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_ModuleImport2374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_ModuleImport2380); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL44=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_ModuleImport2382); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL44); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2388); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + // xquery/XQueryParser.g:447:126: (k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* )? + var alt26=2; + var LA26_0 = this.input.LA(1); + + if ( (LA26_0==AT) ) { + alt26=1; + } + switch (alt26) { + case 1 : + // xquery/XQueryParser.g:447:127: k= AT ah+= p_StringLiteral ( COMMA ah+= p_StringLiteral )* + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_pm_ModuleImport2393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AT.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2399); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + // xquery/XQueryParser.g:447:167: ( COMMA ah+= p_StringLiteral )* + loop25: + do { + var alt25=2; + var LA25_0 = this.input.LA(1); + + if ( (LA25_0==COMMA) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // xquery/XQueryParser.g:447:168: COMMA ah+= p_StringLiteral + COMMA45=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_pm_ModuleImport2402); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA45); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_ModuleImport2406); + ah=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(ah.getTree()); + if (org.antlr.lang.isNull(list_ah)) list_ah = []; + list_ah.push(ah.getTree()); + + + + break; + + default : + break loop25; + } + } while (true); + + + + break; + + } + + SEMICOLON46=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ModuleImport2412); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON46); + + + + // AST REWRITE + // elements: ah, nn, us + // token labels: + // rule labels: retval, nn, us + // token list labels: + // rule list labels: ah + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + var stream_ah=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token ah",list_ah); + root_0 = this.adaptor.nil(); + // 448:17: -> ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) + { + // xquery/XQueryParser.g:448:20: ^( ModuleImport ^( NamespaceName ( $nn)? ) $us ^( AtHints ( $ah)* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ModuleImport, "ModuleImport"), root_1); + + // xquery/XQueryParser.g:448:35: ^( NamespaceName ( $nn)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceName, "NamespaceName"), root_2); + + // xquery/XQueryParser.g:448:51: ( $nn)? + if ( stream_nn.hasNext() ) { + this.adaptor.addChild(root_2, stream_nn.nextTree()); + + } + stream_nn.reset(); + + this.adaptor.addChild(root_1, root_2); + } + this.adaptor.addChild(root_1, stream_us.nextTree()); + // xquery/XQueryParser.g:448:61: ^( AtHints ( $ah)* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(AtHints, "AtHints"), root_2); + + // xquery/XQueryParser.g:448:71: ( $ah)* + while ( stream_ah.hasNext() ) { + this.adaptor.addChild(root_2, stream_ah.nextTree()); + + } + stream_ah.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_NamespaceDecl_return: (function() { + XQueryParser.pm_NamespaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_NamespaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:452:1: pm_NamespaceDecl : k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON -> ^( NamespaceDecl $nn $us) ; + // $ANTLR start "pm_NamespaceDecl" + pm_NamespaceDecl: function() { + var retval = new XQueryParser.pm_NamespaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var EQUAL47 = null; + var SEMICOLON48 = null; + var nn = null; + var us = null; + + var k_tree=null; + var EQUAL47_tree=null; + var SEMICOLON48_tree=null; + var stream_DECLARE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DECLARE"); + var stream_SEMICOLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SEMICOLON"); + var stream_NAMESPACE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token NAMESPACE"); + var stream_EQUAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EQUAL"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + var stream_p_StringLiteral=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StringLiteral"); + try { + // xquery/XQueryParser.g:453:9: (k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON -> ^( NamespaceDecl $nn $us) ) + // xquery/XQueryParser.g:453:11: k= DECLARE k= NAMESPACE nn= p_NCName EQUAL us= p_StringLiteral SEMICOLON + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_NamespaceDecl2481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DECLARE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_NamespaceDecl2487); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_NAMESPACE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_NamespaceDecl2493); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + EQUAL47=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_pm_NamespaceDecl2495); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EQUAL.add(EQUAL47); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_NamespaceDecl2499); + us=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StringLiteral.add(us.getTree()); + SEMICOLON48=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_NamespaceDecl2501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SEMICOLON.add(SEMICOLON48); + + + + // AST REWRITE + // elements: nn, us + // token labels: + // rule labels: retval, nn, us + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_us=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token us",us!=null?us.tree:null); + + root_0 = this.adaptor.nil(); + // 454:17: -> ^( NamespaceDecl $nn $us) + { + // xquery/XQueryParser.g:454:20: ^( NamespaceDecl $nn $us) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(NamespaceDecl, "NamespaceDecl"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + this.adaptor.addChild(root_1, stream_us.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DefaultNamespaceDecl_return: (function() { + XQueryParser.pm_DefaultNamespaceDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DefaultNamespaceDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:458:1: pm_DefaultNamespaceDecl : k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_DefaultNamespaceDecl" + pm_DefaultNamespaceDecl: function() { + var retval = new XQueryParser.pm_DefaultNamespaceDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON50 = null; + var p_StringLiteral49 = null; + + var k_tree=null; + var SEMICOLON50_tree=null; + + try { + // xquery/XQueryParser.g:459:9: (k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:459:11: k= DECLARE k= DEFAULT (k= ELEMENT | k= FUNCTION ) k= NAMESPACE p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_DefaultNamespaceDecl2558); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_pm_DefaultNamespaceDecl2564); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:459:61: (k= ELEMENT | k= FUNCTION ) + var alt27=2; + var LA27_0 = this.input.LA(1); + + if ( (LA27_0==ELEMENT) ) { + alt27=1; + } + else if ( (LA27_0==FUNCTION) ) { + alt27=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 27, 0, this.input); + + throw nvae; + } + switch (alt27) { + case 1 : + // xquery/XQueryParser.g:459:62: k= ELEMENT + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_pm_DefaultNamespaceDecl2571); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:459:74: k= FUNCTION + k=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_pm_DefaultNamespaceDecl2577); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_pm_DefaultNamespaceDecl2584); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_DefaultNamespaceDecl2588); + p_StringLiteral49=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral49.getTree()); + SEMICOLON50=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_DefaultNamespaceDecl2590); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON50_tree = this.adaptor.create(SEMICOLON50); + this.adaptor.addChild(root_0, SEMICOLON50_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_AnnotatedDecl_return: (function() { + XQueryParser.pm_AnnotatedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_AnnotatedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:463:1: pm_AnnotatedDecl : k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON ; + // $ANTLR start "pm_AnnotatedDecl" + pm_AnnotatedDecl: function() { + var retval = new XQueryParser.pm_AnnotatedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON53 = null; + var p_Annotation51 = null; + var pg_AnnotatedDecl52 = null; + + var k_tree=null; + var SEMICOLON53_tree=null; + + try { + // xquery/XQueryParser.g:464:9: (k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON ) + // xquery/XQueryParser.g:464:11: k= DECLARE ( p_Annotation )* pg_AnnotatedDecl SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_AnnotatedDecl2618); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:464:36: ( p_Annotation )* + loop28: + do { + var alt28=2; + var LA28_0 = this.input.LA(1); + + if ( (LA28_0==ANN_PERCENT) ) { + alt28=1; + } + + + switch (alt28) { + case 1 : + // xquery/XQueryParser.g:464:36: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_pm_AnnotatedDecl2622); + p_Annotation51=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation51.getTree()); + + + break; + + default : + break loop28; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_pg_AnnotatedDecl_in_pm_AnnotatedDecl2625); + pg_AnnotatedDecl52=this.pg_AnnotatedDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_AnnotatedDecl52.getTree()); + SEMICOLON53=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_AnnotatedDecl2627); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON53_tree = this.adaptor.create(SEMICOLON53); + this.adaptor.addChild(root_0, SEMICOLON53_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_AnnotatedDecl_return: (function() { + XQueryParser.pg_AnnotatedDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_AnnotatedDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:466:1: pg_AnnotatedDecl : ( p_VarDecl | pm_FunctionDecl | {...}? => p_CollectionDecl | {...}? => p_IndexDecl | {...}? => p_ICDecl ); + // $ANTLR start "pg_AnnotatedDecl" + pg_AnnotatedDecl: function() { + var retval = new XQueryParser.pg_AnnotatedDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_VarDecl54 = null; + var pm_FunctionDecl55 = null; + var p_CollectionDecl56 = null; + var p_IndexDecl57 = null; + var p_ICDecl58 = null; + + + try { + // xquery/XQueryParser.g:467:9: ( p_VarDecl | pm_FunctionDecl | {...}? => p_CollectionDecl | {...}? => p_IndexDecl | {...}? => p_ICDecl ) + var alt29=5; + var LA29_0 = this.input.LA(1); + + if ( (LA29_0==VARIABLE) ) { + alt29=1; + } + else if ( (LA29_0==UPDATING) && ((this.lc(XQU)))) { + alt29=2; + } + else if ( (LA29_0==FUNCTION) ) { + alt29=2; + } + else if ( (LA29_0==COLLECTION) && ((this.lc(ZORBA)))) { + alt29=3; + } + else if ( (LA29_0==INDEX) && ((this.lc(ZORBA)))) { + alt29=4; + } + else if ( (LA29_0==INTEGRITY) && ((this.lc(ZORBA)))) { + alt29=5; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 29, 0, this.input); + + throw nvae; + } + switch (alt29) { + case 1 : + // xquery/XQueryParser.g:467:11: p_VarDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDecl_in_pg_AnnotatedDecl2651); + p_VarDecl54=this.p_VarDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDecl54.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:468:11: pm_FunctionDecl + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_FunctionDecl_in_pg_AnnotatedDecl2663); + pm_FunctionDecl55=this.pm_FunctionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_FunctionDecl55.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:469:11: {...}? => p_CollectionDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_CollectionDecl_in_pg_AnnotatedDecl2678); + p_CollectionDecl56=this.p_CollectionDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CollectionDecl56.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:470:11: {...}? => p_IndexDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexDecl_in_pg_AnnotatedDecl2693); + p_IndexDecl57=this.p_IndexDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexDecl57.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:471:11: {...}? => p_ICDecl + root_0 = this.adaptor.nil(); + + if ( !((this.lc(ZORBA))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pg_AnnotatedDecl", "this.lc(ZORBA)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICDecl_in_pg_AnnotatedDecl2708); + p_ICDecl58=this.p_ICDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICDecl58.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Annotation_return: (function() { + XQueryParser.p_Annotation_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Annotation_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:475:1: p_Annotation : ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? ; + // $ANTLR start "p_Annotation" + p_Annotation: function() { + var retval = new XQueryParser.p_Annotation_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ANN_PERCENT59 = null; + var LPAREN61 = null; + var COMMA63 = null; + var RPAREN65 = null; + var p_QName60 = null; + var p_Literal62 = null; + var p_Literal64 = null; + + var ANN_PERCENT59_tree=null; + var LPAREN61_tree=null; + var COMMA63_tree=null; + var RPAREN65_tree=null; + + try { + // xquery/XQueryParser.g:476:9: ( ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? ) + // xquery/XQueryParser.g:476:11: ANN_PERCENT p_QName ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? + root_0 = this.adaptor.nil(); + + ANN_PERCENT59=this.match(this.input,ANN_PERCENT,XQueryParser.FOLLOW_ANN_PERCENT_in_p_Annotation2734); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANN_PERCENT59_tree = this.adaptor.create(ANN_PERCENT59); + this.adaptor.addChild(root_0, ANN_PERCENT59_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_Annotation2736); + p_QName60=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName60.getTree()); + // xquery/XQueryParser.g:476:31: ( LPAREN p_Literal ( COMMA p_Literal )* RPAREN )? + var alt31=2; + var LA31_0 = this.input.LA(1); + + if ( (LA31_0==LPAREN) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // xquery/XQueryParser.g:476:32: LPAREN p_Literal ( COMMA p_Literal )* RPAREN + LPAREN61=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_Annotation2739); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN61_tree = this.adaptor.create(LPAREN61); + this.adaptor.addChild(root_0, LPAREN61_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_Annotation2741); + p_Literal62=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal62.getTree()); + // xquery/XQueryParser.g:476:49: ( COMMA p_Literal )* + loop30: + do { + var alt30=2; + var LA30_0 = this.input.LA(1); + + if ( (LA30_0==COMMA) ) { + alt30=1; + } + + + switch (alt30) { + case 1 : + // xquery/XQueryParser.g:476:50: COMMA p_Literal + COMMA63=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_Annotation2744); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA63_tree = this.adaptor.create(COMMA63); + this.adaptor.addChild(root_0, COMMA63_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_Annotation2746); + p_Literal64=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal64.getTree()); + + + break; + + default : + break loop30; + } + } while (true); + + RPAREN65=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_Annotation2750); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN65_tree = this.adaptor.create(RPAREN65); + this.adaptor.addChild(root_0, RPAREN65_tree); + } + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDecl_return: (function() { + XQueryParser.p_VarDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:480:1: p_VarDecl : k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) ; + // $ANTLR start "p_VarDecl" + p_VarDecl: function() { + var retval = new XQueryParser.p_VarDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var BIND66 = null; + var BIND67 = null; + var qn = null; + var td = null; + var vv = null; + var vdv = null; + + var k_tree=null; + var d_tree=null; + var BIND66_tree=null; + var BIND67_tree=null; + var stream_DOLLAR=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DOLLAR"); + var stream_EXTERNAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EXTERNAL"); + var stream_VARIABLE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token VARIABLE"); + var stream_BIND=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BIND"); + var stream_p_TypeDeclaration=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_TypeDeclaration"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + var stream_p_VarDefaultValue=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VarDefaultValue"); + var stream_p_VarValue=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_VarValue"); + try { + // xquery/XQueryParser.g:481:9: (k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) ) + // xquery/XQueryParser.g:481:11: k= VARIABLE d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) + k=this.match(this.input,VARIABLE,XQueryParser.FOLLOW_VARIABLE_in_p_VarDecl2780); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_VARIABLE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDecl2786); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DOLLAR.add(d); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_VarDecl2790); + qn=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(qn.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (qn?qn.stop:null)); + } + // xquery/XQueryParser.g:481:86: (td= p_TypeDeclaration )? + var alt32=2; + var LA32_0 = this.input.LA(1); + + if ( (LA32_0==AS) ) { + alt32=1; + } + switch (alt32) { + case 1 : + // xquery/XQueryParser.g:481:86: td= p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDecl2796); + td=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_TypeDeclaration.add(td.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:481:106: ( ( BIND vv= p_VarValue ) | (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) ) + var alt34=2; + var LA34_0 = this.input.LA(1); + + if ( (LA34_0==BIND) ) { + alt34=1; + } + else if ( (LA34_0==EXTERNAL) ) { + alt34=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 34, 0, this.input); + + throw nvae; + } + switch (alt34) { + case 1 : + // xquery/XQueryParser.g:481:107: ( BIND vv= p_VarValue ) + // xquery/XQueryParser.g:481:107: ( BIND vv= p_VarValue ) + // xquery/XQueryParser.g:481:108: BIND vv= p_VarValue + BIND66=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDecl2801); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BIND.add(BIND66); + + this.pushFollow(XQueryParser.FOLLOW_p_VarValue_in_p_VarDecl2805); + vv=this.p_VarValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VarValue.add(vv.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:481:130: (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) + // xquery/XQueryParser.g:481:130: (k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? ) + // xquery/XQueryParser.g:481:131: k= EXTERNAL ( BIND vdv= p_VarDefaultValue )? + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_p_VarDecl2813); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EXTERNAL.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:481:157: ( BIND vdv= p_VarDefaultValue )? + var alt33=2; + var LA33_0 = this.input.LA(1); + + if ( (LA33_0==BIND) ) { + alt33=1; + } + switch (alt33) { + case 1 : + // xquery/XQueryParser.g:481:158: BIND vdv= p_VarDefaultValue + BIND67=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDecl2818); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BIND.add(BIND67); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDefaultValue_in_p_VarDecl2822); + vdv=this.p_VarDefaultValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_VarDefaultValue.add(vdv.getTree()); + + + break; + + } + + + + + + + break; + + } + + + + // AST REWRITE + // elements: qn, vdv, td, vv + // token labels: + // rule labels: qn, vv, retval, vdv, td + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_vv=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token vv",vv!=null?vv.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_vdv=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token vdv",vdv!=null?vdv.tree:null); + var stream_td=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token td",td!=null?td.tree:null); + + root_0 = this.adaptor.nil(); + // 482:17: -> ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) + { + // xquery/XQueryParser.g:482:20: ^( VarDecl $qn ^( VarType ( $td)? ) ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(VarDecl, "VarDecl"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:482:34: ^( VarType ( $td)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VarType, "VarType"), root_2); + + // xquery/XQueryParser.g:482:44: ( $td)? + if ( stream_td.hasNext() ) { + this.adaptor.addChild(root_2, stream_td.nextTree()); + + } + stream_td.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:482:50: ^( VarValue ( $vv)? ^( VarDefaultValue ( $vdv)? ) ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(VarValue, "VarValue"), root_2); + + // xquery/XQueryParser.g:482:61: ( $vv)? + if ( stream_vv.hasNext() ) { + this.adaptor.addChild(root_2, stream_vv.nextTree()); + + } + stream_vv.reset(); + // xquery/XQueryParser.g:482:66: ^( VarDefaultValue ( $vdv)? ) + { + var root_3 = this.adaptor.nil(); + root_3 = this.adaptor.becomeRoot(this.adaptor.create(VarDefaultValue, "VarDefaultValue"), root_3); + + // xquery/XQueryParser.g:482:84: ( $vdv)? + if ( stream_vdv.hasNext() ) { + this.adaptor.addChild(root_3, stream_vdv.nextTree()); + + } + stream_vdv.reset(); + + this.adaptor.addChild(root_2, root_3); + } + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarValue_return: (function() { + XQueryParser.p_VarValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:486:1: p_VarValue : p_ExprSingle[true] ; + // $ANTLR start "p_VarValue" + p_VarValue: function() { + var retval = new XQueryParser.p_VarValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle68 = null; + + + try { + // xquery/XQueryParser.g:487:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:487:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarValue2901); + p_ExprSingle68=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle68.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDefaultValue_return: (function() { + XQueryParser.p_VarDefaultValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDefaultValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:491:1: p_VarDefaultValue : p_ExprSingle[true] ; + // $ANTLR start "p_VarDefaultValue" + p_VarDefaultValue: function() { + var retval = new XQueryParser.p_VarDefaultValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle69 = null; + + + try { + // xquery/XQueryParser.g:492:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:492:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDefaultValue2928); + p_ExprSingle69=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle69.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ContextItemDecl_return: (function() { + XQueryParser.pm_ContextItemDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ContextItemDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:496:1: pm_ContextItemDecl : k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON ; + // $ANTLR start "pm_ContextItemDecl" + pm_ContextItemDecl: function() { + var retval = new XQueryParser.pm_ContextItemDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var BIND71 = null; + var BIND73 = null; + var SEMICOLON75 = null; + var p_ItemType70 = null; + var p_VarValue72 = null; + var p_VarDefaultValue74 = null; + + var k_tree=null; + var BIND71_tree=null; + var BIND73_tree=null; + var SEMICOLON75_tree=null; + + try { + // xquery/XQueryParser.g:497:9: (k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON ) + // xquery/XQueryParser.g:497:11: k= DECLARE k= CONTEXT k= ITEM (k= AS p_ItemType )? ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_ContextItemDecl2957); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONTEXT,XQueryParser.FOLLOW_CONTEXT_in_pm_ContextItemDecl2963); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,ITEM,XQueryParser.FOLLOW_ITEM_in_pm_ContextItemDecl2969); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:497:83: (k= AS p_ItemType )? + var alt35=2; + var LA35_0 = this.input.LA(1); + + if ( (LA35_0==AS) ) { + alt35=1; + } + switch (alt35) { + case 1 : + // xquery/XQueryParser.g:497:84: k= AS p_ItemType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_pm_ContextItemDecl2976); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_pm_ContextItemDecl2980); + p_ItemType70=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ItemType70.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:497:117: ( ( BIND p_VarValue ) | (k= EXTERNAL ( BIND p_VarDefaultValue )? ) ) + var alt37=2; + var LA37_0 = this.input.LA(1); + + if ( (LA37_0==BIND) ) { + alt37=1; + } + else if ( (LA37_0==EXTERNAL) ) { + alt37=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 37, 0, this.input); + + throw nvae; + } + switch (alt37) { + case 1 : + // xquery/XQueryParser.g:497:118: ( BIND p_VarValue ) + // xquery/XQueryParser.g:497:118: ( BIND p_VarValue ) + // xquery/XQueryParser.g:497:119: BIND p_VarValue + BIND71=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_pm_ContextItemDecl2986); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND71_tree = this.adaptor.create(BIND71); + this.adaptor.addChild(root_0, BIND71_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarValue_in_pm_ContextItemDecl2988); + p_VarValue72=this.p_VarValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarValue72.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:497:138: (k= EXTERNAL ( BIND p_VarDefaultValue )? ) + // xquery/XQueryParser.g:497:138: (k= EXTERNAL ( BIND p_VarDefaultValue )? ) + // xquery/XQueryParser.g:497:139: k= EXTERNAL ( BIND p_VarDefaultValue )? + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_pm_ContextItemDecl2996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:497:165: ( BIND p_VarDefaultValue )? + var alt36=2; + var LA36_0 = this.input.LA(1); + + if ( (LA36_0==BIND) ) { + alt36=1; + } + switch (alt36) { + case 1 : + // xquery/XQueryParser.g:497:166: BIND p_VarDefaultValue + BIND73=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_pm_ContextItemDecl3001); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND73_tree = this.adaptor.create(BIND73); + this.adaptor.addChild(root_0, BIND73_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarDefaultValue_in_pm_ContextItemDecl3003); + p_VarDefaultValue74=this.p_VarDefaultValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDefaultValue74.getTree()); + + + break; + + } + + + + + + + break; + + } + + SEMICOLON75=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_ContextItemDecl3009); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON75_tree = this.adaptor.create(SEMICOLON75); + this.adaptor.addChild(root_0, SEMICOLON75_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FunctionDecl_return: (function() { + XQueryParser.pm_FunctionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FunctionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:502:1: pm_FunctionDecl : ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) ; + // $ANTLR start "pm_FunctionDecl" + pm_FunctionDecl: function() { + var retval = new XQueryParser.pm_FunctionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN76 = null; + var RPAREN77 = null; + var LBRACKET78 = null; + var RBRACKET79 = null; + var qn = null; + var pl = null; + var st = null; + var soe = null; + + var k_tree=null; + var LPAREN76_tree=null; + var RPAREN77_tree=null; + var LBRACKET78_tree=null; + var RBRACKET79_tree=null; + var stream_FUNCTION=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token FUNCTION"); + var stream_LBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LBRACKET"); + var stream_AS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AS"); + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_EXTERNAL=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EXTERNAL"); + var stream_RBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RBRACKET"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_UPDATING=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token UPDATING"); + var stream_p_StatementsAndOptionalExpr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_StatementsAndOptionalExpr"); + var stream_p_ParamList=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ParamList"); + var stream_pg_FQName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_FQName"); + var stream_p_SequenceType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SequenceType"); + try { + // xquery/XQueryParser.g:503:9: ( ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) ) + // xquery/XQueryParser.g:503:11: ({...}? =>k= UPDATING )? k= FUNCTION qn= pg_FQName LPAREN (pl= p_ParamList )? RPAREN (k= AS st= p_SequenceType )? ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) + // xquery/XQueryParser.g:503:11: ({...}? =>k= UPDATING )? + var alt38=2; + var LA38_0 = this.input.LA(1); + + if ( (LA38_0==UPDATING) && ((this.lc(XQU)))) { + alt38=1; + } + switch (alt38) { + case 1 : + // xquery/XQueryParser.g:503:12: {...}? =>k= UPDATING + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pm_FunctionDecl", "this.lc(XQU)"); + } + k=this.match(this.input,UPDATING,XQueryParser.FOLLOW_UPDATING_in_pm_FunctionDecl3042); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_UPDATING.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + k=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_pm_FunctionDecl3050); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_FUNCTION.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_pg_FQName_in_pm_FunctionDecl3056); + qn=this.pg_FQName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_FQName.add(qn.getTree()); + LPAREN76=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_pm_FunctionDecl3058); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN76); + + // xquery/XQueryParser.g:503:106: (pl= p_ParamList )? + var alt39=2; + var LA39_0 = this.input.LA(1); + + if ( (LA39_0==DOLLAR) ) { + alt39=1; + } + switch (alt39) { + case 1 : + // xquery/XQueryParser.g:503:106: pl= p_ParamList + this.pushFollow(XQueryParser.FOLLOW_p_ParamList_in_pm_FunctionDecl3062); + pl=this.p_ParamList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ParamList.add(pl.getTree()); + + + break; + + } + + RPAREN77=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_pm_FunctionDecl3065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN77); + + // xquery/XQueryParser.g:503:127: (k= AS st= p_SequenceType )? + var alt40=2; + var LA40_0 = this.input.LA(1); + + if ( (LA40_0==AS) ) { + alt40=1; + } + switch (alt40) { + case 1 : + // xquery/XQueryParser.g:503:128: k= AS st= p_SequenceType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_pm_FunctionDecl3070); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AS.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_pm_FunctionDecl3076); + st=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SequenceType.add(st.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:503:168: ( LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET | k= EXTERNAL ) + var alt41=2; + var LA41_0 = this.input.LA(1); + + if ( (LA41_0==LBRACKET) ) { + alt41=1; + } + else if ( (LA41_0==EXTERNAL) ) { + alt41=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 41, 0, this.input); + + throw nvae; + } + switch (alt41) { + case 1 : + // xquery/XQueryParser.g:503:169: LBRACKET soe= p_StatementsAndOptionalExpr RBRACKET + LBRACKET78=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_FunctionDecl3081); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LBRACKET.add(LBRACKET78); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_FunctionDecl3085); + soe=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_StatementsAndOptionalExpr.add(soe.getTree()); + RBRACKET79=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_FunctionDecl3087); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RBRACKET.add(RBRACKET79); + + + + break; + case 2 : + // xquery/XQueryParser.g:503:221: k= EXTERNAL + k=this.match(this.input,EXTERNAL,XQueryParser.FOLLOW_EXTERNAL_in_pm_FunctionDecl3093); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EXTERNAL.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + + + // AST REWRITE + // elements: qn, soe, st, pl + // token labels: + // rule labels: soe, qn, retval, pl, st + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_soe=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token soe",soe!=null?soe.tree:null); + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_pl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token pl",pl!=null?pl.tree:null); + var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null); + + root_0 = this.adaptor.nil(); + // 504:17: -> ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) + { + // xquery/XQueryParser.g:504:20: ^( FunctionDecl $qn ^( ParamList ( $pl)? ) ^( ReturnType ( $st)? ) ( $soe)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(FunctionDecl, "FunctionDecl"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:504:39: ^( ParamList ( $pl)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(ParamList, "ParamList"), root_2); + + // xquery/XQueryParser.g:504:51: ( $pl)? + if ( stream_pl.hasNext() ) { + this.adaptor.addChild(root_2, stream_pl.nextTree()); + + } + stream_pl.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:504:57: ^( ReturnType ( $st)? ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(ReturnType, "ReturnType"), root_2); + + // xquery/XQueryParser.g:504:70: ( $st)? + if ( stream_st.hasNext() ) { + this.adaptor.addChild(root_2, stream_st.nextTree()); + + } + stream_st.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:504:76: ( $soe)? + if ( stream_soe.hasNext() ) { + this.adaptor.addChild(root_1, stream_soe.nextTree()); + + } + stream_soe.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParamList_return: (function() { + XQueryParser.p_ParamList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParamList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:508:1: p_ParamList : p+= p_Param ( COMMA p+= p_Param )* -> ( $p)+ ; + // $ANTLR start "p_ParamList" + p_ParamList: function() { + var retval = new XQueryParser.p_ParamList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA80 = null; + var list_p=null; + var p = null; + var COMMA80_tree=null; + var stream_COMMA=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COMMA"); + var stream_p_Param=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Param"); + try { + // xquery/XQueryParser.g:509:9: (p+= p_Param ( COMMA p+= p_Param )* -> ( $p)+ ) + // xquery/XQueryParser.g:509:11: p+= p_Param ( COMMA p+= p_Param )* + this.pushFollow(XQueryParser.FOLLOW_p_Param_in_p_ParamList3170); + p=this.p_Param(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Param.add(p.getTree()); + if (org.antlr.lang.isNull(list_p)) list_p = []; + list_p.push(p.getTree()); + + // xquery/XQueryParser.g:509:22: ( COMMA p+= p_Param )* + loop42: + do { + var alt42=2; + var LA42_0 = this.input.LA(1); + + if ( (LA42_0==COMMA) ) { + alt42=1; + } + + + switch (alt42) { + case 1 : + // xquery/XQueryParser.g:509:23: COMMA p+= p_Param + COMMA80=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ParamList3173); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COMMA.add(COMMA80); + + this.pushFollow(XQueryParser.FOLLOW_p_Param_in_p_ParamList3177); + p=this.p_Param(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Param.add(p.getTree()); + if (org.antlr.lang.isNull(list_p)) list_p = []; + list_p.push(p.getTree()); + + + + break; + + default : + break loop42; + } + } while (true); + + + + // AST REWRITE + // elements: p + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: p + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_p=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token p",list_p); + root_0 = this.adaptor.nil(); + // 510:17: -> ( $p)+ + { + if ( !(stream_p.hasNext()) ) { + throw new org.antlr.runtime.tree.RewriteEarlyExitException(); + } + while ( stream_p.hasNext() ) { + this.adaptor.addChild(root_0, stream_p.nextTree()); + + } + stream_p.reset(); + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Param_return: (function() { + XQueryParser.p_Param_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Param_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:514:1: p_Param : d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? -> ^( Param $qn ( $td)? ) ; + // $ANTLR start "p_Param" + p_Param: function() { + var retval = new XQueryParser.p_Param_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var qn = null; + var td = null; + + var d_tree=null; + var stream_DOLLAR=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token DOLLAR"); + var stream_p_TypeDeclaration=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_TypeDeclaration"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:515:9: (d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? -> ^( Param $qn ( $td)? ) ) + // xquery/XQueryParser.g:515:11: d= DOLLAR qn= p_QName (td= p_TypeDeclaration )? + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_Param3237); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_DOLLAR.add(d); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_Param3241); + qn=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(qn.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (qn?qn.stop:null)); + } + // xquery/XQueryParser.g:515:60: (td= p_TypeDeclaration )? + var alt43=2; + var LA43_0 = this.input.LA(1); + + if ( (LA43_0==AS) ) { + alt43=1; + } + switch (alt43) { + case 1 : + // xquery/XQueryParser.g:515:60: td= p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_Param3247); + td=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_TypeDeclaration.add(td.getTree()); + + + break; + + } + + + + // AST REWRITE + // elements: qn, td + // token labels: + // rule labels: qn, retval, td + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_qn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token qn",qn!=null?qn.tree:null); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_td=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token td",td!=null?td.tree:null); + + root_0 = this.adaptor.nil(); + // 516:17: -> ^( Param $qn ( $td)? ) + { + // xquery/XQueryParser.g:516:20: ^( Param $qn ( $td)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(Param, "Param"), root_1); + + this.adaptor.addChild(root_1, stream_qn.nextTree()); + // xquery/XQueryParser.g:516:32: ( $td)? + if ( stream_td.hasNext() ) { + this.adaptor.addChild(root_1, stream_td.nextTree()); + + } + stream_td.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FunctionBody_return: (function() { + XQueryParser.pm_FunctionBody_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FunctionBody_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:520:1: pm_FunctionBody : p_EnclosedExpr ; + // $ANTLR start "pm_FunctionBody" + pm_FunctionBody: function() { + var retval = new XQueryParser.pm_FunctionBody_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_EnclosedExpr81 = null; + + + try { + // xquery/XQueryParser.g:521:9: ( p_EnclosedExpr ) + // xquery/XQueryParser.g:521:11: p_EnclosedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_EnclosedExpr_in_pm_FunctionBody3303); + p_EnclosedExpr81=this.p_EnclosedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_EnclosedExpr81.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_EnclosedExpr_return: (function() { + XQueryParser.p_EnclosedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_EnclosedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:526:1: p_EnclosedExpr : LBRACKET p_Expr[true,true] RBRACKET -> ^( EnclosedExpr p_Expr ) ; + // $ANTLR start "p_EnclosedExpr" + p_EnclosedExpr: function() { + var retval = new XQueryParser.p_EnclosedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET82 = null; + var RBRACKET84 = null; + var p_Expr83 = null; + + var LBRACKET82_tree=null; + var RBRACKET84_tree=null; + var stream_LBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LBRACKET"); + var stream_RBRACKET=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RBRACKET"); + var stream_p_Expr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_Expr"); + try { + // xquery/XQueryParser.g:527:9: ( LBRACKET p_Expr[true,true] RBRACKET -> ^( EnclosedExpr p_Expr ) ) + // xquery/XQueryParser.g:527:11: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET82=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_EnclosedExpr3330); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LBRACKET.add(LBRACKET82); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_EnclosedExpr3332); + p_Expr83=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_Expr.add(p_Expr83.getTree()); + RBRACKET84=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_EnclosedExpr3335); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RBRACKET.add(RBRACKET84); + + + + // AST REWRITE + // elements: p_Expr + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 528:17: -> ^( EnclosedExpr p_Expr ) + { + // xquery/XQueryParser.g:528:20: ^( EnclosedExpr p_Expr ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(EnclosedExpr, "EnclosedExpr"), root_1); + + this.adaptor.addChild(root_1, stream_p_Expr.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_OptionDecl_return: (function() { + XQueryParser.pm_OptionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_OptionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:532:1: pm_OptionDecl : k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON ; + // $ANTLR start "pm_OptionDecl" + pm_OptionDecl: function() { + var retval = new XQueryParser.pm_OptionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON87 = null; + var p_QName85 = null; + var p_StringLiteral86 = null; + + var k_tree=null; + var SEMICOLON87_tree=null; + + try { + // xquery/XQueryParser.g:533:9: (k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON ) + // xquery/XQueryParser.g:533:11: k= DECLARE k= OPTION p_QName p_StringLiteral SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_OptionDecl3387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,OPTION,XQueryParser.FOLLOW_OPTION_in_pm_OptionDecl3393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_OptionDecl3397); + p_QName85=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName85.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_pm_OptionDecl3399); + p_StringLiteral86=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral86.getTree()); + SEMICOLON87=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_OptionDecl3401); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON87_tree = this.adaptor.create(SEMICOLON87); + this.adaptor.addChild(root_0, SEMICOLON87_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_QueryBody_return: (function() { + XQueryParser.pm_QueryBody_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_QueryBody_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:537:1: pm_QueryBody : ({...}? => p_Program | p_Expr[true,true] ); + // $ANTLR start "pm_QueryBody" + pm_QueryBody: function() { + var retval = new XQueryParser.pm_QueryBody_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Program88 = null; + var p_Expr89 = null; + + + try { + // xquery/XQueryParser.g:538:9: ({...}? => p_Program | p_Expr[true,true] ) + var alt44=2; + alt44 = this.dfa44.predict(this.input); + switch (alt44) { + case 1 : + // xquery/XQueryParser.g:538:11: {...}? => p_Program + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "pm_QueryBody", "this.lc(XQS)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_Program_in_pm_QueryBody3430); + p_Program88=this.p_Program(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Program88.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:539:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_QueryBody3442); + p_Expr89=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr89.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Expr_return: (function() { + XQueryParser.p_Expr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Expr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:549:1: p_Expr[strict, allowConcat] : es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* ; + // $ANTLR start "p_Expr" + p_Expr: function(strict, allowConcat) { + var retval = new XQueryParser.p_Expr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA90 = null; + var es = null; + var p_ExprSingle91 = null; + + var COMMA90_tree=null; + + try { + // xquery/XQueryParser.g:550:9: (es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* ) + // xquery/XQueryParser.g:550:11: es= p_ExprSingle[$strict] ( COMMA p_ExprSingle[$strict] )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Expr3478); + es=this.p_ExprSingle(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, es.getTree()); + if ( this.state.backtracking===0 ) { + if (!allowConcat) throw new Exception(); + } + // xquery/XQueryParser.g:551:11: ( COMMA p_ExprSingle[$strict] )* + loop45: + do { + var alt45=2; + var LA45_0 = this.input.LA(1); + + if ( (LA45_0==COMMA) ) { + alt45=1; + } + + + switch (alt45) { + case 1 : + // xquery/XQueryParser.g:551:12: COMMA p_ExprSingle[$strict] + COMMA90=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_Expr3494); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA90_tree = this.adaptor.create(COMMA90); + this.adaptor.addChild(root_0, COMMA90_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Expr3496); + p_ExprSingle91=this.p_ExprSingle(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle91.getTree()); + + + break; + + default : + break loop45; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (e) { + + if(e instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch1"); + reportError(e); + recover(this.input, e); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), e); + } else if(e instanceof Exception) { + //console.log("catch2"); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, es.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw e; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_ExprSingle_return: (function() { + XQueryParser.p_ExprSingle_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExprSingle_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:573:1: p_ExprSingle[strict] : ( ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple ); + // $ANTLR start "p_ExprSingle" + p_ExprSingle: function(strict) { + var retval = new XQueryParser.p_ExprSingle_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FLWORHybrid92 = null; + var p_IfHybrid93 = null; + var p_SwitchHybrid94 = null; + var p_TypeswitchHybrid95 = null; + var p_TryCatchHybrid96 = null; + var p_ExprSimple97 = null; + + + try { + // xquery/XQueryParser.g:574:9: ( ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple ) + var alt46=6; + alt46 = this.dfa46.predict(this.input); + switch (alt46) { + case 1 : + // xquery/XQueryParser.g:574:11: ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) )=> p_FLWORHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FLWORHybrid_in_p_ExprSingle3563); + p_FLWORHybrid92=this.p_FLWORHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FLWORHybrid92.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:575:11: ( IF LPAREN )=> p_IfHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IfHybrid_in_p_ExprSingle3593); + p_IfHybrid93=this.p_IfHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IfHybrid93.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:576:11: ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SwitchHybrid_in_p_ExprSingle3619); + p_SwitchHybrid94=this.p_SwitchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchHybrid94.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:577:11: ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TypeswitchHybrid_in_p_ExprSingle3641); + p_TypeswitchHybrid95=this.p_TypeswitchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeswitchHybrid95.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:578:11: ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TryCatchHybrid_in_p_ExprSingle3668); + p_TryCatchHybrid96=this.p_TryCatchHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryCatchHybrid96.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:579:11: p_ExprSimple + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSimple_in_p_ExprSingle3681); + p_ExprSimple97=this.p_ExprSimple(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSimple97.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FLWORHybrid_return: (function() { + XQueryParser.p_FLWORHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FLWORHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:583:1: p_FLWORHybrid[strict] : p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] ; + // $ANTLR start "p_FLWORHybrid" + p_FLWORHybrid: function(strict) { + var retval = new XQueryParser.p_FLWORHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause98 = null; + var p_IntermediateClause99 = null; + var p_ReturnHybrid100 = null; + + + try { + // xquery/XQueryParser.g:584:9: ( p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] ) + // xquery/XQueryParser.g:584:11: p_InitialClause ( p_IntermediateClause )* p_ReturnHybrid[$strict] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_FLWORHybrid3708); + p_InitialClause98=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause98.getTree()); + // xquery/XQueryParser.g:584:27: ( p_IntermediateClause )* + loop47: + do { + var alt47=2; + var LA47_0 = this.input.LA(1); + + if ( (LA47_0==FOR||LA47_0==LET||LA47_0==ORDER||LA47_0==STABLE||LA47_0==WHERE||LA47_0==COUNT||LA47_0==GROUP) ) { + alt47=1; + } + + + switch (alt47) { + case 1 : + // xquery/XQueryParser.g:584:27: p_IntermediateClause + this.pushFollow(XQueryParser.FOLLOW_p_IntermediateClause_in_p_FLWORHybrid3710); + p_IntermediateClause99=this.p_IntermediateClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntermediateClause99.getTree()); + + + break; + + default : + break loop47; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ReturnHybrid_in_p_FLWORHybrid3713); + p_ReturnHybrid100=this.p_ReturnHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReturnHybrid100.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InitialClause_return: (function() { + XQueryParser.p_InitialClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InitialClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:588:1: p_InitialClause : ( p_ForClause | p_LetClause | p_WindowClause ); + // $ANTLR start "p_InitialClause" + p_InitialClause: function() { + var retval = new XQueryParser.p_InitialClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ForClause101 = null; + var p_LetClause102 = null; + var p_WindowClause103 = null; + + + try { + // xquery/XQueryParser.g:589:9: ( p_ForClause | p_LetClause | p_WindowClause ) + var alt48=3; + var LA48_0 = this.input.LA(1); + + if ( (LA48_0==FOR) ) { + var LA48_1 = this.input.LA(2); + + if ( (LA48_1==DOLLAR) ) { + alt48=1; + } + else if ( (LA48_1==SLIDING||LA48_1==TUMBLING) ) { + alt48=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 48, 1, this.input); + + throw nvae; + } + } + else if ( (LA48_0==LET) ) { + alt48=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 48, 0, this.input); + + throw nvae; + } + switch (alt48) { + case 1 : + // xquery/XQueryParser.g:589:11: p_ForClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ForClause_in_p_InitialClause3740); + p_ForClause101=this.p_ForClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForClause101.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:589:25: p_LetClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_LetClause_in_p_InitialClause3744); + p_LetClause102=this.p_LetClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetClause102.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:589:39: p_WindowClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WindowClause_in_p_InitialClause3748); + p_WindowClause103=this.p_WindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowClause103.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IntermediateClause_return: (function() { + XQueryParser.p_IntermediateClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IntermediateClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:593:1: p_IntermediateClause : ( p_InitialClause | p_WhereClause | p_GroupByClause | p_OrderByClause | p_CountClause ); + // $ANTLR start "p_IntermediateClause" + p_IntermediateClause: function() { + var retval = new XQueryParser.p_IntermediateClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause104 = null; + var p_WhereClause105 = null; + var p_GroupByClause106 = null; + var p_OrderByClause107 = null; + var p_CountClause108 = null; + + + try { + // xquery/XQueryParser.g:594:9: ( p_InitialClause | p_WhereClause | p_GroupByClause | p_OrderByClause | p_CountClause ) + var alt49=5; + switch ( this.input.LA(1) ) { + case FOR: + case LET: + alt49=1; + break; + case WHERE: + alt49=2; + break; + case GROUP: + alt49=3; + break; + case ORDER: + case STABLE: + alt49=4; + break; + case COUNT: + alt49=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 49, 0, this.input); + + throw nvae; + } + + switch (alt49) { + case 1 : + // xquery/XQueryParser.g:594:11: p_InitialClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_IntermediateClause3774); + p_InitialClause104=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause104.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:594:29: p_WhereClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WhereClause_in_p_IntermediateClause3778); + p_WhereClause105=this.p_WhereClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WhereClause105.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:594:45: p_GroupByClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_GroupByClause_in_p_IntermediateClause3782); + p_GroupByClause106=this.p_GroupByClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupByClause106.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:594:63: p_OrderByClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderByClause_in_p_IntermediateClause3786); + p_OrderByClause107=this.p_OrderByClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderByClause107.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:594:81: p_CountClause + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CountClause_in_p_IntermediateClause3790); + p_CountClause108=this.p_CountClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CountClause108.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StringConcatExpr_return: (function() { + XQueryParser.p_StringConcatExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StringConcatExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:598:1: p_StringConcatExpr : p_RangeExpr (o= CONCAT p_RangeExpr )* ; + // $ANTLR start "p_StringConcatExpr" + p_StringConcatExpr: function() { + var retval = new XQueryParser.p_StringConcatExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_RangeExpr109 = null; + var p_RangeExpr110 = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:599:4: ( p_RangeExpr (o= CONCAT p_RangeExpr )* ) + // xquery/XQueryParser.g:599:6: p_RangeExpr (o= CONCAT p_RangeExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RangeExpr_in_p_StringConcatExpr3811); + p_RangeExpr109=this.p_RangeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RangeExpr109.getTree()); + // xquery/XQueryParser.g:599:18: (o= CONCAT p_RangeExpr )* + loop50: + do { + var alt50=2; + var LA50_0 = this.input.LA(1); + + if ( (LA50_0==CONCAT) ) { + alt50=1; + } + + + switch (alt50) { + case 1 : + // xquery/XQueryParser.g:599:20: o= CONCAT p_RangeExpr + o=this.match(this.input,CONCAT,XQueryParser.FOLLOW_CONCAT_in_p_StringConcatExpr3817); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + this.pushFollow(XQueryParser.FOLLOW_p_RangeExpr_in_p_StringConcatExpr3821); + p_RangeExpr110=this.p_RangeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RangeExpr110.getTree()); + + + break; + + default : + break loop50; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForClause_return: (function() { + XQueryParser.p_ForClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:604:1: p_ForClause : k= FOR p_ForBinding ( COMMA p_ForBinding )* ; + // $ANTLR start "p_ForClause" + p_ForClause: function() { + var retval = new XQueryParser.p_ForClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA112 = null; + var p_ForBinding111 = null; + var p_ForBinding113 = null; + + var k_tree=null; + var COMMA112_tree=null; + + try { + // xquery/XQueryParser.g:605:9: (k= FOR p_ForBinding ( COMMA p_ForBinding )* ) + // xquery/XQueryParser.g:605:11: k= FOR p_ForBinding ( COMMA p_ForBinding )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_p_ForClause3848); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ForBinding_in_p_ForClause3852); + p_ForBinding111=this.p_ForBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForBinding111.getTree()); + // xquery/XQueryParser.g:605:45: ( COMMA p_ForBinding )* + loop51: + do { + var alt51=2; + var LA51_0 = this.input.LA(1); + + if ( (LA51_0==COMMA) ) { + alt51=1; + } + + + switch (alt51) { + case 1 : + // xquery/XQueryParser.g:605:46: COMMA p_ForBinding + COMMA112=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ForClause3855); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA112_tree = this.adaptor.create(COMMA112); + this.adaptor.addChild(root_0, COMMA112_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ForBinding_in_p_ForClause3857); + p_ForBinding113=this.p_ForBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForBinding113.getTree()); + + + break; + + default : + break loop51; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForBinding_return: (function() { + XQueryParser.p_ForBinding_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForBinding_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:609:1: p_ForBinding : s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] ; + // $ANTLR start "p_ForBinding" + p_ForBinding: function() { + var retval = new XQueryParser.p_ForBinding_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var k = null; + var v = null; + var p_TypeDeclaration114 = null; + var p_AllowingEmpty115 = null; + var p_PositionalVar116 = null; + var p_FTScoreVar117 = null; + var p_ExprSingle118 = null; + + var s_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:610:9: (s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] ) + // xquery/XQueryParser.g:610:11: s= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( p_AllowingEmpty )? ( p_PositionalVar )? ( p_FTScoreVar )? k= IN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + s=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ForBinding3887); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_ForBinding3891); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(s, (v?v.stop:null)); + } + // xquery/XQueryParser.g:610:58: ( p_TypeDeclaration )? + var alt52=2; + var LA52_0 = this.input.LA(1); + + if ( (LA52_0==AS) ) { + alt52=1; + } + switch (alt52) { + case 1 : + // xquery/XQueryParser.g:610:58: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_ForBinding3895); + p_TypeDeclaration114=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration114.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:77: ( p_AllowingEmpty )? + var alt53=2; + var LA53_0 = this.input.LA(1); + + if ( (LA53_0==ALLOWING) ) { + alt53=1; + } + switch (alt53) { + case 1 : + // xquery/XQueryParser.g:610:77: p_AllowingEmpty + this.pushFollow(XQueryParser.FOLLOW_p_AllowingEmpty_in_p_ForBinding3898); + p_AllowingEmpty115=this.p_AllowingEmpty(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AllowingEmpty115.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:94: ( p_PositionalVar )? + var alt54=2; + var LA54_0 = this.input.LA(1); + + if ( (LA54_0==AT) ) { + alt54=1; + } + switch (alt54) { + case 1 : + // xquery/XQueryParser.g:610:94: p_PositionalVar + this.pushFollow(XQueryParser.FOLLOW_p_PositionalVar_in_p_ForBinding3901); + p_PositionalVar116=this.p_PositionalVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PositionalVar116.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:610:111: ( p_FTScoreVar )? + var alt55=2; + var LA55_0 = this.input.LA(1); + + if ( (LA55_0==SCORE) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // xquery/XQueryParser.g:610:111: p_FTScoreVar + this.pushFollow(XQueryParser.FOLLOW_p_FTScoreVar_in_p_ForBinding3904); + p_FTScoreVar117=this.p_FTScoreVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScoreVar117.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_ForBinding3909); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ForBinding3913); + p_ExprSingle118=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle118.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AllowingEmpty_return: (function() { + XQueryParser.p_AllowingEmpty_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AllowingEmpty_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:614:1: p_AllowingEmpty : k= ALLOWING k= EMPTY ; + // $ANTLR start "p_AllowingEmpty" + p_AllowingEmpty: function() { + var retval = new XQueryParser.p_AllowingEmpty_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:615:9: (k= ALLOWING k= EMPTY ) + // xquery/XQueryParser.g:615:11: k= ALLOWING k= EMPTY + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ALLOWING,XQueryParser.FOLLOW_ALLOWING_in_p_AllowingEmpty3942); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_p_AllowingEmpty3948); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PositionalVar_return: (function() { + XQueryParser.p_PositionalVar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PositionalVar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:619:1: p_PositionalVar : k= AT d= DOLLAR v= p_VarName ; + // $ANTLR start "p_PositionalVar" + p_PositionalVar: function() { + var retval = new XQueryParser.p_PositionalVar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:620:9: (k= AT d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:620:11: k= AT d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_PositionalVar3978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_PositionalVar3984); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_PositionalVar3988); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LetClause_return: (function() { + XQueryParser.p_LetClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LetClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:624:1: p_LetClause : k= LET p_LetBinding ( COMMA p_LetBinding )* ; + // $ANTLR start "p_LetClause" + p_LetClause: function() { + var retval = new XQueryParser.p_LetClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA120 = null; + var p_LetBinding119 = null; + var p_LetBinding121 = null; + + var k_tree=null; + var COMMA120_tree=null; + + try { + // xquery/XQueryParser.g:625:9: (k= LET p_LetBinding ( COMMA p_LetBinding )* ) + // xquery/XQueryParser.g:625:11: k= LET p_LetBinding ( COMMA p_LetBinding )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,LET,XQueryParser.FOLLOW_LET_in_p_LetClause4018); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_LetBinding_in_p_LetClause4022); + p_LetBinding119=this.p_LetBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetBinding119.getTree()); + // xquery/XQueryParser.g:625:45: ( COMMA p_LetBinding )* + loop56: + do { + var alt56=2; + var LA56_0 = this.input.LA(1); + + if ( (LA56_0==COMMA) ) { + alt56=1; + } + + + switch (alt56) { + case 1 : + // xquery/XQueryParser.g:625:46: COMMA p_LetBinding + COMMA120=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_LetClause4025); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA120_tree = this.adaptor.create(COMMA120); + this.adaptor.addChild(root_0, COMMA120_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_LetBinding_in_p_LetClause4027); + p_LetBinding121=this.p_LetBinding(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_LetBinding121.getTree()); + + + break; + + default : + break loop56; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_LetBinding_return: (function() { + XQueryParser.p_LetBinding_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_LetBinding_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:630:1: p_LetBinding : ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] ; + // $ANTLR start "p_LetBinding" + p_LetBinding: function() { + var retval = new XQueryParser.p_LetBinding_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var BIND124 = null; + var v = null; + var p_TypeDeclaration122 = null; + var p_FTScoreVar123 = null; + var p_ExprSingle125 = null; + + var d_tree=null; + var BIND124_tree=null; + + try { + // xquery/XQueryParser.g:631:9: ( ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] ) + // xquery/XQueryParser.g:631:11: ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) BIND p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:631:11: ( (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) | p_FTScoreVar ) + var alt58=2; + var LA58_0 = this.input.LA(1); + + if ( (LA58_0==DOLLAR) ) { + alt58=1; + } + else if ( (LA58_0==SCORE) ) { + alt58=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 58, 0, this.input); + + throw nvae; + } + switch (alt58) { + case 1 : + // xquery/XQueryParser.g:631:13: (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) + // xquery/XQueryParser.g:631:13: (d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ) + // xquery/XQueryParser.g:631:14: d= DOLLAR v= p_VarName ( p_TypeDeclaration )? + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_LetBinding4061); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_LetBinding4065); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:631:59: ( p_TypeDeclaration )? + var alt57=2; + var LA57_0 = this.input.LA(1); + + if ( (LA57_0==AS) ) { + alt57=1; + } + switch (alt57) { + case 1 : + // xquery/XQueryParser.g:631:59: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_LetBinding4069); + p_TypeDeclaration122=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration122.getTree()); + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:631:81: p_FTScoreVar + this.pushFollow(XQueryParser.FOLLOW_p_FTScoreVar_in_p_LetBinding4075); + p_FTScoreVar123=this.p_FTScoreVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScoreVar123.getTree()); + + + break; + + } + + BIND124=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_LetBinding4079); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND124_tree = this.adaptor.create(BIND124); + this.adaptor.addChild(root_0, BIND124_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_LetBinding4081); + p_ExprSingle125=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle125.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowClause_return: (function() { + XQueryParser.p_WindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:635:1: p_WindowClause : k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) ; + // $ANTLR start "p_WindowClause" + p_WindowClause: function() { + var retval = new XQueryParser.p_WindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_TumblingWindowClause126 = null; + var p_SlidingWindowClause127 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:636:9: (k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) ) + // xquery/XQueryParser.g:636:11: k= FOR ( p_TumblingWindowClause | p_SlidingWindowClause ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_p_WindowClause4110); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:636:32: ( p_TumblingWindowClause | p_SlidingWindowClause ) + var alt59=2; + var LA59_0 = this.input.LA(1); + + if ( (LA59_0==TUMBLING) ) { + alt59=1; + } + else if ( (LA59_0==SLIDING) ) { + alt59=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 59, 0, this.input); + + throw nvae; + } + switch (alt59) { + case 1 : + // xquery/XQueryParser.g:636:33: p_TumblingWindowClause + this.pushFollow(XQueryParser.FOLLOW_p_TumblingWindowClause_in_p_WindowClause4115); + p_TumblingWindowClause126=this.p_TumblingWindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TumblingWindowClause126.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:636:58: p_SlidingWindowClause + this.pushFollow(XQueryParser.FOLLOW_p_SlidingWindowClause_in_p_WindowClause4119); + p_SlidingWindowClause127=this.p_SlidingWindowClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SlidingWindowClause127.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TumblingWindowClause_return: (function() { + XQueryParser.p_TumblingWindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TumblingWindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:640:1: p_TumblingWindowClause : k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ; + // $ANTLR start "p_TumblingWindowClause" + p_TumblingWindowClause: function() { + var retval = new XQueryParser.p_TumblingWindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_TypeDeclaration128 = null; + var p_ExprSingle129 = null; + var p_WindowStartCondition130 = null; + var p_WindowEndCondition131 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:641:9: (k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ) + // xquery/XQueryParser.g:641:11: k= TUMBLING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TUMBLING,XQueryParser.FOLLOW_TUMBLING_in_p_TumblingWindowClause4156); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_TumblingWindowClause4162); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TumblingWindowClause4168); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TumblingWindowClause4172); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:641:106: ( p_TypeDeclaration )? + var alt60=2; + var LA60_0 = this.input.LA(1); + + if ( (LA60_0==AS) ) { + alt60=1; + } + switch (alt60) { + case 1 : + // xquery/XQueryParser.g:641:106: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_TumblingWindowClause4176); + p_TypeDeclaration128=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration128.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_TumblingWindowClause4181); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TumblingWindowClause4185); + p_ExprSingle129=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle129.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_WindowStartCondition_in_p_TumblingWindowClause4188); + p_WindowStartCondition130=this.p_WindowStartCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowStartCondition130.getTree()); + // xquery/XQueryParser.g:641:187: ( p_WindowEndCondition )? + var alt61=2; + var LA61_0 = this.input.LA(1); + + if ( (LA61_0==END||LA61_0==ONLY) ) { + alt61=1; + } + switch (alt61) { + case 1 : + // xquery/XQueryParser.g:641:187: p_WindowEndCondition + this.pushFollow(XQueryParser.FOLLOW_p_WindowEndCondition_in_p_TumblingWindowClause4190); + p_WindowEndCondition131=this.p_WindowEndCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowEndCondition131.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SlidingWindowClause_return: (function() { + XQueryParser.p_SlidingWindowClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SlidingWindowClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:645:1: p_SlidingWindowClause : k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ; + // $ANTLR start "p_SlidingWindowClause" + p_SlidingWindowClause: function() { + var retval = new XQueryParser.p_SlidingWindowClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_TypeDeclaration132 = null; + var p_ExprSingle133 = null; + var p_WindowStartCondition134 = null; + var p_WindowEndCondition135 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:646:9: (k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? ) + // xquery/XQueryParser.g:646:11: k= SLIDING k= WINDOW d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] p_WindowStartCondition ( p_WindowEndCondition )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SLIDING,XQueryParser.FOLLOW_SLIDING_in_p_SlidingWindowClause4219); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_SlidingWindowClause4225); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_SlidingWindowClause4231); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_SlidingWindowClause4235); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:646:107: ( p_TypeDeclaration )? + var alt62=2; + var LA62_0 = this.input.LA(1); + + if ( (LA62_0==AS) ) { + alt62=1; + } + switch (alt62) { + case 1 : + // xquery/XQueryParser.g:646:107: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_SlidingWindowClause4239); + p_TypeDeclaration132=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration132.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_SlidingWindowClause4244); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SlidingWindowClause4248); + p_ExprSingle133=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle133.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_WindowStartCondition_in_p_SlidingWindowClause4251); + p_WindowStartCondition134=this.p_WindowStartCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowStartCondition134.getTree()); + // xquery/XQueryParser.g:646:188: ( p_WindowEndCondition )? + var alt63=2; + var LA63_0 = this.input.LA(1); + + if ( (LA63_0==END||LA63_0==ONLY) ) { + alt63=1; + } + switch (alt63) { + case 1 : + // xquery/XQueryParser.g:646:188: p_WindowEndCondition + this.pushFollow(XQueryParser.FOLLOW_p_WindowEndCondition_in_p_SlidingWindowClause4253); + p_WindowEndCondition135=this.p_WindowEndCondition(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowEndCondition135.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowStartCondition_return: (function() { + XQueryParser.p_WindowStartCondition_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowStartCondition_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:650:1: p_WindowStartCondition : k= START p_WindowVars k= WHEN p_ExprSingle[true] ; + // $ANTLR start "p_WindowStartCondition" + p_WindowStartCondition: function() { + var retval = new XQueryParser.p_WindowStartCondition_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_WindowVars136 = null; + var p_ExprSingle137 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:651:9: (k= START p_WindowVars k= WHEN p_ExprSingle[true] ) + // xquery/XQueryParser.g:651:11: k= START p_WindowVars k= WHEN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,START,XQueryParser.FOLLOW_START_in_p_WindowStartCondition4282); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_WindowVars_in_p_WindowStartCondition4286); + p_WindowVars136=this.p_WindowVars(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowVars136.getTree()); + k=this.match(this.input,WHEN,XQueryParser.FOLLOW_WHEN_in_p_WindowStartCondition4290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WindowStartCondition4294); + p_ExprSingle137=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle137.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowEndCondition_return: (function() { + XQueryParser.p_WindowEndCondition_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowEndCondition_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:655:1: p_WindowEndCondition : (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] ; + // $ANTLR start "p_WindowEndCondition" + p_WindowEndCondition: function() { + var retval = new XQueryParser.p_WindowEndCondition_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_WindowVars138 = null; + var p_ExprSingle139 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:656:9: ( (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] ) + // xquery/XQueryParser.g:656:11: (k= ONLY )? k= END p_WindowVars k= WHEN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:656:11: (k= ONLY )? + var alt64=2; + var LA64_0 = this.input.LA(1); + + if ( (LA64_0==ONLY) ) { + alt64=1; + } + switch (alt64) { + case 1 : + // xquery/XQueryParser.g:656:12: k= ONLY + k=this.match(this.input,ONLY,XQueryParser.FOLLOW_ONLY_in_p_WindowEndCondition4324); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + k=this.match(this.input,END,XQueryParser.FOLLOW_END_in_p_WindowEndCondition4332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_WindowVars_in_p_WindowEndCondition4336); + p_WindowVars138=this.p_WindowVars(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WindowVars138.getTree()); + k=this.match(this.input,WHEN,XQueryParser.FOLLOW_WHEN_in_p_WindowEndCondition4340); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WindowEndCondition4344); + p_ExprSingle139=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle139.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WindowVars_return: (function() { + XQueryParser.p_WindowVars_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WindowVars_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:660:1: p_WindowVars : (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? ; + // $ANTLR start "p_WindowVars" + p_WindowVars: function() { + var retval = new XQueryParser.p_WindowVars_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var DOLLAR141 = null; + var DOLLAR143 = null; + var v = null; + var p_PositionalVar140 = null; + var p_PreviousItem142 = null; + var p_NextItem144 = null; + + var d_tree=null; + var k_tree=null; + var DOLLAR141_tree=null; + var DOLLAR143_tree=null; + + try { + // xquery/XQueryParser.g:661:9: ( (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? ) + // xquery/XQueryParser.g:661:11: (d= DOLLAR v= p_CurrentItem )? ( p_PositionalVar )? (k= PREVIOUS DOLLAR p_PreviousItem )? (k= NEXT DOLLAR p_NextItem )? + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:661:11: (d= DOLLAR v= p_CurrentItem )? + var alt65=2; + var LA65_0 = this.input.LA(1); + + if ( (LA65_0==DOLLAR) ) { + alt65=1; + } + switch (alt65) { + case 1 : + // xquery/XQueryParser.g:661:12: d= DOLLAR v= p_CurrentItem + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_CurrentItem_in_p_WindowVars4378); + v=this.p_CurrentItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + // xquery/XQueryParser.g:661:65: ( p_PositionalVar )? + var alt66=2; + var LA66_0 = this.input.LA(1); + + if ( (LA66_0==AT) ) { + alt66=1; + } + switch (alt66) { + case 1 : + // xquery/XQueryParser.g:661:65: p_PositionalVar + this.pushFollow(XQueryParser.FOLLOW_p_PositionalVar_in_p_WindowVars4384); + p_PositionalVar140=this.p_PositionalVar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PositionalVar140.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:661:82: (k= PREVIOUS DOLLAR p_PreviousItem )? + var alt67=2; + var LA67_0 = this.input.LA(1); + + if ( (LA67_0==PREVIOUS) ) { + alt67=1; + } + switch (alt67) { + case 1 : + // xquery/XQueryParser.g:661:83: k= PREVIOUS DOLLAR p_PreviousItem + k=this.match(this.input,PREVIOUS,XQueryParser.FOLLOW_PREVIOUS_in_p_WindowVars4390); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + DOLLAR141=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4394); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOLLAR141_tree = this.adaptor.create(DOLLAR141); + this.adaptor.addChild(root_0, DOLLAR141_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_PreviousItem_in_p_WindowVars4396); + p_PreviousItem142=this.p_PreviousItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PreviousItem142.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:661:133: (k= NEXT DOLLAR p_NextItem )? + var alt68=2; + var LA68_0 = this.input.LA(1); + + if ( (LA68_0==NEXT) ) { + alt68=1; + } + switch (alt68) { + case 1 : + // xquery/XQueryParser.g:661:134: k= NEXT DOLLAR p_NextItem + k=this.match(this.input,NEXT,XQueryParser.FOLLOW_NEXT_in_p_WindowVars4403); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + DOLLAR143=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_WindowVars4407); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOLLAR143_tree = this.adaptor.create(DOLLAR143); + this.adaptor.addChild(root_0, DOLLAR143_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NextItem_in_p_WindowVars4409); + p_NextItem144=this.p_NextItem(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NextItem144.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CurrentItem_return: (function() { + XQueryParser.p_CurrentItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CurrentItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:665:1: p_CurrentItem : p_QName ; + // $ANTLR start "p_CurrentItem" + p_CurrentItem: function() { + var retval = new XQueryParser.p_CurrentItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName145 = null; + + + try { + // xquery/XQueryParser.g:666:9: ( p_QName ) + // xquery/XQueryParser.g:666:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_CurrentItem4437); + p_QName145=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName145.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PreviousItem_return: (function() { + XQueryParser.p_PreviousItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PreviousItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:670:1: p_PreviousItem : p_QName ; + // $ANTLR start "p_PreviousItem" + p_PreviousItem: function() { + var retval = new XQueryParser.p_PreviousItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName146 = null; + + + try { + // xquery/XQueryParser.g:671:9: ( p_QName ) + // xquery/XQueryParser.g:671:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_PreviousItem4463); + p_QName146=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName146.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NextItem_return: (function() { + XQueryParser.p_NextItem_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NextItem_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:675:1: p_NextItem : p_QName ; + // $ANTLR start "p_NextItem" + p_NextItem: function() { + var retval = new XQueryParser.p_NextItem_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName147 = null; + + + try { + // xquery/XQueryParser.g:676:9: ( p_QName ) + // xquery/XQueryParser.g:676:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NextItem4489); + p_QName147=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName147.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CountClause_return: (function() { + XQueryParser.p_CountClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CountClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:680:1: p_CountClause : k= COUNT d= DOLLAR v= p_VarName ; + // $ANTLR start "p_CountClause" + p_CountClause: function() { + var retval = new XQueryParser.p_CountClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:681:9: (k= COUNT d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:681:11: k= COUNT d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COUNT,XQueryParser.FOLLOW_COUNT_in_p_CountClause4517); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CountClause4523); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CountClause4527); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WhereClause_return: (function() { + XQueryParser.p_WhereClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WhereClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:685:1: p_WhereClause : k= WHERE p_ExprSingle[true] ; + // $ANTLR start "p_WhereClause" + p_WhereClause: function() { + var retval = new XQueryParser.p_WhereClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ExprSingle148 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:686:9: (k= WHERE p_ExprSingle[true] ) + // xquery/XQueryParser.g:686:11: k= WHERE p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WHERE,XQueryParser.FOLLOW_WHERE_in_p_WhereClause4565); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_WhereClause4569); + p_ExprSingle148=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle148.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupByClause_return: (function() { + XQueryParser.p_GroupByClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupByClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:690:1: p_GroupByClause : k= GROUP k= BY p_GroupingSpecList ; + // $ANTLR start "p_GroupByClause" + p_GroupByClause: function() { + var retval = new XQueryParser.p_GroupByClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_GroupingSpecList149 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:691:9: (k= GROUP k= BY p_GroupingSpecList ) + // xquery/XQueryParser.g:691:11: k= GROUP k= BY p_GroupingSpecList + root_0 = this.adaptor.nil(); + + k=this.match(this.input,GROUP,XQueryParser.FOLLOW_GROUP_in_p_GroupByClause4598); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_GroupByClause4604); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpecList_in_p_GroupByClause4608); + p_GroupingSpecList149=this.p_GroupingSpecList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpecList149.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupingSpecList_return: (function() { + XQueryParser.p_GroupingSpecList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupingSpecList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:695:1: p_GroupingSpecList : p_GroupingSpec ( COMMA p_GroupingSpec )* ; + // $ANTLR start "p_GroupingSpecList" + p_GroupingSpecList: function() { + var retval = new XQueryParser.p_GroupingSpecList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA151 = null; + var p_GroupingSpec150 = null; + var p_GroupingSpec152 = null; + + var COMMA151_tree=null; + + try { + // xquery/XQueryParser.g:696:9: ( p_GroupingSpec ( COMMA p_GroupingSpec )* ) + // xquery/XQueryParser.g:696:11: p_GroupingSpec ( COMMA p_GroupingSpec )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4634); + p_GroupingSpec150=this.p_GroupingSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpec150.getTree()); + // xquery/XQueryParser.g:696:26: ( COMMA p_GroupingSpec )* + loop69: + do { + var alt69=2; + var LA69_0 = this.input.LA(1); + + if ( (LA69_0==COMMA) ) { + alt69=1; + } + + + switch (alt69) { + case 1 : + // xquery/XQueryParser.g:696:27: COMMA p_GroupingSpec + COMMA151=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_GroupingSpecList4637); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA151_tree = this.adaptor.create(COMMA151); + this.adaptor.addChild(root_0, COMMA151_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4639); + p_GroupingSpec152=this.p_GroupingSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GroupingSpec152.getTree()); + + + break; + + default : + break loop69; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GroupingSpec_return: (function() { + XQueryParser.p_GroupingSpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GroupingSpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:700:1: p_GroupingSpec : d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? ; + // $ANTLR start "p_GroupingSpec" + p_GroupingSpec: function() { + var retval = new XQueryParser.p_GroupingSpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var v = null; + var p_StringLiteral153 = null; + + var d_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:701:9: (d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? ) + // xquery/XQueryParser.g:701:11: d= DOLLAR v= p_VarName (k= COLLATION p_StringLiteral )? + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_GroupingSpec4669); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_GroupingSpec4673); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:701:58: (k= COLLATION p_StringLiteral )? + var alt70=2; + var LA70_0 = this.input.LA(1); + + if ( (LA70_0==COLLATION) ) { + alt70=1; + } + switch (alt70) { + case 1 : + // xquery/XQueryParser.g:701:59: k= COLLATION p_StringLiteral + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_GroupingSpec4680); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_GroupingSpec4684); + p_StringLiteral153=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral153.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderByClause_return: (function() { + XQueryParser.p_OrderByClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderByClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:705:1: p_OrderByClause : ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList ; + // $ANTLR start "p_OrderByClause" + p_OrderByClause: function() { + var retval = new XQueryParser.p_OrderByClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_OrderSpecList154 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:706:9: ( ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList ) + // xquery/XQueryParser.g:706:11: ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) p_OrderSpecList + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:706:11: ( (k+= ORDER k+= BY ) | (k+= STABLE k+= ORDER k+= BY ) ) + var alt71=2; + var LA71_0 = this.input.LA(1); + + if ( (LA71_0==ORDER) ) { + alt71=1; + } + else if ( (LA71_0==STABLE) ) { + alt71=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 71, 0, this.input); + + throw nvae; + } + switch (alt71) { + case 1 : + // xquery/XQueryParser.g:706:12: (k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:12: (k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:13: k+= ORDER k+= BY + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_p_OrderByClause4716); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_OrderByClause4720); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:706:31: (k+= STABLE k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:31: (k+= STABLE k+= ORDER k+= BY ) + // xquery/XQueryParser.g:706:32: k+= STABLE k+= ORDER k+= BY + k=this.match(this.input,STABLE,XQueryParser.FOLLOW_STABLE_in_p_OrderByClause4728); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,ORDER,XQueryParser.FOLLOW_ORDER_in_p_OrderByClause4732); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_OrderByClause4736); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpecList_in_p_OrderByClause4742); + p_OrderSpecList154=this.p_OrderSpecList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpecList154.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderSpecList_return: (function() { + XQueryParser.p_OrderSpecList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderSpecList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:710:1: p_OrderSpecList : p_OrderSpec ( COMMA p_OrderSpec )* ; + // $ANTLR start "p_OrderSpecList" + p_OrderSpecList: function() { + var retval = new XQueryParser.p_OrderSpecList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMA156 = null; + var p_OrderSpec155 = null; + var p_OrderSpec157 = null; + + var COMMA156_tree=null; + + try { + // xquery/XQueryParser.g:711:9: ( p_OrderSpec ( COMMA p_OrderSpec )* ) + // xquery/XQueryParser.g:711:11: p_OrderSpec ( COMMA p_OrderSpec )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpec_in_p_OrderSpecList4768); + p_OrderSpec155=this.p_OrderSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpec155.getTree()); + // xquery/XQueryParser.g:711:23: ( COMMA p_OrderSpec )* + loop72: + do { + var alt72=2; + var LA72_0 = this.input.LA(1); + + if ( (LA72_0==COMMA) ) { + alt72=1; + } + + + switch (alt72) { + case 1 : + // xquery/XQueryParser.g:711:24: COMMA p_OrderSpec + COMMA156=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_OrderSpecList4771); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA156_tree = this.adaptor.create(COMMA156); + this.adaptor.addChild(root_0, COMMA156_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_OrderSpec_in_p_OrderSpecList4773); + p_OrderSpec157=this.p_OrderSpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderSpec157.getTree()); + + + break; + + default : + break loop72; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderSpec_return: (function() { + XQueryParser.p_OrderSpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderSpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:715:1: p_OrderSpec : p_ExprSingle[true] p_OrderModifier ; + // $ANTLR start "p_OrderSpec" + p_OrderSpec: function() { + var retval = new XQueryParser.p_OrderSpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle158 = null; + var p_OrderModifier159 = null; + + + try { + // xquery/XQueryParser.g:716:9: ( p_ExprSingle[true] p_OrderModifier ) + // xquery/XQueryParser.g:716:11: p_ExprSingle[true] p_OrderModifier + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_OrderSpec4801); + p_ExprSingle158=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle158.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_OrderModifier_in_p_OrderSpec4804); + p_OrderModifier159=this.p_OrderModifier(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderModifier159.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderModifier_return: (function() { + XQueryParser.p_OrderModifier_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderModifier_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:720:1: p_OrderModifier : (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? ; + // $ANTLR start "p_OrderModifier" + p_OrderModifier: function() { + var retval = new XQueryParser.p_OrderModifier_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringLiteral160 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:721:9: ( (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? ) + // xquery/XQueryParser.g:721:11: (k+= ASCENDING | k+= DESCENDING )? (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? (k+= COLLATION p_StringLiteral )? + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:721:11: (k+= ASCENDING | k+= DESCENDING )? + var alt73=3; + var LA73_0 = this.input.LA(1); + + if ( (LA73_0==ASCENDING) ) { + alt73=1; + } + else if ( (LA73_0==DESCENDING) ) { + alt73=2; + } + switch (alt73) { + case 1 : + // xquery/XQueryParser.g:721:12: k+= ASCENDING + k=this.match(this.input,ASCENDING,XQueryParser.FOLLOW_ASCENDING_in_p_OrderModifier4833); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:721:27: k+= DESCENDING + k=this.match(this.input,DESCENDING,XQueryParser.FOLLOW_DESCENDING_in_p_OrderModifier4839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + // xquery/XQueryParser.g:721:43: (k+= EMPTY (k+= GREATEST | k+= LEAST ) )? + var alt75=2; + var LA75_0 = this.input.LA(1); + + if ( (LA75_0==EMPTY) ) { + alt75=1; + } + switch (alt75) { + case 1 : + // xquery/XQueryParser.g:721:44: k+= EMPTY (k+= GREATEST | k+= LEAST ) + k=this.match(this.input,EMPTY,XQueryParser.FOLLOW_EMPTY_in_p_OrderModifier4846); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:721:53: (k+= GREATEST | k+= LEAST ) + var alt74=2; + var LA74_0 = this.input.LA(1); + + if ( (LA74_0==GREATEST) ) { + alt74=1; + } + else if ( (LA74_0==LEAST) ) { + alt74=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 74, 0, this.input); + + throw nvae; + } + switch (alt74) { + case 1 : + // xquery/XQueryParser.g:721:54: k+= GREATEST + k=this.match(this.input,GREATEST,XQueryParser.FOLLOW_GREATEST_in_p_OrderModifier4851); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:721:68: k+= LEAST + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_OrderModifier4857); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + break; + + } + + // xquery/XQueryParser.g:721:80: (k+= COLLATION p_StringLiteral )? + var alt76=2; + var LA76_0 = this.input.LA(1); + + if ( (LA76_0==COLLATION) ) { + alt76=1; + } + switch (alt76) { + case 1 : + // xquery/XQueryParser.g:721:81: k+= COLLATION p_StringLiteral + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_OrderModifier4865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_OrderModifier4867); + p_StringLiteral160=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral160.getTree()); + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReturnHybrid_return: (function() { + XQueryParser.p_ReturnHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReturnHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:725:1: p_ReturnHybrid[strict] : k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_ReturnHybrid" + p_ReturnHybrid: function(strict) { + var retval = new XQueryParser.p_ReturnHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_Hybrid161 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:726:9: (k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:726:11: k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_ReturnHybrid4900); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_ReturnHybrid4904); + p_Hybrid161=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid161.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuantifiedExpr_return: (function() { + XQueryParser.p_QuantifiedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuantifiedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:730:1: p_QuantifiedExpr : (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] ; + // $ANTLR start "p_QuantifiedExpr" + p_QuantifiedExpr: function() { + var retval = new XQueryParser.p_QuantifiedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var e = null; + var COMMA164 = null; + var v = null; + var w = null; + var p_TypeDeclaration162 = null; + var p_ExprSingle163 = null; + var p_TypeDeclaration165 = null; + var p_ExprSingle166 = null; + var p_ExprSingle167 = null; + + var k_tree=null; + var d_tree=null; + var e_tree=null; + var COMMA164_tree=null; + + try { + // xquery/XQueryParser.g:731:9: ( (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] ) + // xquery/XQueryParser.g:731:11: (k= SOME | k= EVERY ) d= DOLLAR v= p_VarName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* k= SATISFIES p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:731:11: (k= SOME | k= EVERY ) + var alt77=2; + var LA77_0 = this.input.LA(1); + + if ( (LA77_0==SOME) ) { + alt77=1; + } + else if ( (LA77_0==EVERY) ) { + alt77=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 77, 0, this.input); + + throw nvae; + } + switch (alt77) { + case 1 : + // xquery/XQueryParser.g:731:12: k= SOME + k=this.match(this.input,SOME,XQueryParser.FOLLOW_SOME_in_p_QuantifiedExpr4934); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:731:21: k= EVERY + k=this.match(this.input,EVERY,XQueryParser.FOLLOW_EVERY_in_p_QuantifiedExpr4940); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_QuantifiedExpr4947); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_QuantifiedExpr4951); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:731:92: ( p_TypeDeclaration )? + var alt78=2; + var LA78_0 = this.input.LA(1); + + if ( (LA78_0==AS) ) { + alt78=1; + } + switch (alt78) { + case 1 : + // xquery/XQueryParser.g:731:92: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4955); + p_TypeDeclaration162=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration162.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_QuantifiedExpr4960); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4964); + p_ExprSingle163=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle163.getTree()); + // xquery/XQueryParser.g:731:150: ( COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] )* + loop80: + do { + var alt80=2; + var LA80_0 = this.input.LA(1); + + if ( (LA80_0==COMMA) ) { + alt80=1; + } + + + switch (alt80) { + case 1 : + // xquery/XQueryParser.g:731:151: COMMA e= DOLLAR w= p_QName ( p_TypeDeclaration )? k= IN p_ExprSingle[true] + COMMA164=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_QuantifiedExpr4968); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA164_tree = this.adaptor.create(COMMA164); + this.adaptor.addChild(root_0, COMMA164_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_QuantifiedExpr4972); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_QuantifiedExpr4976); + w=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + // xquery/XQueryParser.g:731:200: ( p_TypeDeclaration )? + var alt79=2; + var LA79_0 = this.input.LA(1); + + if ( (LA79_0==AS) ) { + alt79=1; + } + switch (alt79) { + case 1 : + // xquery/XQueryParser.g:731:200: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4980); + p_TypeDeclaration165=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration165.getTree()); + + + break; + + } + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_QuantifiedExpr4985); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4989); + p_ExprSingle166=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle166.getTree()); + + + break; + + default : + break loop80; + } + } while (true); + + k=this.match(this.input,SATISFIES,XQueryParser.FOLLOW_SATISFIES_in_p_QuantifiedExpr4996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_QuantifiedExpr5000); + p_ExprSingle167=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle167.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchHybrid_return: (function() { + XQueryParser.p_SwitchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:735:1: p_SwitchHybrid[strict] : k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_SwitchHybrid" + p_SwitchHybrid: function(strict) { + var retval = new XQueryParser.p_SwitchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN168 = null; + var RPAREN170 = null; + var p_Expr169 = null; + var p_SwitchCaseHybrid171 = null; + var p_Hybrid172 = null; + + var k_tree=null; + var LPAREN168_tree=null; + var RPAREN170_tree=null; + + try { + // xquery/XQueryParser.g:736:9: (k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:736:11: k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseHybrid[$strict] )+ k= DEFAULT k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_p_SwitchHybrid5030); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN168=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SwitchHybrid5034); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN168_tree = this.adaptor.create(LPAREN168); + this.adaptor.addChild(root_0, LPAREN168_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_SwitchHybrid5036); + p_Expr169=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr169.getTree()); + RPAREN170=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SwitchHybrid5039); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN170_tree = this.adaptor.create(RPAREN170); + this.adaptor.addChild(root_0, RPAREN170_tree); + } + // xquery/XQueryParser.g:736:67: ( p_SwitchCaseHybrid[$strict] )+ + var cnt81=0; + loop81: + do { + var alt81=2; + var LA81_0 = this.input.LA(1); + + if ( (LA81_0==CASE) ) { + alt81=1; + } + + + switch (alt81) { + case 1 : + // xquery/XQueryParser.g:736:67: p_SwitchCaseHybrid[$strict] + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseHybrid_in_p_SwitchHybrid5041); + p_SwitchCaseHybrid171=this.p_SwitchCaseHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseHybrid171.getTree()); + + + break; + + default : + if ( cnt81 >= 1 ) { + break loop81; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(81, this.input); + throw eee; + } + cnt81++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SwitchHybrid5047); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchHybrid5053); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchHybrid5057); + p_Hybrid172=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid172.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseHybrid_return: (function() { + XQueryParser.p_SwitchCaseHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:740:1: p_SwitchCaseHybrid[strict] : (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_SwitchCaseHybrid" + p_SwitchCaseHybrid: function(strict) { + var retval = new XQueryParser.p_SwitchCaseHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_SwitchCaseOperand173 = null; + var p_Hybrid174 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:741:9: ( (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:741:11: (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:741:11: (k= CASE p_SwitchCaseOperand )+ + var cnt82=0; + loop82: + do { + var alt82=2; + var LA82_0 = this.input.LA(1); + + if ( (LA82_0==CASE) ) { + alt82=1; + } + + + switch (alt82) { + case 1 : + // xquery/XQueryParser.g:741:12: k= CASE p_SwitchCaseOperand + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_SwitchCaseHybrid5088); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseHybrid5092); + p_SwitchCaseOperand173=this.p_SwitchCaseOperand(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseOperand173.getTree()); + + + break; + + default : + if ( cnt82 >= 1 ) { + break loop82; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(82, this.input); + throw eee; + } + cnt82++; + } while (true); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchCaseHybrid5098); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchCaseHybrid5102); + p_Hybrid174=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid174.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseOperand_return: (function() { + XQueryParser.p_SwitchCaseOperand_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseOperand_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:745:1: p_SwitchCaseOperand : p_ExprSingle[true] ; + // $ANTLR start "p_SwitchCaseOperand" + p_SwitchCaseOperand: function() { + var retval = new XQueryParser.p_SwitchCaseOperand_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle175 = null; + + + try { + // xquery/XQueryParser.g:746:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:746:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SwitchCaseOperand5129); + p_ExprSingle175=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle175.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeswitchHybrid_return: (function() { + XQueryParser.p_TypeswitchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeswitchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:750:1: p_TypeswitchHybrid[strict] : k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] ; + // $ANTLR start "p_TypeswitchHybrid" + p_TypeswitchHybrid: function(strict) { + var retval = new XQueryParser.p_TypeswitchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var LPAREN176 = null; + var RPAREN178 = null; + var v = null; + var p_Expr177 = null; + var p_CaseHybrid179 = null; + var p_Hybrid180 = null; + + var k_tree=null; + var d_tree=null; + var LPAREN176_tree=null; + var RPAREN178_tree=null; + + try { + // xquery/XQueryParser.g:751:9: (k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:751:11: k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseHybrid[$strict] )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_p_TypeswitchHybrid5159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN176=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypeswitchHybrid5163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN176_tree = this.adaptor.create(LPAREN176); + this.adaptor.addChild(root_0, LPAREN176_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TypeswitchHybrid5165); + p_Expr177=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr177.getTree()); + RPAREN178=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypeswitchHybrid5168); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN178_tree = this.adaptor.create(RPAREN178); + this.adaptor.addChild(root_0, RPAREN178_tree); + } + // xquery/XQueryParser.g:751:71: ( p_CaseHybrid[$strict] )+ + var cnt83=0; + loop83: + do { + var alt83=2; + var LA83_0 = this.input.LA(1); + + if ( (LA83_0==CASE) ) { + alt83=1; + } + + + switch (alt83) { + case 1 : + // xquery/XQueryParser.g:751:71: p_CaseHybrid[$strict] + this.pushFollow(XQueryParser.FOLLOW_p_CaseHybrid_in_p_TypeswitchHybrid5170); + p_CaseHybrid179=this.p_CaseHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CaseHybrid179.getTree()); + + + break; + + default : + if ( cnt83 >= 1 ) { + break loop83; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(83, this.input); + throw eee; + } + cnt83++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_TypeswitchHybrid5176); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:751:119: (d= DOLLAR v= p_VarName )? + var alt84=2; + var LA84_0 = this.input.LA(1); + + if ( (LA84_0==DOLLAR) ) { + alt84=1; + } + switch (alt84) { + case 1 : + // xquery/XQueryParser.g:751:120: d= DOLLAR v= p_VarName + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TypeswitchHybrid5183); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TypeswitchHybrid5187); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TypeswitchHybrid5195); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_TypeswitchHybrid5199); + p_Hybrid180=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid180.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CaseHybrid_return: (function() { + XQueryParser.p_CaseHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CaseHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:755:1: p_CaseHybrid[strict] : k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] ; + // $ANTLR start "p_CaseHybrid" + p_CaseHybrid: function(strict) { + var retval = new XQueryParser.p_CaseHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_SequenceTypeUnion181 = null; + var p_ExprSingle182 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:756:9: (k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] ) + // xquery/XQueryParser.g:756:11: k= CASE (d= DOLLAR v= p_VarName k= AS )? p_SequenceTypeUnion k= RETURN p_ExprSingle[false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_CaseHybrid5229); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:756:33: (d= DOLLAR v= p_VarName k= AS )? + var alt85=2; + var LA85_0 = this.input.LA(1); + + if ( (LA85_0==DOLLAR) ) { + alt85=1; + } + switch (alt85) { + case 1 : + // xquery/XQueryParser.g:756:34: d= DOLLAR v= p_VarName k= AS + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CaseHybrid5236); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CaseHybrid5240); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CaseHybrid5246); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceTypeUnion_in_p_CaseHybrid5252); + p_SequenceTypeUnion181=this.p_SequenceTypeUnion(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceTypeUnion181.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_CaseHybrid5256); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_CaseHybrid5260); + p_ExprSingle182=this.p_ExprSingle(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle182.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SequenceTypeUnion_return: (function() { + XQueryParser.p_SequenceTypeUnion_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SequenceTypeUnion_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:760:1: p_SequenceTypeUnion : p_SequenceType ( VBAR p_SequenceType )* ; + // $ANTLR start "p_SequenceTypeUnion" + p_SequenceTypeUnion: function() { + var retval = new XQueryParser.p_SequenceTypeUnion_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var VBAR184 = null; + var p_SequenceType183 = null; + var p_SequenceType185 = null; + + var VBAR184_tree=null; + + try { + // xquery/XQueryParser.g:761:9: ( p_SequenceType ( VBAR p_SequenceType )* ) + // xquery/XQueryParser.g:761:11: p_SequenceType ( VBAR p_SequenceType )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5287); + p_SequenceType183=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType183.getTree()); + // xquery/XQueryParser.g:761:26: ( VBAR p_SequenceType )* + loop86: + do { + var alt86=2; + var LA86_0 = this.input.LA(1); + + if ( (LA86_0==VBAR) ) { + alt86=1; + } + + + switch (alt86) { + case 1 : + // xquery/XQueryParser.g:761:27: VBAR p_SequenceType + VBAR184=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_SequenceTypeUnion5290); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR184_tree = this.adaptor.create(VBAR184); + this.adaptor.addChild(root_0, VBAR184_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5292); + p_SequenceType185=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType185.getTree()); + + + break; + + default : + break loop86; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IfHybrid_return: (function() { + XQueryParser.p_IfHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IfHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:765:1: p_IfHybrid[strict] : k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] ; + // $ANTLR start "p_IfHybrid" + p_IfHybrid: function(strict) { + var retval = new XQueryParser.p_IfHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN186 = null; + var RPAREN188 = null; + var p_Expr187 = null; + var p_Hybrid189 = null; + var p_Hybrid190 = null; + + var k_tree=null; + var LPAREN186_tree=null; + var RPAREN188_tree=null; + + try { + // xquery/XQueryParser.g:766:9: (k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] ) + // xquery/XQueryParser.g:766:11: k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[$strict,false] k= ELSE p_Hybrid[$strict,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_p_IfHybrid5323); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN186=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_IfHybrid5327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN186_tree = this.adaptor.create(LPAREN186); + this.adaptor.addChild(root_0, LPAREN186_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_IfHybrid5329); + p_Expr187=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr187.getTree()); + RPAREN188=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_IfHybrid5332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN188_tree = this.adaptor.create(RPAREN188); + this.adaptor.addChild(root_0, RPAREN188_tree); + } + k=this.match(this.input,THEN,XQueryParser.FOLLOW_THEN_in_p_IfHybrid5336); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfHybrid5340); + p_Hybrid189=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid189.getTree()); + k=this.match(this.input,ELSE,XQueryParser.FOLLOW_ELSE_in_p_IfHybrid5345); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfHybrid5349); + p_Hybrid190=this.p_Hybrid(strict, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid190.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchExpr_return: (function() { + XQueryParser.p_TryCatchExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:770:1: p_TryCatchExpr : p_TryClause ( p_CatchClause )+ ; + // $ANTLR start "p_TryCatchExpr" + p_TryCatchExpr: function() { + var retval = new XQueryParser.p_TryCatchExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_TryClause191 = null; + var p_CatchClause192 = null; + + + try { + // xquery/XQueryParser.g:771:9: ( p_TryClause ( p_CatchClause )+ ) + // xquery/XQueryParser.g:771:11: p_TryClause ( p_CatchClause )+ + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TryClause_in_p_TryCatchExpr5376); + p_TryClause191=this.p_TryClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryClause191.getTree()); + // xquery/XQueryParser.g:771:23: ( p_CatchClause )+ + var cnt87=0; + loop87: + do { + var alt87=2; + var LA87_0 = this.input.LA(1); + + if ( (LA87_0==CATCH) ) { + alt87=1; + } + + + switch (alt87) { + case 1 : + // xquery/XQueryParser.g:771:23: p_CatchClause + this.pushFollow(XQueryParser.FOLLOW_p_CatchClause_in_p_TryCatchExpr5378); + p_CatchClause192=this.p_CatchClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchClause192.getTree()); + + + break; + + default : + if ( cnt87 >= 1 ) { + break loop87; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(87, this.input); + throw eee; + } + cnt87++; + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryClause_return: (function() { + XQueryParser.p_TryClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:775:1: p_TryClause : k= TRY LBRACKET p_TryTargetExpr RBRACKET ; + // $ANTLR start "p_TryClause" + p_TryClause: function() { + var retval = new XQueryParser.p_TryClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET193 = null; + var RBRACKET195 = null; + var p_TryTargetExpr194 = null; + + var k_tree=null; + var LBRACKET193_tree=null; + var RBRACKET195_tree=null; + + try { + // xquery/XQueryParser.g:776:9: (k= TRY LBRACKET p_TryTargetExpr RBRACKET ) + // xquery/XQueryParser.g:776:11: k= TRY LBRACKET p_TryTargetExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryClause5407); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET193=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_TryClause5411); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET193_tree = this.adaptor.create(LBRACKET193); + this.adaptor.addChild(root_0, LBRACKET193_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TryTargetExpr_in_p_TryClause5413); + p_TryTargetExpr194=this.p_TryTargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TryTargetExpr194.getTree()); + RBRACKET195=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_TryClause5415); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET195_tree = this.adaptor.create(RBRACKET195); + this.adaptor.addChild(root_0, RBRACKET195_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryTargetExpr_return: (function() { + XQueryParser.p_TryTargetExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryTargetExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:780:1: p_TryTargetExpr : p_Expr[false,false] ; + // $ANTLR start "p_TryTargetExpr" + p_TryTargetExpr: function() { + var retval = new XQueryParser.p_TryTargetExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr196 = null; + + + try { + // xquery/XQueryParser.g:781:9: ( p_Expr[false,false] ) + // xquery/XQueryParser.g:781:11: p_Expr[false,false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TryTargetExpr5441); + p_Expr196=this.p_Expr(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr196.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CatchClause_return: (function() { + XQueryParser.p_CatchClause_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CatchClause_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:785:1: p_CatchClause : k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET ; + // $ANTLR start "p_CatchClause" + p_CatchClause: function() { + var retval = new XQueryParser.p_CatchClause_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET198 = null; + var RBRACKET200 = null; + var p_CatchErrorList197 = null; + var p_Expr199 = null; + + var k_tree=null; + var LBRACKET198_tree=null; + var RBRACKET200_tree=null; + + try { + // xquery/XQueryParser.g:786:9: (k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET ) + // xquery/XQueryParser.g:786:11: k= CATCH p_CatchErrorList LBRACKET p_Expr[false,false] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_CatchClause5470); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_CatchClause5474); + p_CatchErrorList197=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList197.getTree()); + LBRACKET198=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CatchClause5476); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET198_tree = this.adaptor.create(LBRACKET198); + this.adaptor.addChild(root_0, LBRACKET198_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CatchClause5478); + p_Expr199=this.p_Expr(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr199.getTree()); + RBRACKET200=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CatchClause5481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET200_tree = this.adaptor.create(RBRACKET200); + this.adaptor.addChild(root_0, RBRACKET200_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CatchErrorList_return: (function() { + XQueryParser.p_CatchErrorList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CatchErrorList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:790:1: p_CatchErrorList : ( p_NameTest ( VBAR p_NameTest )* | {...}? => () ); + // $ANTLR start "p_CatchErrorList" + p_CatchErrorList: function() { + var retval = new XQueryParser.p_CatchErrorList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var VBAR202 = null; + var p_NameTest201 = null; + var p_NameTest203 = null; + + var VBAR202_tree=null; + + try { + // xquery/XQueryParser.g:791:9: ( p_NameTest ( VBAR p_NameTest )* | {...}? => () ) + var alt89=2; + var LA89_0 = this.input.LA(1); + + if ( ((LA89_0>=ANCESTOR && LA89_0<=SKIP)||(LA89_0>=VALUE && LA89_0<=QUOT_ER)||LA89_0==STAR||(LA89_0>=APOS && LA89_0<=QUOT)||LA89_0==L_NCName||LA89_0==EXPLICITLY) ) { + alt89=1; + } + else if ( (LA89_0==LBRACKET) && ((this.lc(MLS)))) { + alt89=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 89, 0, this.input); + + throw nvae; + } + switch (alt89) { + case 1 : + // xquery/XQueryParser.g:791:11: p_NameTest ( VBAR p_NameTest )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_CatchErrorList5507); + p_NameTest201=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest201.getTree()); + // xquery/XQueryParser.g:791:22: ( VBAR p_NameTest )* + loop88: + do { + var alt88=2; + var LA88_0 = this.input.LA(1); + + if ( (LA88_0==VBAR) ) { + alt88=1; + } + + + switch (alt88) { + case 1 : + // xquery/XQueryParser.g:791:23: VBAR p_NameTest + VBAR202=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_CatchErrorList5510); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR202_tree = this.adaptor.create(VBAR202); + this.adaptor.addChild(root_0, VBAR202_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_CatchErrorList5512); + p_NameTest203=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest203.getTree()); + + + break; + + default : + break loop88; + } + } while (true); + + + + break; + case 2 : + // xquery/XQueryParser.g:792:11: {...}? => () + root_0 = this.adaptor.nil(); + + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_CatchErrorList", "this.lc(MLS)"); + } + // xquery/XQueryParser.g:792:29: () + // xquery/XQueryParser.g:792:43: + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrExpr_return: (function() { + XQueryParser.p_OrExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:796:1: p_OrExpr : p_AndExpr (k= OR p_AndExpr )* ; + // $ANTLR start "p_OrExpr" + p_OrExpr: function() { + var retval = new XQueryParser.p_OrExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AndExpr204 = null; + var p_AndExpr205 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:797:9: ( p_AndExpr (k= OR p_AndExpr )* ) + // xquery/XQueryParser.g:797:11: p_AndExpr (k= OR p_AndExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AndExpr_in_p_OrExpr5557); + p_AndExpr204=this.p_AndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AndExpr204.getTree()); + // xquery/XQueryParser.g:797:21: (k= OR p_AndExpr )* + loop90: + do { + var alt90=2; + var LA90_0 = this.input.LA(1); + + if ( (LA90_0==OR) ) { + alt90=1; + } + + + switch (alt90) { + case 1 : + // xquery/XQueryParser.g:797:23: k= OR p_AndExpr + k=this.match(this.input,OR,XQueryParser.FOLLOW_OR_in_p_OrExpr5563); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AndExpr_in_p_OrExpr5567); + p_AndExpr205=this.p_AndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AndExpr205.getTree()); + + + break; + + default : + break loop90; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AndExpr_return: (function() { + XQueryParser.p_AndExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AndExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:801:1: p_AndExpr : p_ComparisonExpr (k= AND p_ComparisonExpr )* ; + // $ANTLR start "p_AndExpr" + p_AndExpr: function() { + var retval = new XQueryParser.p_AndExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ComparisonExpr206 = null; + var p_ComparisonExpr207 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:802:9: ( p_ComparisonExpr (k= AND p_ComparisonExpr )* ) + // xquery/XQueryParser.g:802:11: p_ComparisonExpr (k= AND p_ComparisonExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ComparisonExpr_in_p_AndExpr5596); + p_ComparisonExpr206=this.p_ComparisonExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComparisonExpr206.getTree()); + // xquery/XQueryParser.g:802:28: (k= AND p_ComparisonExpr )* + loop91: + do { + var alt91=2; + var LA91_0 = this.input.LA(1); + + if ( (LA91_0==AND) ) { + alt91=1; + } + + + switch (alt91) { + case 1 : + // xquery/XQueryParser.g:802:30: k= AND p_ComparisonExpr + k=this.match(this.input,AND,XQueryParser.FOLLOW_AND_in_p_AndExpr5602); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ComparisonExpr_in_p_AndExpr5606); + p_ComparisonExpr207=this.p_ComparisonExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComparisonExpr207.getTree()); + + + break; + + default : + break loop91; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ComparisonExpr_return: (function() { + XQueryParser.p_ComparisonExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ComparisonExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:807:1: p_ComparisonExpr : p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? ; + // $ANTLR start "p_ComparisonExpr" + p_ComparisonExpr: function() { + var retval = new XQueryParser.p_ComparisonExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTContainsExpr208 = null; + var p_ValueComp209 = null; + var p_GeneralComp210 = null; + var p_NodeComp211 = null; + var p_FTContainsExpr212 = null; + + + try { + // xquery/XQueryParser.g:808:9: ( p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? ) + // xquery/XQueryParser.g:808:11: p_FTContainsExpr ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5636); + p_FTContainsExpr208=this.p_FTContainsExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContainsExpr208.getTree()); + // xquery/XQueryParser.g:808:28: ( ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr )? + var alt93=2; + var LA93_0 = this.input.LA(1); + + if ( (LA93_0==EQ||LA93_0==GE||LA93_0==GT||LA93_0==IS||LA93_0==LE||LA93_0==LT||LA93_0==NE||LA93_0==EQUAL||LA93_0==NOTEQUAL||(LA93_0>=SMALLER && LA93_0<=GREATER_GREATER)) ) { + alt93=1; + } + switch (alt93) { + case 1 : + // xquery/XQueryParser.g:808:30: ( p_ValueComp | p_GeneralComp | p_NodeComp ) p_FTContainsExpr + // xquery/XQueryParser.g:808:30: ( p_ValueComp | p_GeneralComp | p_NodeComp ) + var alt92=3; + switch ( this.input.LA(1) ) { + case EQ: + case GE: + case GT: + case LE: + case LT: + case NE: + alt92=1; + break; + case EQUAL: + case NOTEQUAL: + case SMALLER: + case GREATER: + case SMALLEREQ: + case GREATEREQ: + alt92=2; + break; + case IS: + case SMALLER_SMALLER: + case GREATER_GREATER: + alt92=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 92, 0, this.input); + + throw nvae; + } + + switch (alt92) { + case 1 : + // xquery/XQueryParser.g:808:31: p_ValueComp + this.pushFollow(XQueryParser.FOLLOW_p_ValueComp_in_p_ComparisonExpr5641); + p_ValueComp209=this.p_ValueComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValueComp209.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:808:45: p_GeneralComp + this.pushFollow(XQueryParser.FOLLOW_p_GeneralComp_in_p_ComparisonExpr5645); + p_GeneralComp210=this.p_GeneralComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_GeneralComp210.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:808:61: p_NodeComp + this.pushFollow(XQueryParser.FOLLOW_p_NodeComp_in_p_ComparisonExpr5649); + p_NodeComp211=this.p_NodeComp(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeComp211.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5652); + p_FTContainsExpr212=this.p_FTContainsExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContainsExpr212.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RangeExpr_return: (function() { + XQueryParser.p_RangeExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RangeExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:812:1: p_RangeExpr : p_AdditiveExpr (k= TO p_AdditiveExpr )? ; + // $ANTLR start "p_RangeExpr" + p_RangeExpr: function() { + var retval = new XQueryParser.p_RangeExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AdditiveExpr213 = null; + var p_AdditiveExpr214 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:813:9: ( p_AdditiveExpr (k= TO p_AdditiveExpr )? ) + // xquery/XQueryParser.g:813:11: p_AdditiveExpr (k= TO p_AdditiveExpr )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_RangeExpr5681); + p_AdditiveExpr213=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr213.getTree()); + // xquery/XQueryParser.g:813:26: (k= TO p_AdditiveExpr )? + var alt94=2; + var LA94_0 = this.input.LA(1); + + if ( (LA94_0==TO) ) { + alt94=1; + } + switch (alt94) { + case 1 : + // xquery/XQueryParser.g:813:28: k= TO p_AdditiveExpr + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_RangeExpr5687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_RangeExpr5691); + p_AdditiveExpr214=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr214.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AdditiveExpr_return: (function() { + XQueryParser.p_AdditiveExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AdditiveExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:817:1: p_AdditiveExpr : p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* ; + // $ANTLR start "p_AdditiveExpr" + p_AdditiveExpr: function() { + var retval = new XQueryParser.p_AdditiveExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_MultiplicativeExpr215 = null; + var p_MultiplicativeExpr216 = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:818:9: ( p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* ) + // xquery/XQueryParser.g:818:11: p_MultiplicativeExpr ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5720); + p_MultiplicativeExpr215=this.p_MultiplicativeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_MultiplicativeExpr215.getTree()); + // xquery/XQueryParser.g:818:32: ( (o= PLUS | o= MINUS ) p_MultiplicativeExpr )* + loop96: + do { + var alt96=2; + var LA96_0 = this.input.LA(1); + + if ( ((LA96_0>=PLUS && LA96_0<=MINUS)) ) { + alt96=1; + } + + + switch (alt96) { + case 1 : + // xquery/XQueryParser.g:818:34: (o= PLUS | o= MINUS ) p_MultiplicativeExpr + // xquery/XQueryParser.g:818:34: (o= PLUS | o= MINUS ) + var alt95=2; + var LA95_0 = this.input.LA(1); + + if ( (LA95_0==PLUS) ) { + alt95=1; + } + else if ( (LA95_0==MINUS) ) { + alt95=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 95, 0, this.input); + + throw nvae; + } + switch (alt95) { + case 1 : + // xquery/XQueryParser.g:818:35: o= PLUS + o=this.match(this.input,PLUS,XQueryParser.FOLLOW_PLUS_in_p_AdditiveExpr5727); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:818:59: o= MINUS + o=this.match(this.input,MINUS,XQueryParser.FOLLOW_MINUS_in_p_AdditiveExpr5735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5740); + p_MultiplicativeExpr216=this.p_MultiplicativeExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_MultiplicativeExpr216.getTree()); + + + break; + + default : + break loop96; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_MultiplicativeExpr_return: (function() { + XQueryParser.p_MultiplicativeExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_MultiplicativeExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:822:1: p_MultiplicativeExpr : p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* ; + // $ANTLR start "p_MultiplicativeExpr" + p_MultiplicativeExpr: function() { + var retval = new XQueryParser.p_MultiplicativeExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var k = null; + var p_UnionExpr217 = null; + var p_UnionExpr218 = null; + + var o_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:823:9: ( p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* ) + // xquery/XQueryParser.g:823:11: p_UnionExpr ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5769); + p_UnionExpr217=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr217.getTree()); + // xquery/XQueryParser.g:823:23: ( (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr )* + loop99: + do { + var alt99=2; + var LA99_0 = this.input.LA(1); + + if ( (LA99_0==DIV||LA99_0==IDIV||LA99_0==MOD||LA99_0==STAR) ) { + alt99=1; + } + + + switch (alt99) { + case 1 : + // xquery/XQueryParser.g:823:25: (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) p_UnionExpr + // xquery/XQueryParser.g:823:25: (o= STAR | (k= DIV | k= IDIV | k= MOD ) ) + var alt98=2; + var LA98_0 = this.input.LA(1); + + if ( (LA98_0==STAR) ) { + alt98=1; + } + else if ( (LA98_0==DIV||LA98_0==IDIV||LA98_0==MOD) ) { + alt98=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 98, 0, this.input); + + throw nvae; + } + switch (alt98) { + case 1 : + // xquery/XQueryParser.g:823:26: o= STAR + o=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_MultiplicativeExpr5776); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:823:50: (k= DIV | k= IDIV | k= MOD ) + // xquery/XQueryParser.g:823:50: (k= DIV | k= IDIV | k= MOD ) + var alt97=3; + switch ( this.input.LA(1) ) { + case DIV: + alt97=1; + break; + case IDIV: + alt97=2; + break; + case MOD: + alt97=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 97, 0, this.input); + + throw nvae; + } + + switch (alt97) { + case 1 : + // xquery/XQueryParser.g:823:51: k= DIV + k=this.match(this.input,DIV,XQueryParser.FOLLOW_DIV_in_p_MultiplicativeExpr5785); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:823:59: k= IDIV + k=this.match(this.input,IDIV,XQueryParser.FOLLOW_IDIV_in_p_MultiplicativeExpr5791); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:823:68: k= MOD + k=this.match(this.input,MOD,XQueryParser.FOLLOW_MOD_in_p_MultiplicativeExpr5797); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5803); + p_UnionExpr218=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr218.getTree()); + + + break; + + default : + break loop99; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnionExpr_return: (function() { + XQueryParser.p_UnionExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnionExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:827:1: p_UnionExpr : p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* ; + // $ANTLR start "p_UnionExpr" + p_UnionExpr: function() { + var retval = new XQueryParser.p_UnionExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var VBAR220 = null; + var p_IntersectExceptExpr219 = null; + var p_IntersectExceptExpr221 = null; + + var k_tree=null; + var VBAR220_tree=null; + + try { + // xquery/XQueryParser.g:828:9: ( p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* ) + // xquery/XQueryParser.g:828:11: p_IntersectExceptExpr ( (k= UNION | VBAR ) p_IntersectExceptExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5832); + p_IntersectExceptExpr219=this.p_IntersectExceptExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntersectExceptExpr219.getTree()); + // xquery/XQueryParser.g:828:33: ( (k= UNION | VBAR ) p_IntersectExceptExpr )* + loop101: + do { + var alt101=2; + var LA101_0 = this.input.LA(1); + + if ( (LA101_0==UNION||LA101_0==VBAR) ) { + alt101=1; + } + + + switch (alt101) { + case 1 : + // xquery/XQueryParser.g:828:35: (k= UNION | VBAR ) p_IntersectExceptExpr + // xquery/XQueryParser.g:828:35: (k= UNION | VBAR ) + var alt100=2; + var LA100_0 = this.input.LA(1); + + if ( (LA100_0==UNION) ) { + alt100=1; + } + else if ( (LA100_0==VBAR) ) { + alt100=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 100, 0, this.input); + + throw nvae; + } + switch (alt100) { + case 1 : + // xquery/XQueryParser.g:828:36: k= UNION + k=this.match(this.input,UNION,XQueryParser.FOLLOW_UNION_in_p_UnionExpr5839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:828:61: VBAR + VBAR220=this.match(this.input,VBAR,XQueryParser.FOLLOW_VBAR_in_p_UnionExpr5845); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + VBAR220_tree = this.adaptor.create(VBAR220); + this.adaptor.addChild(root_0, VBAR220_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5848); + p_IntersectExceptExpr221=this.p_IntersectExceptExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntersectExceptExpr221.getTree()); + + + break; + + default : + break loop101; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IntersectExceptExpr_return: (function() { + XQueryParser.p_IntersectExceptExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IntersectExceptExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:832:1: p_IntersectExceptExpr : p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* ; + // $ANTLR start "p_IntersectExceptExpr" + p_IntersectExceptExpr: function() { + var retval = new XQueryParser.p_IntersectExceptExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_InstanceofExpr222 = null; + var p_InstanceofExpr223 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:833:9: ( p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* ) + // xquery/XQueryParser.g:833:11: p_InstanceofExpr ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5877); + p_InstanceofExpr222=this.p_InstanceofExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InstanceofExpr222.getTree()); + // xquery/XQueryParser.g:833:28: ( (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr )* + loop103: + do { + var alt103=2; + var LA103_0 = this.input.LA(1); + + if ( (LA103_0==EXCEPT||LA103_0==INTERSECT) ) { + alt103=1; + } + + + switch (alt103) { + case 1 : + // xquery/XQueryParser.g:833:30: (k= INTERSECT | k= EXCEPT ) p_InstanceofExpr + // xquery/XQueryParser.g:833:30: (k= INTERSECT | k= EXCEPT ) + var alt102=2; + var LA102_0 = this.input.LA(1); + + if ( (LA102_0==INTERSECT) ) { + alt102=1; + } + else if ( (LA102_0==EXCEPT) ) { + alt102=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 102, 0, this.input); + + throw nvae; + } + switch (alt102) { + case 1 : + // xquery/XQueryParser.g:833:31: k= INTERSECT + k=this.match(this.input,INTERSECT,XQueryParser.FOLLOW_INTERSECT_in_p_IntersectExceptExpr5884); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:833:45: k= EXCEPT + k=this.match(this.input,EXCEPT,XQueryParser.FOLLOW_EXCEPT_in_p_IntersectExceptExpr5890); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5895); + p_InstanceofExpr223=this.p_InstanceofExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InstanceofExpr223.getTree()); + + + break; + + default : + break loop103; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InstanceofExpr_return: (function() { + XQueryParser.p_InstanceofExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InstanceofExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:837:1: p_InstanceofExpr : p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? ; + // $ANTLR start "p_InstanceofExpr" + p_InstanceofExpr: function() { + var retval = new XQueryParser.p_InstanceofExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_TreatExpr224 = null; + var p_SequenceType225 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:838:9: ( p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? ) + // xquery/XQueryParser.g:838:11: p_TreatExpr (k= INSTANCE k= OF p_SequenceType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TreatExpr_in_p_InstanceofExpr5924); + p_TreatExpr224=this.p_TreatExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TreatExpr224.getTree()); + // xquery/XQueryParser.g:838:23: (k= INSTANCE k= OF p_SequenceType )? + var alt104=2; + var LA104_0 = this.input.LA(1); + + if ( (LA104_0==INSTANCE) ) { + alt104=1; + } + switch (alt104) { + case 1 : + // xquery/XQueryParser.g:838:25: k= INSTANCE k= OF p_SequenceType + k=this.match(this.input,INSTANCE,XQueryParser.FOLLOW_INSTANCE_in_p_InstanceofExpr5930); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,OF,XQueryParser.FOLLOW_OF_in_p_InstanceofExpr5936); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_InstanceofExpr5940); + p_SequenceType225=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType225.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TreatExpr_return: (function() { + XQueryParser.p_TreatExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TreatExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:842:1: p_TreatExpr : p_CastableExpr (k= TREAT k= AS p_SequenceType )? ; + // $ANTLR start "p_TreatExpr" + p_TreatExpr: function() { + var retval = new XQueryParser.p_TreatExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_CastableExpr226 = null; + var p_SequenceType227 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:843:9: ( p_CastableExpr (k= TREAT k= AS p_SequenceType )? ) + // xquery/XQueryParser.g:843:11: p_CastableExpr (k= TREAT k= AS p_SequenceType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CastableExpr_in_p_TreatExpr5968); + p_CastableExpr226=this.p_CastableExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CastableExpr226.getTree()); + // xquery/XQueryParser.g:843:26: (k= TREAT k= AS p_SequenceType )? + var alt105=2; + var LA105_0 = this.input.LA(1); + + if ( (LA105_0==TREAT) ) { + alt105=1; + } + switch (alt105) { + case 1 : + // xquery/XQueryParser.g:843:28: k= TREAT k= AS p_SequenceType + k=this.match(this.input,TREAT,XQueryParser.FOLLOW_TREAT_in_p_TreatExpr5974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TreatExpr5980); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TreatExpr5984); + p_SequenceType227=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType227.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CastableExpr_return: (function() { + XQueryParser.p_CastableExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CastableExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:847:1: p_CastableExpr : p_CastExpr (k= CASTABLE k= AS p_SingleType )? ; + // $ANTLR start "p_CastableExpr" + p_CastableExpr: function() { + var retval = new XQueryParser.p_CastableExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_CastExpr228 = null; + var p_SingleType229 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:848:9: ( p_CastExpr (k= CASTABLE k= AS p_SingleType )? ) + // xquery/XQueryParser.g:848:11: p_CastExpr (k= CASTABLE k= AS p_SingleType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CastExpr_in_p_CastableExpr6021); + p_CastExpr228=this.p_CastExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CastExpr228.getTree()); + // xquery/XQueryParser.g:848:22: (k= CASTABLE k= AS p_SingleType )? + var alt106=2; + var LA106_0 = this.input.LA(1); + + if ( (LA106_0==CASTABLE) ) { + alt106=1; + } + switch (alt106) { + case 1 : + // xquery/XQueryParser.g:848:24: k= CASTABLE k= AS p_SingleType + k=this.match(this.input,CASTABLE,XQueryParser.FOLLOW_CASTABLE_in_p_CastableExpr6027); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CastableExpr6033); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SingleType_in_p_CastableExpr6037); + p_SingleType229=this.p_SingleType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SingleType229.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CastExpr_return: (function() { + XQueryParser.p_CastExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CastExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:852:1: p_CastExpr : p_UnaryExpr (k= CAST k= AS p_SingleType )? ; + // $ANTLR start "p_CastExpr" + p_CastExpr: function() { + var retval = new XQueryParser.p_CastExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_UnaryExpr230 = null; + var p_SingleType231 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:853:9: ( p_UnaryExpr (k= CAST k= AS p_SingleType )? ) + // xquery/XQueryParser.g:853:11: p_UnaryExpr (k= CAST k= AS p_SingleType )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnaryExpr_in_p_CastExpr6074); + p_UnaryExpr230=this.p_UnaryExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnaryExpr230.getTree()); + // xquery/XQueryParser.g:853:23: (k= CAST k= AS p_SingleType )? + var alt107=2; + var LA107_0 = this.input.LA(1); + + if ( (LA107_0==CAST) ) { + alt107=1; + } + switch (alt107) { + case 1 : + // xquery/XQueryParser.g:853:25: k= CAST k= AS p_SingleType + k=this.match(this.input,CAST,XQueryParser.FOLLOW_CAST_in_p_CastExpr6080); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CastExpr6086); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SingleType_in_p_CastExpr6090); + p_SingleType231=this.p_SingleType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SingleType231.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnaryExpr_return: (function() { + XQueryParser.p_UnaryExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnaryExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:857:1: p_UnaryExpr : (o= PLUS | o= MINUS )* p_ValueExpr -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) ; + // $ANTLR start "p_UnaryExpr" + p_UnaryExpr: function() { + var retval = new XQueryParser.p_UnaryExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + var p_ValueExpr232 = null; + + var o_tree=null; + var stream_PLUS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token PLUS"); + var stream_MINUS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token MINUS"); + var stream_p_ValueExpr=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ValueExpr"); + try { + // xquery/XQueryParser.g:858:9: ( (o= PLUS | o= MINUS )* p_ValueExpr -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) ) + // xquery/XQueryParser.g:858:11: (o= PLUS | o= MINUS )* p_ValueExpr + // xquery/XQueryParser.g:858:11: (o= PLUS | o= MINUS )* + loop108: + do { + var alt108=3; + var LA108_0 = this.input.LA(1); + + if ( (LA108_0==PLUS) ) { + alt108=1; + } + else if ( (LA108_0==MINUS) ) { + alt108=2; + } + + + switch (alt108) { + case 1 : + // xquery/XQueryParser.g:858:12: o= PLUS + o=this.match(this.input,PLUS,XQueryParser.FOLLOW_PLUS_in_p_UnaryExpr6122); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_PLUS.add(o); + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + case 2 : + // xquery/XQueryParser.g:858:36: o= MINUS + o=this.match(this.input,MINUS,XQueryParser.FOLLOW_MINUS_in_p_UnaryExpr6130); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_MINUS.add(o); + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + break; + + default : + break loop108; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ValueExpr_in_p_UnaryExpr6135); + p_ValueExpr232=this.p_ValueExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ValueExpr.add(p_ValueExpr232.getTree()); + + + // AST REWRITE + // elements: PLUS, p_ValueExpr + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 859:17: -> ^( UnaryExpr ( PLUS )* p_ValueExpr ) + { + // xquery/XQueryParser.g:859:20: ^( UnaryExpr ( PLUS )* p_ValueExpr ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(UnaryExpr, "UnaryExpr"), root_1); + + // xquery/XQueryParser.g:859:32: ( PLUS )* + while ( stream_PLUS.hasNext() ) { + this.adaptor.addChild(root_1, stream_PLUS.nextNode()); + + } + stream_PLUS.reset(); + this.adaptor.addChild(root_1, stream_p_ValueExpr.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValueExpr_return: (function() { + XQueryParser.p_ValueExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValueExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:863:1: p_ValueExpr : ( ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr | p_PathExpr | p_ExtensionExpr ); + // $ANTLR start "p_ValueExpr" + p_ValueExpr: function() { + var retval = new XQueryParser.p_ValueExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ValidateExpr233 = null; + var p_PathExpr234 = null; + var p_ExtensionExpr235 = null; + + + try { + // xquery/XQueryParser.g:864:9: ( ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr | p_PathExpr | p_ExtensionExpr ) + var alt109=3; + switch ( this.input.LA(1) ) { + case VALIDATE: + var LA109_1 = this.input.LA(2); + + if ( (LA109_1==LAX) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==STRICT) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==TYPE) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==LBRACKET) && (this.synpred6_XQueryParser())) { + alt109=1; + } + else if ( (LA109_1==EOF||(LA109_1>=AND && LA109_1<=ASCENDING)||(LA109_1>=CASE && LA109_1<=CASTABLE)||LA109_1==COLLATION||LA109_1==DEFAULT||(LA109_1>=DESCENDING && LA109_1<=DIV)||LA109_1==EMPTY||LA109_1==EQ||LA109_1==EXCEPT||LA109_1==FOR||LA109_1==GE||(LA109_1>=GT && LA109_1<=IDIV)||(LA109_1>=INSTANCE && LA109_1<=IS)||LA109_1==LE||(LA109_1>=LET && LA109_1<=MOD)||LA109_1==NE||(LA109_1>=OR && LA109_1<=ORDER)||(LA109_1>=RETURN && LA109_1<=SATISFIES)||LA109_1==STABLE||(LA109_1>=TO && LA109_1<=TREAT)||LA109_1==UNION||LA109_1==WHERE||LA109_1==COUNT||(LA109_1>=END && LA109_1<=GROUP)||LA109_1==ONLY||LA109_1==START||(LA109_1>=AFTER && LA109_1<=BEFORE)||LA109_1==INTO||LA109_1==MODIFY||LA109_1==WITH||LA109_1==CONTAINS||LA109_1==PARAGRAPHS||LA109_1==SENTENCES||LA109_1==TIMES||LA109_1==WORDS||(LA109_1>=CONCAT && LA109_1<=RPAREN)||(LA109_1>=RBRACKET && LA109_1<=EQUAL)||LA109_1==NOTEQUAL||LA109_1==COMMA||(LA109_1>=STAR && LA109_1<=SLASH_SLASH)||LA109_1==COLON||(LA109_1>=SEMICOLON && LA109_1<=VBAR)) ) { + alt109=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 109, 1, this.input); + + throw nvae; + } + break; + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case UPDATING: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case LPAREN: + case DOLLAR: + case LBRACKET: + case STAR: + case SMALLER: + case SLASH: + case SLASH_SLASH: + case DOT: + case DOT_DOT: + case ATTR_SIGN: + case APOS: + case QUOT: + case L_NCName: + case L_DirCommentConstructor: + case L_DirPIConstructor: + case L_IntegerLiteral: + case L_DecimalLiteral: + case L_DoubleLiteral: + case EXPLICITLY: + alt109=2; + break; + case L_Pragma: + alt109=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 109, 0, this.input); + + throw nvae; + } + + switch (alt109) { + case 1 : + // xquery/XQueryParser.g:864:11: ( VALIDATE ( p_ValidationMode | TYPE )? )=> p_ValidateExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ValidateExpr_in_p_ValueExpr6205); + p_ValidateExpr233=this.p_ValidateExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValidateExpr233.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:865:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ValueExpr6217); + p_PathExpr234=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr234.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:866:11: p_ExtensionExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExtensionExpr_in_p_ValueExpr6229); + p_ExtensionExpr235=this.p_ExtensionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExtensionExpr235.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_GeneralComp_return: (function() { + XQueryParser.p_GeneralComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_GeneralComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:870:1: p_GeneralComp : (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) ; + // $ANTLR start "p_GeneralComp" + p_GeneralComp: function() { + var retval = new XQueryParser.p_GeneralComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var o = null; + + var o_tree=null; + + try { + // xquery/XQueryParser.g:871:9: ( (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) ) + // xquery/XQueryParser.g:871:11: (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:871:11: (o= EQUAL | o= NOTEQUAL | o= SMALLER | o= SMALLEREQ | o= GREATER | o= GREATEREQ ) + var alt110=6; + switch ( this.input.LA(1) ) { + case EQUAL: + alt110=1; + break; + case NOTEQUAL: + alt110=2; + break; + case SMALLER: + alt110=3; + break; + case SMALLEREQ: + alt110=4; + break; + case GREATER: + alt110=5; + break; + case GREATEREQ: + alt110=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 110, 0, this.input); + + throw nvae; + } + + switch (alt110) { + case 1 : + // xquery/XQueryParser.g:871:12: o= EQUAL + o=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_GeneralComp6258); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:871:22: o= NOTEQUAL + o=this.match(this.input,NOTEQUAL,XQueryParser.FOLLOW_NOTEQUAL_in_p_GeneralComp6264); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:871:35: o= SMALLER + o=this.match(this.input,SMALLER,XQueryParser.FOLLOW_SMALLER_in_p_GeneralComp6270); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:871:47: o= SMALLEREQ + o=this.match(this.input,SMALLEREQ,XQueryParser.FOLLOW_SMALLEREQ_in_p_GeneralComp6276); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:871:61: o= GREATER + o=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_GeneralComp6282); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:871:73: o= GREATEREQ + o=this.match(this.input,GREATEREQ,XQueryParser.FOLLOW_GREATEREQ_in_p_GeneralComp6288); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + o_tree = this.adaptor.create(o); + this.adaptor.addChild(root_0, o_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ao(o); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValueComp_return: (function() { + XQueryParser.p_ValueComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValueComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:875:1: p_ValueComp : (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) ; + // $ANTLR start "p_ValueComp" + p_ValueComp: function() { + var retval = new XQueryParser.p_ValueComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:876:9: ( (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) ) + // xquery/XQueryParser.g:876:11: (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:876:11: (k= EQ | k= NE | k= LT | k= LE | k= GT | k= GE ) + var alt111=6; + switch ( this.input.LA(1) ) { + case EQ: + alt111=1; + break; + case NE: + alt111=2; + break; + case LT: + alt111=3; + break; + case LE: + alt111=4; + break; + case GT: + alt111=5; + break; + case GE: + alt111=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 111, 0, this.input); + + throw nvae; + } + + switch (alt111) { + case 1 : + // xquery/XQueryParser.g:876:12: k= EQ + k=this.match(this.input,EQ,XQueryParser.FOLLOW_EQ_in_p_ValueComp6320); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:876:19: k= NE + k=this.match(this.input,NE,XQueryParser.FOLLOW_NE_in_p_ValueComp6326); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:876:26: k= LT + k=this.match(this.input,LT,XQueryParser.FOLLOW_LT_in_p_ValueComp6332); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:876:33: k= LE + k=this.match(this.input,LE,XQueryParser.FOLLOW_LE_in_p_ValueComp6338); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:876:40: k= GT + k=this.match(this.input,GT,XQueryParser.FOLLOW_GT_in_p_ValueComp6344); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:876:47: k= GE + k=this.match(this.input,GE,XQueryParser.FOLLOW_GE_in_p_ValueComp6350); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NodeComp_return: (function() { + XQueryParser.p_NodeComp_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NodeComp_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:880:1: p_NodeComp : (k= IS | SMALLER_SMALLER | GREATER_GREATER ); + // $ANTLR start "p_NodeComp" + p_NodeComp: function() { + var retval = new XQueryParser.p_NodeComp_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SMALLER_SMALLER236 = null; + var GREATER_GREATER237 = null; + + var k_tree=null; + var SMALLER_SMALLER236_tree=null; + var GREATER_GREATER237_tree=null; + + try { + // xquery/XQueryParser.g:881:9: (k= IS | SMALLER_SMALLER | GREATER_GREATER ) + var alt112=3; + switch ( this.input.LA(1) ) { + case IS: + alt112=1; + break; + case SMALLER_SMALLER: + alt112=2; + break; + case GREATER_GREATER: + alt112=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 112, 0, this.input); + + throw nvae; + } + + switch (alt112) { + case 1 : + // xquery/XQueryParser.g:881:11: k= IS + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IS,XQueryParser.FOLLOW_IS_in_p_NodeComp6381); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:881:33: SMALLER_SMALLER + root_0 = this.adaptor.nil(); + + SMALLER_SMALLER236=this.match(this.input,SMALLER_SMALLER,XQueryParser.FOLLOW_SMALLER_SMALLER_in_p_NodeComp6387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SMALLER_SMALLER236_tree = this.adaptor.create(SMALLER_SMALLER236); + this.adaptor.addChild(root_0, SMALLER_SMALLER236_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:881:51: GREATER_GREATER + root_0 = this.adaptor.nil(); + + GREATER_GREATER237=this.match(this.input,GREATER_GREATER,XQueryParser.FOLLOW_GREATER_GREATER_in_p_NodeComp6391); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + GREATER_GREATER237_tree = this.adaptor.create(GREATER_GREATER237); + this.adaptor.addChild(root_0, GREATER_GREATER237_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValidateExpr_return: (function() { + XQueryParser.p_ValidateExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValidateExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:885:1: p_ValidateExpr : k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_ValidateExpr" + p_ValidateExpr: function() { + var retval = new XQueryParser.p_ValidateExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET240 = null; + var RBRACKET242 = null; + var p_ValidationMode238 = null; + var p_TypeName239 = null; + var p_Expr241 = null; + + var k_tree=null; + var LBRACKET240_tree=null; + var RBRACKET242_tree=null; + + try { + // xquery/XQueryParser.g:886:9: (k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:886:11: k= VALIDATE ( p_ValidationMode | k= TYPE p_TypeName )? LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,VALIDATE,XQueryParser.FOLLOW_VALIDATE_in_p_ValidateExpr6419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:886:37: ( p_ValidationMode | k= TYPE p_TypeName )? + var alt113=3; + var LA113_0 = this.input.LA(1); + + if ( (LA113_0==LAX||LA113_0==STRICT) ) { + alt113=1; + } + else if ( (LA113_0==TYPE) ) { + alt113=2; + } + switch (alt113) { + case 1 : + // xquery/XQueryParser.g:886:39: p_ValidationMode + this.pushFollow(XQueryParser.FOLLOW_p_ValidationMode_in_p_ValidateExpr6425); + p_ValidationMode238=this.p_ValidationMode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ValidationMode238.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:886:58: k= TYPE p_TypeName + k=this.match(this.input,TYPE,XQueryParser.FOLLOW_TYPE_in_p_ValidateExpr6431); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_ValidateExpr6435); + p_TypeName239=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName239.getTree()); + + + break; + + } + + LBRACKET240=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_ValidateExpr6440); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET240_tree = this.adaptor.create(LBRACKET240); + this.adaptor.addChild(root_0, LBRACKET240_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ValidateExpr6442); + p_Expr241=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr241.getTree()); + RBRACKET242=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_ValidateExpr6445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET242_tree = this.adaptor.create(RBRACKET242); + this.adaptor.addChild(root_0, RBRACKET242_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ValidationMode_return: (function() { + XQueryParser.p_ValidationMode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ValidationMode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:890:1: p_ValidationMode : (k= LAX | k= STRICT ) ; + // $ANTLR start "p_ValidationMode" + p_ValidationMode: function() { + var retval = new XQueryParser.p_ValidationMode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:891:9: ( (k= LAX | k= STRICT ) ) + // xquery/XQueryParser.g:891:11: (k= LAX | k= STRICT ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:891:11: (k= LAX | k= STRICT ) + var alt114=2; + var LA114_0 = this.input.LA(1); + + if ( (LA114_0==LAX) ) { + alt114=1; + } + else if ( (LA114_0==STRICT) ) { + alt114=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 114, 0, this.input); + + throw nvae; + } + switch (alt114) { + case 1 : + // xquery/XQueryParser.g:891:12: k= LAX + k=this.match(this.input,LAX,XQueryParser.FOLLOW_LAX_in_p_ValidationMode6474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:891:20: k= STRICT + k=this.match(this.input,STRICT,XQueryParser.FOLLOW_STRICT_in_p_ValidationMode6480); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExtensionExpr_return: (function() { + XQueryParser.p_ExtensionExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExtensionExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:895:1: p_ExtensionExpr : ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET ; + // $ANTLR start "p_ExtensionExpr" + p_ExtensionExpr: function() { + var retval = new XQueryParser.p_ExtensionExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_Pragma243 = null; + var LBRACKET244 = null; + var RBRACKET246 = null; + var p_Expr245 = null; + + var L_Pragma243_tree=null; + var LBRACKET244_tree=null; + var RBRACKET246_tree=null; + + try { + // xquery/XQueryParser.g:896:9: ( ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET ) + // xquery/XQueryParser.g:896:11: ( L_Pragma )+ LBRACKET ( p_Expr[true,true] )? RBRACKET + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:896:11: ( L_Pragma )+ + var cnt115=0; + loop115: + do { + var alt115=2; + var LA115_0 = this.input.LA(1); + + if ( (LA115_0==L_Pragma) ) { + alt115=1; + } + + + switch (alt115) { + case 1 : + // xquery/XQueryParser.g:896:11: L_Pragma + L_Pragma243=this.match(this.input,L_Pragma,XQueryParser.FOLLOW_L_Pragma_in_p_ExtensionExpr6509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_Pragma243_tree = this.adaptor.create(L_Pragma243); + this.adaptor.addChild(root_0, L_Pragma243_tree); + } + + + break; + + default : + if ( cnt115 >= 1 ) { + break loop115; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(115, this.input); + throw eee; + } + cnt115++; + } while (true); + + LBRACKET244=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_ExtensionExpr6512); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET244_tree = this.adaptor.create(LBRACKET244); + this.adaptor.addChild(root_0, LBRACKET244_tree); + } + // xquery/XQueryParser.g:896:30: ( p_Expr[true,true] )? + var alt116=2; + var LA116_0 = this.input.LA(1); + + if ( ((LA116_0>=ANCESTOR && LA116_0<=QUOT_ER)||LA116_0==LPAREN||(LA116_0>=DOLLAR && LA116_0<=LBRACKET)||(LA116_0>=STAR && LA116_0<=SMALLER)||(LA116_0>=SLASH && LA116_0<=DOT_DOT)||LA116_0==ATTR_SIGN||(LA116_0>=APOS && LA116_0<=QUOT)||LA116_0==L_NCName||(LA116_0>=L_Pragma && LA116_0<=L_DoubleLiteral)||LA116_0==EXPLICITLY) ) { + alt116=1; + } + switch (alt116) { + case 1 : + // xquery/XQueryParser.g:896:30: p_Expr[true,true] + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ExtensionExpr6514); + p_Expr245=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr245.getTree()); + + + break; + + } + + RBRACKET246=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_ExtensionExpr6518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET246_tree = this.adaptor.create(RBRACKET246); + this.adaptor.addChild(root_0, RBRACKET246_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PathExpr_return: (function() { + XQueryParser.p_PathExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PathExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:908:1: p_PathExpr : ( ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr ); + // $ANTLR start "p_PathExpr" + p_PathExpr: function() { + var retval = new XQueryParser.p_PathExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SLASH247 = null; + var SLASH249 = null; + var SLASH_SLASH250 = null; + var p_RelativePathExpr248 = null; + var p_RelativePathExpr251 = null; + var p_RelativePathExpr252 = null; + + var SLASH247_tree=null; + var SLASH249_tree=null; + var SLASH_SLASH250_tree=null; + + try { + // xquery/XQueryParser.g:909:9: ( ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr ) + var alt117=4; + alt117 = this.dfa117.predict(this.input); + switch (alt117) { + case 1 : + // xquery/XQueryParser.g:909:11: ( SLASH p_RelativePathExpr )=> ( SLASH p_RelativePathExpr ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:909:41: ( SLASH p_RelativePathExpr ) + // xquery/XQueryParser.g:909:42: SLASH p_RelativePathExpr + SLASH247=this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_p_PathExpr6561); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH247_tree = this.adaptor.create(SLASH247); + this.adaptor.addChild(root_0, SLASH247_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6563); + p_RelativePathExpr248=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr248.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:910:11: SLASH + root_0 = this.adaptor.nil(); + + SLASH249=this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_p_PathExpr6576); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH249_tree = this.adaptor.create(SLASH249); + this.adaptor.addChild(root_0, SLASH249_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:911:11: SLASH_SLASH p_RelativePathExpr + root_0 = this.adaptor.nil(); + + SLASH_SLASH250=this.match(this.input,SLASH_SLASH,XQueryParser.FOLLOW_SLASH_SLASH_in_p_PathExpr6588); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SLASH_SLASH250_tree = this.adaptor.create(SLASH_SLASH250); + this.adaptor.addChild(root_0, SLASH_SLASH250_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6590); + p_RelativePathExpr251=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr251.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:912:11: p_RelativePathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_p_PathExpr6602); + p_RelativePathExpr252=this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RelativePathExpr252.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RelativePathExpr_return: (function() { + XQueryParser.p_RelativePathExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RelativePathExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:916:1: p_RelativePathExpr : p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* ; + // $ANTLR start "p_RelativePathExpr" + p_RelativePathExpr: function() { + var retval = new XQueryParser.p_RelativePathExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set254 = null; + var p_StepExpr253 = null; + var p_StepExpr255 = null; + + var set254_tree=null; + + try { + // xquery/XQueryParser.g:917:9: ( p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* ) + // xquery/XQueryParser.g:917:11: p_StepExpr ( ( SLASH | SLASH_SLASH ) p_StepExpr )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StepExpr_in_p_RelativePathExpr6630); + p_StepExpr253=this.p_StepExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StepExpr253.getTree()); + // xquery/XQueryParser.g:917:22: ( ( SLASH | SLASH_SLASH ) p_StepExpr )* + loop118: + do { + var alt118=2; + var LA118_0 = this.input.LA(1); + + if ( ((LA118_0>=SLASH && LA118_0<=SLASH_SLASH)) ) { + alt118=1; + } + + + switch (alt118) { + case 1 : + // xquery/XQueryParser.g:917:23: ( SLASH | SLASH_SLASH ) p_StepExpr + set254=this.input.LT(1); + if ( (this.input.LA(1)>=SLASH && this.input.LA(1)<=SLASH_SLASH) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set254)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.pushFollow(XQueryParser.FOLLOW_p_StepExpr_in_p_RelativePathExpr6641); + p_StepExpr255=this.p_StepExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StepExpr255.getTree()); + + + break; + + default : + break loop118; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StepExpr_return: (function() { + XQueryParser.p_StepExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StepExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:921:1: p_StepExpr : ( ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep ); + // $ANTLR start "p_StepExpr" + p_StepExpr: function() { + var retval = new XQueryParser.p_StepExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PostfixExpr256 = null; + var p_PostfixExpr257 = null; + var p_AxisStep258 = null; + var p_PostfixExpr259 = null; + var p_PostfixExpr260 = null; + var p_AxisStep261 = null; + + + try { + // xquery/XQueryParser.g:922:9: ( ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep ) + var alt119=6; + alt119 = this.dfa119.predict(this.input); + switch (alt119) { + case 1 : + // xquery/XQueryParser.g:922:11: ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6695); + p_PostfixExpr256=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr256.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:923:11: ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6809); + p_PostfixExpr257=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr257.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:928:11: ( p_KindTest )=> p_AxisStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AxisStep_in_p_StepExpr6827); + p_AxisStep258=this.p_AxisStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AxisStep258.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:929:11: ( p_QName LPAREN )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6848); + p_PostfixExpr259=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr259.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:930:11: ( p_PrimaryExpr )=> p_PostfixExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PostfixExpr_in_p_StepExpr6866); + p_PostfixExpr260=this.p_PostfixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PostfixExpr260.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:931:11: p_AxisStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AxisStep_in_p_StepExpr6878); + p_AxisStep261=this.p_AxisStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AxisStep261.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AxisStep_return: (function() { + XQueryParser.p_AxisStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AxisStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:935:1: p_AxisStep : ( p_ReverseStep | p_ForwardStep ) p_PredicateList ; + // $ANTLR start "p_AxisStep" + p_AxisStep: function() { + var retval = new XQueryParser.p_AxisStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ReverseStep262 = null; + var p_ForwardStep263 = null; + var p_PredicateList264 = null; + + + try { + // xquery/XQueryParser.g:936:9: ( ( p_ReverseStep | p_ForwardStep ) p_PredicateList ) + // xquery/XQueryParser.g:936:11: ( p_ReverseStep | p_ForwardStep ) p_PredicateList + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:936:11: ( p_ReverseStep | p_ForwardStep ) + var alt120=2; + switch ( this.input.LA(1) ) { + case PARENT: + var LA120_1 = this.input.LA(2); + + if ( (LA120_1==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_1==EOF||(LA120_1>=AND && LA120_1<=ASCENDING)||(LA120_1>=BY && LA120_1<=CASTABLE)||LA120_1==COLLATION||LA120_1==DEFAULT||(LA120_1>=DESCENDING && LA120_1<=DIV)||LA120_1==EMPTY||LA120_1==EQ||LA120_1==EXCEPT||LA120_1==FOR||LA120_1==GE||(LA120_1>=GT && LA120_1<=IDIV)||(LA120_1>=INSTANCE && LA120_1<=IS)||LA120_1==LE||(LA120_1>=LET && LA120_1<=MOD)||LA120_1==NE||(LA120_1>=OR && LA120_1<=ORDER)||(LA120_1>=RETURN && LA120_1<=SATISFIES)||LA120_1==STABLE||(LA120_1>=TO && LA120_1<=TREAT)||LA120_1==UNION||LA120_1==WHERE||LA120_1==COUNT||(LA120_1>=END && LA120_1<=GROUP)||LA120_1==ONLY||LA120_1==START||(LA120_1>=AFTER && LA120_1<=BEFORE)||LA120_1==INTO||LA120_1==MODIFY||LA120_1==WITH||LA120_1==CONTAINS||LA120_1==PARAGRAPHS||LA120_1==SENTENCES||LA120_1==TIMES||LA120_1==WORDS||LA120_1==CONCAT||LA120_1==RPAREN||(LA120_1>=RBRACKET && LA120_1<=EQUAL)||LA120_1==NOTEQUAL||LA120_1==COMMA||(LA120_1>=STAR && LA120_1<=SLASH_SLASH)||LA120_1==COLON||(LA120_1>=SEMICOLON && LA120_1<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 1, this.input); + + throw nvae; + } + break; + case ANCESTOR: + var LA120_2 = this.input.LA(2); + + if ( (LA120_2==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_2==EOF||(LA120_2>=AND && LA120_2<=ASCENDING)||(LA120_2>=BY && LA120_2<=CASTABLE)||LA120_2==COLLATION||LA120_2==DEFAULT||(LA120_2>=DESCENDING && LA120_2<=DIV)||LA120_2==EMPTY||LA120_2==EQ||LA120_2==EXCEPT||LA120_2==FOR||LA120_2==GE||(LA120_2>=GT && LA120_2<=IDIV)||(LA120_2>=INSTANCE && LA120_2<=IS)||LA120_2==LE||(LA120_2>=LET && LA120_2<=MOD)||LA120_2==NE||(LA120_2>=OR && LA120_2<=ORDER)||(LA120_2>=RETURN && LA120_2<=SATISFIES)||LA120_2==STABLE||(LA120_2>=TO && LA120_2<=TREAT)||LA120_2==UNION||LA120_2==WHERE||LA120_2==COUNT||(LA120_2>=END && LA120_2<=GROUP)||LA120_2==ONLY||LA120_2==START||(LA120_2>=AFTER && LA120_2<=BEFORE)||LA120_2==INTO||LA120_2==MODIFY||LA120_2==WITH||LA120_2==CONTAINS||LA120_2==PARAGRAPHS||LA120_2==SENTENCES||LA120_2==TIMES||LA120_2==WORDS||LA120_2==CONCAT||LA120_2==RPAREN||(LA120_2>=RBRACKET && LA120_2<=EQUAL)||LA120_2==NOTEQUAL||LA120_2==COMMA||(LA120_2>=STAR && LA120_2<=SLASH_SLASH)||LA120_2==COLON||(LA120_2>=SEMICOLON && LA120_2<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 2, this.input); + + throw nvae; + } + break; + case PRECEDING_SIBLING: + var LA120_3 = this.input.LA(2); + + if ( (LA120_3==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_3==EOF||(LA120_3>=AND && LA120_3<=ASCENDING)||(LA120_3>=BY && LA120_3<=CASTABLE)||LA120_3==COLLATION||LA120_3==DEFAULT||(LA120_3>=DESCENDING && LA120_3<=DIV)||LA120_3==EMPTY||LA120_3==EQ||LA120_3==EXCEPT||LA120_3==FOR||LA120_3==GE||(LA120_3>=GT && LA120_3<=IDIV)||(LA120_3>=INSTANCE && LA120_3<=IS)||LA120_3==LE||(LA120_3>=LET && LA120_3<=MOD)||LA120_3==NE||(LA120_3>=OR && LA120_3<=ORDER)||(LA120_3>=RETURN && LA120_3<=SATISFIES)||LA120_3==STABLE||(LA120_3>=TO && LA120_3<=TREAT)||LA120_3==UNION||LA120_3==WHERE||LA120_3==COUNT||(LA120_3>=END && LA120_3<=GROUP)||LA120_3==ONLY||LA120_3==START||(LA120_3>=AFTER && LA120_3<=BEFORE)||LA120_3==INTO||LA120_3==MODIFY||LA120_3==WITH||LA120_3==CONTAINS||LA120_3==PARAGRAPHS||LA120_3==SENTENCES||LA120_3==TIMES||LA120_3==WORDS||LA120_3==CONCAT||LA120_3==RPAREN||(LA120_3>=RBRACKET && LA120_3<=EQUAL)||LA120_3==NOTEQUAL||LA120_3==COMMA||(LA120_3>=STAR && LA120_3<=SLASH_SLASH)||LA120_3==COLON||(LA120_3>=SEMICOLON && LA120_3<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 3, this.input); + + throw nvae; + } + break; + case PRECEDING: + var LA120_4 = this.input.LA(2); + + if ( (LA120_4==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_4==EOF||(LA120_4>=AND && LA120_4<=ASCENDING)||(LA120_4>=BY && LA120_4<=CASTABLE)||LA120_4==COLLATION||LA120_4==DEFAULT||(LA120_4>=DESCENDING && LA120_4<=DIV)||LA120_4==EMPTY||LA120_4==EQ||LA120_4==EXCEPT||LA120_4==FOR||LA120_4==GE||(LA120_4>=GT && LA120_4<=IDIV)||(LA120_4>=INSTANCE && LA120_4<=IS)||LA120_4==LE||(LA120_4>=LET && LA120_4<=MOD)||LA120_4==NE||(LA120_4>=OR && LA120_4<=ORDER)||(LA120_4>=RETURN && LA120_4<=SATISFIES)||LA120_4==STABLE||(LA120_4>=TO && LA120_4<=TREAT)||LA120_4==UNION||LA120_4==WHERE||LA120_4==COUNT||(LA120_4>=END && LA120_4<=GROUP)||LA120_4==ONLY||LA120_4==START||(LA120_4>=AFTER && LA120_4<=BEFORE)||LA120_4==INTO||LA120_4==MODIFY||LA120_4==WITH||LA120_4==CONTAINS||LA120_4==PARAGRAPHS||LA120_4==SENTENCES||LA120_4==TIMES||LA120_4==WORDS||LA120_4==CONCAT||LA120_4==RPAREN||(LA120_4>=RBRACKET && LA120_4<=EQUAL)||LA120_4==NOTEQUAL||LA120_4==COMMA||(LA120_4>=STAR && LA120_4<=SLASH_SLASH)||LA120_4==COLON||(LA120_4>=SEMICOLON && LA120_4<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 4, this.input); + + throw nvae; + } + break; + case ANCESTOR_OR_SELF: + var LA120_5 = this.input.LA(2); + + if ( (LA120_5==COLON_COLON) ) { + alt120=1; + } + else if ( (LA120_5==EOF||(LA120_5>=AND && LA120_5<=ASCENDING)||(LA120_5>=BY && LA120_5<=CASTABLE)||LA120_5==COLLATION||LA120_5==DEFAULT||(LA120_5>=DESCENDING && LA120_5<=DIV)||LA120_5==EMPTY||LA120_5==EQ||LA120_5==EXCEPT||LA120_5==FOR||LA120_5==GE||(LA120_5>=GT && LA120_5<=IDIV)||(LA120_5>=INSTANCE && LA120_5<=IS)||LA120_5==LE||(LA120_5>=LET && LA120_5<=MOD)||LA120_5==NE||(LA120_5>=OR && LA120_5<=ORDER)||(LA120_5>=RETURN && LA120_5<=SATISFIES)||LA120_5==STABLE||(LA120_5>=TO && LA120_5<=TREAT)||LA120_5==UNION||LA120_5==WHERE||LA120_5==COUNT||(LA120_5>=END && LA120_5<=GROUP)||LA120_5==ONLY||LA120_5==START||(LA120_5>=AFTER && LA120_5<=BEFORE)||LA120_5==INTO||LA120_5==MODIFY||LA120_5==WITH||LA120_5==CONTAINS||LA120_5==PARAGRAPHS||LA120_5==SENTENCES||LA120_5==TIMES||LA120_5==WORDS||LA120_5==CONCAT||LA120_5==RPAREN||(LA120_5>=RBRACKET && LA120_5<=EQUAL)||LA120_5==NOTEQUAL||LA120_5==COMMA||(LA120_5>=STAR && LA120_5<=SLASH_SLASH)||LA120_5==COLON||(LA120_5>=SEMICOLON && LA120_5<=VBAR)) ) { + alt120=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 5, this.input); + + throw nvae; + } + break; + case DOT_DOT: + alt120=1; + break; + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case STAR: + case ATTR_SIGN: + case APOS: + case QUOT: + case L_NCName: + case EXPLICITLY: + alt120=2; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 120, 0, this.input); + + throw nvae; + } + + switch (alt120) { + case 1 : + // xquery/XQueryParser.g:936:12: p_ReverseStep + this.pushFollow(XQueryParser.FOLLOW_p_ReverseStep_in_p_AxisStep6905); + p_ReverseStep262=this.p_ReverseStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReverseStep262.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:936:28: p_ForwardStep + this.pushFollow(XQueryParser.FOLLOW_p_ForwardStep_in_p_AxisStep6909); + p_ForwardStep263=this.p_ForwardStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForwardStep263.getTree()); + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_PredicateList_in_p_AxisStep6912); + p_PredicateList264=this.p_PredicateList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PredicateList264.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForwardStep_return: (function() { + XQueryParser.p_ForwardStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForwardStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:940:1: p_ForwardStep : ( p_ForwardAxis p_NodeTest | p_AbbrevForwardStep ); + // $ANTLR start "p_ForwardStep" + p_ForwardStep: function() { + var retval = new XQueryParser.p_ForwardStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ForwardAxis265 = null; + var p_NodeTest266 = null; + var p_AbbrevForwardStep267 = null; + + + try { + // xquery/XQueryParser.g:941:9: ( p_ForwardAxis p_NodeTest | p_AbbrevForwardStep ) + var alt121=2; + alt121 = this.dfa121.predict(this.input); + switch (alt121) { + case 1 : + // xquery/XQueryParser.g:941:11: p_ForwardAxis p_NodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ForwardAxis_in_p_ForwardStep6938); + p_ForwardAxis265=this.p_ForwardAxis(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ForwardAxis265.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_ForwardStep6940); + p_NodeTest266=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest266.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:942:11: p_AbbrevForwardStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AbbrevForwardStep_in_p_ForwardStep6952); + p_AbbrevForwardStep267=this.p_AbbrevForwardStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AbbrevForwardStep267.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ForwardAxis_return: (function() { + XQueryParser.p_ForwardAxis_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ForwardAxis_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:946:1: p_ForwardAxis : ( CHILD COLON_COLON | DESCENDANT COLON_COLON | ATTRIBUTE COLON_COLON | SELF COLON_COLON | DESCENDANT_OR_SELF COLON_COLON | FOLLOWING_SIBLING COLON_COLON | FOLLOWING COLON_COLON ); + // $ANTLR start "p_ForwardAxis" + p_ForwardAxis: function() { + var retval = new XQueryParser.p_ForwardAxis_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var CHILD268 = null; + var COLON_COLON269 = null; + var DESCENDANT270 = null; + var COLON_COLON271 = null; + var ATTRIBUTE272 = null; + var COLON_COLON273 = null; + var SELF274 = null; + var COLON_COLON275 = null; + var DESCENDANT_OR_SELF276 = null; + var COLON_COLON277 = null; + var FOLLOWING_SIBLING278 = null; + var COLON_COLON279 = null; + var FOLLOWING280 = null; + var COLON_COLON281 = null; + + var CHILD268_tree=null; + var COLON_COLON269_tree=null; + var DESCENDANT270_tree=null; + var COLON_COLON271_tree=null; + var ATTRIBUTE272_tree=null; + var COLON_COLON273_tree=null; + var SELF274_tree=null; + var COLON_COLON275_tree=null; + var DESCENDANT_OR_SELF276_tree=null; + var COLON_COLON277_tree=null; + var FOLLOWING_SIBLING278_tree=null; + var COLON_COLON279_tree=null; + var FOLLOWING280_tree=null; + var COLON_COLON281_tree=null; + + try { + // xquery/XQueryParser.g:947:9: ( CHILD COLON_COLON | DESCENDANT COLON_COLON | ATTRIBUTE COLON_COLON | SELF COLON_COLON | DESCENDANT_OR_SELF COLON_COLON | FOLLOWING_SIBLING COLON_COLON | FOLLOWING COLON_COLON ) + var alt122=7; + switch ( this.input.LA(1) ) { + case CHILD: + alt122=1; + break; + case DESCENDANT: + alt122=2; + break; + case ATTRIBUTE: + alt122=3; + break; + case SELF: + alt122=4; + break; + case DESCENDANT_OR_SELF: + alt122=5; + break; + case FOLLOWING_SIBLING: + alt122=6; + break; + case FOLLOWING: + alt122=7; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 122, 0, this.input); + + throw nvae; + } + + switch (alt122) { + case 1 : + // xquery/XQueryParser.g:947:11: CHILD COLON_COLON + root_0 = this.adaptor.nil(); + + CHILD268=this.match(this.input,CHILD,XQueryParser.FOLLOW_CHILD_in_p_ForwardAxis6978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + CHILD268_tree = this.adaptor.create(CHILD268); + this.adaptor.addChild(root_0, CHILD268_tree); + } + COLON_COLON269=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis6980); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON269_tree = this.adaptor.create(COLON_COLON269); + this.adaptor.addChild(root_0, COLON_COLON269_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:948:11: DESCENDANT COLON_COLON + root_0 = this.adaptor.nil(); + + DESCENDANT270=this.match(this.input,DESCENDANT,XQueryParser.FOLLOW_DESCENDANT_in_p_ForwardAxis6992); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DESCENDANT270_tree = this.adaptor.create(DESCENDANT270); + this.adaptor.addChild(root_0, DESCENDANT270_tree); + } + COLON_COLON271=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis6994); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON271_tree = this.adaptor.create(COLON_COLON271); + this.adaptor.addChild(root_0, COLON_COLON271_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:949:11: ATTRIBUTE COLON_COLON + root_0 = this.adaptor.nil(); + + ATTRIBUTE272=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_p_ForwardAxis7006); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTRIBUTE272_tree = this.adaptor.create(ATTRIBUTE272); + this.adaptor.addChild(root_0, ATTRIBUTE272_tree); + } + COLON_COLON273=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7008); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON273_tree = this.adaptor.create(COLON_COLON273); + this.adaptor.addChild(root_0, COLON_COLON273_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:950:11: SELF COLON_COLON + root_0 = this.adaptor.nil(); + + SELF274=this.match(this.input,SELF,XQueryParser.FOLLOW_SELF_in_p_ForwardAxis7020); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SELF274_tree = this.adaptor.create(SELF274); + this.adaptor.addChild(root_0, SELF274_tree); + } + COLON_COLON275=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7022); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON275_tree = this.adaptor.create(COLON_COLON275); + this.adaptor.addChild(root_0, COLON_COLON275_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:951:11: DESCENDANT_OR_SELF COLON_COLON + root_0 = this.adaptor.nil(); + + DESCENDANT_OR_SELF276=this.match(this.input,DESCENDANT_OR_SELF,XQueryParser.FOLLOW_DESCENDANT_OR_SELF_in_p_ForwardAxis7034); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DESCENDANT_OR_SELF276_tree = this.adaptor.create(DESCENDANT_OR_SELF276); + this.adaptor.addChild(root_0, DESCENDANT_OR_SELF276_tree); + } + COLON_COLON277=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7036); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON277_tree = this.adaptor.create(COLON_COLON277); + this.adaptor.addChild(root_0, COLON_COLON277_tree); + } + + + break; + case 6 : + // xquery/XQueryParser.g:952:11: FOLLOWING_SIBLING COLON_COLON + root_0 = this.adaptor.nil(); + + FOLLOWING_SIBLING278=this.match(this.input,FOLLOWING_SIBLING,XQueryParser.FOLLOW_FOLLOWING_SIBLING_in_p_ForwardAxis7048); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FOLLOWING_SIBLING278_tree = this.adaptor.create(FOLLOWING_SIBLING278); + this.adaptor.addChild(root_0, FOLLOWING_SIBLING278_tree); + } + COLON_COLON279=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7050); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON279_tree = this.adaptor.create(COLON_COLON279); + this.adaptor.addChild(root_0, COLON_COLON279_tree); + } + + + break; + case 7 : + // xquery/XQueryParser.g:953:11: FOLLOWING COLON_COLON + root_0 = this.adaptor.nil(); + + FOLLOWING280=this.match(this.input,FOLLOWING,XQueryParser.FOLLOW_FOLLOWING_in_p_ForwardAxis7062); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FOLLOWING280_tree = this.adaptor.create(FOLLOWING280); + this.adaptor.addChild(root_0, FOLLOWING280_tree); + } + COLON_COLON281=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ForwardAxis7064); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON281_tree = this.adaptor.create(COLON_COLON281); + this.adaptor.addChild(root_0, COLON_COLON281_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AbbrevForwardStep_return: (function() { + XQueryParser.p_AbbrevForwardStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AbbrevForwardStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:957:1: p_AbbrevForwardStep : ( ATTR_SIGN )? p_NodeTest ; + // $ANTLR start "p_AbbrevForwardStep" + p_AbbrevForwardStep: function() { + var retval = new XQueryParser.p_AbbrevForwardStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ATTR_SIGN282 = null; + var p_NodeTest283 = null; + + var ATTR_SIGN282_tree=null; + + try { + // xquery/XQueryParser.g:958:9: ( ( ATTR_SIGN )? p_NodeTest ) + // xquery/XQueryParser.g:958:11: ( ATTR_SIGN )? p_NodeTest + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:958:11: ( ATTR_SIGN )? + var alt123=2; + var LA123_0 = this.input.LA(1); + + if ( (LA123_0==ATTR_SIGN) ) { + alt123=1; + } + switch (alt123) { + case 1 : + // xquery/XQueryParser.g:958:11: ATTR_SIGN + ATTR_SIGN282=this.match(this.input,ATTR_SIGN,XQueryParser.FOLLOW_ATTR_SIGN_in_p_AbbrevForwardStep7090); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTR_SIGN282_tree = this.adaptor.create(ATTR_SIGN282); + this.adaptor.addChild(root_0, ATTR_SIGN282_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_AbbrevForwardStep7093); + p_NodeTest283=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest283.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReverseStep_return: (function() { + XQueryParser.p_ReverseStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReverseStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:962:1: p_ReverseStep : ( p_ReverseAxis p_NodeTest | p_AbbrevReverseStep ); + // $ANTLR start "p_ReverseStep" + p_ReverseStep: function() { + var retval = new XQueryParser.p_ReverseStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ReverseAxis284 = null; + var p_NodeTest285 = null; + var p_AbbrevReverseStep286 = null; + + + try { + // xquery/XQueryParser.g:963:9: ( p_ReverseAxis p_NodeTest | p_AbbrevReverseStep ) + var alt124=2; + var LA124_0 = this.input.LA(1); + + if ( ((LA124_0>=ANCESTOR && LA124_0<=ANCESTOR_OR_SELF)||(LA124_0>=PARENT && LA124_0<=PRECEDING_SIBLING)) ) { + alt124=1; + } + else if ( (LA124_0==DOT_DOT) ) { + alt124=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 124, 0, this.input); + + throw nvae; + } + switch (alt124) { + case 1 : + // xquery/XQueryParser.g:963:11: p_ReverseAxis p_NodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ReverseAxis_in_p_ReverseStep7119); + p_ReverseAxis284=this.p_ReverseAxis(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReverseAxis284.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_NodeTest_in_p_ReverseStep7121); + p_NodeTest285=this.p_NodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NodeTest285.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:964:11: p_AbbrevReverseStep + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AbbrevReverseStep_in_p_ReverseStep7133); + p_AbbrevReverseStep286=this.p_AbbrevReverseStep(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AbbrevReverseStep286.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReverseAxis_return: (function() { + XQueryParser.p_ReverseAxis_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReverseAxis_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:968:1: p_ReverseAxis : ( PARENT COLON_COLON | ANCESTOR COLON_COLON | PRECEDING_SIBLING COLON_COLON | PRECEDING COLON_COLON | ANCESTOR_OR_SELF COLON_COLON ); + // $ANTLR start "p_ReverseAxis" + p_ReverseAxis: function() { + var retval = new XQueryParser.p_ReverseAxis_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var PARENT287 = null; + var COLON_COLON288 = null; + var ANCESTOR289 = null; + var COLON_COLON290 = null; + var PRECEDING_SIBLING291 = null; + var COLON_COLON292 = null; + var PRECEDING293 = null; + var COLON_COLON294 = null; + var ANCESTOR_OR_SELF295 = null; + var COLON_COLON296 = null; + + var PARENT287_tree=null; + var COLON_COLON288_tree=null; + var ANCESTOR289_tree=null; + var COLON_COLON290_tree=null; + var PRECEDING_SIBLING291_tree=null; + var COLON_COLON292_tree=null; + var PRECEDING293_tree=null; + var COLON_COLON294_tree=null; + var ANCESTOR_OR_SELF295_tree=null; + var COLON_COLON296_tree=null; + + try { + // xquery/XQueryParser.g:969:9: ( PARENT COLON_COLON | ANCESTOR COLON_COLON | PRECEDING_SIBLING COLON_COLON | PRECEDING COLON_COLON | ANCESTOR_OR_SELF COLON_COLON ) + var alt125=5; + switch ( this.input.LA(1) ) { + case PARENT: + alt125=1; + break; + case ANCESTOR: + alt125=2; + break; + case PRECEDING_SIBLING: + alt125=3; + break; + case PRECEDING: + alt125=4; + break; + case ANCESTOR_OR_SELF: + alt125=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 125, 0, this.input); + + throw nvae; + } + + switch (alt125) { + case 1 : + // xquery/XQueryParser.g:969:11: PARENT COLON_COLON + root_0 = this.adaptor.nil(); + + PARENT287=this.match(this.input,PARENT,XQueryParser.FOLLOW_PARENT_in_p_ReverseAxis7159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PARENT287_tree = this.adaptor.create(PARENT287); + this.adaptor.addChild(root_0, PARENT287_tree); + } + COLON_COLON288=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7161); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON288_tree = this.adaptor.create(COLON_COLON288); + this.adaptor.addChild(root_0, COLON_COLON288_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:970:11: ANCESTOR COLON_COLON + root_0 = this.adaptor.nil(); + + ANCESTOR289=this.match(this.input,ANCESTOR,XQueryParser.FOLLOW_ANCESTOR_in_p_ReverseAxis7173); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANCESTOR289_tree = this.adaptor.create(ANCESTOR289); + this.adaptor.addChild(root_0, ANCESTOR289_tree); + } + COLON_COLON290=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7175); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON290_tree = this.adaptor.create(COLON_COLON290); + this.adaptor.addChild(root_0, COLON_COLON290_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:971:11: PRECEDING_SIBLING COLON_COLON + root_0 = this.adaptor.nil(); + + PRECEDING_SIBLING291=this.match(this.input,PRECEDING_SIBLING,XQueryParser.FOLLOW_PRECEDING_SIBLING_in_p_ReverseAxis7187); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PRECEDING_SIBLING291_tree = this.adaptor.create(PRECEDING_SIBLING291); + this.adaptor.addChild(root_0, PRECEDING_SIBLING291_tree); + } + COLON_COLON292=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7189); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON292_tree = this.adaptor.create(COLON_COLON292); + this.adaptor.addChild(root_0, COLON_COLON292_tree); + } + + + break; + case 4 : + // xquery/XQueryParser.g:972:11: PRECEDING COLON_COLON + root_0 = this.adaptor.nil(); + + PRECEDING293=this.match(this.input,PRECEDING,XQueryParser.FOLLOW_PRECEDING_in_p_ReverseAxis7201); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PRECEDING293_tree = this.adaptor.create(PRECEDING293); + this.adaptor.addChild(root_0, PRECEDING293_tree); + } + COLON_COLON294=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7203); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON294_tree = this.adaptor.create(COLON_COLON294); + this.adaptor.addChild(root_0, COLON_COLON294_tree); + } + + + break; + case 5 : + // xquery/XQueryParser.g:973:11: ANCESTOR_OR_SELF COLON_COLON + root_0 = this.adaptor.nil(); + + ANCESTOR_OR_SELF295=this.match(this.input,ANCESTOR_OR_SELF,XQueryParser.FOLLOW_ANCESTOR_OR_SELF_in_p_ReverseAxis7215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ANCESTOR_OR_SELF295_tree = this.adaptor.create(ANCESTOR_OR_SELF295); + this.adaptor.addChild(root_0, ANCESTOR_OR_SELF295_tree); + } + COLON_COLON296=this.match(this.input,COLON_COLON,XQueryParser.FOLLOW_COLON_COLON_in_p_ReverseAxis7217); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON_COLON296_tree = this.adaptor.create(COLON_COLON296); + this.adaptor.addChild(root_0, COLON_COLON296_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AbbrevReverseStep_return: (function() { + XQueryParser.p_AbbrevReverseStep_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AbbrevReverseStep_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:977:1: p_AbbrevReverseStep : DOT_DOT ; + // $ANTLR start "p_AbbrevReverseStep" + p_AbbrevReverseStep: function() { + var retval = new XQueryParser.p_AbbrevReverseStep_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOT_DOT297 = null; + + var DOT_DOT297_tree=null; + + try { + // xquery/XQueryParser.g:978:9: ( DOT_DOT ) + // xquery/XQueryParser.g:978:11: DOT_DOT + root_0 = this.adaptor.nil(); + + DOT_DOT297=this.match(this.input,DOT_DOT,XQueryParser.FOLLOW_DOT_DOT_in_p_AbbrevReverseStep7243); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOT_DOT297_tree = this.adaptor.create(DOT_DOT297); + this.adaptor.addChild(root_0, DOT_DOT297_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NodeTest_return: (function() { + XQueryParser.p_NodeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NodeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:982:1: p_NodeTest : ( p_KindTest | p_NameTest ); + // $ANTLR start "p_NodeTest" + p_NodeTest: function() { + var retval = new XQueryParser.p_NodeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_KindTest298 = null; + var p_NameTest299 = null; + + + try { + // xquery/XQueryParser.g:983:9: ( p_KindTest | p_NameTest ) + var alt126=2; + alt126 = this.dfa126.predict(this.input); + switch (alt126) { + case 1 : + // xquery/XQueryParser.g:983:11: p_KindTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_NodeTest7269); + p_KindTest298=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_KindTest298.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:983:24: p_NameTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NameTest_in_p_NodeTest7273); + p_NameTest299=this.p_NameTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NameTest299.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NameTest_return: (function() { + XQueryParser.p_NameTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NameTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:987:1: p_NameTest : ( ( p_Wildcard )=> p_Wildcard | ( p_NCName COLON )=> p_QName | ( p_NCName )=> p_QName ); + // $ANTLR start "p_NameTest" + p_NameTest: function() { + var retval = new XQueryParser.p_NameTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Wildcard300 = null; + var p_QName301 = null; + var p_QName302 = null; + + + try { + // xquery/XQueryParser.g:988:9: ( ( p_Wildcard )=> p_Wildcard | ( p_NCName COLON )=> p_QName | ( p_NCName )=> p_QName ) + var alt127=3; + var LA127_0 = this.input.LA(1); + + if ( (LA127_0==STAR) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( ((LA127_0>=ANCESTOR && LA127_0<=SKIP)||(LA127_0>=VALUE && LA127_0<=QUOT_ER)||LA127_0==L_NCName||LA127_0==EXPLICITLY) ) { + var LA127_2 = this.input.LA(2); + + if ( (LA127_2==COLON) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( (this.synpred14_XQueryParser()) ) { + alt127=2; + } + else if ( (this.synpred15_XQueryParser()) ) { + alt127=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 127, 2, this.input); + + throw nvae; + } + } + else if ( (LA127_0==QUOT) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else if ( (LA127_0==APOS) && (this.synpred13_XQueryParser())) { + alt127=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 127, 0, this.input); + + throw nvae; + } + switch (alt127) { + case 1 : + // xquery/XQueryParser.g:988:11: ( p_Wildcard )=> p_Wildcard + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Wildcard_in_p_NameTest7305); + p_Wildcard300=this.p_Wildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Wildcard300.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:989:11: ( p_NCName COLON )=> p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NameTest7326); + p_QName301=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName301.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:990:11: ( p_NCName )=> p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_NameTest7344); + p_QName302=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName302.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Wildcard_return: (function() { + XQueryParser.p_Wildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Wildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:994:1: p_Wildcard : ( STAR ( COLON p_NCName )? | p_NCName COLON STAR | p_StringLiteral COLON STAR ); + // $ANTLR start "p_Wildcard" + p_Wildcard: function() { + var retval = new XQueryParser.p_Wildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR303 = null; + var COLON304 = null; + var COLON307 = null; + var STAR308 = null; + var COLON310 = null; + var STAR311 = null; + var p_NCName305 = null; + var p_NCName306 = null; + var p_StringLiteral309 = null; + + var STAR303_tree=null; + var COLON304_tree=null; + var COLON307_tree=null; + var STAR308_tree=null; + var COLON310_tree=null; + var STAR311_tree=null; + + this.setWsExplicit(true); + try { + // xquery/XQueryParser.g:995:9: ( STAR ( COLON p_NCName )? | p_NCName COLON STAR | p_StringLiteral COLON STAR ) + var alt129=3; + switch ( this.input.LA(1) ) { + case STAR: + alt129=1; + break; + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case ATTRIBUTE: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case COMMENT: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case DOCUMENT_NODE: + case ELEMENT: + case ELSE: + case EMPTY: + case EMPTY_SEQUENCE: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IF: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case ITEM: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case NODE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case PROCESSING_INSTRUCTION: + case RETURN: + case SATISFIES: + case SCHEMA: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case TEXT: + case THEN: + case TO: + case TREAT: + case TYPESWITCH: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAMESPACE_NODE: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case SWITCH: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case WHILE: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case L_NCName: + case EXPLICITLY: + alt129=2; + break; + case APOS: + case QUOT: + alt129=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 129, 0, this.input); + + throw nvae; + } + + switch (alt129) { + case 1 : + // xquery/XQueryParser.g:995:11: STAR ( COLON p_NCName )? + root_0 = this.adaptor.nil(); + + STAR303=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7374); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR303_tree = this.adaptor.create(STAR303); + this.adaptor.addChild(root_0, STAR303_tree); + } + // xquery/XQueryParser.g:995:16: ( COLON p_NCName )? + var alt128=2; + var LA128_0 = this.input.LA(1); + + if ( (LA128_0==COLON) ) { + alt128=1; + } + switch (alt128) { + case 1 : + // xquery/XQueryParser.g:995:17: COLON p_NCName + COLON304=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7377); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON304_tree = this.adaptor.create(COLON304); + this.adaptor.addChild(root_0, COLON304_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Wildcard7379); + p_NCName305=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName305.getTree()); + + + break; + + } + + + + break; + case 2 : + // xquery/XQueryParser.g:996:11: p_NCName COLON STAR + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Wildcard7393); + p_NCName306=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName306.getTree()); + COLON307=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7395); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON307_tree = this.adaptor.create(COLON307); + this.adaptor.addChild(root_0, COLON307_tree); + } + STAR308=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR308_tree = this.adaptor.create(STAR308); + this.adaptor.addChild(root_0, STAR308_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:997:11: p_StringLiteral COLON STAR + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_Wildcard7409); + p_StringLiteral309=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral309.getTree()); + COLON310=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_p_Wildcard7411); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COLON310_tree = this.adaptor.create(COLON310); + this.adaptor.addChild(root_0, COLON310_tree); + } + STAR311=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_Wildcard7413); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR311_tree = this.adaptor.create(STAR311); + this.adaptor.addChild(root_0, STAR311_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.setWsExplicit(false); + } + return retval; + }, + + // inline static return class + p_PostfixExpr_return: (function() { + XQueryParser.p_PostfixExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PostfixExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1002:1: p_PostfixExpr : p_PrimaryExpr ( p_Predicate )* ; + // $ANTLR start "p_PostfixExpr" + p_PostfixExpr: function() { + var retval = new XQueryParser.p_PostfixExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PrimaryExpr312 = null; + var p_Predicate313 = null; + + + try { + // xquery/XQueryParser.g:1003:9: ( p_PrimaryExpr ( p_Predicate )* ) + // xquery/XQueryParser.g:1003:11: p_PrimaryExpr ( p_Predicate )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PrimaryExpr_in_p_PostfixExpr7451); + p_PrimaryExpr312=this.p_PrimaryExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PrimaryExpr312.getTree()); + // xquery/XQueryParser.g:1003:25: ( p_Predicate )* + loop130: + do { + var alt130=2; + var LA130_0 = this.input.LA(1); + + if ( (LA130_0==LSQUARE) ) { + alt130=1; + } + + + switch (alt130) { + case 1 : + // xquery/XQueryParser.g:1003:26: p_Predicate + this.pushFollow(XQueryParser.FOLLOW_p_Predicate_in_p_PostfixExpr7454); + p_Predicate313=this.p_Predicate(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Predicate313.getTree()); + + + break; + + default : + break loop130; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ArgumentList_return: (function() { + XQueryParser.p_ArgumentList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ArgumentList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1010:1: p_ArgumentList : LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN ; + // $ANTLR start "p_ArgumentList" + p_ArgumentList: function() { + var retval = new XQueryParser.p_ArgumentList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN314 = null; + var COMMA316 = null; + var RPAREN318 = null; + var p_Argument315 = null; + var p_Argument317 = null; + + var LPAREN314_tree=null; + var COMMA316_tree=null; + var RPAREN318_tree=null; + + try { + // xquery/XQueryParser.g:1011:9: ( LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN ) + // xquery/XQueryParser.g:1011:11: LPAREN ( p_Argument ( COMMA p_Argument )* )? RPAREN + root_0 = this.adaptor.nil(); + + LPAREN314=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ArgumentList7495); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN314_tree = this.adaptor.create(LPAREN314); + this.adaptor.addChild(root_0, LPAREN314_tree); + } + // xquery/XQueryParser.g:1011:18: ( p_Argument ( COMMA p_Argument )* )? + var alt132=2; + var LA132_0 = this.input.LA(1); + + if ( ((LA132_0>=ANCESTOR && LA132_0<=QUOT_ER)||LA132_0==LPAREN||(LA132_0>=DOLLAR && LA132_0<=LBRACKET)||(LA132_0>=QUESTION && LA132_0<=SMALLER)||(LA132_0>=SLASH && LA132_0<=DOT_DOT)||LA132_0==ATTR_SIGN||(LA132_0>=APOS && LA132_0<=QUOT)||LA132_0==L_NCName||(LA132_0>=L_Pragma && LA132_0<=L_DoubleLiteral)||LA132_0==EXPLICITLY) ) { + alt132=1; + } + switch (alt132) { + case 1 : + // xquery/XQueryParser.g:1011:19: p_Argument ( COMMA p_Argument )* + this.pushFollow(XQueryParser.FOLLOW_p_Argument_in_p_ArgumentList7498); + p_Argument315=this.p_Argument(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Argument315.getTree()); + // xquery/XQueryParser.g:1011:30: ( COMMA p_Argument )* + loop131: + do { + var alt131=2; + var LA131_0 = this.input.LA(1); + + if ( (LA131_0==COMMA) ) { + alt131=1; + } + + + switch (alt131) { + case 1 : + // xquery/XQueryParser.g:1011:31: COMMA p_Argument + COMMA316=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ArgumentList7501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA316_tree = this.adaptor.create(COMMA316); + this.adaptor.addChild(root_0, COMMA316_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Argument_in_p_ArgumentList7503); + p_Argument317=this.p_Argument(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Argument317.getTree()); + + + break; + + default : + break loop131; + } + } while (true); + + + + break; + + } + + RPAREN318=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ArgumentList7509); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN318_tree = this.adaptor.create(RPAREN318); + this.adaptor.addChild(root_0, RPAREN318_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PredicateList_return: (function() { + XQueryParser.p_PredicateList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PredicateList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1015:1: p_PredicateList : ( p_Predicate )* ; + // $ANTLR start "p_PredicateList" + p_PredicateList: function() { + var retval = new XQueryParser.p_PredicateList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Predicate319 = null; + + + try { + // xquery/XQueryParser.g:1016:9: ( ( p_Predicate )* ) + // xquery/XQueryParser.g:1016:11: ( p_Predicate )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1016:11: ( p_Predicate )* + loop133: + do { + var alt133=2; + var LA133_0 = this.input.LA(1); + + if ( (LA133_0==LSQUARE) ) { + alt133=1; + } + + + switch (alt133) { + case 1 : + // xquery/XQueryParser.g:1016:11: p_Predicate + this.pushFollow(XQueryParser.FOLLOW_p_Predicate_in_p_PredicateList7535); + p_Predicate319=this.p_Predicate(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Predicate319.getTree()); + + + break; + + default : + break loop133; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Predicate_return: (function() { + XQueryParser.p_Predicate_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Predicate_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1020:1: p_Predicate : LSQUARE p_Expr[true,true] RSQUARE ; + // $ANTLR start "p_Predicate" + p_Predicate: function() { + var retval = new XQueryParser.p_Predicate_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LSQUARE320 = null; + var RSQUARE322 = null; + var p_Expr321 = null; + + var LSQUARE320_tree=null; + var RSQUARE322_tree=null; + + try { + // xquery/XQueryParser.g:1021:9: ( LSQUARE p_Expr[true,true] RSQUARE ) + // xquery/XQueryParser.g:1021:11: LSQUARE p_Expr[true,true] RSQUARE + root_0 = this.adaptor.nil(); + + LSQUARE320=this.match(this.input,LSQUARE,XQueryParser.FOLLOW_LSQUARE_in_p_Predicate7562); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LSQUARE320_tree = this.adaptor.create(LSQUARE320); + this.adaptor.addChild(root_0, LSQUARE320_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_Predicate7564); + p_Expr321=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr321.getTree()); + RSQUARE322=this.match(this.input,RSQUARE,XQueryParser.FOLLOW_RSQUARE_in_p_Predicate7567); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RSQUARE322_tree = this.adaptor.create(RSQUARE322); + this.adaptor.addChild(root_0, RSQUARE322_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PrimaryExpr_return: (function() { + XQueryParser.p_PrimaryExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PrimaryExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1026:1: p_PrimaryExpr : ( ( LPAREN )=> p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr ); + // $ANTLR start "p_PrimaryExpr" + p_PrimaryExpr: function() { + var retval = new XQueryParser.p_PrimaryExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ParenthesizedExpr323 = null; + var p_Literal324 = null; + var p_VarRef325 = null; + var p_ContextItemExpr326 = null; + var p_FunctionCall327 = null; + var p_OrderedExpr328 = null; + var p_UnorderedExpr329 = null; + var p_Constructor330 = null; + var p_BlockExpr331 = null; + + + try { + // xquery/XQueryParser.g:1027:9: ( ( LPAREN )=> p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr ) + var alt134=9; + alt134 = this.dfa134.predict(this.input); + switch (alt134) { + case 1 : + // xquery/XQueryParser.g:1027:11: ( LPAREN )=> p_ParenthesizedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ParenthesizedExpr_in_p_PrimaryExpr7600); + p_ParenthesizedExpr323=this.p_ParenthesizedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ParenthesizedExpr323.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1028:11: p_Literal + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Literal_in_p_PrimaryExpr7612); + p_Literal324=this.p_Literal(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Literal324.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1029:11: p_VarRef + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarRef_in_p_PrimaryExpr7624); + p_VarRef325=this.p_VarRef(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarRef325.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1030:11: p_ContextItemExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ContextItemExpr_in_p_PrimaryExpr7636); + p_ContextItemExpr326=this.p_ContextItemExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ContextItemExpr326.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1031:11: p_FunctionCall + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FunctionCall_in_p_PrimaryExpr7648); + p_FunctionCall327=this.p_FunctionCall(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FunctionCall327.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1032:11: p_OrderedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrderedExpr_in_p_PrimaryExpr7660); + p_OrderedExpr328=this.p_OrderedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrderedExpr328.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1033:11: p_UnorderedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_UnorderedExpr_in_p_PrimaryExpr7672); + p_UnorderedExpr329=this.p_UnorderedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnorderedExpr329.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1034:11: p_Constructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Constructor_in_p_PrimaryExpr7684); + p_Constructor330=this.p_Constructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Constructor330.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:1037:11: p_BlockExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_BlockExpr_in_p_PrimaryExpr7698); + p_BlockExpr331=this.p_BlockExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockExpr331.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Literal_return: (function() { + XQueryParser.p_Literal_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Literal_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1041:1: p_Literal : ( p_NumericLiteral | p_StringLiteral ); + // $ANTLR start "p_Literal" + p_Literal: function() { + var retval = new XQueryParser.p_Literal_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_NumericLiteral332 = null; + var p_StringLiteral333 = null; + + + try { + // xquery/XQueryParser.g:1042:9: ( p_NumericLiteral | p_StringLiteral ) + var alt135=2; + var LA135_0 = this.input.LA(1); + + if ( ((LA135_0>=L_IntegerLiteral && LA135_0<=L_DoubleLiteral)) ) { + alt135=1; + } + else if ( ((LA135_0>=APOS && LA135_0<=QUOT)) ) { + alt135=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 135, 0, this.input); + + throw nvae; + } + switch (alt135) { + case 1 : + // xquery/XQueryParser.g:1042:11: p_NumericLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NumericLiteral_in_p_Literal7724); + p_NumericLiteral332=this.p_NumericLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NumericLiteral332.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1042:30: p_StringLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_Literal7728); + p_StringLiteral333=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral333.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NumericLiteral_return: (function() { + XQueryParser.p_NumericLiteral_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NumericLiteral_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1046:1: p_NumericLiteral : (d+= L_IntegerLiteral | d+= L_DecimalLiteral | d+= L_DoubleLiteral ); + // $ANTLR start "p_NumericLiteral" + p_NumericLiteral: function() { + var retval = new XQueryParser.p_NumericLiteral_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var list_d=null; + + var d_tree=null; + + try { + // xquery/XQueryParser.g:1047:9: (d+= L_IntegerLiteral | d+= L_DecimalLiteral | d+= L_DoubleLiteral ) + var alt136=3; + switch ( this.input.LA(1) ) { + case L_IntegerLiteral: + alt136=1; + break; + case L_DecimalLiteral: + alt136=2; + break; + case L_DoubleLiteral: + alt136=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 136, 0, this.input); + + throw nvae; + } + + switch (alt136) { + case 1 : + // xquery/XQueryParser.g:1047:11: d+= L_IntegerLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_NumericLiteral7756); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1047:48: d+= L_DecimalLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_DecimalLiteral,XQueryParser.FOLLOW_L_DecimalLiteral_in_p_NumericLiteral7764); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1047:85: d+= L_DoubleLiteral + root_0 = this.adaptor.nil(); + + d=this.match(this.input,L_DoubleLiteral,XQueryParser.FOLLOW_L_DoubleLiteral_in_p_NumericLiteral7772); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + if (org.antlr.lang.isNull(list_d)) list_d = []; + list_d.push(d); + + if ( this.state.backtracking===0 ) { + this.ad(list_d); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarRef_return: (function() { + XQueryParser.p_VarRef_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarRef_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1051:1: p_VarRef : d= DOLLAR v= p_VarName ; + // $ANTLR start "p_VarRef" + p_VarRef: function() { + var retval = new XQueryParser.p_VarRef_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var v = null; + + var d_tree=null; + + try { + // xquery/XQueryParser.g:1052:9: (d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:1052:11: d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarRef7810); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarRef7814); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarName_return: (function() { + XQueryParser.p_VarName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1056:1: p_VarName : p_QName ; + // $ANTLR start "p_VarName" + p_VarName: function() { + var retval = new XQueryParser.p_VarName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName334 = null; + + + try { + // xquery/XQueryParser.g:1057:9: ( p_QName ) + // xquery/XQueryParser.g:1057:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_VarName7842); + p_QName334=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName334.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParenthesizedExpr_return: (function() { + XQueryParser.p_ParenthesizedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParenthesizedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1061:1: p_ParenthesizedExpr : LPAREN ( p_Expr[true,true] )? RPAREN ; + // $ANTLR start "p_ParenthesizedExpr" + p_ParenthesizedExpr: function() { + var retval = new XQueryParser.p_ParenthesizedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN335 = null; + var RPAREN337 = null; + var p_Expr336 = null; + + var LPAREN335_tree=null; + var RPAREN337_tree=null; + + try { + // xquery/XQueryParser.g:1062:9: ( LPAREN ( p_Expr[true,true] )? RPAREN ) + // xquery/XQueryParser.g:1062:11: LPAREN ( p_Expr[true,true] )? RPAREN + root_0 = this.adaptor.nil(); + + LPAREN335=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ParenthesizedExpr7868); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN335_tree = this.adaptor.create(LPAREN335); + this.adaptor.addChild(root_0, LPAREN335_tree); + } + // xquery/XQueryParser.g:1062:18: ( p_Expr[true,true] )? + var alt137=2; + var LA137_0 = this.input.LA(1); + + if ( ((LA137_0>=ANCESTOR && LA137_0<=QUOT_ER)||LA137_0==LPAREN||(LA137_0>=DOLLAR && LA137_0<=LBRACKET)||(LA137_0>=STAR && LA137_0<=SMALLER)||(LA137_0>=SLASH && LA137_0<=DOT_DOT)||LA137_0==ATTR_SIGN||(LA137_0>=APOS && LA137_0<=QUOT)||LA137_0==L_NCName||(LA137_0>=L_Pragma && LA137_0<=L_DoubleLiteral)||LA137_0==EXPLICITLY) ) { + alt137=1; + } + switch (alt137) { + case 1 : + // xquery/XQueryParser.g:1062:18: p_Expr[true,true] + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_ParenthesizedExpr7870); + p_Expr336=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr336.getTree()); + + + break; + + } + + RPAREN337=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ParenthesizedExpr7874); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN337_tree = this.adaptor.create(RPAREN337); + this.adaptor.addChild(root_0, RPAREN337_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ContextItemExpr_return: (function() { + XQueryParser.p_ContextItemExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ContextItemExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1066:1: p_ContextItemExpr : DOT ; + // $ANTLR start "p_ContextItemExpr" + p_ContextItemExpr: function() { + var retval = new XQueryParser.p_ContextItemExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOT338 = null; + + var DOT338_tree=null; + + try { + // xquery/XQueryParser.g:1067:9: ( DOT ) + // xquery/XQueryParser.g:1067:11: DOT + root_0 = this.adaptor.nil(); + + DOT338=this.match(this.input,DOT,XQueryParser.FOLLOW_DOT_in_p_ContextItemExpr7900); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOT338_tree = this.adaptor.create(DOT338); + this.adaptor.addChild(root_0, DOT338_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OrderedExpr_return: (function() { + XQueryParser.p_OrderedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OrderedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1071:1: p_OrderedExpr : k= ORDERED LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_OrderedExpr" + p_OrderedExpr: function() { + var retval = new XQueryParser.p_OrderedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET339 = null; + var RBRACKET341 = null; + var p_Expr340 = null; + + var k_tree=null; + var LBRACKET339_tree=null; + var RBRACKET341_tree=null; + + try { + // xquery/XQueryParser.g:1072:9: (k= ORDERED LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1072:11: k= ORDERED LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_p_OrderedExpr7928); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET339=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_OrderedExpr7932); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET339_tree = this.adaptor.create(LBRACKET339); + this.adaptor.addChild(root_0, LBRACKET339_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_OrderedExpr7934); + p_Expr340=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr340.getTree()); + RBRACKET341=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_OrderedExpr7937); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET341_tree = this.adaptor.create(RBRACKET341); + this.adaptor.addChild(root_0, RBRACKET341_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_UnorderedExpr_return: (function() { + XQueryParser.p_UnorderedExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_UnorderedExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1076:1: p_UnorderedExpr : k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_UnorderedExpr" + p_UnorderedExpr: function() { + var retval = new XQueryParser.p_UnorderedExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET342 = null; + var RBRACKET344 = null; + var p_Expr343 = null; + + var k_tree=null; + var LBRACKET342_tree=null; + var RBRACKET344_tree=null; + + try { + // xquery/XQueryParser.g:1077:9: (k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1077:11: k= UNORDERED LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,UNORDERED,XQueryParser.FOLLOW_UNORDERED_in_p_UnorderedExpr7965); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET342=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_UnorderedExpr7969); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET342_tree = this.adaptor.create(LBRACKET342); + this.adaptor.addChild(root_0, LBRACKET342_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_UnorderedExpr7971); + p_Expr343=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr343.getTree()); + RBRACKET344=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_UnorderedExpr7974); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET344_tree = this.adaptor.create(RBRACKET344); + this.adaptor.addChild(root_0, RBRACKET344_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FunctionCall_return: (function() { + XQueryParser.p_FunctionCall_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FunctionCall_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1082:1: p_FunctionCall : f= pg_FQName p_ArgumentList ; + // $ANTLR start "p_FunctionCall" + p_FunctionCall: function() { + var retval = new XQueryParser.p_FunctionCall_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var f = null; + var p_ArgumentList345 = null; + + + try { + // xquery/XQueryParser.g:1083:9: (f= pg_FQName p_ArgumentList ) + // xquery/XQueryParser.g:1083:11: f= pg_FQName p_ArgumentList + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_FQName_in_p_FunctionCall8003); + f=this.pg_FQName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, f.getTree()); + if ( this.state.backtracking===0 ) { + this.af((f?f.start:null), (f?f.stop:null)); + } + this.pushFollow(XQueryParser.FOLLOW_p_ArgumentList_in_p_FunctionCall8008); + p_ArgumentList345=this.p_ArgumentList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ArgumentList345.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Argument_return: (function() { + XQueryParser.p_Argument_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Argument_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1087:1: p_Argument : ( p_ExprSingle[true] | p_ArgumentPlaceholder ); + // $ANTLR start "p_Argument" + p_Argument: function() { + var retval = new XQueryParser.p_Argument_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle346 = null; + var p_ArgumentPlaceholder347 = null; + + + try { + // xquery/XQueryParser.g:1088:9: ( p_ExprSingle[true] | p_ArgumentPlaceholder ) + var alt138=2; + var LA138_0 = this.input.LA(1); + + if ( ((LA138_0>=ANCESTOR && LA138_0<=QUOT_ER)||LA138_0==LPAREN||(LA138_0>=DOLLAR && LA138_0<=LBRACKET)||(LA138_0>=STAR && LA138_0<=SMALLER)||(LA138_0>=SLASH && LA138_0<=DOT_DOT)||LA138_0==ATTR_SIGN||(LA138_0>=APOS && LA138_0<=QUOT)||LA138_0==L_NCName||(LA138_0>=L_Pragma && LA138_0<=L_DoubleLiteral)||LA138_0==EXPLICITLY) ) { + alt138=1; + } + else if ( (LA138_0==QUESTION) ) { + alt138=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 138, 0, this.input); + + throw nvae; + } + switch (alt138) { + case 1 : + // xquery/XQueryParser.g:1088:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_Argument8034); + p_ExprSingle346=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle346.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1088:32: p_ArgumentPlaceholder + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ArgumentPlaceholder_in_p_Argument8039); + p_ArgumentPlaceholder347=this.p_ArgumentPlaceholder(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ArgumentPlaceholder347.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ArgumentPlaceholder_return: (function() { + XQueryParser.p_ArgumentPlaceholder_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ArgumentPlaceholder_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1092:1: p_ArgumentPlaceholder : QUESTION ; + // $ANTLR start "p_ArgumentPlaceholder" + p_ArgumentPlaceholder: function() { + var retval = new XQueryParser.p_ArgumentPlaceholder_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUESTION348 = null; + + var QUESTION348_tree=null; + + try { + // xquery/XQueryParser.g:1093:9: ( QUESTION ) + // xquery/XQueryParser.g:1093:11: QUESTION + root_0 = this.adaptor.nil(); + + QUESTION348=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_ArgumentPlaceholder8065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION348_tree = this.adaptor.create(QUESTION348); + this.adaptor.addChild(root_0, QUESTION348_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Constructor_return: (function() { + XQueryParser.p_Constructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Constructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1097:1: p_Constructor : ( p_DirectConstructor | p_ComputedConstructor ); + // $ANTLR start "p_Constructor" + p_Constructor: function() { + var retval = new XQueryParser.p_Constructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirectConstructor349 = null; + var p_ComputedConstructor350 = null; + + + try { + // xquery/XQueryParser.g:1098:9: ( p_DirectConstructor | p_ComputedConstructor ) + var alt139=2; + var LA139_0 = this.input.LA(1); + + if ( (LA139_0==SMALLER||(LA139_0>=L_DirCommentConstructor && LA139_0<=L_DirPIConstructor)) ) { + alt139=1; + } + else if ( (LA139_0==ATTRIBUTE||LA139_0==COMMENT||LA139_0==DOCUMENT||LA139_0==ELEMENT||LA139_0==NAMESPACE||LA139_0==PROCESSING_INSTRUCTION||LA139_0==TEXT) ) { + alt139=2; + } + else if ( (LA139_0==BINARY) && ((this.lc(MLS)))) { + alt139=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 139, 0, this.input); + + throw nvae; + } + switch (alt139) { + case 1 : + // xquery/XQueryParser.g:1098:11: p_DirectConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirectConstructor_in_p_Constructor8091); + p_DirectConstructor349=this.p_DirectConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirectConstructor349.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1099:11: p_ComputedConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ComputedConstructor_in_p_Constructor8103); + p_ComputedConstructor350=this.p_ComputedConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ComputedConstructor350.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirectConstructor_return: (function() { + XQueryParser.p_DirectConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirectConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1103:1: p_DirectConstructor : ( p_DirElemConstructor | p_DirCommentConstructor | p_DirPIConstructor ); + // $ANTLR start "p_DirectConstructor" + p_DirectConstructor: function() { + var retval = new XQueryParser.p_DirectConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirElemConstructor351 = null; + var p_DirCommentConstructor352 = null; + var p_DirPIConstructor353 = null; + + + try { + // xquery/XQueryParser.g:1104:9: ( p_DirElemConstructor | p_DirCommentConstructor | p_DirPIConstructor ) + var alt140=3; + switch ( this.input.LA(1) ) { + case SMALLER: + alt140=1; + break; + case L_DirCommentConstructor: + alt140=2; + break; + case L_DirPIConstructor: + alt140=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 140, 0, this.input); + + throw nvae; + } + + switch (alt140) { + case 1 : + // xquery/XQueryParser.g:1104:11: p_DirElemConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirElemConstructor_in_p_DirectConstructor8129); + p_DirElemConstructor351=this.p_DirElemConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirElemConstructor351.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1105:11: p_DirCommentConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirCommentConstructor_in_p_DirectConstructor8141); + p_DirCommentConstructor352=this.p_DirCommentConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirCommentConstructor352.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1106:11: p_DirPIConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirPIConstructor_in_p_DirectConstructor8153); + p_DirPIConstructor353=this.p_DirPIConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirPIConstructor353.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirElemConstructor_return: (function() { + XQueryParser.p_DirElemConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirElemConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1110:1: p_DirElemConstructor : SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) ; + // $ANTLR start "p_DirElemConstructor" + p_DirElemConstructor: function() { + var retval = new XQueryParser.p_DirElemConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SMALLER354 = null; + var EMPTY_CLOSE_TAG356 = null; + var GREATER357 = null; + var CLOSE_TAG359 = null; + var S360 = null; + var GREATER361 = null; + var ts = null; + var te = null; + var p_DirAttributeList355 = null; + var pm_DirElemContent358 = null; + + var SMALLER354_tree=null; + var EMPTY_CLOSE_TAG356_tree=null; + var GREATER357_tree=null; + var CLOSE_TAG359_tree=null; + var S360_tree=null; + var GREATER361_tree=null; + var stream_CLOSE_TAG=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token CLOSE_TAG"); + var stream_GREATER=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token GREATER"); + var stream_S=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token S"); + var stream_EMPTY_CLOSE_TAG=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EMPTY_CLOSE_TAG"); + var stream_SMALLER=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token SMALLER"); + var stream_p_DirAttributeList=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_DirAttributeList"); + var stream_pm_DirElemContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pm_DirElemContent"); + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:1111:9: ( SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) ) + // xquery/XQueryParser.g:1111:11: SMALLER ts= p_QName p_DirAttributeList ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) + SMALLER354=this.match(this.input,SMALLER,XQueryParser.FOLLOW_SMALLER_in_p_DirElemConstructor8180); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_SMALLER.add(SMALLER354); + + if ( this.state.backtracking===0 ) { + this.pushXMLLexer(); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirElemConstructor8196); + ts=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(ts.getTree()); + if ( this.state.backtracking===0 ) { + this.at((ts?ts.start:null), (ts?ts.stop:null)); + } + this.pushFollow(XQueryParser.FOLLOW_p_DirAttributeList_in_p_DirElemConstructor8201); + p_DirAttributeList355=this.p_DirAttributeList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_DirAttributeList.add(p_DirAttributeList355.getTree()); + // xquery/XQueryParser.g:1113:11: ( EMPTY_CLOSE_TAG | ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) ) + var alt143=2; + var LA143_0 = this.input.LA(1); + + if ( (LA143_0==EMPTY_CLOSE_TAG) ) { + alt143=1; + } + else if ( (LA143_0==GREATER) ) { + alt143=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 143, 0, this.input); + + throw nvae; + } + switch (alt143) { + case 1 : + // xquery/XQueryParser.g:1113:12: EMPTY_CLOSE_TAG + EMPTY_CLOSE_TAG356=this.match(this.input,EMPTY_CLOSE_TAG,XQueryParser.FOLLOW_EMPTY_CLOSE_TAG_in_p_DirElemConstructor8215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EMPTY_CLOSE_TAG.add(EMPTY_CLOSE_TAG356); + + + + break; + case 2 : + // xquery/XQueryParser.g:1113:30: ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) + // xquery/XQueryParser.g:1113:30: ( GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER ) + // xquery/XQueryParser.g:1113:31: GREATER ( pm_DirElemContent )* CLOSE_TAG te= p_QName ( S )? GREATER + GREATER357=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_DirElemConstructor8220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_GREATER.add(GREATER357); + + // xquery/XQueryParser.g:1113:39: ( pm_DirElemContent )* + loop141: + do { + var alt141=2; + var LA141_0 = this.input.LA(1); + + if ( ((LA141_0>=L_ElementContentChar && LA141_0<=ESCAPE_RBRACKET)||LA141_0==LBRACKET||LA141_0==SMALLER||(LA141_0>=L_DirCommentConstructor && LA141_0<=L_DirPIConstructor)) ) { + alt141=1; + } + + + switch (alt141) { + case 1 : + // xquery/XQueryParser.g:1113:39: pm_DirElemContent + this.pushFollow(XQueryParser.FOLLOW_pm_DirElemContent_in_p_DirElemConstructor8222); + pm_DirElemContent358=this.pm_DirElemContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pm_DirElemContent.add(pm_DirElemContent358.getTree()); + + + break; + + default : + break loop141; + } + } while (true); + + CLOSE_TAG359=this.match(this.input,CLOSE_TAG,XQueryParser.FOLLOW_CLOSE_TAG_in_p_DirElemConstructor8225); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_CLOSE_TAG.add(CLOSE_TAG359); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirElemConstructor8229); + te=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(te.getTree()); + if ( this.state.backtracking===0 ) { + this.at((te?te.start:null), (te?te.stop:null)); + } + // xquery/XQueryParser.g:1113:111: ( S )? + var alt142=2; + var LA142_0 = this.input.LA(1); + + if ( (LA142_0==S) ) { + alt142=1; + } + switch (alt142) { + case 1 : + // xquery/XQueryParser.g:1113:111: S + S360=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirElemConstructor8233); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_S.add(S360); + + + + break; + + } + + GREATER361=this.match(this.input,GREATER,XQueryParser.FOLLOW_GREATER_in_p_DirElemConstructor8236); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_GREATER.add(GREATER361); + + + + + + + break; + + } + + + + // AST REWRITE + // elements: pm_DirElemContent, p_DirAttributeList + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1114:17: -> ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) + { + // xquery/XQueryParser.g:1114:20: ^( DirElemConstructor ^( DirAttributeList ( p_DirAttributeList )* ) ^( DirElemContent ( pm_DirElemContent )* ) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirElemConstructor, "DirElemConstructor"), root_1); + + // xquery/XQueryParser.g:1114:41: ^( DirAttributeList ( p_DirAttributeList )* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeList, "DirAttributeList"), root_2); + + // xquery/XQueryParser.g:1114:60: ( p_DirAttributeList )* + while ( stream_p_DirAttributeList.hasNext() ) { + this.adaptor.addChild(root_2, stream_p_DirAttributeList.nextTree()); + + } + stream_p_DirAttributeList.reset(); + + this.adaptor.addChild(root_1, root_2); + } + // xquery/XQueryParser.g:1114:81: ^( DirElemContent ( pm_DirElemContent )* ) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(DirElemContent, "DirElemContent"), root_2); + + // xquery/XQueryParser.g:1114:98: ( pm_DirElemContent )* + while ( stream_pm_DirElemContent.hasNext() ) { + this.adaptor.addChild(root_2, stream_pm_DirElemContent.nextTree()); + + } + stream_pm_DirElemContent.reset(); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.popLexer(); + } + return retval; + }, + + // inline static return class + p_DirAttributeList_return: (function() { + XQueryParser.p_DirAttributeList_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirAttributeList_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1119:1: p_DirAttributeList : ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* ; + // $ANTLR start "p_DirAttributeList" + p_DirAttributeList: function() { + var retval = new XQueryParser.p_DirAttributeList_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var S362 = null; + var S363 = null; + var EQUAL364 = null; + var S365 = null; + var t = null; + var v = null; + + var S362_tree=null; + var S363_tree=null; + var EQUAL364_tree=null; + var S365_tree=null; + + try { + // xquery/XQueryParser.g:1120:9: ( ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* ) + // xquery/XQueryParser.g:1120:11: ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1120:11: ( S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? )* + loop147: + do { + var alt147=2; + var LA147_0 = this.input.LA(1); + + if ( (LA147_0==S) ) { + alt147=1; + } + + + switch (alt147) { + case 1 : + // xquery/XQueryParser.g:1120:12: S (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? + S362=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8313); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S362_tree = this.adaptor.create(S362); + this.adaptor.addChild(root_0, S362_tree); + } + // xquery/XQueryParser.g:1120:14: (t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue )? + var alt146=2; + var LA146_0 = this.input.LA(1); + + if ( ((LA146_0>=ANCESTOR && LA146_0<=SKIP)||(LA146_0>=VALUE && LA146_0<=QUOT_ER)||LA146_0==L_NCName||LA146_0==EXPLICITLY) ) { + alt146=1; + } + switch (alt146) { + case 1 : + // xquery/XQueryParser.g:1120:15: t= p_QName ( S )? EQUAL ( S )? v= p_DirAttributeValue + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_DirAttributeList8318); + t=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, t.getTree()); + if ( this.state.backtracking===0 ) { + this.at((t?t.start:null), (t?t.stop:null)); + } + // xquery/XQueryParser.g:1120:55: ( S )? + var alt144=2; + var LA144_0 = this.input.LA(1); + + if ( (LA144_0==S) ) { + alt144=1; + } + switch (alt144) { + case 1 : + // xquery/XQueryParser.g:1120:55: S + S363=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8322); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S363_tree = this.adaptor.create(S363); + this.adaptor.addChild(root_0, S363_tree); + } + + + break; + + } + + EQUAL364=this.match(this.input,EQUAL,XQueryParser.FOLLOW_EQUAL_in_p_DirAttributeList8325); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + EQUAL364_tree = this.adaptor.create(EQUAL364); + this.adaptor.addChild(root_0, EQUAL364_tree); + } + // xquery/XQueryParser.g:1120:64: ( S )? + var alt145=2; + var LA145_0 = this.input.LA(1); + + if ( (LA145_0==S) ) { + alt145=1; + } + switch (alt145) { + case 1 : + // xquery/XQueryParser.g:1120:64: S + S365=this.match(this.input,S,XQueryParser.FOLLOW_S_in_p_DirAttributeList8327); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + S365_tree = this.adaptor.create(S365); + this.adaptor.addChild(root_0, S365_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_DirAttributeValue_in_p_DirAttributeList8332); + v=this.p_DirAttributeValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + + + break; + + } + + + + break; + + default : + break loop147; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirAttributeValue_return: (function() { + XQueryParser.p_DirAttributeValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirAttributeValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1124:1: p_DirAttributeValue : ( (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) | (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) ); + // $ANTLR start "p_DirAttributeValue" + p_DirAttributeValue: function() { + var retval = new XQueryParser.p_DirAttributeValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var list_s=null; + var p_QuotAttrValueContent366 = null; + var p_AposAttrValueContent367 = null; + + var s_tree=null; + var stream_ESCAPE_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ESCAPE_QUOT"); + var stream_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token APOS"); + var stream_ESCAPE_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ESCAPE_APOS"); + var stream_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token QUOT"); + var stream_p_QuotAttrValueContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QuotAttrValueContent"); + var stream_p_AposAttrValueContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_AposAttrValueContent"); + try { + // xquery/XQueryParser.g:1125:9: ( (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) | (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) ) + var alt150=2; + var LA150_0 = this.input.LA(1); + + if ( (LA150_0==QUOT) ) { + alt150=1; + } + else if ( (LA150_0==APOS) ) { + alt150=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 150, 0, this.input); + + throw nvae; + } + switch (alt150) { + case 1 : + // xquery/XQueryParser.g:1125:11: (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) + // xquery/XQueryParser.g:1125:11: (s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT ) + // xquery/XQueryParser.g:1125:12: s+= QUOT (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* s+= QUOT + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8366); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = true; + } + // xquery/XQueryParser.g:1125:45: (s+= ESCAPE_QUOT | s+= APOS | p_QuotAttrValueContent )* + loop148: + do { + var alt148=4; + switch ( this.input.LA(1) ) { + case ESCAPE_QUOT: + alt148=1; + break; + case APOS: + alt148=2; + break; + case L_QuotAttrContentChar: + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt148=3; + break; + + } + + switch (alt148) { + case 1 : + // xquery/XQueryParser.g:1125:46: s+= ESCAPE_QUOT + s=this.match(this.input,ESCAPE_QUOT,XQueryParser.FOLLOW_ESCAPE_QUOT_in_p_DirAttributeValue8373); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ESCAPE_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 2 : + // xquery/XQueryParser.g:1125:63: s+= APOS + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8379); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 3 : + // xquery/XQueryParser.g:1125:73: p_QuotAttrValueContent + this.pushFollow(XQueryParser.FOLLOW_p_QuotAttrValueContent_in_p_DirAttributeValue8383); + p_QuotAttrValueContent366=this.p_QuotAttrValueContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QuotAttrValueContent.add(p_QuotAttrValueContent366.getTree()); + + + break; + + default : + break loop148; + } + } while (true); + + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8389); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = false; + } + + + + if ( this.state.backtracking===0 ) { + this.addToken(list_s, "string"); + } + + + // AST REWRITE + // elements: p_QuotAttrValueContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1126:17: -> ^( DirAttributeValue ( p_QuotAttrValueContent )* ) + { + // xquery/XQueryParser.g:1126:20: ^( DirAttributeValue ( p_QuotAttrValueContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeValue, "DirAttributeValue"), root_1); + + // xquery/XQueryParser.g:1126:40: ( p_QuotAttrValueContent )* + while ( stream_p_QuotAttrValueContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_p_QuotAttrValueContent.nextTree()); + + } + stream_p_QuotAttrValueContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1127:11: (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) + // xquery/XQueryParser.g:1127:11: (s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS ) + // xquery/XQueryParser.g:1127:12: s+= APOS (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* s+= APOS + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8434); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = true; + } + // xquery/XQueryParser.g:1127:46: (s+= ESCAPE_APOS | s+= QUOT | p_AposAttrValueContent )* + loop149: + do { + var alt149=4; + switch ( this.input.LA(1) ) { + case ESCAPE_APOS: + alt149=1; + break; + case QUOT: + alt149=2; + break; + case L_AposAttrContentChar: + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt149=3; + break; + + } + + switch (alt149) { + case 1 : + // xquery/XQueryParser.g:1127:47: s+= ESCAPE_APOS + s=this.match(this.input,ESCAPE_APOS,XQueryParser.FOLLOW_ESCAPE_APOS_in_p_DirAttributeValue8441); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ESCAPE_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 2 : + // xquery/XQueryParser.g:1127:64: s+= QUOT + s=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_DirAttributeValue8447); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + + + break; + case 3 : + // xquery/XQueryParser.g:1127:74: p_AposAttrValueContent + this.pushFollow(XQueryParser.FOLLOW_p_AposAttrValueContent_in_p_DirAttributeValue8451); + p_AposAttrValueContent367=this.p_AposAttrValueContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_AposAttrValueContent.add(p_AposAttrValueContent367.getTree()); + + + break; + + default : + break loop149; + } + } while (true); + + s=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_DirAttributeValue8457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(s); + + if (org.antlr.lang.isNull(list_s)) list_s = []; + list_s.push(s); + + if ( this.state.backtracking===0 ) { + this.isInAttr = false; + } + + + + if ( this.state.backtracking===0 ) { + this.addToken(list_s, "string"); + } + + + // AST REWRITE + // elements: p_AposAttrValueContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1128:17: -> ^( DirAttributeValue ( p_AposAttrValueContent )* ) + { + // xquery/XQueryParser.g:1128:20: ^( DirAttributeValue ( p_AposAttrValueContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(DirAttributeValue, "DirAttributeValue"), root_1); + + // xquery/XQueryParser.g:1128:40: ( p_AposAttrValueContent )* + while ( stream_p_AposAttrValueContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_p_AposAttrValueContent.nextTree()); + + } + stream_p_AposAttrValueContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuotAttrValueContent_return: (function() { + XQueryParser.p_QuotAttrValueContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuotAttrValueContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1132:1: p_QuotAttrValueContent : (s= p_QuotAttrContentChar | pm_CommonContent ); + // $ANTLR start "p_QuotAttrValueContent" + p_QuotAttrValueContent: function() { + var retval = new XQueryParser.p_QuotAttrValueContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var pm_CommonContent368 = null; + + + try { + // xquery/XQueryParser.g:1133:9: (s= p_QuotAttrContentChar | pm_CommonContent ) + var alt151=2; + var LA151_0 = this.input.LA(1); + + if ( (LA151_0==L_QuotAttrContentChar) ) { + alt151=1; + } + else if ( ((LA151_0>=L_PredefinedEntityRef && LA151_0<=ESCAPE_RBRACKET)||LA151_0==LBRACKET) ) { + alt151=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 151, 0, this.input); + + throw nvae; + } + switch (alt151) { + case 1 : + // xquery/XQueryParser.g:1133:11: s= p_QuotAttrContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QuotAttrContentChar_in_p_QuotAttrValueContent8515); + s=this.p_QuotAttrContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, s.getTree()); + if ( this.state.backtracking===0 ) { + this.addString((s?s.start:null), (s?s.stop:null)); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1133:76: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_p_QuotAttrValueContent8521); + pm_CommonContent368=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent368.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AposAttrValueContent_return: (function() { + XQueryParser.p_AposAttrValueContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AposAttrValueContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1137:1: p_AposAttrValueContent : (s= p_AposAttrContentChar | pm_CommonContent ); + // $ANTLR start "p_AposAttrValueContent" + p_AposAttrValueContent: function() { + var retval = new XQueryParser.p_AposAttrValueContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var pm_CommonContent369 = null; + + + try { + // xquery/XQueryParser.g:1138:9: (s= p_AposAttrContentChar | pm_CommonContent ) + var alt152=2; + var LA152_0 = this.input.LA(1); + + if ( (LA152_0==L_AposAttrContentChar) ) { + alt152=1; + } + else if ( ((LA152_0>=L_PredefinedEntityRef && LA152_0<=ESCAPE_RBRACKET)||LA152_0==LBRACKET) ) { + alt152=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 152, 0, this.input); + + throw nvae; + } + switch (alt152) { + case 1 : + // xquery/XQueryParser.g:1138:11: s= p_AposAttrContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AposAttrContentChar_in_p_AposAttrValueContent8549); + s=this.p_AposAttrContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, s.getTree()); + if ( this.state.backtracking===0 ) { + this.addString((s?s.start:null), (s?s.stop:null)); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1138:76: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_p_AposAttrValueContent8555); + pm_CommonContent369=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent369.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_DirElemContent_return: (function() { + XQueryParser.pm_DirElemContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_DirElemContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1142:1: pm_DirElemContent : ( p_DirectConstructor | p_CDataSection | pm_CommonContent | p_ElementContentChar ); + // $ANTLR start "pm_DirElemContent" + pm_DirElemContent: function() { + var retval = new XQueryParser.pm_DirElemContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DirectConstructor370 = null; + var p_CDataSection371 = null; + var pm_CommonContent372 = null; + var p_ElementContentChar373 = null; + + + try { + // xquery/XQueryParser.g:1143:9: ( p_DirectConstructor | p_CDataSection | pm_CommonContent | p_ElementContentChar ) + var alt153=4; + switch ( this.input.LA(1) ) { + case SMALLER: + case L_DirCommentConstructor: + case L_DirPIConstructor: + alt153=1; + break; + case L_CDataSection: + alt153=2; + break; + case L_PredefinedEntityRef: + case L_CharRef: + case ESCAPE_LBRACKET: + case ESCAPE_RBRACKET: + case LBRACKET: + alt153=3; + break; + case L_ElementContentChar: + alt153=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 153, 0, this.input); + + throw nvae; + } + + switch (alt153) { + case 1 : + // xquery/XQueryParser.g:1143:11: p_DirectConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DirectConstructor_in_pm_DirElemContent8581); + p_DirectConstructor370=this.p_DirectConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DirectConstructor370.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1144:11: p_CDataSection + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CDataSection_in_pm_DirElemContent8593); + p_CDataSection371=this.p_CDataSection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CDataSection371.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1145:11: pm_CommonContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CommonContent_in_pm_DirElemContent8605); + pm_CommonContent372=this.pm_CommonContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CommonContent372.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1146:11: p_ElementContentChar + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementContentChar_in_pm_DirElemContent8617); + p_ElementContentChar373=this.p_ElementContentChar(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementContentChar373.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CommonContent_return: (function() { + XQueryParser.pm_CommonContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CommonContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1152:1: pm_CommonContent : ( L_PredefinedEntityRef | L_CharRef | s= ESCAPE_LBRACKET | s= ESCAPE_RBRACKET | pg_EnclosedExprXml ); + // $ANTLR start "pm_CommonContent" + pm_CommonContent: function() { + var retval = new XQueryParser.pm_CommonContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var s = null; + var L_PredefinedEntityRef374 = null; + var L_CharRef375 = null; + var pg_EnclosedExprXml376 = null; + + var s_tree=null; + var L_PredefinedEntityRef374_tree=null; + var L_CharRef375_tree=null; + + try { + // xquery/XQueryParser.g:1153:9: ( L_PredefinedEntityRef | L_CharRef | s= ESCAPE_LBRACKET | s= ESCAPE_RBRACKET | pg_EnclosedExprXml ) + var alt154=5; + switch ( this.input.LA(1) ) { + case L_PredefinedEntityRef: + alt154=1; + break; + case L_CharRef: + alt154=2; + break; + case ESCAPE_LBRACKET: + alt154=3; + break; + case ESCAPE_RBRACKET: + alt154=4; + break; + case LBRACKET: + alt154=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 154, 0, this.input); + + throw nvae; + } + + switch (alt154) { + case 1 : + // xquery/XQueryParser.g:1153:11: L_PredefinedEntityRef + root_0 = this.adaptor.nil(); + + L_PredefinedEntityRef374=this.match(this.input,L_PredefinedEntityRef,XQueryParser.FOLLOW_L_PredefinedEntityRef_in_pm_CommonContent8645); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_PredefinedEntityRef374_tree = this.adaptor.create(L_PredefinedEntityRef374); + this.adaptor.addChild(root_0, L_PredefinedEntityRef374_tree); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1154:11: L_CharRef + root_0 = this.adaptor.nil(); + + L_CharRef375=this.match(this.input,L_CharRef,XQueryParser.FOLLOW_L_CharRef_in_pm_CommonContent8657); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_CharRef375_tree = this.adaptor.create(L_CharRef375); + this.adaptor.addChild(root_0, L_CharRef375_tree); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1155:11: s= ESCAPE_LBRACKET + root_0 = this.adaptor.nil(); + + s=this.match(this.input,ESCAPE_LBRACKET,XQueryParser.FOLLOW_ESCAPE_LBRACKET_in_pm_CommonContent8671); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + if ( this.state.backtracking===0 ) { + if(this.isInAttr) { this.addToken(s, "string"); } + } + + + break; + case 4 : + // xquery/XQueryParser.g:1156:11: s= ESCAPE_RBRACKET + root_0 = this.adaptor.nil(); + + s=this.match(this.input,ESCAPE_RBRACKET,XQueryParser.FOLLOW_ESCAPE_RBRACKET_in_pm_CommonContent8687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + s_tree = this.adaptor.create(s); + this.adaptor.addChild(root_0, s_tree); + } + if ( this.state.backtracking===0 ) { + if(this.isInAttr) { this.addToken(s, "string"); } + } + + + break; + case 5 : + // xquery/XQueryParser.g:1157:11: pg_EnclosedExprXml + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_EnclosedExprXml_in_pm_CommonContent8701); + pg_EnclosedExprXml376=this.pg_EnclosedExprXml(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_EnclosedExprXml376.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_EnclosedExprXml_return: (function() { + XQueryParser.pg_EnclosedExprXml_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_EnclosedExprXml_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1165:1: pg_EnclosedExprXml : LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pg_EnclosedExprXml" + pg_EnclosedExprXml: function() { + var retval = new XQueryParser.pg_EnclosedExprXml_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET377 = null; + var RBRACKET379 = null; + var p_StatementsAndOptionalExpr378 = null; + + var LBRACKET377_tree=null; + var RBRACKET379_tree=null; + + try { + // xquery/XQueryParser.g:1166:9: ( LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1166:13: LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET377=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pg_EnclosedExprXml8733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET377_tree = this.adaptor.create(LBRACKET377); + this.adaptor.addChild(root_0, LBRACKET377_tree); + } + if ( this.state.backtracking===0 ) { + this.pushXQueryLexer(); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pg_EnclosedExprXml8749); + p_StatementsAndOptionalExpr378=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr378.getTree()); + RBRACKET379=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pg_EnclosedExprXml8763); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET379_tree = this.adaptor.create(RBRACKET379); + this.adaptor.addChild(root_0, RBRACKET379_tree); + } + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirCommentConstructor_return: (function() { + XQueryParser.p_DirCommentConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirCommentConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1173:1: p_DirCommentConstructor : c= L_DirCommentConstructor ; + // $ANTLR start "p_DirCommentConstructor" + p_DirCommentConstructor: function() { + var retval = new XQueryParser.p_DirCommentConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var c = null; + + var c_tree=null; + + try { + // xquery/XQueryParser.g:1174:9: (c= L_DirCommentConstructor ) + // xquery/XQueryParser.g:1174:11: c= L_DirCommentConstructor + root_0 = this.adaptor.nil(); + + c=this.match(this.input,L_DirCommentConstructor,XQueryParser.FOLLOW_L_DirCommentConstructor_in_p_DirCommentConstructor8794); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + c_tree = this.adaptor.create(c); + this.adaptor.addChild(root_0, c_tree); + } + if ( this.state.backtracking===0 ) { + this.ac(c); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DirPIConstructor_return: (function() { + XQueryParser.p_DirPIConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DirPIConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1181:1: p_DirPIConstructor : p= L_DirPIConstructor ; + // $ANTLR start "p_DirPIConstructor" + p_DirPIConstructor: function() { + var retval = new XQueryParser.p_DirPIConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p = null; + + var p_tree=null; + + try { + // xquery/XQueryParser.g:1182:9: (p= L_DirPIConstructor ) + // xquery/XQueryParser.g:1182:11: p= L_DirPIConstructor + root_0 = this.adaptor.nil(); + + p=this.match(this.input,L_DirPIConstructor,XQueryParser.FOLLOW_L_DirPIConstructor_in_p_DirPIConstructor8830); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + p_tree = this.adaptor.create(p); + this.adaptor.addChild(root_0, p_tree); + } + if ( this.state.backtracking===0 ) { + this.ap(p); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CDataSection_return: (function() { + XQueryParser.p_CDataSection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CDataSection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1189:1: p_CDataSection : c= L_CDataSection ; + // $ANTLR start "p_CDataSection" + p_CDataSection: function() { + var retval = new XQueryParser.p_CDataSection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var c = null; + + var c_tree=null; + + try { + // xquery/XQueryParser.g:1190:9: (c= L_CDataSection ) + // xquery/XQueryParser.g:1190:11: c= L_CDataSection + root_0 = this.adaptor.nil(); + + c=this.match(this.input,L_CDataSection,XQueryParser.FOLLOW_L_CDataSection_in_p_CDataSection8867); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + c_tree = this.adaptor.create(c); + this.adaptor.addChild(root_0, c_tree); + } + if ( this.state.backtracking===0 ) { + this.ac(c); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ComputedConstructor_return: (function() { + XQueryParser.p_ComputedConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ComputedConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1197:1: p_ComputedConstructor : ( pm_CompDocConstructor | pm_CompElemConstructor | pm_CompAttrConstructor | p_CompNamespaceConstructor | p_CompTextConstructor | pm_CompCommentConstructor | pm_CompPIConstructor | {...}? => p_CompBinaryConstructor ); + // $ANTLR start "p_ComputedConstructor" + p_ComputedConstructor: function() { + var retval = new XQueryParser.p_ComputedConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pm_CompDocConstructor380 = null; + var pm_CompElemConstructor381 = null; + var pm_CompAttrConstructor382 = null; + var p_CompNamespaceConstructor383 = null; + var p_CompTextConstructor384 = null; + var pm_CompCommentConstructor385 = null; + var pm_CompPIConstructor386 = null; + var p_CompBinaryConstructor387 = null; + + + try { + // xquery/XQueryParser.g:1198:9: ( pm_CompDocConstructor | pm_CompElemConstructor | pm_CompAttrConstructor | p_CompNamespaceConstructor | p_CompTextConstructor | pm_CompCommentConstructor | pm_CompPIConstructor | {...}? => p_CompBinaryConstructor ) + var alt155=8; + var LA155_0 = this.input.LA(1); + + if ( (LA155_0==DOCUMENT) ) { + alt155=1; + } + else if ( (LA155_0==ELEMENT) ) { + alt155=2; + } + else if ( (LA155_0==ATTRIBUTE) ) { + alt155=3; + } + else if ( (LA155_0==NAMESPACE) ) { + alt155=4; + } + else if ( (LA155_0==TEXT) ) { + alt155=5; + } + else if ( (LA155_0==COMMENT) ) { + alt155=6; + } + else if ( (LA155_0==PROCESSING_INSTRUCTION) ) { + alt155=7; + } + else if ( (LA155_0==BINARY) && ((this.lc(MLS)))) { + alt155=8; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 155, 0, this.input); + + throw nvae; + } + switch (alt155) { + case 1 : + // xquery/XQueryParser.g:1198:11: pm_CompDocConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompDocConstructor_in_p_ComputedConstructor8901); + pm_CompDocConstructor380=this.pm_CompDocConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompDocConstructor380.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1199:11: pm_CompElemConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompElemConstructor_in_p_ComputedConstructor8913); + pm_CompElemConstructor381=this.pm_CompElemConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompElemConstructor381.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1200:11: pm_CompAttrConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompAttrConstructor_in_p_ComputedConstructor8925); + pm_CompAttrConstructor382=this.pm_CompAttrConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompAttrConstructor382.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1201:11: p_CompNamespaceConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CompNamespaceConstructor_in_p_ComputedConstructor8937); + p_CompNamespaceConstructor383=this.p_CompNamespaceConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompNamespaceConstructor383.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1202:11: p_CompTextConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CompTextConstructor_in_p_ComputedConstructor8949); + p_CompTextConstructor384=this.p_CompTextConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompTextConstructor384.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1203:11: pm_CompCommentConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompCommentConstructor_in_p_ComputedConstructor8961); + pm_CompCommentConstructor385=this.pm_CompCommentConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompCommentConstructor385.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1204:11: pm_CompPIConstructor + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pm_CompPIConstructor_in_p_ComputedConstructor8973); + pm_CompPIConstructor386=this.pm_CompPIConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_CompPIConstructor386.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1205:11: {...}? => p_CompBinaryConstructor + root_0 = this.adaptor.nil(); + + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ComputedConstructor", "this.lc(MLS)"); + } + this.pushFollow(XQueryParser.FOLLOW_p_CompBinaryConstructor_in_p_ComputedConstructor8988); + p_CompBinaryConstructor387=this.p_CompBinaryConstructor(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CompBinaryConstructor387.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompDocConstructor_return: (function() { + XQueryParser.pm_CompDocConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompDocConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1210:1: pm_CompDocConstructor : k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompDocConstructor" + pm_CompDocConstructor: function() { + var retval = new XQueryParser.pm_CompDocConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET388 = null; + var RBRACKET390 = null; + var p_StatementsAndOptionalExpr389 = null; + + var k_tree=null; + var LBRACKET388_tree=null; + var RBRACKET390_tree=null; + + try { + // xquery/XQueryParser.g:1211:9: (k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1211:11: k= DOCUMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DOCUMENT,XQueryParser.FOLLOW_DOCUMENT_in_pm_CompDocConstructor9017); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET388=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompDocConstructor9021); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET388_tree = this.adaptor.create(LBRACKET388); + this.adaptor.addChild(root_0, LBRACKET388_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompDocConstructor9023); + p_StatementsAndOptionalExpr389=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr389.getTree()); + RBRACKET390=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompDocConstructor9025); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET390_tree = this.adaptor.create(RBRACKET390); + this.adaptor.addChild(root_0, RBRACKET390_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompElemConstructor_return: (function() { + XQueryParser.pm_CompElemConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompElemConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1215:1: pm_CompElemConstructor : k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET ; + // $ANTLR start "pm_CompElemConstructor" + pm_CompElemConstructor: function() { + var retval = new XQueryParser.pm_CompElemConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET392 = null; + var RBRACKET394 = null; + var LBRACKET395 = null; + var RBRACKET397 = null; + var p_QName391 = null; + var p_Expr393 = null; + var pm_ContentExpr396 = null; + + var k_tree=null; + var LBRACKET392_tree=null; + var RBRACKET394_tree=null; + var LBRACKET395_tree=null; + var RBRACKET397_tree=null; + + try { + // xquery/XQueryParser.g:1216:9: (k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET ) + // xquery/XQueryParser.g:1216:11: k= ELEMENT ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET pm_ContentExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_pm_CompElemConstructor9061); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1216:36: ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt156=2; + var LA156_0 = this.input.LA(1); + + if ( ((LA156_0>=ANCESTOR && LA156_0<=SKIP)||(LA156_0>=VALUE && LA156_0<=QUOT_ER)||LA156_0==L_NCName||LA156_0==EXPLICITLY) ) { + alt156=1; + } + else if ( (LA156_0==LBRACKET) ) { + alt156=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 156, 0, this.input); + + throw nvae; + } + switch (alt156) { + case 1 : + // xquery/XQueryParser.g:1216:37: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_CompElemConstructor9066); + p_QName391=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName391.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1216:47: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1216:47: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1216:48: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET392=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompElemConstructor9071); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET392_tree = this.adaptor.create(LBRACKET392); + this.adaptor.addChild(root_0, LBRACKET392_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompElemConstructor9073); + p_Expr393=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr393.getTree()); + RBRACKET394=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompElemConstructor9076); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET394_tree = this.adaptor.create(RBRACKET394); + this.adaptor.addChild(root_0, RBRACKET394_tree); + } + + + + + + break; + + } + + LBRACKET395=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompElemConstructor9080); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET395_tree = this.adaptor.create(LBRACKET395); + this.adaptor.addChild(root_0, LBRACKET395_tree); + } + this.pushFollow(XQueryParser.FOLLOW_pm_ContentExpr_in_pm_CompElemConstructor9082); + pm_ContentExpr396=this.pm_ContentExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pm_ContentExpr396.getTree()); + RBRACKET397=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompElemConstructor9084); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET397_tree = this.adaptor.create(RBRACKET397); + this.adaptor.addChild(root_0, RBRACKET397_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_ContentExpr_return: (function() { + XQueryParser.pm_ContentExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_ContentExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1221:1: pm_ContentExpr : p_StatementsAndOptionalExpr ; + // $ANTLR start "pm_ContentExpr" + pm_ContentExpr: function() { + var retval = new XQueryParser.pm_ContentExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_StatementsAndOptionalExpr398 = null; + + + try { + // xquery/XQueryParser.g:1222:9: ( p_StatementsAndOptionalExpr ) + // xquery/XQueryParser.g:1222:11: p_StatementsAndOptionalExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_ContentExpr9111); + p_StatementsAndOptionalExpr398=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr398.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompAttrConstructor_return: (function() { + XQueryParser.pm_CompAttrConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompAttrConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1227:1: pm_CompAttrConstructor : k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompAttrConstructor" + pm_CompAttrConstructor: function() { + var retval = new XQueryParser.pm_CompAttrConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET400 = null; + var RBRACKET402 = null; + var LBRACKET403 = null; + var RBRACKET405 = null; + var p_QName399 = null; + var p_Expr401 = null; + var p_StatementsAndOptionalExpr404 = null; + + var k_tree=null; + var LBRACKET400_tree=null; + var RBRACKET402_tree=null; + var LBRACKET403_tree=null; + var RBRACKET405_tree=null; + + try { + // xquery/XQueryParser.g:1228:9: (k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1228:11: k= ATTRIBUTE ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_pm_CompAttrConstructor9140); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1228:38: ( p_QName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt157=2; + var LA157_0 = this.input.LA(1); + + if ( ((LA157_0>=ANCESTOR && LA157_0<=SKIP)||(LA157_0>=VALUE && LA157_0<=QUOT_ER)||LA157_0==L_NCName||LA157_0==EXPLICITLY) ) { + alt157=1; + } + else if ( (LA157_0==LBRACKET) ) { + alt157=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 157, 0, this.input); + + throw nvae; + } + switch (alt157) { + case 1 : + // xquery/XQueryParser.g:1228:39: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_pm_CompAttrConstructor9145); + p_QName399=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName399.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1228:49: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1228:49: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1228:50: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET400=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompAttrConstructor9150); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET400_tree = this.adaptor.create(LBRACKET400); + this.adaptor.addChild(root_0, LBRACKET400_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompAttrConstructor9152); + p_Expr401=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr401.getTree()); + RBRACKET402=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompAttrConstructor9155); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET402_tree = this.adaptor.create(RBRACKET402); + this.adaptor.addChild(root_0, RBRACKET402_tree); + } + + + + + + break; + + } + + LBRACKET403=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompAttrConstructor9159); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET403_tree = this.adaptor.create(LBRACKET403); + this.adaptor.addChild(root_0, LBRACKET403_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompAttrConstructor9161); + p_StatementsAndOptionalExpr404=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr404.getTree()); + RBRACKET405=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompAttrConstructor9163); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET405_tree = this.adaptor.create(RBRACKET405); + this.adaptor.addChild(root_0, RBRACKET405_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompNamespaceConstructor_return: (function() { + XQueryParser.p_CompNamespaceConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompNamespaceConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1232:1: p_CompNamespaceConstructor : k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET ; + // $ANTLR start "p_CompNamespaceConstructor" + p_CompNamespaceConstructor: function() { + var retval = new XQueryParser.p_CompNamespaceConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET407 = null; + var RBRACKET409 = null; + var LBRACKET410 = null; + var RBRACKET412 = null; + var p_Prefix406 = null; + var p_PrefixExpr408 = null; + var p_URIExpr411 = null; + + var k_tree=null; + var LBRACKET407_tree=null; + var RBRACKET409_tree=null; + var LBRACKET410_tree=null; + var RBRACKET412_tree=null; + + try { + // xquery/XQueryParser.g:1233:9: (k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET ) + // xquery/XQueryParser.g:1233:11: k= NAMESPACE ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) LBRACKET ( p_URIExpr )? RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,NAMESPACE,XQueryParser.FOLLOW_NAMESPACE_in_p_CompNamespaceConstructor9191); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1233:38: ( p_Prefix | ( LBRACKET p_PrefixExpr RBRACKET ) ) + var alt158=2; + var LA158_0 = this.input.LA(1); + + if ( ((LA158_0>=ANCESTOR && LA158_0<=SKIP)||(LA158_0>=VALUE && LA158_0<=QUOT_ER)||LA158_0==L_NCName||LA158_0==EXPLICITLY) ) { + alt158=1; + } + else if ( (LA158_0==LBRACKET) ) { + alt158=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 158, 0, this.input); + + throw nvae; + } + switch (alt158) { + case 1 : + // xquery/XQueryParser.g:1233:39: p_Prefix + this.pushFollow(XQueryParser.FOLLOW_p_Prefix_in_p_CompNamespaceConstructor9196); + p_Prefix406=this.p_Prefix(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Prefix406.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1233:50: ( LBRACKET p_PrefixExpr RBRACKET ) + // xquery/XQueryParser.g:1233:50: ( LBRACKET p_PrefixExpr RBRACKET ) + // xquery/XQueryParser.g:1233:51: LBRACKET p_PrefixExpr RBRACKET + LBRACKET407=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9201); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET407_tree = this.adaptor.create(LBRACKET407); + this.adaptor.addChild(root_0, LBRACKET407_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_PrefixExpr_in_p_CompNamespaceConstructor9203); + p_PrefixExpr408=this.p_PrefixExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PrefixExpr408.getTree()); + RBRACKET409=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9205); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET409_tree = this.adaptor.create(RBRACKET409); + this.adaptor.addChild(root_0, RBRACKET409_tree); + } + + + + + + break; + + } + + LBRACKET410=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9209); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET410_tree = this.adaptor.create(LBRACKET410); + this.adaptor.addChild(root_0, LBRACKET410_tree); + } + // xquery/XQueryParser.g:1233:93: ( p_URIExpr )? + var alt159=2; + var LA159_0 = this.input.LA(1); + + if ( ((LA159_0>=ANCESTOR && LA159_0<=QUOT_ER)||LA159_0==LPAREN||(LA159_0>=DOLLAR && LA159_0<=LBRACKET)||(LA159_0>=STAR && LA159_0<=SMALLER)||(LA159_0>=SLASH && LA159_0<=DOT_DOT)||LA159_0==ATTR_SIGN||(LA159_0>=APOS && LA159_0<=QUOT)||LA159_0==L_NCName||(LA159_0>=L_Pragma && LA159_0<=L_DoubleLiteral)||LA159_0==EXPLICITLY) ) { + alt159=1; + } + switch (alt159) { + case 1 : + // xquery/XQueryParser.g:1233:93: p_URIExpr + this.pushFollow(XQueryParser.FOLLOW_p_URIExpr_in_p_CompNamespaceConstructor9211); + p_URIExpr411=this.p_URIExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_URIExpr411.getTree()); + + + break; + + } + + RBRACKET412=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9214); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET412_tree = this.adaptor.create(RBRACKET412); + this.adaptor.addChild(root_0, RBRACKET412_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Prefix_return: (function() { + XQueryParser.p_Prefix_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Prefix_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1237:1: p_Prefix : p_NCName ; + // $ANTLR start "p_Prefix" + p_Prefix: function() { + var retval = new XQueryParser.p_Prefix_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_NCName413 = null; + + + try { + // xquery/XQueryParser.g:1238:9: ( p_NCName ) + // xquery/XQueryParser.g:1238:11: p_NCName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_Prefix9240); + p_NCName413=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName413.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PrefixExpr_return: (function() { + XQueryParser.p_PrefixExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PrefixExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1242:1: p_PrefixExpr : p_Expr[true,true] ; + // $ANTLR start "p_PrefixExpr" + p_PrefixExpr: function() { + var retval = new XQueryParser.p_PrefixExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr414 = null; + + + try { + // xquery/XQueryParser.g:1243:9: ( p_Expr[true,true] ) + // xquery/XQueryParser.g:1243:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_PrefixExpr9266); + p_Expr414=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr414.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_URIExpr_return: (function() { + XQueryParser.p_URIExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_URIExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1247:1: p_URIExpr : p_Expr[true,true] ; + // $ANTLR start "p_URIExpr" + p_URIExpr: function() { + var retval = new XQueryParser.p_URIExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Expr415 = null; + + + try { + // xquery/XQueryParser.g:1248:9: ( p_Expr[true,true] ) + // xquery/XQueryParser.g:1248:11: p_Expr[true,true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_URIExpr9293); + p_Expr415=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr415.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompTextConstructor_return: (function() { + XQueryParser.p_CompTextConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompTextConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1252:1: p_CompTextConstructor : k= TEXT LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_CompTextConstructor" + p_CompTextConstructor: function() { + var retval = new XQueryParser.p_CompTextConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET416 = null; + var RBRACKET418 = null; + var p_Expr417 = null; + + var k_tree=null; + var LBRACKET416_tree=null; + var RBRACKET418_tree=null; + + try { + // xquery/XQueryParser.g:1253:9: (k= TEXT LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1253:11: k= TEXT LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_CompTextConstructor9322); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET416=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompTextConstructor9326); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET416_tree = this.adaptor.create(LBRACKET416); + this.adaptor.addChild(root_0, LBRACKET416_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CompTextConstructor9328); + p_Expr417=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr417.getTree()); + RBRACKET418=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompTextConstructor9331); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET418_tree = this.adaptor.create(RBRACKET418); + this.adaptor.addChild(root_0, RBRACKET418_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CompBinaryConstructor_return: (function() { + XQueryParser.p_CompBinaryConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CompBinaryConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1257:1: p_CompBinaryConstructor : k= BINARY LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_CompBinaryConstructor" + p_CompBinaryConstructor: function() { + var retval = new XQueryParser.p_CompBinaryConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET419 = null; + var RBRACKET421 = null; + var p_Expr420 = null; + + var k_tree=null; + var LBRACKET419_tree=null; + var RBRACKET421_tree=null; + + try { + // xquery/XQueryParser.g:1258:9: (k= BINARY LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1258:11: k= BINARY LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,BINARY,XQueryParser.FOLLOW_BINARY_in_p_CompBinaryConstructor9359); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET419=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_CompBinaryConstructor9363); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET419_tree = this.adaptor.create(LBRACKET419); + this.adaptor.addChild(root_0, LBRACKET419_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_CompBinaryConstructor9365); + p_Expr420=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr420.getTree()); + RBRACKET421=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_CompBinaryConstructor9368); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET421_tree = this.adaptor.create(RBRACKET421); + this.adaptor.addChild(root_0, RBRACKET421_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompCommentConstructor_return: (function() { + XQueryParser.pm_CompCommentConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompCommentConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1263:1: pm_CompCommentConstructor : k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompCommentConstructor" + pm_CompCommentConstructor: function() { + var retval = new XQueryParser.pm_CompCommentConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET422 = null; + var RBRACKET424 = null; + var p_StatementsAndOptionalExpr423 = null; + + var k_tree=null; + var LBRACKET422_tree=null; + var RBRACKET424_tree=null; + + try { + // xquery/XQueryParser.g:1264:9: (k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1264:11: k= COMMENT LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COMMENT,XQueryParser.FOLLOW_COMMENT_in_pm_CompCommentConstructor9397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LBRACKET422=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompCommentConstructor9401); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET422_tree = this.adaptor.create(LBRACKET422); + this.adaptor.addChild(root_0, LBRACKET422_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompCommentConstructor9403); + p_StatementsAndOptionalExpr423=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr423.getTree()); + RBRACKET424=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompCommentConstructor9405); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET424_tree = this.adaptor.create(RBRACKET424); + this.adaptor.addChild(root_0, RBRACKET424_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_CompPIConstructor_return: (function() { + XQueryParser.pm_CompPIConstructor_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_CompPIConstructor_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1269:1: pm_CompPIConstructor : k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ; + // $ANTLR start "pm_CompPIConstructor" + pm_CompPIConstructor: function() { + var retval = new XQueryParser.pm_CompPIConstructor_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LBRACKET426 = null; + var RBRACKET428 = null; + var LBRACKET429 = null; + var RBRACKET431 = null; + var p_NCName425 = null; + var p_Expr427 = null; + var p_StatementsAndOptionalExpr430 = null; + + var k_tree=null; + var LBRACKET426_tree=null; + var RBRACKET428_tree=null; + var LBRACKET429_tree=null; + var RBRACKET431_tree=null; + + try { + // xquery/XQueryParser.g:1270:9: (k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET ) + // xquery/XQueryParser.g:1270:11: k= PROCESSING_INSTRUCTION ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) LBRACKET p_StatementsAndOptionalExpr RBRACKET + root_0 = this.adaptor.nil(); + + k=this.match(this.input,PROCESSING_INSTRUCTION,XQueryParser.FOLLOW_PROCESSING_INSTRUCTION_in_pm_CompPIConstructor9434); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:1270:51: ( p_NCName | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt160=2; + var LA160_0 = this.input.LA(1); + + if ( ((LA160_0>=ANCESTOR && LA160_0<=SKIP)||(LA160_0>=VALUE && LA160_0<=QUOT_ER)||LA160_0==L_NCName||LA160_0==EXPLICITLY) ) { + alt160=1; + } + else if ( (LA160_0==LBRACKET) ) { + alt160=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 160, 0, this.input); + + throw nvae; + } + switch (alt160) { + case 1 : + // xquery/XQueryParser.g:1270:52: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pm_CompPIConstructor9439); + p_NCName425=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName425.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1270:63: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1270:63: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1270:64: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET426=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompPIConstructor9444); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET426_tree = this.adaptor.create(LBRACKET426); + this.adaptor.addChild(root_0, LBRACKET426_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_pm_CompPIConstructor9446); + p_Expr427=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr427.getTree()); + RBRACKET428=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompPIConstructor9449); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET428_tree = this.adaptor.create(RBRACKET428); + this.adaptor.addChild(root_0, RBRACKET428_tree); + } + + + + + + break; + + } + + LBRACKET429=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_pm_CompPIConstructor9453); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET429_tree = this.adaptor.create(LBRACKET429); + this.adaptor.addChild(root_0, LBRACKET429_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompPIConstructor9455); + p_StatementsAndOptionalExpr430=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr430.getTree()); + RBRACKET431=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_pm_CompPIConstructor9457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET431_tree = this.adaptor.create(RBRACKET431); + this.adaptor.addChild(root_0, RBRACKET431_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SingleType_return: (function() { + XQueryParser.p_SingleType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SingleType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1292:1: p_SingleType : p_AtomicOrUnionType ( QUESTION )? ; + // $ANTLR start "p_SingleType" + p_SingleType: function() { + var retval = new XQueryParser.p_SingleType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUESTION433 = null; + var p_AtomicOrUnionType432 = null; + + var QUESTION433_tree=null; + + try { + // xquery/XQueryParser.g:1293:9: ( p_AtomicOrUnionType ( QUESTION )? ) + // xquery/XQueryParser.g:1293:11: p_AtomicOrUnionType ( QUESTION )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AtomicOrUnionType_in_p_SingleType9501); + p_AtomicOrUnionType432=this.p_AtomicOrUnionType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicOrUnionType432.getTree()); + // xquery/XQueryParser.g:1293:31: ( QUESTION )? + var alt161=2; + var LA161_0 = this.input.LA(1); + + if ( (LA161_0==QUESTION) ) { + alt161=1; + } + switch (alt161) { + case 1 : + // xquery/XQueryParser.g:1293:31: QUESTION + QUESTION433=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_SingleType9503); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION433_tree = this.adaptor.create(QUESTION433); + this.adaptor.addChild(root_0, QUESTION433_tree); + } + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeDeclaration_return: (function() { + XQueryParser.p_TypeDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1297:1: p_TypeDeclaration : k= AS st= p_SequenceType -> ^( TypeDeclaration $st) ; + // $ANTLR start "p_TypeDeclaration" + p_TypeDeclaration: function() { + var retval = new XQueryParser.p_TypeDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var st = null; + + var k_tree=null; + var stream_AS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token AS"); + var stream_p_SequenceType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_SequenceType"); + try { + // xquery/XQueryParser.g:1298:9: (k= AS st= p_SequenceType -> ^( TypeDeclaration $st) ) + // xquery/XQueryParser.g:1298:11: k= AS st= p_SequenceType + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TypeDeclaration9532); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_AS.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypeDeclaration9538); + st=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_SequenceType.add(st.getTree()); + + + // AST REWRITE + // elements: st + // token labels: + // rule labels: retval, st + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_st=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token st",st!=null?st.tree:null); + + root_0 = this.adaptor.nil(); + // 1299:17: -> ^( TypeDeclaration $st) + { + // xquery/XQueryParser.g:1299:20: ^( TypeDeclaration $st) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(TypeDeclaration, "TypeDeclaration"), root_1); + + this.adaptor.addChild(root_1, stream_st.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SequenceType_return: (function() { + XQueryParser.p_SequenceType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SequenceType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1303:1: p_SequenceType : (k= EMPTY_SEQUENCE l= LPAREN r= RPAREN -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) | it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? -> ^( SequenceType $it ( $oi)? ) ); + // $ANTLR start "p_SequenceType" + p_SequenceType: function() { + var retval = new XQueryParser.p_SequenceType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var l = null; + var r = null; + var it = null; + var oi = null; + + var k_tree=null; + var l_tree=null; + var r_tree=null; + var stream_EMPTY_SEQUENCE=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token EMPTY_SEQUENCE"); + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_p_ItemType=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_ItemType"); + var stream_p_OccurrenceIndicator=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_OccurrenceIndicator"); + try { + // xquery/XQueryParser.g:1304:9: (k= EMPTY_SEQUENCE l= LPAREN r= RPAREN -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) | it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? -> ^( SequenceType $it ( $oi)? ) ) + var alt163=2; + var LA163_0 = this.input.LA(1); + + if ( (LA163_0==EMPTY_SEQUENCE) ) { + var LA163_1 = this.input.LA(2); + + if ( (LA163_1==LPAREN) ) { + alt163=1; + } + else if ( (LA163_1==EOF||(LA163_1>=AND && LA163_1<=AT)||LA163_1==CASE||LA163_1==COLLATION||LA163_1==DEFAULT||(LA163_1>=DESCENDING && LA163_1<=DIV)||LA163_1==EMPTY||LA163_1==EQ||(LA163_1>=EXCEPT && LA163_1<=EXTERNAL)||LA163_1==FOR||LA163_1==GE||(LA163_1>=GT && LA163_1<=IDIV)||LA163_1==IN||(LA163_1>=INSTANCE && LA163_1<=IS)||LA163_1==LE||(LA163_1>=LET && LA163_1<=MOD)||LA163_1==NE||(LA163_1>=OR && LA163_1<=ORDER)||(LA163_1>=RETURN && LA163_1<=SATISFIES)||LA163_1==STABLE||LA163_1==TO||LA163_1==UNION||LA163_1==WHERE||LA163_1==ALLOWING||LA163_1==COUNT||(LA163_1>=END && LA163_1<=GROUP)||LA163_1==ONLY||LA163_1==START||(LA163_1>=AFTER && LA163_1<=BEFORE)||LA163_1==INTO||LA163_1==MODIFY||LA163_1==WITH||LA163_1==CONTAINS||LA163_1==PARAGRAPHS||LA163_1==SCORE||LA163_1==SENTENCES||LA163_1==TIMES||LA163_1==WORDS||LA163_1==CONCAT||LA163_1==RPAREN||(LA163_1>=LBRACKET && LA163_1<=RBRACKET)||(LA163_1>=RSQUARE && LA163_1<=NOTEQUAL)||(LA163_1>=COMMA && LA163_1<=GREATER_GREATER)||LA163_1==COLON||(LA163_1>=SEMICOLON && LA163_1<=VBAR)) ) { + alt163=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 163, 1, this.input); + + throw nvae; + } + } + else if ( ((LA163_0>=ANCESTOR && LA163_0<=EMPTY)||(LA163_0>=ENCODING && LA163_0<=SKIP)||(LA163_0>=VALUE && LA163_0<=QUOT_ER)||LA163_0==LPAREN||LA163_0==L_NCName||LA163_0==EXPLICITLY) ) { + alt163=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 163, 0, this.input); + + throw nvae; + } + switch (alt163) { + case 1 : + // xquery/XQueryParser.g:1304:11: k= EMPTY_SEQUENCE l= LPAREN r= RPAREN + k=this.match(this.input,EMPTY_SEQUENCE,XQueryParser.FOLLOW_EMPTY_SEQUENCE_in_p_SequenceType9591); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_EMPTY_SEQUENCE.add(k); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + l=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SequenceType9597); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(l); + + r=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SequenceType9601); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(r); + + + + // AST REWRITE + // elements: r, k, l + // token labels: r, l, k + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_r=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token r",r); + var stream_l=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token l",l); + var stream_k=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token k",k); + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1305:17: -> ^( SequenceType ^( EmptySequenceTest $k $l $r) ) + { + // xquery/XQueryParser.g:1305:20: ^( SequenceType ^( EmptySequenceTest $k $l $r) ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SequenceType, "SequenceType"), root_1); + + // xquery/XQueryParser.g:1305:35: ^( EmptySequenceTest $k $l $r) + { + var root_2 = this.adaptor.nil(); + root_2 = this.adaptor.becomeRoot(this.adaptor.create(EmptySequenceTest, "EmptySequenceTest"), root_2); + + this.adaptor.addChild(root_2, stream_k.nextNode()); + this.adaptor.addChild(root_2, stream_l.nextNode()); + this.adaptor.addChild(root_2, stream_r.nextNode()); + + this.adaptor.addChild(root_1, root_2); + } + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1306:11: it= p_ItemType ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_p_SequenceType9650); + it=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_ItemType.add(it.getTree()); + // xquery/XQueryParser.g:1306:25: ( ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator )? + var alt162=2; + alt162 = this.dfa162.predict(this.input); + switch (alt162) { + case 1 : + // xquery/XQueryParser.g:1306:26: ( p_OccurrenceIndicator )=>oi= p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_SequenceType9661); + oi=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_OccurrenceIndicator.add(oi.getTree()); + + + break; + + } + + + + // AST REWRITE + // elements: oi, it + // token labels: + // rule labels: retval, it, oi + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_it=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token it",it!=null?it.tree:null); + var stream_oi=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token oi",oi!=null?oi.tree:null); + + root_0 = this.adaptor.nil(); + // 1307:17: -> ^( SequenceType $it ( $oi)? ) + { + // xquery/XQueryParser.g:1307:20: ^( SequenceType $it ( $oi)? ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(SequenceType, "SequenceType"), root_1); + + this.adaptor.addChild(root_1, stream_it.nextTree()); + // xquery/XQueryParser.g:1307:39: ( $oi)? + if ( stream_oi.hasNext() ) { + this.adaptor.addChild(root_1, stream_oi.nextTree()); + + } + stream_oi.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_OccurrenceIndicator_return: (function() { + XQueryParser.p_OccurrenceIndicator_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_OccurrenceIndicator_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1311:1: p_OccurrenceIndicator : ( QUESTION | STAR | PLUS ); + // $ANTLR start "p_OccurrenceIndicator" + p_OccurrenceIndicator: function() { + var retval = new XQueryParser.p_OccurrenceIndicator_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set434 = null; + + var set434_tree=null; + + try { + // xquery/XQueryParser.g:1312:9: ( QUESTION | STAR | PLUS ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set434=this.input.LT(1); + if ( (this.input.LA(1)>=QUESTION && this.input.LA(1)<=PLUS) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set434)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ItemType_return: (function() { + XQueryParser.p_ItemType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ItemType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1316:1: p_ItemType : ( p_KindTest -> ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType ); + // $ANTLR start "p_ItemType" + p_ItemType: function() { + var retval = new XQueryParser.p_ItemType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var BINARY436 = null; + var LPAREN437 = null; + var RPAREN438 = null; + var ITEM439 = null; + var LPAREN440 = null; + var RPAREN441 = null; + var p_KindTest435 = null; + var p_AtomicOrUnionType442 = null; + var p_ParenthesizedItemType443 = null; + + var BINARY436_tree=null; + var LPAREN437_tree=null; + var RPAREN438_tree=null; + var ITEM439_tree=null; + var LPAREN440_tree=null; + var RPAREN441_tree=null; + var stream_RPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token RPAREN"); + var stream_ITEM=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token ITEM"); + var stream_BINARY=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token BINARY"); + var stream_LPAREN=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token LPAREN"); + var stream_p_KindTest=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_KindTest"); + try { + // xquery/XQueryParser.g:1317:9: ( p_KindTest -> ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType ) + var alt164=5; + alt164 = this.dfa164.predict(this.input); + switch (alt164) { + case 1 : + // xquery/XQueryParser.g:1317:11: p_KindTest + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_ItemType9763); + p_KindTest435=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_KindTest.add(p_KindTest435.getTree()); + + + // AST REWRITE + // elements: p_KindTest + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1318:17: -> ^( KindTest p_KindTest ) + { + // xquery/XQueryParser.g:1318:20: ^( KindTest p_KindTest ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(KindTest, "KindTest"), root_1); + + this.adaptor.addChild(root_1, stream_p_KindTest.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1319:11: {...}? => ( BINARY LPAREN RPAREN ) + if ( !((this.lc(MLS))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ItemType", "this.lc(MLS)"); + } + // xquery/XQueryParser.g:1319:29: ( BINARY LPAREN RPAREN ) + // xquery/XQueryParser.g:1319:30: BINARY LPAREN RPAREN + BINARY436=this.match(this.input,BINARY,XQueryParser.FOLLOW_BINARY_in_p_ItemType9803); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_BINARY.add(BINARY436); + + LPAREN437=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ItemType9805); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN437); + + RPAREN438=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ItemType9807); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN438); + + + + + + + // AST REWRITE + // elements: RPAREN, BINARY, LPAREN + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1320:17: -> ^( BinaryTest BINARY LPAREN RPAREN ) + { + // xquery/XQueryParser.g:1320:20: ^( BinaryTest BINARY LPAREN RPAREN ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(BinaryTest, "BinaryTest"), root_1); + + this.adaptor.addChild(root_1, stream_BINARY.nextNode()); + this.adaptor.addChild(root_1, stream_LPAREN.nextNode()); + this.adaptor.addChild(root_1, stream_RPAREN.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 3 : + // xquery/XQueryParser.g:1321:11: ( ITEM LPAREN RPAREN ) + // xquery/XQueryParser.g:1321:11: ( ITEM LPAREN RPAREN ) + // xquery/XQueryParser.g:1321:12: ITEM LPAREN RPAREN + ITEM439=this.match(this.input,ITEM,XQueryParser.FOLLOW_ITEM_in_p_ItemType9849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_ITEM.add(ITEM439); + + LPAREN440=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ItemType9851); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_LPAREN.add(LPAREN440); + + RPAREN441=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ItemType9853); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_RPAREN.add(RPAREN441); + + + + + + + // AST REWRITE + // elements: LPAREN, ITEM, RPAREN + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1322:17: -> ^( ItemTest ITEM LPAREN RPAREN ) + { + // xquery/XQueryParser.g:1322:20: ^( ItemTest ITEM LPAREN RPAREN ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(ItemTest, "ItemTest"), root_1); + + this.adaptor.addChild(root_1, stream_ITEM.nextNode()); + this.adaptor.addChild(root_1, stream_LPAREN.nextNode()); + this.adaptor.addChild(root_1, stream_RPAREN.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 4 : + // xquery/XQueryParser.g:1326:11: p_AtomicOrUnionType + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AtomicOrUnionType_in_p_ItemType9897); + p_AtomicOrUnionType442=this.p_AtomicOrUnionType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicOrUnionType442.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1327:11: p_ParenthesizedItemType + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ParenthesizedItemType_in_p_ItemType9909); + p_ParenthesizedItemType443=this.p_ParenthesizedItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ParenthesizedItemType443.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AtomicOrUnionType_return: (function() { + XQueryParser.p_AtomicOrUnionType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AtomicOrUnionType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1331:1: p_AtomicOrUnionType : p_QName -> ^( AtomicOrUnionType p_QName ) ; + // $ANTLR start "p_AtomicOrUnionType" + p_AtomicOrUnionType: function() { + var retval = new XQueryParser.p_AtomicOrUnionType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName444 = null; + + var stream_p_QName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_QName"); + try { + // xquery/XQueryParser.g:1332:9: ( p_QName -> ^( AtomicOrUnionType p_QName ) ) + // xquery/XQueryParser.g:1332:11: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AtomicOrUnionType9935); + p_QName444=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_QName.add(p_QName444.getTree()); + + + // AST REWRITE + // elements: p_QName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1333:17: -> ^( AtomicOrUnionType p_QName ) + { + // xquery/XQueryParser.g:1333:20: ^( AtomicOrUnionType p_QName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AtomicOrUnionType, "AtomicOrUnionType"), root_1); + + this.adaptor.addChild(root_1, stream_p_QName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_KindTest_return: (function() { + XQueryParser.p_KindTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_KindTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1337:1: p_KindTest : ( p_DocumentTest | p_ElementTest | p_AttributeTest | p_SchemaElementTest | p_SchemaAttributeTest | p_PITest | p_CommentTest | p_TextTest | p_NamespaceNodeTest | p_AnyKindTest ); + // $ANTLR start "p_KindTest" + p_KindTest: function() { + var retval = new XQueryParser.p_KindTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_DocumentTest445 = null; + var p_ElementTest446 = null; + var p_AttributeTest447 = null; + var p_SchemaElementTest448 = null; + var p_SchemaAttributeTest449 = null; + var p_PITest450 = null; + var p_CommentTest451 = null; + var p_TextTest452 = null; + var p_NamespaceNodeTest453 = null; + var p_AnyKindTest454 = null; + + + try { + // xquery/XQueryParser.g:1338:9: ( p_DocumentTest | p_ElementTest | p_AttributeTest | p_SchemaElementTest | p_SchemaAttributeTest | p_PITest | p_CommentTest | p_TextTest | p_NamespaceNodeTest | p_AnyKindTest ) + var alt165=10; + switch ( this.input.LA(1) ) { + case DOCUMENT_NODE: + alt165=1; + break; + case ELEMENT: + alt165=2; + break; + case ATTRIBUTE: + alt165=3; + break; + case SCHEMA_ELEMENT: + alt165=4; + break; + case SCHEMA_ATTRIBUTE: + alt165=5; + break; + case PROCESSING_INSTRUCTION: + alt165=6; + break; + case COMMENT: + alt165=7; + break; + case TEXT: + alt165=8; + break; + case NAMESPACE_NODE: + alt165=9; + break; + case NODE: + alt165=10; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 165, 0, this.input); + + throw nvae; + } + + switch (alt165) { + case 1 : + // xquery/XQueryParser.g:1338:11: p_DocumentTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DocumentTest_in_p_KindTest9985); + p_DocumentTest445=this.p_DocumentTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DocumentTest445.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1339:11: p_ElementTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementTest_in_p_KindTest9997); + p_ElementTest446=this.p_ElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementTest446.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1340:11: p_AttributeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeTest_in_p_KindTest10009); + p_AttributeTest447=this.p_AttributeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeTest447.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1341:11: p_SchemaElementTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SchemaElementTest_in_p_KindTest10021); + p_SchemaElementTest448=this.p_SchemaElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaElementTest448.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1342:11: p_SchemaAttributeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_SchemaAttributeTest_in_p_KindTest10033); + p_SchemaAttributeTest449=this.p_SchemaAttributeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaAttributeTest449.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1343:11: p_PITest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PITest_in_p_KindTest10045); + p_PITest450=this.p_PITest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PITest450.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1344:11: p_CommentTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_CommentTest_in_p_KindTest10057); + p_CommentTest451=this.p_CommentTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CommentTest451.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1345:11: p_TextTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TextTest_in_p_KindTest10069); + p_TextTest452=this.p_TextTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TextTest452.getTree()); + + + break; + case 9 : + // xquery/XQueryParser.g:1346:11: p_NamespaceNodeTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_NamespaceNodeTest_in_p_KindTest10081); + p_NamespaceNodeTest453=this.p_NamespaceNodeTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NamespaceNodeTest453.getTree()); + + + break; + case 10 : + // xquery/XQueryParser.g:1347:11: p_AnyKindTest + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AnyKindTest_in_p_KindTest10093); + p_AnyKindTest454=this.p_AnyKindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AnyKindTest454.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AnyKindTest_return: (function() { + XQueryParser.p_AnyKindTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AnyKindTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1351:1: p_AnyKindTest : NODE LPAREN RPAREN ; + // $ANTLR start "p_AnyKindTest" + p_AnyKindTest: function() { + var retval = new XQueryParser.p_AnyKindTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var NODE455 = null; + var LPAREN456 = null; + var RPAREN457 = null; + + var NODE455_tree=null; + var LPAREN456_tree=null; + var RPAREN457_tree=null; + + try { + // xquery/XQueryParser.g:1352:9: ( NODE LPAREN RPAREN ) + // xquery/XQueryParser.g:1352:11: NODE LPAREN RPAREN + root_0 = this.adaptor.nil(); + + NODE455=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_AnyKindTest10119); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + NODE455_tree = this.adaptor.create(NODE455); + this.adaptor.addChild(root_0, NODE455_tree); + } + LPAREN456=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AnyKindTest10121); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN456_tree = this.adaptor.create(LPAREN456); + this.adaptor.addChild(root_0, LPAREN456_tree); + } + RPAREN457=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AnyKindTest10123); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN457_tree = this.adaptor.create(RPAREN457); + this.adaptor.addChild(root_0, RPAREN457_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DocumentTest_return: (function() { + XQueryParser.p_DocumentTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DocumentTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1356:1: p_DocumentTest : DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN ; + // $ANTLR start "p_DocumentTest" + p_DocumentTest: function() { + var retval = new XQueryParser.p_DocumentTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var DOCUMENT_NODE458 = null; + var LPAREN459 = null; + var RPAREN462 = null; + var p_ElementTest460 = null; + var p_SchemaElementTest461 = null; + + var DOCUMENT_NODE458_tree=null; + var LPAREN459_tree=null; + var RPAREN462_tree=null; + + try { + // xquery/XQueryParser.g:1357:9: ( DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN ) + // xquery/XQueryParser.g:1357:11: DOCUMENT_NODE LPAREN ( p_ElementTest | p_SchemaElementTest )? RPAREN + root_0 = this.adaptor.nil(); + + DOCUMENT_NODE458=this.match(this.input,DOCUMENT_NODE,XQueryParser.FOLLOW_DOCUMENT_NODE_in_p_DocumentTest10149); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + DOCUMENT_NODE458_tree = this.adaptor.create(DOCUMENT_NODE458); + this.adaptor.addChild(root_0, DOCUMENT_NODE458_tree); + } + LPAREN459=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_DocumentTest10151); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN459_tree = this.adaptor.create(LPAREN459); + this.adaptor.addChild(root_0, LPAREN459_tree); + } + // xquery/XQueryParser.g:1357:32: ( p_ElementTest | p_SchemaElementTest )? + var alt166=3; + var LA166_0 = this.input.LA(1); + + if ( (LA166_0==ELEMENT) ) { + alt166=1; + } + else if ( (LA166_0==SCHEMA_ELEMENT) ) { + alt166=2; + } + switch (alt166) { + case 1 : + // xquery/XQueryParser.g:1357:33: p_ElementTest + this.pushFollow(XQueryParser.FOLLOW_p_ElementTest_in_p_DocumentTest10154); + p_ElementTest460=this.p_ElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementTest460.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1357:49: p_SchemaElementTest + this.pushFollow(XQueryParser.FOLLOW_p_SchemaElementTest_in_p_DocumentTest10158); + p_SchemaElementTest461=this.p_SchemaElementTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SchemaElementTest461.getTree()); + + + break; + + } + + RPAREN462=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_DocumentTest10162); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN462_tree = this.adaptor.create(RPAREN462); + this.adaptor.addChild(root_0, RPAREN462_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TextTest_return: (function() { + XQueryParser.p_TextTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TextTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1361:1: p_TextTest : TEXT LPAREN RPAREN ; + // $ANTLR start "p_TextTest" + p_TextTest: function() { + var retval = new XQueryParser.p_TextTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var TEXT463 = null; + var LPAREN464 = null; + var RPAREN465 = null; + + var TEXT463_tree=null; + var LPAREN464_tree=null; + var RPAREN465_tree=null; + + try { + // xquery/XQueryParser.g:1362:9: ( TEXT LPAREN RPAREN ) + // xquery/XQueryParser.g:1362:11: TEXT LPAREN RPAREN + root_0 = this.adaptor.nil(); + + TEXT463=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_TextTest10188); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + TEXT463_tree = this.adaptor.create(TEXT463); + this.adaptor.addChild(root_0, TEXT463_tree); + } + LPAREN464=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TextTest10190); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN464_tree = this.adaptor.create(LPAREN464); + this.adaptor.addChild(root_0, LPAREN464_tree); + } + RPAREN465=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TextTest10192); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN465_tree = this.adaptor.create(RPAREN465); + this.adaptor.addChild(root_0, RPAREN465_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CommentTest_return: (function() { + XQueryParser.p_CommentTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CommentTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1366:1: p_CommentTest : COMMENT LPAREN RPAREN ; + // $ANTLR start "p_CommentTest" + p_CommentTest: function() { + var retval = new XQueryParser.p_CommentTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COMMENT466 = null; + var LPAREN467 = null; + var RPAREN468 = null; + + var COMMENT466_tree=null; + var LPAREN467_tree=null; + var RPAREN468_tree=null; + + try { + // xquery/XQueryParser.g:1367:9: ( COMMENT LPAREN RPAREN ) + // xquery/XQueryParser.g:1367:11: COMMENT LPAREN RPAREN + root_0 = this.adaptor.nil(); + + COMMENT466=this.match(this.input,COMMENT,XQueryParser.FOLLOW_COMMENT_in_p_CommentTest10218); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMENT466_tree = this.adaptor.create(COMMENT466); + this.adaptor.addChild(root_0, COMMENT466_tree); + } + LPAREN467=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_CommentTest10220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN467_tree = this.adaptor.create(LPAREN467); + this.adaptor.addChild(root_0, LPAREN467_tree); + } + RPAREN468=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_CommentTest10222); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN468_tree = this.adaptor.create(RPAREN468); + this.adaptor.addChild(root_0, RPAREN468_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NamespaceNodeTest_return: (function() { + XQueryParser.p_NamespaceNodeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NamespaceNodeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1371:1: p_NamespaceNodeTest : NAMESPACE_NODE LPAREN RPAREN ; + // $ANTLR start "p_NamespaceNodeTest" + p_NamespaceNodeTest: function() { + var retval = new XQueryParser.p_NamespaceNodeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var NAMESPACE_NODE469 = null; + var LPAREN470 = null; + var RPAREN471 = null; + + var NAMESPACE_NODE469_tree=null; + var LPAREN470_tree=null; + var RPAREN471_tree=null; + + try { + // xquery/XQueryParser.g:1372:9: ( NAMESPACE_NODE LPAREN RPAREN ) + // xquery/XQueryParser.g:1372:11: NAMESPACE_NODE LPAREN RPAREN + root_0 = this.adaptor.nil(); + + NAMESPACE_NODE469=this.match(this.input,NAMESPACE_NODE,XQueryParser.FOLLOW_NAMESPACE_NODE_in_p_NamespaceNodeTest10248); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + NAMESPACE_NODE469_tree = this.adaptor.create(NAMESPACE_NODE469); + this.adaptor.addChild(root_0, NAMESPACE_NODE469_tree); + } + LPAREN470=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_NamespaceNodeTest10250); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN470_tree = this.adaptor.create(LPAREN470); + this.adaptor.addChild(root_0, LPAREN470_tree); + } + RPAREN471=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_NamespaceNodeTest10252); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN471_tree = this.adaptor.create(RPAREN471); + this.adaptor.addChild(root_0, RPAREN471_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_PITest_return: (function() { + XQueryParser.p_PITest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_PITest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1376:1: p_PITest : PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN ; + // $ANTLR start "p_PITest" + p_PITest: function() { + var retval = new XQueryParser.p_PITest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var PROCESSING_INSTRUCTION472 = null; + var LPAREN473 = null; + var RPAREN476 = null; + var p_NCName474 = null; + var p_StringLiteral475 = null; + + var PROCESSING_INSTRUCTION472_tree=null; + var LPAREN473_tree=null; + var RPAREN476_tree=null; + + try { + // xquery/XQueryParser.g:1377:9: ( PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN ) + // xquery/XQueryParser.g:1377:11: PROCESSING_INSTRUCTION LPAREN ( p_NCName | p_StringLiteral )? RPAREN + root_0 = this.adaptor.nil(); + + PROCESSING_INSTRUCTION472=this.match(this.input,PROCESSING_INSTRUCTION,XQueryParser.FOLLOW_PROCESSING_INSTRUCTION_in_p_PITest10278); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + PROCESSING_INSTRUCTION472_tree = this.adaptor.create(PROCESSING_INSTRUCTION472); + this.adaptor.addChild(root_0, PROCESSING_INSTRUCTION472_tree); + } + LPAREN473=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_PITest10280); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN473_tree = this.adaptor.create(LPAREN473); + this.adaptor.addChild(root_0, LPAREN473_tree); + } + // xquery/XQueryParser.g:1377:41: ( p_NCName | p_StringLiteral )? + var alt167=3; + var LA167_0 = this.input.LA(1); + + if ( ((LA167_0>=ANCESTOR && LA167_0<=SKIP)||(LA167_0>=VALUE && LA167_0<=QUOT_ER)||LA167_0==L_NCName||LA167_0==EXPLICITLY) ) { + alt167=1; + } + else if ( ((LA167_0>=APOS && LA167_0<=QUOT)) ) { + alt167=2; + } + switch (alt167) { + case 1 : + // xquery/XQueryParser.g:1377:42: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_PITest10283); + p_NCName474=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NCName474.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1377:53: p_StringLiteral + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_PITest10287); + p_StringLiteral475=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral475.getTree()); + + + break; + + } + + RPAREN476=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_PITest10291); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN476_tree = this.adaptor.create(RPAREN476); + this.adaptor.addChild(root_0, RPAREN476_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeTest_return: (function() { + XQueryParser.p_AttributeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1381:1: p_AttributeTest : ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN ; + // $ANTLR start "p_AttributeTest" + p_AttributeTest: function() { + var retval = new XQueryParser.p_AttributeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ATTRIBUTE477 = null; + var LPAREN478 = null; + var COMMA480 = null; + var RPAREN482 = null; + var p_AttribNameOrWildcard479 = null; + var p_TypeName481 = null; + + var ATTRIBUTE477_tree=null; + var LPAREN478_tree=null; + var COMMA480_tree=null; + var RPAREN482_tree=null; + + try { + // xquery/XQueryParser.g:1382:9: ( ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN ) + // xquery/XQueryParser.g:1382:11: ATTRIBUTE LPAREN ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? RPAREN + root_0 = this.adaptor.nil(); + + ATTRIBUTE477=this.match(this.input,ATTRIBUTE,XQueryParser.FOLLOW_ATTRIBUTE_in_p_AttributeTest10317); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ATTRIBUTE477_tree = this.adaptor.create(ATTRIBUTE477); + this.adaptor.addChild(root_0, ATTRIBUTE477_tree); + } + LPAREN478=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AttributeTest10319); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN478_tree = this.adaptor.create(LPAREN478); + this.adaptor.addChild(root_0, LPAREN478_tree); + } + // xquery/XQueryParser.g:1382:28: ( p_AttribNameOrWildcard ( COMMA p_TypeName )? )? + var alt169=2; + var LA169_0 = this.input.LA(1); + + if ( ((LA169_0>=ANCESTOR && LA169_0<=SKIP)||(LA169_0>=VALUE && LA169_0<=QUOT_ER)||LA169_0==STAR||LA169_0==L_NCName||LA169_0==EXPLICITLY) ) { + alt169=1; + } + switch (alt169) { + case 1 : + // xquery/XQueryParser.g:1382:29: p_AttribNameOrWildcard ( COMMA p_TypeName )? + this.pushFollow(XQueryParser.FOLLOW_p_AttribNameOrWildcard_in_p_AttributeTest10322); + p_AttribNameOrWildcard479=this.p_AttribNameOrWildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttribNameOrWildcard479.getTree()); + // xquery/XQueryParser.g:1382:52: ( COMMA p_TypeName )? + var alt168=2; + var LA168_0 = this.input.LA(1); + + if ( (LA168_0==COMMA) ) { + alt168=1; + } + switch (alt168) { + case 1 : + // xquery/XQueryParser.g:1382:53: COMMA p_TypeName + COMMA480=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_AttributeTest10325); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA480_tree = this.adaptor.create(COMMA480); + this.adaptor.addChild(root_0, COMMA480_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_AttributeTest10327); + p_TypeName481=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName481.getTree()); + + + break; + + } + + + + break; + + } + + RPAREN482=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AttributeTest10333); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN482_tree = this.adaptor.create(RPAREN482); + this.adaptor.addChild(root_0, RPAREN482_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttribNameOrWildcard_return: (function() { + XQueryParser.p_AttribNameOrWildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttribNameOrWildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1386:1: p_AttribNameOrWildcard : ( p_AttributeName | STAR ); + // $ANTLR start "p_AttribNameOrWildcard" + p_AttribNameOrWildcard: function() { + var retval = new XQueryParser.p_AttribNameOrWildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR484 = null; + var p_AttributeName483 = null; + + var STAR484_tree=null; + + try { + // xquery/XQueryParser.g:1387:9: ( p_AttributeName | STAR ) + var alt170=2; + var LA170_0 = this.input.LA(1); + + if ( ((LA170_0>=ANCESTOR && LA170_0<=SKIP)||(LA170_0>=VALUE && LA170_0<=QUOT_ER)||LA170_0==L_NCName||LA170_0==EXPLICITLY) ) { + alt170=1; + } + else if ( (LA170_0==STAR) ) { + alt170=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 170, 0, this.input); + + throw nvae; + } + switch (alt170) { + case 1 : + // xquery/XQueryParser.g:1387:11: p_AttributeName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeName_in_p_AttribNameOrWildcard10361); + p_AttributeName483=this.p_AttributeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeName483.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1387:29: STAR + root_0 = this.adaptor.nil(); + + STAR484=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_AttribNameOrWildcard10365); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR484_tree = this.adaptor.create(STAR484); + this.adaptor.addChild(root_0, STAR484_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaAttributeTest_return: (function() { + XQueryParser.p_SchemaAttributeTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaAttributeTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1391:1: p_SchemaAttributeTest : SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN ; + // $ANTLR start "p_SchemaAttributeTest" + p_SchemaAttributeTest: function() { + var retval = new XQueryParser.p_SchemaAttributeTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SCHEMA_ATTRIBUTE485 = null; + var LPAREN486 = null; + var RPAREN488 = null; + var p_AttributeDeclaration487 = null; + + var SCHEMA_ATTRIBUTE485_tree=null; + var LPAREN486_tree=null; + var RPAREN488_tree=null; + + try { + // xquery/XQueryParser.g:1392:9: ( SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN ) + // xquery/XQueryParser.g:1392:11: SCHEMA_ATTRIBUTE LPAREN p_AttributeDeclaration RPAREN + root_0 = this.adaptor.nil(); + + SCHEMA_ATTRIBUTE485=this.match(this.input,SCHEMA_ATTRIBUTE,XQueryParser.FOLLOW_SCHEMA_ATTRIBUTE_in_p_SchemaAttributeTest10391); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SCHEMA_ATTRIBUTE485_tree = this.adaptor.create(SCHEMA_ATTRIBUTE485); + this.adaptor.addChild(root_0, SCHEMA_ATTRIBUTE485_tree); + } + LPAREN486=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SchemaAttributeTest10393); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN486_tree = this.adaptor.create(LPAREN486); + this.adaptor.addChild(root_0, LPAREN486_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_AttributeDeclaration_in_p_SchemaAttributeTest10395); + p_AttributeDeclaration487=this.p_AttributeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeDeclaration487.getTree()); + RPAREN488=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SchemaAttributeTest10397); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN488_tree = this.adaptor.create(RPAREN488); + this.adaptor.addChild(root_0, RPAREN488_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeDeclaration_return: (function() { + XQueryParser.p_AttributeDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1396:1: p_AttributeDeclaration : p_AttributeName ; + // $ANTLR start "p_AttributeDeclaration" + p_AttributeDeclaration: function() { + var retval = new XQueryParser.p_AttributeDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_AttributeName489 = null; + + + try { + // xquery/XQueryParser.g:1397:9: ( p_AttributeName ) + // xquery/XQueryParser.g:1397:11: p_AttributeName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AttributeName_in_p_AttributeDeclaration10423); + p_AttributeName489=this.p_AttributeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AttributeName489.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementTest_return: (function() { + XQueryParser.p_ElementTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1401:1: p_ElementTest : ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN ; + // $ANTLR start "p_ElementTest" + p_ElementTest: function() { + var retval = new XQueryParser.p_ElementTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ELEMENT490 = null; + var LPAREN491 = null; + var COMMA493 = null; + var QUESTION495 = null; + var RPAREN496 = null; + var p_ElementNameOrWildcard492 = null; + var p_TypeName494 = null; + + var ELEMENT490_tree=null; + var LPAREN491_tree=null; + var COMMA493_tree=null; + var QUESTION495_tree=null; + var RPAREN496_tree=null; + + try { + // xquery/XQueryParser.g:1402:9: ( ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN ) + // xquery/XQueryParser.g:1402:11: ELEMENT LPAREN ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? RPAREN + root_0 = this.adaptor.nil(); + + ELEMENT490=this.match(this.input,ELEMENT,XQueryParser.FOLLOW_ELEMENT_in_p_ElementTest10449); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ELEMENT490_tree = this.adaptor.create(ELEMENT490); + this.adaptor.addChild(root_0, ELEMENT490_tree); + } + LPAREN491=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ElementTest10451); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN491_tree = this.adaptor.create(LPAREN491); + this.adaptor.addChild(root_0, LPAREN491_tree); + } + // xquery/XQueryParser.g:1402:26: ( p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? )? + var alt173=2; + var LA173_0 = this.input.LA(1); + + if ( ((LA173_0>=ANCESTOR && LA173_0<=SKIP)||(LA173_0>=VALUE && LA173_0<=QUOT_ER)||LA173_0==STAR||LA173_0==L_NCName||LA173_0==EXPLICITLY) ) { + alt173=1; + } + switch (alt173) { + case 1 : + // xquery/XQueryParser.g:1402:27: p_ElementNameOrWildcard ( COMMA p_TypeName ( QUESTION )? )? + this.pushFollow(XQueryParser.FOLLOW_p_ElementNameOrWildcard_in_p_ElementTest10454); + p_ElementNameOrWildcard492=this.p_ElementNameOrWildcard(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementNameOrWildcard492.getTree()); + // xquery/XQueryParser.g:1402:51: ( COMMA p_TypeName ( QUESTION )? )? + var alt172=2; + var LA172_0 = this.input.LA(1); + + if ( (LA172_0==COMMA) ) { + alt172=1; + } + switch (alt172) { + case 1 : + // xquery/XQueryParser.g:1402:52: COMMA p_TypeName ( QUESTION )? + COMMA493=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_ElementTest10457); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA493_tree = this.adaptor.create(COMMA493); + this.adaptor.addChild(root_0, COMMA493_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_TypeName_in_p_ElementTest10459); + p_TypeName494=this.p_TypeName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeName494.getTree()); + // xquery/XQueryParser.g:1402:69: ( QUESTION )? + var alt171=2; + var LA171_0 = this.input.LA(1); + + if ( (LA171_0==QUESTION) ) { + alt171=1; + } + switch (alt171) { + case 1 : + // xquery/XQueryParser.g:1402:69: QUESTION + QUESTION495=this.match(this.input,QUESTION,XQueryParser.FOLLOW_QUESTION_in_p_ElementTest10461); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + QUESTION495_tree = this.adaptor.create(QUESTION495); + this.adaptor.addChild(root_0, QUESTION495_tree); + } + + + break; + + } + + + + break; + + } + + + + break; + + } + + RPAREN496=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ElementTest10468); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN496_tree = this.adaptor.create(RPAREN496); + this.adaptor.addChild(root_0, RPAREN496_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementNameOrWildcard_return: (function() { + XQueryParser.p_ElementNameOrWildcard_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementNameOrWildcard_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1406:1: p_ElementNameOrWildcard : ( p_QName | STAR ); + // $ANTLR start "p_ElementNameOrWildcard" + p_ElementNameOrWildcard: function() { + var retval = new XQueryParser.p_ElementNameOrWildcard_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var STAR498 = null; + var p_QName497 = null; + + var STAR498_tree=null; + + try { + // xquery/XQueryParser.g:1407:9: ( p_QName | STAR ) + var alt174=2; + var LA174_0 = this.input.LA(1); + + if ( ((LA174_0>=ANCESTOR && LA174_0<=SKIP)||(LA174_0>=VALUE && LA174_0<=QUOT_ER)||LA174_0==L_NCName||LA174_0==EXPLICITLY) ) { + alt174=1; + } + else if ( (LA174_0==STAR) ) { + alt174=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 174, 0, this.input); + + throw nvae; + } + switch (alt174) { + case 1 : + // xquery/XQueryParser.g:1407:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ElementNameOrWildcard10494); + p_QName497=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName497.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1407:21: STAR + root_0 = this.adaptor.nil(); + + STAR498=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_ElementNameOrWildcard10498); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR498_tree = this.adaptor.create(STAR498); + this.adaptor.addChild(root_0, STAR498_tree); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SchemaElementTest_return: (function() { + XQueryParser.p_SchemaElementTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SchemaElementTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1410:1: p_SchemaElementTest : SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN ; + // $ANTLR start "p_SchemaElementTest" + p_SchemaElementTest: function() { + var retval = new XQueryParser.p_SchemaElementTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SCHEMA_ELEMENT499 = null; + var LPAREN500 = null; + var RPAREN502 = null; + var p_ElementDeclaration501 = null; + + var SCHEMA_ELEMENT499_tree=null; + var LPAREN500_tree=null; + var RPAREN502_tree=null; + + try { + // xquery/XQueryParser.g:1411:9: ( SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN ) + // xquery/XQueryParser.g:1411:11: SCHEMA_ELEMENT LPAREN p_ElementDeclaration RPAREN + root_0 = this.adaptor.nil(); + + SCHEMA_ELEMENT499=this.match(this.input,SCHEMA_ELEMENT,XQueryParser.FOLLOW_SCHEMA_ELEMENT_in_p_SchemaElementTest10516); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SCHEMA_ELEMENT499_tree = this.adaptor.create(SCHEMA_ELEMENT499); + this.adaptor.addChild(root_0, SCHEMA_ELEMENT499_tree); + } + LPAREN500=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SchemaElementTest10518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN500_tree = this.adaptor.create(LPAREN500); + this.adaptor.addChild(root_0, LPAREN500_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ElementDeclaration_in_p_SchemaElementTest10520); + p_ElementDeclaration501=this.p_ElementDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementDeclaration501.getTree()); + RPAREN502=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SchemaElementTest10522); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN502_tree = this.adaptor.create(RPAREN502); + this.adaptor.addChild(root_0, RPAREN502_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementDeclaration_return: (function() { + XQueryParser.p_ElementDeclaration_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementDeclaration_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1415:1: p_ElementDeclaration : p_ElementName ; + // $ANTLR start "p_ElementDeclaration" + p_ElementDeclaration: function() { + var retval = new XQueryParser.p_ElementDeclaration_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ElementName503 = null; + + + try { + // xquery/XQueryParser.g:1416:9: ( p_ElementName ) + // xquery/XQueryParser.g:1416:11: p_ElementName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ElementName_in_p_ElementDeclaration10548); + p_ElementName503=this.p_ElementName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ElementName503.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AttributeName_return: (function() { + XQueryParser.p_AttributeName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AttributeName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1420:1: p_AttributeName : p_QName ; + // $ANTLR start "p_AttributeName" + p_AttributeName: function() { + var retval = new XQueryParser.p_AttributeName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName504 = null; + + + try { + // xquery/XQueryParser.g:1421:9: ( p_QName ) + // xquery/XQueryParser.g:1421:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AttributeName10574); + p_QName504=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName504.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementName_return: (function() { + XQueryParser.p_ElementName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1425:1: p_ElementName : p_QName ; + // $ANTLR start "p_ElementName" + p_ElementName: function() { + var retval = new XQueryParser.p_ElementName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName505 = null; + + + try { + // xquery/XQueryParser.g:1426:9: ( p_QName ) + // xquery/XQueryParser.g:1426:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ElementName10600); + p_QName505=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName505.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeName_return: (function() { + XQueryParser.p_TypeName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1430:1: p_TypeName : p_QName ; + // $ANTLR start "p_TypeName" + p_TypeName: function() { + var retval = new XQueryParser.p_TypeName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName506 = null; + + + try { + // xquery/XQueryParser.g:1431:9: ( p_QName ) + // xquery/XQueryParser.g:1431:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_TypeName10626); + p_QName506=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName506.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FunctionTest_return: (function() { + XQueryParser.p_FunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1435:1: p_FunctionTest : ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) ; + // $ANTLR start "p_FunctionTest" + p_FunctionTest: function() { + var retval = new XQueryParser.p_FunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Annotation507 = null; + var p_AnyFunctionTest508 = null; + var p_TypedFunctionTest509 = null; + + + try { + // xquery/XQueryParser.g:1436:9: ( ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) ) + // xquery/XQueryParser.g:1436:11: ( p_Annotation )* ( p_AnyFunctionTest | p_TypedFunctionTest ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1436:11: ( p_Annotation )* + loop175: + do { + var alt175=2; + var LA175_0 = this.input.LA(1); + + if ( (LA175_0==ANN_PERCENT) ) { + alt175=1; + } + + + switch (alt175) { + case 1 : + // xquery/XQueryParser.g:1436:11: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_p_FunctionTest10652); + p_Annotation507=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation507.getTree()); + + + break; + + default : + break loop175; + } + } while (true); + + // xquery/XQueryParser.g:1436:25: ( p_AnyFunctionTest | p_TypedFunctionTest ) + var alt176=2; + var LA176_0 = this.input.LA(1); + + if ( (LA176_0==FUNCTION) ) { + var LA176_1 = this.input.LA(2); + + if ( (LA176_1==LPAREN) ) { + var LA176_2 = this.input.LA(3); + + if ( (LA176_2==STAR) ) { + alt176=1; + } + else if ( ((LA176_2>=ANCESTOR && LA176_2<=SKIP)||(LA176_2>=VALUE && LA176_2<=QUOT_ER)||(LA176_2>=LPAREN && LA176_2<=RPAREN)||LA176_2==L_NCName||LA176_2==EXPLICITLY) ) { + alt176=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 2, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 176, 0, this.input); + + throw nvae; + } + switch (alt176) { + case 1 : + // xquery/XQueryParser.g:1436:26: p_AnyFunctionTest + this.pushFollow(XQueryParser.FOLLOW_p_AnyFunctionTest_in_p_FunctionTest10656); + p_AnyFunctionTest508=this.p_AnyFunctionTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AnyFunctionTest508.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1436:46: p_TypedFunctionTest + this.pushFollow(XQueryParser.FOLLOW_p_TypedFunctionTest_in_p_FunctionTest10660); + p_TypedFunctionTest509=this.p_TypedFunctionTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypedFunctionTest509.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AnyFunctionTest_return: (function() { + XQueryParser.p_AnyFunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AnyFunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1440:1: p_AnyFunctionTest : FUNCTION LPAREN STAR RPAREN ; + // $ANTLR start "p_AnyFunctionTest" + p_AnyFunctionTest: function() { + var retval = new XQueryParser.p_AnyFunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var FUNCTION510 = null; + var LPAREN511 = null; + var STAR512 = null; + var RPAREN513 = null; + + var FUNCTION510_tree=null; + var LPAREN511_tree=null; + var STAR512_tree=null; + var RPAREN513_tree=null; + + try { + // xquery/XQueryParser.g:1441:9: ( FUNCTION LPAREN STAR RPAREN ) + // xquery/XQueryParser.g:1441:11: FUNCTION LPAREN STAR RPAREN + root_0 = this.adaptor.nil(); + + FUNCTION510=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_p_AnyFunctionTest10687); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FUNCTION510_tree = this.adaptor.create(FUNCTION510); + this.adaptor.addChild(root_0, FUNCTION510_tree); + } + LPAREN511=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_AnyFunctionTest10689); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN511_tree = this.adaptor.create(LPAREN511); + this.adaptor.addChild(root_0, LPAREN511_tree); + } + STAR512=this.match(this.input,STAR,XQueryParser.FOLLOW_STAR_in_p_AnyFunctionTest10691); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + STAR512_tree = this.adaptor.create(STAR512); + this.adaptor.addChild(root_0, STAR512_tree); + } + RPAREN513=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_AnyFunctionTest10693); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN513_tree = this.adaptor.create(RPAREN513); + this.adaptor.addChild(root_0, RPAREN513_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypedFunctionTest_return: (function() { + XQueryParser.p_TypedFunctionTest_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypedFunctionTest_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1445:1: p_TypedFunctionTest : FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType ; + // $ANTLR start "p_TypedFunctionTest" + p_TypedFunctionTest: function() { + var retval = new XQueryParser.p_TypedFunctionTest_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var FUNCTION514 = null; + var LPAREN515 = null; + var COMMA517 = null; + var RPAREN519 = null; + var AS520 = null; + var p_SequenceType516 = null; + var p_SequenceType518 = null; + var p_SequenceType521 = null; + + var FUNCTION514_tree=null; + var LPAREN515_tree=null; + var COMMA517_tree=null; + var RPAREN519_tree=null; + var AS520_tree=null; + + try { + // xquery/XQueryParser.g:1446:9: ( FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType ) + // xquery/XQueryParser.g:1446:11: FUNCTION LPAREN ( p_SequenceType ( COMMA p_SequenceType )* )? RPAREN AS p_SequenceType + root_0 = this.adaptor.nil(); + + FUNCTION514=this.match(this.input,FUNCTION,XQueryParser.FOLLOW_FUNCTION_in_p_TypedFunctionTest10719); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + FUNCTION514_tree = this.adaptor.create(FUNCTION514); + this.adaptor.addChild(root_0, FUNCTION514_tree); + } + LPAREN515=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypedFunctionTest10721); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN515_tree = this.adaptor.create(LPAREN515); + this.adaptor.addChild(root_0, LPAREN515_tree); + } + // xquery/XQueryParser.g:1446:27: ( p_SequenceType ( COMMA p_SequenceType )* )? + var alt178=2; + var LA178_0 = this.input.LA(1); + + if ( ((LA178_0>=ANCESTOR && LA178_0<=SKIP)||(LA178_0>=VALUE && LA178_0<=QUOT_ER)||LA178_0==LPAREN||LA178_0==L_NCName||LA178_0==EXPLICITLY) ) { + alt178=1; + } + switch (alt178) { + case 1 : + // xquery/XQueryParser.g:1446:28: p_SequenceType ( COMMA p_SequenceType )* + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10724); + p_SequenceType516=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType516.getTree()); + // xquery/XQueryParser.g:1446:43: ( COMMA p_SequenceType )* + loop177: + do { + var alt177=2; + var LA177_0 = this.input.LA(1); + + if ( (LA177_0==COMMA) ) { + alt177=1; + } + + + switch (alt177) { + case 1 : + // xquery/XQueryParser.g:1446:44: COMMA p_SequenceType + COMMA517=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_TypedFunctionTest10727); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA517_tree = this.adaptor.create(COMMA517); + this.adaptor.addChild(root_0, COMMA517_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10729); + p_SequenceType518=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType518.getTree()); + + + break; + + default : + break loop177; + } + } while (true); + + + + break; + + } + + RPAREN519=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypedFunctionTest10735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN519_tree = this.adaptor.create(RPAREN519); + this.adaptor.addChild(root_0, RPAREN519_tree); + } + AS520=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_TypedFunctionTest10737); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + AS520_tree = this.adaptor.create(AS520); + this.adaptor.addChild(root_0, AS520_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_TypedFunctionTest10739); + p_SequenceType521=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType521.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ParenthesizedItemType_return: (function() { + XQueryParser.p_ParenthesizedItemType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ParenthesizedItemType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1450:1: p_ParenthesizedItemType : LPAREN p_ItemType RPAREN ; + // $ANTLR start "p_ParenthesizedItemType" + p_ParenthesizedItemType: function() { + var retval = new XQueryParser.p_ParenthesizedItemType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN522 = null; + var RPAREN524 = null; + var p_ItemType523 = null; + + var LPAREN522_tree=null; + var RPAREN524_tree=null; + + try { + // xquery/XQueryParser.g:1451:9: ( LPAREN p_ItemType RPAREN ) + // xquery/XQueryParser.g:1451:11: LPAREN p_ItemType RPAREN + root_0 = this.adaptor.nil(); + + LPAREN522=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_ParenthesizedItemType10765); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN522_tree = this.adaptor.create(LPAREN522); + this.adaptor.addChild(root_0, LPAREN522_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ItemType_in_p_ParenthesizedItemType10767); + p_ItemType523=this.p_ItemType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ItemType523.getTree()); + RPAREN524=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_ParenthesizedItemType10769); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN524_tree = this.adaptor.create(RPAREN524); + this.adaptor.addChild(root_0, RPAREN524_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StringLiteral_return: (function() { + XQueryParser.p_StringLiteral_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StringLiteral_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1480:1: p_StringLiteral : ( QUOT pg_QuotStringLiteralContent QUOT -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) | APOS pg_AposStringLiteralContent APOS -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) ); + // $ANTLR start "p_StringLiteral" + p_StringLiteral: function() { + var retval = new XQueryParser.p_StringLiteral_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var QUOT525 = null; + var QUOT527 = null; + var APOS528 = null; + var APOS530 = null; + var pg_QuotStringLiteralContent526 = null; + var pg_AposStringLiteralContent529 = null; + + var QUOT525_tree=null; + var QUOT527_tree=null; + var APOS528_tree=null; + var APOS530_tree=null; + var stream_APOS=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token APOS"); + var stream_QUOT=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token QUOT"); + var stream_pg_QuotStringLiteralContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_QuotStringLiteralContent"); + var stream_pg_AposStringLiteralContent=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule pg_AposStringLiteralContent"); + try { + // xquery/XQueryParser.g:1481:9: ( QUOT pg_QuotStringLiteralContent QUOT -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) | APOS pg_AposStringLiteralContent APOS -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) ) + var alt179=2; + var LA179_0 = this.input.LA(1); + + if ( (LA179_0==QUOT) ) { + alt179=1; + } + else if ( (LA179_0==APOS) ) { + alt179=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 179, 0, this.input); + + throw nvae; + } + switch (alt179) { + case 1 : + // xquery/XQueryParser.g:1481:11: QUOT pg_QuotStringLiteralContent QUOT + QUOT525=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_StringLiteral10820); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(QUOT525); + + if ( this.state.backtracking===0 ) { + this.pushStringLexer(false); + } + this.pushFollow(XQueryParser.FOLLOW_pg_QuotStringLiteralContent_in_p_StringLiteral10824); + pg_QuotStringLiteralContent526=this.pg_QuotStringLiteralContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_QuotStringLiteralContent.add(pg_QuotStringLiteralContent526.getTree()); + QUOT527=this.match(this.input,QUOT,XQueryParser.FOLLOW_QUOT_in_p_StringLiteral10826); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_QUOT.add(QUOT527); + + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + // AST REWRITE + // elements: pg_QuotStringLiteralContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1482:17: -> ^( StringLiteral ( pg_QuotStringLiteralContent )* ) + { + // xquery/XQueryParser.g:1482:20: ^( StringLiteral ( pg_QuotStringLiteralContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(StringLiteral, "StringLiteral"), root_1); + + // xquery/XQueryParser.g:1482:36: ( pg_QuotStringLiteralContent )* + while ( stream_pg_QuotStringLiteralContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_pg_QuotStringLiteralContent.nextTree()); + + } + stream_pg_QuotStringLiteralContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + case 2 : + // xquery/XQueryParser.g:1483:11: APOS pg_AposStringLiteralContent APOS + APOS528=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_StringLiteral10865); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(APOS528); + + if ( this.state.backtracking===0 ) { + this.pushStringLexer(true); + } + this.pushFollow(XQueryParser.FOLLOW_pg_AposStringLiteralContent_in_p_StringLiteral10869); + pg_AposStringLiteralContent529=this.pg_AposStringLiteralContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_pg_AposStringLiteralContent.add(pg_AposStringLiteralContent529.getTree()); + APOS530=this.match(this.input,APOS,XQueryParser.FOLLOW_APOS_in_p_StringLiteral10871); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_APOS.add(APOS530); + + if ( this.state.backtracking===0 ) { + this.popLexer(); + } + + + // AST REWRITE + // elements: pg_AposStringLiteralContent + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1484:17: -> ^( StringLiteral ( pg_AposStringLiteralContent )* ) + { + // xquery/XQueryParser.g:1484:20: ^( StringLiteral ( pg_AposStringLiteralContent )* ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(StringLiteral, "StringLiteral"), root_1); + + // xquery/XQueryParser.g:1484:36: ( pg_AposStringLiteralContent )* + while ( stream_pg_AposStringLiteralContent.hasNext() ) { + this.adaptor.addChild(root_1, stream_pg_AposStringLiteralContent.nextTree()); + + } + stream_pg_AposStringLiteralContent.reset(); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.addString(retval.start, retval.stop); + } + return retval; + }, + + // inline static return class + pg_QuotStringLiteralContent_return: (function() { + XQueryParser.pg_QuotStringLiteralContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_QuotStringLiteralContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1490:1: pg_QuotStringLiteralContent : ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* ; + // $ANTLR start "pg_QuotStringLiteralContent" + pg_QuotStringLiteralContent: function() { + var retval = new XQueryParser.pg_QuotStringLiteralContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set531 = null; + + var set531_tree=null; + + try { + // xquery/XQueryParser.g:1491:9: ( ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* ) + // xquery/XQueryParser.g:1491:11: ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1491:11: ( ESCAPE_QUOT | L_CharRef | L_PredefinedEntityRef | ~ ( QUOT | AMP ) )* + loop180: + do { + var alt180=2; + var LA180_0 = this.input.LA(1); + + if ( ((LA180_0>=L_QuotAttrContentChar && LA180_0<=HASH)||(LA180_0>=COMMA && LA180_0<=APOS)||(LA180_0>=NCNameStartChar && LA180_0<=EXPLICITLY)) ) { + alt180=1; + } + + + switch (alt180) { + case 1 : + // xquery/XQueryParser.g: + set531=this.input.LT(1); + if ( (this.input.LA(1)>=L_QuotAttrContentChar && this.input.LA(1)<=HASH)||(this.input.LA(1)>=COMMA && this.input.LA(1)<=APOS)||(this.input.LA(1)>=NCNameStartChar && this.input.LA(1)<=EXPLICITLY) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set531)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + break; + + default : + break loop180; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_AposStringLiteralContent_return: (function() { + XQueryParser.pg_AposStringLiteralContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_AposStringLiteralContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1498:1: pg_AposStringLiteralContent : ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* ; + // $ANTLR start "pg_AposStringLiteralContent" + pg_AposStringLiteralContent: function() { + var retval = new XQueryParser.pg_AposStringLiteralContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set532 = null; + + var set532_tree=null; + + try { + // xquery/XQueryParser.g:1499:9: ( ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* ) + // xquery/XQueryParser.g:1499:11: ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1499:11: ( ESCAPE_APOS | L_CharRef | L_PredefinedEntityRef | ~ ( APOS | AMP ) )* + loop181: + do { + var alt181=2; + var LA181_0 = this.input.LA(1); + + if ( ((LA181_0>=L_QuotAttrContentChar && LA181_0<=HASH)||(LA181_0>=COMMA && LA181_0<=CHARREF_HEX)||(LA181_0>=QUOT && LA181_0<=EXPLICITLY)) ) { + alt181=1; + } + + + switch (alt181) { + case 1 : + // xquery/XQueryParser.g: + set532=this.input.LT(1); + if ( (this.input.LA(1)>=L_QuotAttrContentChar && this.input.LA(1)<=HASH)||(this.input.LA(1)>=COMMA && this.input.LA(1)<=CHARREF_HEX)||(this.input.LA(1)>=QUOT && this.input.LA(1)<=EXPLICITLY) ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set532)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + break; + + default : + break loop181; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ElementContentChar_return: (function() { + XQueryParser.p_ElementContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ElementContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1513:1: p_ElementContentChar : L_ElementContentChar ; + // $ANTLR start "p_ElementContentChar" + p_ElementContentChar: function() { + var retval = new XQueryParser.p_ElementContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_ElementContentChar533 = null; + + var L_ElementContentChar533_tree=null; + + try { + // xquery/XQueryParser.g:1514:9: ( L_ElementContentChar ) + // xquery/XQueryParser.g:1514:11: L_ElementContentChar + root_0 = this.adaptor.nil(); + + L_ElementContentChar533=this.match(this.input,L_ElementContentChar,XQueryParser.FOLLOW_L_ElementContentChar_in_p_ElementContentChar11046); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_ElementContentChar533_tree = this.adaptor.create(L_ElementContentChar533); + this.adaptor.addChild(root_0, L_ElementContentChar533_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QuotAttrContentChar_return: (function() { + XQueryParser.p_QuotAttrContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QuotAttrContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1518:1: p_QuotAttrContentChar : L_QuotAttrContentChar -> ^( AttributeValueChar L_QuotAttrContentChar ) ; + // $ANTLR start "p_QuotAttrContentChar" + p_QuotAttrContentChar: function() { + var retval = new XQueryParser.p_QuotAttrContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_QuotAttrContentChar534 = null; + + var L_QuotAttrContentChar534_tree=null; + var stream_L_QuotAttrContentChar=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token L_QuotAttrContentChar"); + + try { + // xquery/XQueryParser.g:1519:9: ( L_QuotAttrContentChar -> ^( AttributeValueChar L_QuotAttrContentChar ) ) + // xquery/XQueryParser.g:1519:11: L_QuotAttrContentChar + L_QuotAttrContentChar534=this.match(this.input,L_QuotAttrContentChar,XQueryParser.FOLLOW_L_QuotAttrContentChar_in_p_QuotAttrContentChar11072); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_L_QuotAttrContentChar.add(L_QuotAttrContentChar534); + + + + // AST REWRITE + // elements: L_QuotAttrContentChar + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1520:17: -> ^( AttributeValueChar L_QuotAttrContentChar ) + { + // xquery/XQueryParser.g:1520:20: ^( AttributeValueChar L_QuotAttrContentChar ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AttributeValueChar, "AttributeValueChar"), root_1); + + this.adaptor.addChild(root_1, stream_L_QuotAttrContentChar.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AposAttrContentChar_return: (function() { + XQueryParser.p_AposAttrContentChar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AposAttrContentChar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1524:1: p_AposAttrContentChar : L_AposAttrContentChar -> ^( AttributeValueChar L_AposAttrContentChar ) ; + // $ANTLR start "p_AposAttrContentChar" + p_AposAttrContentChar: function() { + var retval = new XQueryParser.p_AposAttrContentChar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_AposAttrContentChar535 = null; + + var L_AposAttrContentChar535_tree=null; + var stream_L_AposAttrContentChar=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token L_AposAttrContentChar"); + + try { + // xquery/XQueryParser.g:1525:9: ( L_AposAttrContentChar -> ^( AttributeValueChar L_AposAttrContentChar ) ) + // xquery/XQueryParser.g:1525:11: L_AposAttrContentChar + L_AposAttrContentChar535=this.match(this.input,L_AposAttrContentChar,XQueryParser.FOLLOW_L_AposAttrContentChar_in_p_AposAttrContentChar11122); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_L_AposAttrContentChar.add(L_AposAttrContentChar535); + + + + // AST REWRITE + // elements: L_AposAttrContentChar + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1526:17: -> ^( AttributeValueChar L_AposAttrContentChar ) + { + // xquery/XQueryParser.g:1526:20: ^( AttributeValueChar L_AposAttrContentChar ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(AttributeValueChar, "AttributeValueChar"), root_1); + + this.adaptor.addChild(root_1, stream_L_AposAttrContentChar.nextNode()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_QName_return: (function() { + XQueryParser.p_QName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_QName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1544:1: p_QName : ( pg_QName | p_NCName -> ^( QName p_NCName ) ); + // $ANTLR start "p_QName" + p_QName: function() { + var retval = new XQueryParser.p_QName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pg_QName536 = null; + var p_NCName537 = null; + + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + this.setWsExplicit(true); + try { + // xquery/XQueryParser.g:1546:9: ( pg_QName | p_NCName -> ^( QName p_NCName ) ) + var alt182=2; + var LA182_0 = this.input.LA(1); + + if ( ((LA182_0>=ANCESTOR && LA182_0<=SKIP)||(LA182_0>=VALUE && LA182_0<=QUOT_ER)||LA182_0==L_NCName||LA182_0==EXPLICITLY) ) { + var LA182_1 = this.input.LA(2); + + if ( (LA182_1==COLON) ) { + alt182=1; + } + else if ( (LA182_1==EOF||(LA182_1>=AND && LA182_1<=AT)||(LA182_1>=BY && LA182_1<=CASTABLE)||LA182_1==COLLATION||LA182_1==DEFAULT||(LA182_1>=DESCENDING && LA182_1<=DIV)||LA182_1==EMPTY||LA182_1==EQ||(LA182_1>=EXCEPT && LA182_1<=EXTERNAL)||(LA182_1>=FOR && LA182_1<=GE)||(LA182_1>=GT && LA182_1<=IDIV)||LA182_1==IN||(LA182_1>=INSTANCE && LA182_1<=IS)||LA182_1==LE||(LA182_1>=LET && LA182_1<=MOD)||LA182_1==NE||LA182_1==NODE||(LA182_1>=OR && LA182_1<=ORDER)||(LA182_1>=RETURN && LA182_1<=SATISFIES)||LA182_1==STABLE||(LA182_1>=TO && LA182_1<=TREAT)||LA182_1==UNION||LA182_1==VARIABLE||LA182_1==WHERE||LA182_1==ALLOWING||LA182_1==COUNT||(LA182_1>=DECIMAL_SEPARATOR && LA182_1<=MINUS_SIGN)||(LA182_1>=NAN && LA182_1<=PREVIOUS)||LA182_1==START||LA182_1==WHEN||(LA182_1>=ZERO_DIGIT && LA182_1<=BEFORE)||LA182_1==INTO||LA182_1==MODIFY||LA182_1==UPDATING||LA182_1==WITH||LA182_1==CONTAINS||LA182_1==PARAGRAPHS||LA182_1==SCORE||LA182_1==SENTENCES||LA182_1==TIMES||LA182_1==WORDS||(LA182_1>=CHECK && LA182_1<=COLLECTION)||(LA182_1>=FOREACH && LA182_1<=ON)||(LA182_1>=CONCAT && LA182_1<=ANN_PERCENT)||(LA182_1>=COMMA && LA182_1<=SLASH_SLASH)||LA182_1==EMPTY_CLOSE_TAG||(LA182_1>=SEMICOLON && LA182_1<=VBAR)||(LA182_1>=APOS && LA182_1<=QUOT)||LA182_1==S) ) { + alt182=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 182, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 182, 0, this.input); + + throw nvae; + } + switch (alt182) { + case 1 : + // xquery/XQueryParser.g:1546:11: pg_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_QName_in_p_QName11208); + pg_QName536=this.pg_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_QName536.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1547:11: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_p_QName11220); + p_NCName537=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(p_NCName537.getTree()); + + + // AST REWRITE + // elements: p_NCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1548:17: -> ^( QName p_NCName ) + { + // xquery/XQueryParser.g:1548:20: ^( QName p_NCName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_p_NCName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + this.setWsExplicit(false); + } + return retval; + }, + + // inline static return class + pg_FQName_return: (function() { + XQueryParser.pg_FQName_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_FQName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1552:1: pg_FQName : ( pg_QName | p_FNCName -> ^( QName p_FNCName ) ); + // $ANTLR start "pg_FQName" + pg_FQName: function() { + var retval = new XQueryParser.pg_FQName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var pg_QName538 = null; + var p_FNCName539 = null; + + var stream_p_FNCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_FNCName"); + try { + // xquery/XQueryParser.g:1553:9: ( pg_QName | p_FNCName -> ^( QName p_FNCName ) ) + var alt183=2; + switch ( this.input.LA(1) ) { + case ANCESTOR: + case ANCESTOR_OR_SELF: + case AND: + case AS: + case ASCENDING: + case AT: + case BASE_URI: + case BOUNDARY_SPACE: + case BY: + case CASE: + case CAST: + case CASTABLE: + case CHILD: + case COLLATION: + case CONSTRUCTION: + case COPY_NAMESPACES: + case DECLARE: + case DEFAULT: + case DESCENDANT: + case DESCENDANT_OR_SELF: + case DESCENDING: + case DIV: + case DOCUMENT: + case ELSE: + case EMPTY: + case ENCODING: + case EQ: + case EVERY: + case EXCEPT: + case EXTERNAL: + case FOLLOWING: + case FOLLOWING_SIBLING: + case FOR: + case FUNCTION: + case GE: + case GREATEST: + case GT: + case IDIV: + case IMPORT: + case IN: + case INHERIT: + case INSTANCE: + case INTERSECT: + case IS: + case LAX: + case LE: + case LEAST: + case LET: + case LT: + case MOD: + case MODULE: + case NAMESPACE: + case NE: + case NO_INHERIT: + case NO_PRESERVE: + case OF: + case OPTION: + case OR: + case ORDER: + case ORDERED: + case ORDERING: + case PARENT: + case PRECEDING: + case PRECEDING_SIBLING: + case PRESERVE: + case RETURN: + case SATISFIES: + case SCHEMA: + case SELF: + case SOME: + case STABLE: + case STRICT: + case STRIP: + case THEN: + case TO: + case TREAT: + case UNION: + case UNORDERED: + case VALIDATE: + case VARIABLE: + case VERSION: + case WHERE: + case XQUERY: + case ALLOWING: + case CATCH: + case CONTEXT: + case COUNT: + case DECIMAL_FORMAT: + case DECIMAL_SEPARATOR: + case DIGIT: + case END: + case GROUP: + case GROUPING_SEPARATOR: + case INFINITY: + case MINUS_SIGN: + case NAN: + case NEXT: + case ONLY: + case PATTERN_SEPARATOR: + case PERCENT: + case PER_MILLE: + case PREVIOUS: + case SLIDING: + case START: + case TRY: + case TUMBLING: + case TYPE: + case WHEN: + case WINDOW: + case ZERO_DIGIT: + case AFTER: + case BEFORE: + case COPY: + case DELETE: + case FIRST: + case INSERT: + case INTO: + case LAST: + case MODIFY: + case NODES: + case RENAME: + case REPLACE: + case REVALIDATION: + case SKIP: + case VALUE: + case WITH: + case ALL: + case ANY: + case CONTAINS: + case CONTENT: + case DIACRITICS: + case DIFFERENT: + case DISTANCE: + case ENTIRE: + case EXACTLY: + case FROM: + case FT_OPTION: + case FTAND: + case FTNOT: + case FTOR: + case INSENSITIVE: + case LANGUAGE: + case LEVELS: + case LOWERCASE: + case MOST: + case NO: + case NOT: + case OCCURS: + case PARAGRAPH: + case PARAGRAPHS: + case PHRASE: + case RELATIONSHIP: + case SAME: + case SCORE: + case SENSITIVE: + case SENTENCE: + case SENTENCES: + case STEMMING: + case STOP: + case THESAURUS: + case TIMES: + case UPPERCASE: + case USING: + case WEIGHT: + case WILDCARDS: + case WITHOUT: + case WORD: + case WORDS: + case BREAK: + case CONTINUE: + case EXIT: + case LOOP: + case RETURNING: + case CHECK: + case COLLECTION: + case CONSTRAINT: + case FOREACH: + case FOREIGN: + case INDEX: + case INTEGRITY: + case KEY: + case ON: + case UNIQUE: + case BINARY: + case AMP_ER: + case APOS_ER: + case QUOT_ER: + case L_NCName: + case EXPLICITLY: + var LA183_1 = this.input.LA(2); + + if ( (LA183_1==COLON) ) { + alt183=1; + } + else if ( (LA183_1==LPAREN) ) { + alt183=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 183, 1, this.input); + + throw nvae; + } + break; + case ATTRIBUTE: + case COMMENT: + case DOCUMENT_NODE: + case ELEMENT: + case EMPTY_SEQUENCE: + case IF: + case ITEM: + case NODE: + case PROCESSING_INSTRUCTION: + case SCHEMA_ATTRIBUTE: + case SCHEMA_ELEMENT: + case TEXT: + case TYPESWITCH: + case NAMESPACE_NODE: + case SWITCH: + case WHILE: + alt183=1; + break; + case UPDATING: + alt183=2; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 183, 0, this.input); + + throw nvae; + } + + switch (alt183) { + case 1 : + // xquery/XQueryParser.g:1553:11: pg_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_pg_QName_in_pg_FQName11281); + pg_QName538=this.pg_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_QName538.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1554:11: p_FNCName + this.pushFollow(XQueryParser.FOLLOW_p_FNCName_in_pg_FQName11293); + p_FNCName539=this.p_FNCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_FNCName.add(p_FNCName539.getTree()); + + + // AST REWRITE + // elements: p_FNCName + // token labels: + // rule labels: retval + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + + root_0 = this.adaptor.nil(); + // 1555:17: -> ^( QName p_FNCName ) + { + // xquery/XQueryParser.g:1555:20: ^( QName p_FNCName ) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_p_FNCName.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_QName_return: (function() { + XQueryParser.pg_QName_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_QName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1557:1: pg_QName : nn= p_NCName COLON nl= p_NCName -> ^( QName $nn $nl) ; + // $ANTLR start "pg_QName" + pg_QName: function() { + var retval = new XQueryParser.pg_QName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var COLON540 = null; + var nn = null; + var nl = null; + + var COLON540_tree=null; + var stream_COLON=new org.antlr.runtime.tree.RewriteRuleTokenStream(this.adaptor,"token COLON"); + var stream_p_NCName=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"rule p_NCName"); + try { + // xquery/XQueryParser.g:1558:9: (nn= p_NCName COLON nl= p_NCName -> ^( QName $nn $nl) ) + // xquery/XQueryParser.g:1558:11: nn= p_NCName COLON nl= p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pg_QName11337); + nn=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nn.getTree()); + COLON540=this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_pg_QName11339); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_COLON.add(COLON540); + + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_pg_QName11343); + nl=this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) stream_p_NCName.add(nl.getTree()); + + + // AST REWRITE + // elements: nl, nn + // token labels: + // rule labels: retval, nn, nl + // token list labels: + // rule list labels: + if ( this.state.backtracking===0 ) { + retval.tree = root_0; + var stream_retval=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token retval",retval!=null?retval.tree:null); + var stream_nn=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nn",nn!=null?nn.tree:null); + var stream_nl=new org.antlr.runtime.tree.RewriteRuleSubtreeStream(this.adaptor,"token nl",nl!=null?nl.tree:null); + + root_0 = this.adaptor.nil(); + // 1559:17: -> ^( QName $nn $nl) + { + // xquery/XQueryParser.g:1559:20: ^( QName $nn $nl) + { + var root_1 = this.adaptor.nil(); + root_1 = this.adaptor.becomeRoot(this.adaptor.create(QName, "QName"), root_1); + + this.adaptor.addChild(root_1, stream_nn.nextTree()); + this.adaptor.addChild(root_1, stream_nl.nextTree()); + + this.adaptor.addChild(root_0, root_1); + } + + } + + retval.tree = root_0;} + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NCName_return: (function() { + XQueryParser.p_NCName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NCName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1589:1: p_NCName : ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | SWITCH | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ); + // $ANTLR start "p_NCName" + p_NCName: function() { + var retval = new XQueryParser.p_NCName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set541 = null; + + var set541_tree=null; + + try { + // xquery/XQueryParser.g:1590:9: ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | ATTRIBUTE | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | COMMENT | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | DOCUMENT_NODE | ELEMENT | ELSE | EMPTY | EMPTY_SEQUENCE | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IF | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | ITEM | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | NODE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | PROCESSING_INSTRUCTION | RETURN | SATISFIES | SCHEMA | SCHEMA_ATTRIBUTE | SCHEMA_ELEMENT | SELF | SOME | STABLE | STRICT | STRIP | SWITCH | TEXT | THEN | TO | TREAT | TYPESWITCH | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAMESPACE_NODE | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | WHILE | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set541=this.input.LT(1); + if ( (this.input.LA(1)>=ANCESTOR && this.input.LA(1)<=SKIP)||(this.input.LA(1)>=VALUE && this.input.LA(1)<=QUOT_ER)||this.input.LA(1)==L_NCName||this.input.LA(1)==EXPLICITLY ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set541)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FNCName_return: (function() { + XQueryParser.p_FNCName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FNCName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1608:1: p_FNCName : ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | ELSE | EMPTY | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | RETURN | SATISFIES | SCHEMA | SELF | SOME | STABLE | STRICT | STRIP | THEN | TO | TREAT | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ); + // $ANTLR start "p_FNCName" + p_FNCName: function() { + var retval = new XQueryParser.p_FNCName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var set542 = null; + + var set542_tree=null; + + try { + // xquery/XQueryParser.g:1609:9: ( L_NCName | ANCESTOR | ANCESTOR_OR_SELF | AND | AS | ASCENDING | AT | BASE_URI | BOUNDARY_SPACE | BY | CASE | CAST | CASTABLE | CHILD | COLLATION | CONSTRUCTION | COPY_NAMESPACES | DECLARE | DEFAULT | DESCENDANT | DESCENDANT_OR_SELF | DESCENDING | DIV | DOCUMENT | ELSE | EMPTY | ENCODING | EQ | EVERY | EXCEPT | EXTERNAL | FOLLOWING | FOLLOWING_SIBLING | FOR | FUNCTION | GE | GREATEST | GT | IDIV | IMPORT | IN | INHERIT | INSTANCE | INTERSECT | IS | LAX | LE | LEAST | LET | LT | MOD | MODULE | NAMESPACE | NE | NO_INHERIT | NO_PRESERVE | OF | OPTION | OR | ORDER | ORDERED | ORDERING | PARENT | PRECEDING | PRECEDING_SIBLING | PRESERVE | RETURN | SATISFIES | SCHEMA | SELF | SOME | STABLE | STRICT | STRIP | THEN | TO | TREAT | UNION | UNORDERED | VALIDATE | VARIABLE | VERSION | WHERE | XQUERY | ALLOWING | CATCH | CONTEXT | COUNT | DECIMAL_FORMAT | DECIMAL_SEPARATOR | DIGIT | END | GROUP | GROUPING_SEPARATOR | INFINITY | MINUS_SIGN | NAN | NEXT | ONLY | PATTERN_SEPARATOR | PERCENT | PER_MILLE | PREVIOUS | SLIDING | START | TRY | TUMBLING | TYPE | WHEN | WINDOW | ZERO_DIGIT | AFTER | BEFORE | COPY | DELETE | FIRST | INSERT | INTO | LAST | MODIFY | NODES | RENAME | REPLACE | REVALIDATION | SKIP | UPDATING | VALUE | WITH | ALL | ANY | CONTAINS | CONTENT | DIACRITICS | DIFFERENT | DISTANCE | ENTIRE | EXACTLY | FROM | FT_OPTION | FTAND | FTNOT | FTOR | INSENSITIVE | LANGUAGE | LEVELS | LOWERCASE | MOST | NO | NOT | OCCURS | PARAGRAPH | PARAGRAPHS | PHRASE | RELATIONSHIP | SAME | SCORE | SENSITIVE | SENTENCE | SENTENCES | STEMMING | STOP | THESAURUS | TIMES | UPPERCASE | USING | WEIGHT | WILDCARDS | WITHOUT | WORD | WORDS | BREAK | CONTINUE | EXIT | LOOP | RETURNING | CHECK | COLLECTION | CONSTRAINT | EXPLICITLY | FOREACH | FOREIGN | INDEX | INTEGRITY | KEY | ON | UNIQUE | BINARY | AMP_ER | APOS_ER | QUOT_ER ) + // xquery/XQueryParser.g: + root_0 = this.adaptor.nil(); + + set542=this.input.LT(1); + if ( (this.input.LA(1)>=ANCESTOR && this.input.LA(1)<=AT)||(this.input.LA(1)>=BASE_URI && this.input.LA(1)<=COLLATION)||(this.input.LA(1)>=CONSTRUCTION && this.input.LA(1)<=DOCUMENT)||(this.input.LA(1)>=ELSE && this.input.LA(1)<=EMPTY)||(this.input.LA(1)>=ENCODING && this.input.LA(1)<=IDIV)||(this.input.LA(1)>=IMPORT && this.input.LA(1)<=IS)||(this.input.LA(1)>=LAX && this.input.LA(1)<=NO_PRESERVE)||(this.input.LA(1)>=OF && this.input.LA(1)<=PRESERVE)||(this.input.LA(1)>=RETURN && this.input.LA(1)<=SCHEMA)||(this.input.LA(1)>=SELF && this.input.LA(1)<=STRIP)||(this.input.LA(1)>=THEN && this.input.LA(1)<=TREAT)||(this.input.LA(1)>=UNION && this.input.LA(1)<=MINUS_SIGN)||(this.input.LA(1)>=NAN && this.input.LA(1)<=START)||(this.input.LA(1)>=TRY && this.input.LA(1)<=RETURNING)||(this.input.LA(1)>=CHECK && this.input.LA(1)<=QUOT_ER)||this.input.LA(1)==L_NCName||this.input.LA(1)==EXPLICITLY ) { + this.input.consume(); + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, this.adaptor.create(set542)); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pg_UpdateExpr_return: (function() { + XQueryParser.pg_UpdateExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.pg_UpdateExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1646:1: pg_UpdateExpr : ( p_InsertExpr | p_DeleteExpr | p_RenameExpr | p_ReplaceExpr | p_TransformExpr ); + // $ANTLR start "pg_UpdateExpr" + pg_UpdateExpr: function() { + var retval = new XQueryParser.pg_UpdateExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InsertExpr543 = null; + var p_DeleteExpr544 = null; + var p_RenameExpr545 = null; + var p_ReplaceExpr546 = null; + var p_TransformExpr547 = null; + + + try { + // xquery/XQueryParser.g:1647:9: ( p_InsertExpr | p_DeleteExpr | p_RenameExpr | p_ReplaceExpr | p_TransformExpr ) + var alt184=5; + switch ( this.input.LA(1) ) { + case INSERT: + alt184=1; + break; + case DELETE: + alt184=2; + break; + case RENAME: + alt184=3; + break; + case REPLACE: + alt184=4; + break; + case COPY: + alt184=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 184, 0, this.input); + + throw nvae; + } + + switch (alt184) { + case 1 : + // xquery/XQueryParser.g:1647:11: p_InsertExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InsertExpr_in_pg_UpdateExpr13334); + p_InsertExpr543=this.p_InsertExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InsertExpr543.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1648:11: p_DeleteExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_DeleteExpr_in_pg_UpdateExpr13346); + p_DeleteExpr544=this.p_DeleteExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_DeleteExpr544.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1649:11: p_RenameExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_RenameExpr_in_pg_UpdateExpr13358); + p_RenameExpr545=this.p_RenameExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_RenameExpr545.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1650:11: p_ReplaceExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ReplaceExpr_in_pg_UpdateExpr13370); + p_ReplaceExpr546=this.p_ReplaceExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReplaceExpr546.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1651:11: p_TransformExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_TransformExpr_in_pg_UpdateExpr13382); + p_TransformExpr547=this.p_TransformExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TransformExpr547.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_RevalidationDecl_return: (function() { + XQueryParser.pm_RevalidationDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_RevalidationDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1655:1: pm_RevalidationDecl : k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON ; + // $ANTLR start "pm_RevalidationDecl" + pm_RevalidationDecl: function() { + var retval = new XQueryParser.pm_RevalidationDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON548 = null; + var k = null; + var list_k=null; + + var SEMICOLON548_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1656:9: (k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON ) + // xquery/XQueryParser.g:1656:11: k+= DECLARE k+= REVALIDATION (k+= STRICT | k+= LAX | k+= SKIP ) SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_RevalidationDecl13410); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,REVALIDATION,XQueryParser.FOLLOW_REVALIDATION_in_pm_RevalidationDecl13414); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1656:38: (k+= STRICT | k+= LAX | k+= SKIP ) + var alt185=3; + switch ( this.input.LA(1) ) { + case STRICT: + alt185=1; + break; + case LAX: + alt185=2; + break; + case SKIP: + alt185=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 185, 0, this.input); + + throw nvae; + } + + switch (alt185) { + case 1 : + // xquery/XQueryParser.g:1656:39: k+= STRICT + k=this.match(this.input,STRICT,XQueryParser.FOLLOW_STRICT_in_pm_RevalidationDecl13419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1656:51: k+= LAX + k=this.match(this.input,LAX,XQueryParser.FOLLOW_LAX_in_pm_RevalidationDecl13425); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 3 : + // xquery/XQueryParser.g:1656:60: k+= SKIP + k=this.match(this.input,SKIP,XQueryParser.FOLLOW_SKIP_in_pm_RevalidationDecl13431); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + SEMICOLON548=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_RevalidationDecl13436); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON548_tree = this.adaptor.create(SEMICOLON548); + this.adaptor.addChild(root_0, SEMICOLON548_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InsertExprTargetChoice_return: (function() { + XQueryParser.p_InsertExprTargetChoice_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InsertExprTargetChoice_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1660:1: p_InsertExprTargetChoice : ( ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) | ka= AFTER | kb= BEFORE ); + // $ANTLR start "p_InsertExprTargetChoice" + p_InsertExprTargetChoice: function() { + var retval = new XQueryParser.p_InsertExprTargetChoice_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var kb = null; + var k = null; + var list_k=null; + + var ka_tree=null; + var kb_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1661:9: ( ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) | ka= AFTER | kb= BEFORE ) + var alt188=3; + switch ( this.input.LA(1) ) { + case AS: + case INTO: + alt188=1; + break; + case AFTER: + alt188=2; + break; + case BEFORE: + alt188=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 188, 0, this.input); + + throw nvae; + } + + switch (alt188) { + case 1 : + // xquery/XQueryParser.g:1661:11: ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1661:11: ( (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO ) + // xquery/XQueryParser.g:1661:12: (k+= AS (k+= FIRST | k+= LAST ) )? k+= INTO + // xquery/XQueryParser.g:1661:12: (k+= AS (k+= FIRST | k+= LAST ) )? + var alt187=2; + var LA187_0 = this.input.LA(1); + + if ( (LA187_0==AS) ) { + alt187=1; + } + switch (alt187) { + case 1 : + // xquery/XQueryParser.g:1661:13: k+= AS (k+= FIRST | k+= LAST ) + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_InsertExprTargetChoice13466); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1661:19: (k+= FIRST | k+= LAST ) + var alt186=2; + var LA186_0 = this.input.LA(1); + + if ( (LA186_0==FIRST) ) { + alt186=1; + } + else if ( (LA186_0==LAST) ) { + alt186=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 186, 0, this.input); + + throw nvae; + } + switch (alt186) { + case 1 : + // xquery/XQueryParser.g:1661:20: k+= FIRST + k=this.match(this.input,FIRST,XQueryParser.FOLLOW_FIRST_in_p_InsertExprTargetChoice13471); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1661:31: k+= LAST + k=this.match(this.input,LAST,XQueryParser.FOLLOW_LAST_in_p_InsertExprTargetChoice13477); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + break; + + } + + k=this.match(this.input,INTO,XQueryParser.FOLLOW_INTO_in_p_InsertExprTargetChoice13484); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + break; + case 2 : + // xquery/XQueryParser.g:1662:11: ka= AFTER + root_0 = this.adaptor.nil(); + + ka=this.match(this.input,AFTER,XQueryParser.FOLLOW_AFTER_in_p_InsertExprTargetChoice13501); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + + + break; + case 3 : + // xquery/XQueryParser.g:1663:11: kb= BEFORE + root_0 = this.adaptor.nil(); + + kb=this.match(this.input,BEFORE,XQueryParser.FOLLOW_BEFORE_in_p_InsertExprTargetChoice13517); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kb_tree = this.adaptor.create(kb); + this.adaptor.addChild(root_0, kb_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kb); + } + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_InsertExpr_return: (function() { + XQueryParser.p_InsertExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_InsertExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1667:1: p_InsertExpr : k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr ; + // $ANTLR start "p_InsertExpr" + p_InsertExpr: function() { + var retval = new XQueryParser.p_InsertExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_SourceExpr549 = null; + var p_InsertExprTargetChoice550 = null; + var p_TargetExpr551 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1668:9: (k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr ) + // xquery/XQueryParser.g:1668:11: k+= INSERT (k+= NODE | k+= NODES ) p_SourceExpr p_InsertExprTargetChoice p_TargetExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INSERT,XQueryParser.FOLLOW_INSERT_in_p_InsertExpr13547); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1668:21: (k+= NODE | k+= NODES ) + var alt189=2; + var LA189_0 = this.input.LA(1); + + if ( (LA189_0==NODE) ) { + alt189=1; + } + else if ( (LA189_0==NODES) ) { + alt189=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 189, 0, this.input); + + throw nvae; + } + switch (alt189) { + case 1 : + // xquery/XQueryParser.g:1668:22: k+= NODE + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_InsertExpr13552); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1668:32: k+= NODES + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_InsertExpr13558); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SourceExpr_in_p_InsertExpr13561); + p_SourceExpr549=this.p_SourceExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SourceExpr549.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_InsertExprTargetChoice_in_p_InsertExpr13563); + p_InsertExprTargetChoice550=this.p_InsertExprTargetChoice(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InsertExprTargetChoice550.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_InsertExpr13565); + p_TargetExpr551=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr551.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_DeleteExpr_return: (function() { + XQueryParser.p_DeleteExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_DeleteExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1672:1: p_DeleteExpr : k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr ; + // $ANTLR start "p_DeleteExpr" + p_DeleteExpr: function() { + var retval = new XQueryParser.p_DeleteExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_TargetExpr552 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1673:9: (k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr ) + // xquery/XQueryParser.g:1673:11: k+= DELETE (k+= NODE | k+= NODES ) p_TargetExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DELETE,XQueryParser.FOLLOW_DELETE_in_p_DeleteExpr13595); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1673:21: (k+= NODE | k+= NODES ) + var alt190=2; + var LA190_0 = this.input.LA(1); + + if ( (LA190_0==NODE) ) { + alt190=1; + } + else if ( (LA190_0==NODES) ) { + alt190=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 190, 0, this.input); + + throw nvae; + } + switch (alt190) { + case 1 : + // xquery/XQueryParser.g:1673:22: k+= NODE + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_DeleteExpr13600); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1673:32: k+= NODES + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_DeleteExpr13606); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_DeleteExpr13609); + p_TargetExpr552=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr552.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReplaceExpr_return: (function() { + XQueryParser.p_ReplaceExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReplaceExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1677:1: p_ReplaceExpr : k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] ; + // $ANTLR start "p_ReplaceExpr" + p_ReplaceExpr: function() { + var retval = new XQueryParser.p_ReplaceExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_ExprSingle553 = null; + var p_ExprSingle554 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1678:9: (k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] ) + // xquery/XQueryParser.g:1678:11: k+= REPLACE (k+= VALUE k+= OF )? k+= NODE p_ExprSingle[true] k+= WITH p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,REPLACE,XQueryParser.FOLLOW_REPLACE_in_p_ReplaceExpr13639); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1678:22: (k+= VALUE k+= OF )? + var alt191=2; + var LA191_0 = this.input.LA(1); + + if ( (LA191_0==VALUE) ) { + alt191=1; + } + switch (alt191) { + case 1 : + // xquery/XQueryParser.g:1678:23: k+= VALUE k+= OF + k=this.match(this.input,VALUE,XQueryParser.FOLLOW_VALUE_in_p_ReplaceExpr13644); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,OF,XQueryParser.FOLLOW_OF_in_p_ReplaceExpr13648); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ReplaceExpr13654); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ReplaceExpr13656); + p_ExprSingle553=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle553.getTree()); + k=this.match(this.input,WITH,XQueryParser.FOLLOW_WITH_in_p_ReplaceExpr13661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ReplaceExpr13663); + p_ExprSingle554=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle554.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_RenameExpr_return: (function() { + XQueryParser.p_RenameExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_RenameExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1682:1: p_RenameExpr : k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr ; + // $ANTLR start "p_RenameExpr" + p_RenameExpr: function() { + var retval = new XQueryParser.p_RenameExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_TargetExpr555 = null; + var p_NewNameExpr556 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1683:9: (k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr ) + // xquery/XQueryParser.g:1683:11: k+= RENAME k+= NODE p_TargetExpr k+= AS p_NewNameExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RENAME,XQueryParser.FOLLOW_RENAME_in_p_RenameExpr13694); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_RenameExpr13698); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_TargetExpr_in_p_RenameExpr13700); + p_TargetExpr555=this.p_TargetExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TargetExpr555.getTree()); + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_RenameExpr13704); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_NewNameExpr_in_p_RenameExpr13706); + p_NewNameExpr556=this.p_NewNameExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_NewNameExpr556.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SourceExpr_return: (function() { + XQueryParser.p_SourceExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SourceExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1687:1: p_SourceExpr : p_ExprSingle[true] ; + // $ANTLR start "p_SourceExpr" + p_SourceExpr: function() { + var retval = new XQueryParser.p_SourceExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle557 = null; + + + try { + // xquery/XQueryParser.g:1688:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1688:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_SourceExpr13734); + p_ExprSingle557=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle557.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TargetExpr_return: (function() { + XQueryParser.p_TargetExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TargetExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1692:1: p_TargetExpr : p_ExprSingle[true] ; + // $ANTLR start "p_TargetExpr" + p_TargetExpr: function() { + var retval = new XQueryParser.p_TargetExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle558 = null; + + + try { + // xquery/XQueryParser.g:1693:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1693:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TargetExpr13761); + p_ExprSingle558=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle558.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_NewNameExpr_return: (function() { + XQueryParser.p_NewNameExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_NewNameExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1697:1: p_NewNameExpr : p_ExprSingle[true] ; + // $ANTLR start "p_NewNameExpr" + p_NewNameExpr: function() { + var retval = new XQueryParser.p_NewNameExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_ExprSingle559 = null; + + + try { + // xquery/XQueryParser.g:1698:9: ( p_ExprSingle[true] ) + // xquery/XQueryParser.g:1698:11: p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_NewNameExpr13788); + p_ExprSingle559=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle559.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TransformExpr_return: (function() { + XQueryParser.p_TransformExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TransformExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1702:1: p_TransformExpr : k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] ; + // $ANTLR start "p_TransformExpr" + p_TransformExpr: function() { + var retval = new XQueryParser.p_TransformExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var e = null; + var BIND560 = null; + var COMMA562 = null; + var BIND563 = null; + var k = null; + var list_k=null; + var v = null; + var w = null; + var p_ExprSingle561 = null; + var p_ExprSingle564 = null; + var p_ExprSingle565 = null; + var p_ExprSingle566 = null; + + var d_tree=null; + var e_tree=null; + var BIND560_tree=null; + var COMMA562_tree=null; + var BIND563_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1703:9: (k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] ) + // xquery/XQueryParser.g:1703:11: k+= COPY d= DOLLAR v= p_VarName BIND p_ExprSingle[true] ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* k+= MODIFY p_ExprSingle[true] k+= RETURN p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COPY,XQueryParser.FOLLOW_COPY_in_p_TransformExpr13817); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TransformExpr13821); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TransformExpr13825); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + BIND560=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_TransformExpr13829); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND560_tree = this.adaptor.create(BIND560); + this.adaptor.addChild(root_0, BIND560_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13831); + p_ExprSingle561=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle561.getTree()); + // xquery/XQueryParser.g:1703:90: ( COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] )* + loop192: + do { + var alt192=2; + var LA192_0 = this.input.LA(1); + + if ( (LA192_0==COMMA) ) { + alt192=1; + } + + + switch (alt192) { + case 1 : + // xquery/XQueryParser.g:1703:91: COMMA e= DOLLAR w= p_VarName BIND p_ExprSingle[true] + COMMA562=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_TransformExpr13835); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA562_tree = this.adaptor.create(COMMA562); + this.adaptor.addChild(root_0, COMMA562_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TransformExpr13839); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TransformExpr13843); + w=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + BIND563=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_TransformExpr13847); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND563_tree = this.adaptor.create(BIND563); + this.adaptor.addChild(root_0, BIND563_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13849); + p_ExprSingle564=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle564.getTree()); + + + break; + + default : + break loop192; + } + } while (true); + + k=this.match(this.input,MODIFY,XQueryParser.FOLLOW_MODIFY_in_p_TransformExpr13856); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13858); + p_ExprSingle565=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle565.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TransformExpr13863); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_TransformExpr13865); + p_ExprSingle566=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle566.getTree()); + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + pm_FTOptionDecl_return: (function() { + XQueryParser.pm_FTOptionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.pm_FTOptionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1713:1: pm_FTOptionDecl : k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON ; + // $ANTLR start "pm_FTOptionDecl" + pm_FTOptionDecl: function() { + var retval = new XQueryParser.pm_FTOptionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON568 = null; + var k = null; + var list_k=null; + var p_FTMatchOptions567 = null; + + var SEMICOLON568_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1714:9: (k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON ) + // xquery/XQueryParser.g:1714:11: k+= DECLARE k+= FT_OPTION p_FTMatchOptions SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,DECLARE,XQueryParser.FOLLOW_DECLARE_in_pm_FTOptionDecl13903); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,FT_OPTION,XQueryParser.FOLLOW_FT_OPTION_in_pm_FTOptionDecl13907); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOptions_in_pm_FTOptionDecl13909); + p_FTMatchOptions567=this.p_FTMatchOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOptions567.getTree()); + SEMICOLON568=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_pm_FTOptionDecl13911); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON568_tree = this.adaptor.create(SEMICOLON568); + this.adaptor.addChild(root_0, SEMICOLON568_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTScoreVar_return: (function() { + XQueryParser.p_FTScoreVar_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTScoreVar_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1718:1: p_FTScoreVar : ks= SCORE d= DOLLAR v= p_VarName ; + // $ANTLR start "p_FTScoreVar" + p_FTScoreVar: function() { + var retval = new XQueryParser.p_FTScoreVar_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ks = null; + var d = null; + var v = null; + + var ks_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:1719:9: (ks= SCORE d= DOLLAR v= p_VarName ) + // xquery/XQueryParser.g:1719:11: ks= SCORE d= DOLLAR v= p_VarName + root_0 = this.adaptor.nil(); + + ks=this.match(this.input,SCORE,XQueryParser.FOLLOW_SCORE_in_p_FTScoreVar13941); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ks_tree = this.adaptor.create(ks); + this.adaptor.addChild(root_0, ks_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ks); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_FTScoreVar13947); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_FTScoreVar13951); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTContainsExpr_return: (function() { + XQueryParser.p_FTContainsExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTContainsExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1723:1: p_FTContainsExpr : p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? ; + // $ANTLR start "p_FTContainsExpr" + p_FTContainsExpr: function() { + var retval = new XQueryParser.p_FTContainsExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringConcatExpr569 = null; + var p_FTSelection570 = null; + var p_FTIgnoreOption571 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1724:9: ( p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? ) + // xquery/XQueryParser.g:1724:11: p_StringConcatExpr (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringConcatExpr_in_p_FTContainsExpr13979); + p_StringConcatExpr569=this.p_StringConcatExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringConcatExpr569.getTree()); + // xquery/XQueryParser.g:1724:30: (k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? )? + var alt194=2; + var LA194_0 = this.input.LA(1); + + if ( (LA194_0==CONTAINS) ) { + alt194=1; + } + switch (alt194) { + case 1 : + // xquery/XQueryParser.g:1724:32: k+= CONTAINS k+= TEXT p_FTSelection ( p_FTIgnoreOption )? + k=this.match(this.input,CONTAINS,XQueryParser.FOLLOW_CONTAINS_in_p_FTContainsExpr13985); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,TEXT,XQueryParser.FOLLOW_TEXT_in_p_FTContainsExpr13989); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTContainsExpr13993); + p_FTSelection570=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection570.getTree()); + // xquery/XQueryParser.g:1724:81: ( p_FTIgnoreOption )? + var alt193=2; + var LA193_0 = this.input.LA(1); + + if ( (LA193_0==WITHOUT) ) { + alt193=1; + } + switch (alt193) { + case 1 : + // xquery/XQueryParser.g:1724:81: p_FTIgnoreOption + this.pushFollow(XQueryParser.FOLLOW_p_FTIgnoreOption_in_p_FTContainsExpr13995); + p_FTIgnoreOption571=this.p_FTIgnoreOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTIgnoreOption571.getTree()); + + + break; + + } + + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTSelection_return: (function() { + XQueryParser.p_FTSelection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTSelection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1728:1: p_FTSelection : p_FTOr ( p_FTPosFilter )* ; + // $ANTLR start "p_FTSelection" + p_FTSelection: function() { + var retval = new XQueryParser.p_FTSelection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTOr572 = null; + var p_FTPosFilter573 = null; + + + try { + // xquery/XQueryParser.g:1729:9: ( p_FTOr ( p_FTPosFilter )* ) + // xquery/XQueryParser.g:1729:11: p_FTOr ( p_FTPosFilter )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTOr_in_p_FTSelection14025); + p_FTOr572=this.p_FTOr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTOr572.getTree()); + // xquery/XQueryParser.g:1729:18: ( p_FTPosFilter )* + loop195: + do { + var alt195=2; + var LA195_0 = this.input.LA(1); + + if ( (LA195_0==AT||LA195_0==ORDERED||LA195_0==WINDOW||(LA195_0>=DIFFERENT && LA195_0<=ENTIRE)||LA195_0==SAME) ) { + alt195=1; + } + + + switch (alt195) { + case 1 : + // xquery/XQueryParser.g:1729:18: p_FTPosFilter + this.pushFollow(XQueryParser.FOLLOW_p_FTPosFilter_in_p_FTSelection14027); + p_FTPosFilter573=this.p_FTPosFilter(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPosFilter573.getTree()); + + + break; + + default : + break loop195; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWeight_return: (function() { + XQueryParser.p_FTWeight_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWeight_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1733:1: p_FTWeight : kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET ; + // $ANTLR start "p_FTWeight" + p_FTWeight: function() { + var retval = new XQueryParser.p_FTWeight_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kw = null; + var LBRACKET574 = null; + var RBRACKET576 = null; + var p_Expr575 = null; + + var kw_tree=null; + var LBRACKET574_tree=null; + var RBRACKET576_tree=null; + + try { + // xquery/XQueryParser.g:1734:9: (kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1734:11: kw= WEIGHT LBRACKET p_Expr[true,true] RBRACKET + root_0 = this.adaptor.nil(); + + kw=this.match(this.input,WEIGHT,XQueryParser.FOLLOW_WEIGHT_in_p_FTWeight14056); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kw_tree = this.adaptor.create(kw); + this.adaptor.addChild(root_0, kw_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kw); + } + LBRACKET574=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTWeight14060); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET574_tree = this.adaptor.create(LBRACKET574); + this.adaptor.addChild(root_0, LBRACKET574_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_FTWeight14062); + p_Expr575=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr575.getTree()); + RBRACKET576=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTWeight14065); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET576_tree = this.adaptor.create(RBRACKET576); + this.adaptor.addChild(root_0, RBRACKET576_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTOr_return: (function() { + XQueryParser.p_FTOr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTOr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1738:1: p_FTOr : p_FTAnd (ko= FTOR p_FTAnd )* ; + // $ANTLR start "p_FTOr" + p_FTOr: function() { + var retval = new XQueryParser.p_FTOr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + var p_FTAnd577 = null; + var p_FTAnd578 = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1739:9: ( p_FTAnd (ko= FTOR p_FTAnd )* ) + // xquery/XQueryParser.g:1739:11: p_FTAnd (ko= FTOR p_FTAnd )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTAnd_in_p_FTOr14091); + p_FTAnd577=this.p_FTAnd(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnd577.getTree()); + // xquery/XQueryParser.g:1739:19: (ko= FTOR p_FTAnd )* + loop196: + do { + var alt196=2; + var LA196_0 = this.input.LA(1); + + if ( (LA196_0==FTOR) ) { + alt196=1; + } + + + switch (alt196) { + case 1 : + // xquery/XQueryParser.g:1739:21: ko= FTOR p_FTAnd + ko=this.match(this.input,FTOR,XQueryParser.FOLLOW_FTOR_in_p_FTOr14097); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTAnd_in_p_FTOr14101); + p_FTAnd578=this.p_FTAnd(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnd578.getTree()); + + + break; + + default : + break loop196; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTAnd_return: (function() { + XQueryParser.p_FTAnd_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTAnd_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1743:1: p_FTAnd : p_FTMildNot (ka= FTAND p_FTMildNot )* ; + // $ANTLR start "p_FTAnd" + p_FTAnd: function() { + var retval = new XQueryParser.p_FTAnd_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var p_FTMildNot579 = null; + var p_FTMildNot580 = null; + + var ka_tree=null; + + try { + // xquery/XQueryParser.g:1744:9: ( p_FTMildNot (ka= FTAND p_FTMildNot )* ) + // xquery/XQueryParser.g:1744:11: p_FTMildNot (ka= FTAND p_FTMildNot )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTMildNot_in_p_FTAnd14130); + p_FTMildNot579=this.p_FTMildNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMildNot579.getTree()); + // xquery/XQueryParser.g:1744:23: (ka= FTAND p_FTMildNot )* + loop197: + do { + var alt197=2; + var LA197_0 = this.input.LA(1); + + if ( (LA197_0==FTAND) ) { + alt197=1; + } + + + switch (alt197) { + case 1 : + // xquery/XQueryParser.g:1744:25: ka= FTAND p_FTMildNot + ka=this.match(this.input,FTAND,XQueryParser.FOLLOW_FTAND_in_p_FTAnd14136); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTMildNot_in_p_FTAnd14140); + p_FTMildNot580=this.p_FTMildNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMildNot580.getTree()); + + + break; + + default : + break loop197; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMildNot_return: (function() { + XQueryParser.p_FTMildNot_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMildNot_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1748:1: p_FTMildNot : p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* ; + // $ANTLR start "p_FTMildNot" + p_FTMildNot: function() { + var retval = new XQueryParser.p_FTMildNot_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTUnaryNot581 = null; + var p_FTUnaryNot582 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1749:9: ( p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* ) + // xquery/XQueryParser.g:1749:11: p_FTUnaryNot (k+= NOT k+= IN p_FTUnaryNot )* + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTUnaryNot_in_p_FTMildNot14169); + p_FTUnaryNot581=this.p_FTUnaryNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnaryNot581.getTree()); + // xquery/XQueryParser.g:1749:24: (k+= NOT k+= IN p_FTUnaryNot )* + loop198: + do { + var alt198=2; + var LA198_0 = this.input.LA(1); + + if ( (LA198_0==NOT) ) { + alt198=1; + } + + + switch (alt198) { + case 1 : + // xquery/XQueryParser.g:1749:26: k+= NOT k+= IN p_FTUnaryNot + k=this.match(this.input,NOT,XQueryParser.FOLLOW_NOT_in_p_FTMildNot14175); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,IN,XQueryParser.FOLLOW_IN_in_p_FTMildNot14179); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTUnaryNot_in_p_FTMildNot14183); + p_FTUnaryNot582=this.p_FTUnaryNot(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnaryNot582.getTree()); + + + break; + + default : + break loop198; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTUnaryNot_return: (function() { + XQueryParser.p_FTUnaryNot_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTUnaryNot_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1753:1: p_FTUnaryNot : (kn= FTNOT )? p_FTPrimaryWithOptions ; + // $ANTLR start "p_FTUnaryNot" + p_FTUnaryNot: function() { + var retval = new XQueryParser.p_FTUnaryNot_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kn = null; + var p_FTPrimaryWithOptions583 = null; + + var kn_tree=null; + + try { + // xquery/XQueryParser.g:1754:9: ( (kn= FTNOT )? p_FTPrimaryWithOptions ) + // xquery/XQueryParser.g:1754:11: (kn= FTNOT )? p_FTPrimaryWithOptions + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1754:11: (kn= FTNOT )? + var alt199=2; + var LA199_0 = this.input.LA(1); + + if ( (LA199_0==FTNOT) ) { + alt199=1; + } + switch (alt199) { + case 1 : + // xquery/XQueryParser.g:1754:13: kn= FTNOT + kn=this.match(this.input,FTNOT,XQueryParser.FOLLOW_FTNOT_in_p_FTUnaryNot14216); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kn_tree = this.adaptor.create(kn); + this.adaptor.addChild(root_0, kn_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kn); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTPrimaryWithOptions_in_p_FTUnaryNot14223); + p_FTPrimaryWithOptions583=this.p_FTPrimaryWithOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPrimaryWithOptions583.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPrimaryWithOptions_return: (function() { + XQueryParser.p_FTPrimaryWithOptions_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPrimaryWithOptions_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1758:1: p_FTPrimaryWithOptions : p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? ; + // $ANTLR start "p_FTPrimaryWithOptions" + p_FTPrimaryWithOptions: function() { + var retval = new XQueryParser.p_FTPrimaryWithOptions_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTPrimary584 = null; + var p_FTMatchOptions585 = null; + var p_FTWeight586 = null; + + + try { + // xquery/XQueryParser.g:1759:9: ( p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? ) + // xquery/XQueryParser.g:1759:11: p_FTPrimary ( p_FTMatchOptions )? ( p_FTWeight )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTPrimary_in_p_FTPrimaryWithOptions14249); + p_FTPrimary584=this.p_FTPrimary(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTPrimary584.getTree()); + // xquery/XQueryParser.g:1759:23: ( p_FTMatchOptions )? + var alt200=2; + var LA200_0 = this.input.LA(1); + + if ( (LA200_0==USING) ) { + alt200=1; + } + switch (alt200) { + case 1 : + // xquery/XQueryParser.g:1759:23: p_FTMatchOptions + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOptions_in_p_FTPrimaryWithOptions14251); + p_FTMatchOptions585=this.p_FTMatchOptions(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOptions585.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:1759:41: ( p_FTWeight )? + var alt201=2; + var LA201_0 = this.input.LA(1); + + if ( (LA201_0==WEIGHT) ) { + alt201=1; + } + switch (alt201) { + case 1 : + // xquery/XQueryParser.g:1759:41: p_FTWeight + this.pushFollow(XQueryParser.FOLLOW_p_FTWeight_in_p_FTPrimaryWithOptions14254); + p_FTWeight586=this.p_FTWeight(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWeight586.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPrimary_return: (function() { + XQueryParser.p_FTPrimary_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPrimary_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1766:1: p_FTPrimary : ( ( p_FTWords ( p_FTTimes )? ) | ( LPAREN p_FTSelection RPAREN ) | p_FTExtensionSelection ); + // $ANTLR start "p_FTPrimary" + p_FTPrimary: function() { + var retval = new XQueryParser.p_FTPrimary_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN589 = null; + var RPAREN591 = null; + var p_FTWords587 = null; + var p_FTTimes588 = null; + var p_FTSelection590 = null; + var p_FTExtensionSelection592 = null; + + var LPAREN589_tree=null; + var RPAREN591_tree=null; + + try { + // xquery/XQueryParser.g:1767:9: ( ( p_FTWords ( p_FTTimes )? ) | ( LPAREN p_FTSelection RPAREN ) | p_FTExtensionSelection ) + var alt203=3; + switch ( this.input.LA(1) ) { + case LBRACKET: + case APOS: + case QUOT: + alt203=1; + break; + case LPAREN: + alt203=2; + break; + case L_Pragma: + alt203=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 203, 0, this.input); + + throw nvae; + } + + switch (alt203) { + case 1 : + // xquery/XQueryParser.g:1767:11: ( p_FTWords ( p_FTTimes )? ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1767:11: ( p_FTWords ( p_FTTimes )? ) + // xquery/XQueryParser.g:1767:12: p_FTWords ( p_FTTimes )? + this.pushFollow(XQueryParser.FOLLOW_p_FTWords_in_p_FTPrimary14285); + p_FTWords587=this.p_FTWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWords587.getTree()); + // xquery/XQueryParser.g:1767:22: ( p_FTTimes )? + var alt202=2; + var LA202_0 = this.input.LA(1); + + if ( (LA202_0==OCCURS) ) { + alt202=1; + } + switch (alt202) { + case 1 : + // xquery/XQueryParser.g:1767:22: p_FTTimes + this.pushFollow(XQueryParser.FOLLOW_p_FTTimes_in_p_FTPrimary14287); + p_FTTimes588=this.p_FTTimes(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTTimes588.getTree()); + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1768:11: ( LPAREN p_FTSelection RPAREN ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1768:11: ( LPAREN p_FTSelection RPAREN ) + // xquery/XQueryParser.g:1768:12: LPAREN p_FTSelection RPAREN + LPAREN589=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTPrimary14302); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN589_tree = this.adaptor.create(LPAREN589); + this.adaptor.addChild(root_0, LPAREN589_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTPrimary14304); + p_FTSelection590=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection590.getTree()); + RPAREN591=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTPrimary14306); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN591_tree = this.adaptor.create(RPAREN591); + this.adaptor.addChild(root_0, RPAREN591_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1769:11: p_FTExtensionSelection + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTExtensionSelection_in_p_FTPrimary14319); + p_FTExtensionSelection592=this.p_FTExtensionSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTExtensionSelection592.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWords_return: (function() { + XQueryParser.p_FTWords_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWords_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1773:1: p_FTWords : p_FTWordsValue ( p_FTAnyallOption )? ; + // $ANTLR start "p_FTWords" + p_FTWords: function() { + var retval = new XQueryParser.p_FTWords_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTWordsValue593 = null; + var p_FTAnyallOption594 = null; + + + try { + // xquery/XQueryParser.g:1774:9: ( p_FTWordsValue ( p_FTAnyallOption )? ) + // xquery/XQueryParser.g:1774:11: p_FTWordsValue ( p_FTAnyallOption )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWordsValue_in_p_FTWords14345); + p_FTWordsValue593=this.p_FTWordsValue(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWordsValue593.getTree()); + // xquery/XQueryParser.g:1774:26: ( p_FTAnyallOption )? + var alt204=2; + var LA204_0 = this.input.LA(1); + + if ( ((LA204_0>=ALL && LA204_0<=ANY)||LA204_0==PHRASE) ) { + alt204=1; + } + switch (alt204) { + case 1 : + // xquery/XQueryParser.g:1774:26: p_FTAnyallOption + this.pushFollow(XQueryParser.FOLLOW_p_FTAnyallOption_in_p_FTWords14347); + p_FTAnyallOption594=this.p_FTAnyallOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTAnyallOption594.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWordsValue_return: (function() { + XQueryParser.p_FTWordsValue_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWordsValue_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1778:1: p_FTWordsValue : ( p_StringLiteral | ( LBRACKET p_Expr[true,true] RBRACKET ) ); + // $ANTLR start "p_FTWordsValue" + p_FTWordsValue: function() { + var retval = new XQueryParser.p_FTWordsValue_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET596 = null; + var RBRACKET598 = null; + var p_StringLiteral595 = null; + var p_Expr597 = null; + + var LBRACKET596_tree=null; + var RBRACKET598_tree=null; + + try { + // xquery/XQueryParser.g:1779:9: ( p_StringLiteral | ( LBRACKET p_Expr[true,true] RBRACKET ) ) + var alt205=2; + var LA205_0 = this.input.LA(1); + + if ( ((LA205_0>=APOS && LA205_0<=QUOT)) ) { + alt205=1; + } + else if ( (LA205_0==LBRACKET) ) { + alt205=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 205, 0, this.input); + + throw nvae; + } + switch (alt205) { + case 1 : + // xquery/XQueryParser.g:1779:11: p_StringLiteral + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTWordsValue14374); + p_StringLiteral595=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral595.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1780:11: ( LBRACKET p_Expr[true,true] RBRACKET ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1780:11: ( LBRACKET p_Expr[true,true] RBRACKET ) + // xquery/XQueryParser.g:1780:12: LBRACKET p_Expr[true,true] RBRACKET + LBRACKET596=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTWordsValue14387); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET596_tree = this.adaptor.create(LBRACKET596); + this.adaptor.addChild(root_0, LBRACKET596_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_FTWordsValue14389); + p_Expr597=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr597.getTree()); + RBRACKET598=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTWordsValue14392); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET598_tree = this.adaptor.create(RBRACKET598); + this.adaptor.addChild(root_0, RBRACKET598_tree); + } + + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTExtensionSelection_return: (function() { + XQueryParser.p_FTExtensionSelection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTExtensionSelection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1784:1: p_FTExtensionSelection : ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET ; + // $ANTLR start "p_FTExtensionSelection" + p_FTExtensionSelection: function() { + var retval = new XQueryParser.p_FTExtensionSelection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_Pragma599 = null; + var LBRACKET600 = null; + var RBRACKET602 = null; + var p_FTSelection601 = null; + + var L_Pragma599_tree=null; + var LBRACKET600_tree=null; + var RBRACKET602_tree=null; + + try { + // xquery/XQueryParser.g:1785:9: ( ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET ) + // xquery/XQueryParser.g:1785:11: ( L_Pragma )+ LBRACKET ( p_FTSelection )? RBRACKET + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1785:11: ( L_Pragma )+ + var cnt206=0; + loop206: + do { + var alt206=2; + var LA206_0 = this.input.LA(1); + + if ( (LA206_0==L_Pragma) ) { + alt206=1; + } + + + switch (alt206) { + case 1 : + // xquery/XQueryParser.g:1785:11: L_Pragma + L_Pragma599=this.match(this.input,L_Pragma,XQueryParser.FOLLOW_L_Pragma_in_p_FTExtensionSelection14419); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_Pragma599_tree = this.adaptor.create(L_Pragma599); + this.adaptor.addChild(root_0, L_Pragma599_tree); + } + + + break; + + default : + if ( cnt206 >= 1 ) { + break loop206; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(206, this.input); + throw eee; + } + cnt206++; + } while (true); + + LBRACKET600=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_FTExtensionSelection14422); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET600_tree = this.adaptor.create(LBRACKET600); + this.adaptor.addChild(root_0, LBRACKET600_tree); + } + // xquery/XQueryParser.g:1785:30: ( p_FTSelection )? + var alt207=2; + var LA207_0 = this.input.LA(1); + + if ( (LA207_0==FTNOT||LA207_0==LPAREN||LA207_0==LBRACKET||(LA207_0>=APOS && LA207_0<=QUOT)||LA207_0==L_Pragma) ) { + alt207=1; + } + switch (alt207) { + case 1 : + // xquery/XQueryParser.g:1785:30: p_FTSelection + this.pushFollow(XQueryParser.FOLLOW_p_FTSelection_in_p_FTExtensionSelection14424); + p_FTSelection601=this.p_FTSelection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTSelection601.getTree()); + + + break; + + } + + RBRACKET602=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_FTExtensionSelection14427); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET602_tree = this.adaptor.create(RBRACKET602); + this.adaptor.addChild(root_0, RBRACKET602_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTAnyallOption_return: (function() { + XQueryParser.p_FTAnyallOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTAnyallOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1789:1: p_FTAnyallOption : ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) ; + // $ANTLR start "p_FTAnyallOption" + p_FTAnyallOption: function() { + var retval = new XQueryParser.p_FTAnyallOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var WORDS603 = null; + var k = null; + var list_k=null; + + var WORDS603_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1790:9: ( ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) ) + // xquery/XQueryParser.g:1790:11: ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1790:11: ( (k+= ANY (k+= WORD )? ) | (k+= ALL ( WORDS )? ) | k+= PHRASE ) + var alt210=3; + switch ( this.input.LA(1) ) { + case ANY: + alt210=1; + break; + case ALL: + alt210=2; + break; + case PHRASE: + alt210=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 210, 0, this.input); + + throw nvae; + } + + switch (alt210) { + case 1 : + // xquery/XQueryParser.g:1790:13: (k+= ANY (k+= WORD )? ) + // xquery/XQueryParser.g:1790:13: (k+= ANY (k+= WORD )? ) + // xquery/XQueryParser.g:1790:14: k+= ANY (k+= WORD )? + k=this.match(this.input,ANY,XQueryParser.FOLLOW_ANY_in_p_FTAnyallOption14458); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1790:22: (k+= WORD )? + var alt208=2; + var LA208_0 = this.input.LA(1); + + if ( (LA208_0==WORD) ) { + alt208=1; + } + switch (alt208) { + case 1 : + // xquery/XQueryParser.g:1790:22: k+= WORD + k=this.match(this.input,WORD,XQueryParser.FOLLOW_WORD_in_p_FTAnyallOption14462); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1790:33: (k+= ALL ( WORDS )? ) + // xquery/XQueryParser.g:1790:33: (k+= ALL ( WORDS )? ) + // xquery/XQueryParser.g:1790:34: k+= ALL ( WORDS )? + k=this.match(this.input,ALL,XQueryParser.FOLLOW_ALL_in_p_FTAnyallOption14471); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1790:41: ( WORDS )? + var alt209=2; + var LA209_0 = this.input.LA(1); + + if ( (LA209_0==WORDS) ) { + alt209=1; + } + switch (alt209) { + case 1 : + // xquery/XQueryParser.g:1790:41: WORDS + WORDS603=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTAnyallOption14473); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + WORDS603_tree = this.adaptor.create(WORDS603); + this.adaptor.addChild(root_0, WORDS603_tree); + } + + + break; + + } + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1790:51: k+= PHRASE + k=this.match(this.input,PHRASE,XQueryParser.FOLLOW_PHRASE_in_p_FTAnyallOption14481); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTTimes_return: (function() { + XQueryParser.p_FTTimes_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTTimes_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1794:1: p_FTTimes : k+= OCCURS p_FTRange k+= TIMES ; + // $ANTLR start "p_FTTimes" + p_FTTimes: function() { + var retval = new XQueryParser.p_FTTimes_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTRange604 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1795:9: (k+= OCCURS p_FTRange k+= TIMES ) + // xquery/XQueryParser.g:1795:11: k+= OCCURS p_FTRange k+= TIMES + root_0 = this.adaptor.nil(); + + k=this.match(this.input,OCCURS,XQueryParser.FOLLOW_OCCURS_in_p_FTTimes14513); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTRange_in_p_FTTimes14515); + p_FTRange604=this.p_FTRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTRange604.getTree()); + k=this.match(this.input,TIMES,XQueryParser.FOLLOW_TIMES_in_p_FTTimes14519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTRange_return: (function() { + XQueryParser.p_FTRange_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTRange_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1799:1: p_FTRange : ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) ; + // $ANTLR start "p_FTRange" + p_FTRange: function() { + var retval = new XQueryParser.p_FTRange_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_AdditiveExpr605 = null; + var p_AdditiveExpr606 = null; + var p_AdditiveExpr607 = null; + var p_AdditiveExpr608 = null; + var p_AdditiveExpr609 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1800:9: ( ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) ) + // xquery/XQueryParser.g:1800:11: ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1800:11: ( (k+= EXACTLY p_AdditiveExpr ) | (k+= AT k+= LEAST p_AdditiveExpr ) | (k+= AT k+= MOST p_AdditiveExpr ) | (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) ) + var alt211=4; + switch ( this.input.LA(1) ) { + case EXACTLY: + alt211=1; + break; + case AT: + var LA211_2 = this.input.LA(2); + + if ( (LA211_2==LEAST) ) { + alt211=2; + } + else if ( (LA211_2==MOST) ) { + alt211=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 211, 2, this.input); + + throw nvae; + } + break; + case FROM: + alt211=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 211, 0, this.input); + + throw nvae; + } + + switch (alt211) { + case 1 : + // xquery/XQueryParser.g:1800:13: (k+= EXACTLY p_AdditiveExpr ) + // xquery/XQueryParser.g:1800:13: (k+= EXACTLY p_AdditiveExpr ) + // xquery/XQueryParser.g:1800:14: k+= EXACTLY p_AdditiveExpr + k=this.match(this.input,EXACTLY,XQueryParser.FOLLOW_EXACTLY_in_p_FTRange14552); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14554); + p_AdditiveExpr605=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr605.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1801:13: (k+= AT k+= LEAST p_AdditiveExpr ) + // xquery/XQueryParser.g:1801:13: (k+= AT k+= LEAST p_AdditiveExpr ) + // xquery/XQueryParser.g:1801:14: k+= AT k+= LEAST p_AdditiveExpr + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTRange14572); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_FTRange14576); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14578); + p_AdditiveExpr606=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr606.getTree()); + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1802:13: (k+= AT k+= MOST p_AdditiveExpr ) + // xquery/XQueryParser.g:1802:13: (k+= AT k+= MOST p_AdditiveExpr ) + // xquery/XQueryParser.g:1802:14: k+= AT k+= MOST p_AdditiveExpr + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTRange14596); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,MOST,XQueryParser.FOLLOW_MOST_in_p_FTRange14600); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14602); + p_AdditiveExpr607=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr607.getTree()); + + + + + + break; + case 4 : + // xquery/XQueryParser.g:1803:13: (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) + // xquery/XQueryParser.g:1803:13: (k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr ) + // xquery/XQueryParser.g:1803:14: k+= FROM p_AdditiveExpr k+= TO p_AdditiveExpr + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_FTRange14620); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14622); + p_AdditiveExpr608=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr608.getTree()); + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_FTRange14626); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTRange14628); + p_AdditiveExpr609=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr609.getTree()); + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTPosFilter_return: (function() { + XQueryParser.p_FTPosFilter_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTPosFilter_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1807:1: p_FTPosFilter : ( p_FTOrder | p_FTWindow | p_FTDistance | p_FTScope | p_FTContent ); + // $ANTLR start "p_FTPosFilter" + p_FTPosFilter: function() { + var retval = new XQueryParser.p_FTPosFilter_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTOrder610 = null; + var p_FTWindow611 = null; + var p_FTDistance612 = null; + var p_FTScope613 = null; + var p_FTContent614 = null; + + + try { + // xquery/XQueryParser.g:1808:9: ( p_FTOrder | p_FTWindow | p_FTDistance | p_FTScope | p_FTContent ) + var alt212=5; + switch ( this.input.LA(1) ) { + case ORDERED: + alt212=1; + break; + case WINDOW: + alt212=2; + break; + case DISTANCE: + alt212=3; + break; + case DIFFERENT: + case SAME: + alt212=4; + break; + case AT: + case ENTIRE: + alt212=5; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 212, 0, this.input); + + throw nvae; + } + + switch (alt212) { + case 1 : + // xquery/XQueryParser.g:1808:11: p_FTOrder + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTOrder_in_p_FTPosFilter14659); + p_FTOrder610=this.p_FTOrder(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTOrder610.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1808:23: p_FTWindow + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWindow_in_p_FTPosFilter14663); + p_FTWindow611=this.p_FTWindow(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWindow611.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1808:36: p_FTDistance + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTDistance_in_p_FTPosFilter14667); + p_FTDistance612=this.p_FTDistance(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTDistance612.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1808:51: p_FTScope + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTScope_in_p_FTPosFilter14671); + p_FTScope613=this.p_FTScope(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTScope613.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1808:63: p_FTContent + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTContent_in_p_FTPosFilter14675); + p_FTContent614=this.p_FTContent(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTContent614.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTOrder_return: (function() { + XQueryParser.p_FTOrder_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTOrder_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1812:1: p_FTOrder : ko= ORDERED ; + // $ANTLR start "p_FTOrder" + p_FTOrder: function() { + var retval = new XQueryParser.p_FTOrder_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1813:9: (ko= ORDERED ) + // xquery/XQueryParser.g:1813:11: ko= ORDERED + root_0 = this.adaptor.nil(); + + ko=this.match(this.input,ORDERED,XQueryParser.FOLLOW_ORDERED_in_p_FTOrder14703); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWindow_return: (function() { + XQueryParser.p_FTWindow_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWindow_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1817:1: p_FTWindow : kw= WINDOW p_AdditiveExpr p_FTUnit ; + // $ANTLR start "p_FTWindow" + p_FTWindow: function() { + var retval = new XQueryParser.p_FTWindow_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kw = null; + var p_AdditiveExpr615 = null; + var p_FTUnit616 = null; + + var kw_tree=null; + + try { + // xquery/XQueryParser.g:1818:9: (kw= WINDOW p_AdditiveExpr p_FTUnit ) + // xquery/XQueryParser.g:1818:11: kw= WINDOW p_AdditiveExpr p_FTUnit + root_0 = this.adaptor.nil(); + + kw=this.match(this.input,WINDOW,XQueryParser.FOLLOW_WINDOW_in_p_FTWindow14733); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kw_tree = this.adaptor.create(kw); + this.adaptor.addChild(root_0, kw_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kw); + } + this.pushFollow(XQueryParser.FOLLOW_p_AdditiveExpr_in_p_FTWindow14737); + p_AdditiveExpr615=this.p_AdditiveExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AdditiveExpr615.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_FTUnit_in_p_FTWindow14739); + p_FTUnit616=this.p_FTUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnit616.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTDistance_return: (function() { + XQueryParser.p_FTDistance_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTDistance_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1822:1: p_FTDistance : kd= DISTANCE p_FTRange p_FTUnit ; + // $ANTLR start "p_FTDistance" + p_FTDistance: function() { + var retval = new XQueryParser.p_FTDistance_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kd = null; + var p_FTRange617 = null; + var p_FTUnit618 = null; + + var kd_tree=null; + + try { + // xquery/XQueryParser.g:1823:9: (kd= DISTANCE p_FTRange p_FTUnit ) + // xquery/XQueryParser.g:1823:11: kd= DISTANCE p_FTRange p_FTUnit + root_0 = this.adaptor.nil(); + + kd=this.match(this.input,DISTANCE,XQueryParser.FOLLOW_DISTANCE_in_p_FTDistance14767); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kd_tree = this.adaptor.create(kd); + this.adaptor.addChild(root_0, kd_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kd); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTRange_in_p_FTDistance14771); + p_FTRange617=this.p_FTRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTRange617.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_FTUnit_in_p_FTDistance14773); + p_FTUnit618=this.p_FTUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTUnit618.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTUnit_return: (function() { + XQueryParser.p_FTUnit_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTUnit_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1827:1: p_FTUnit : (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) ; + // $ANTLR start "p_FTUnit" + p_FTUnit: function() { + var retval = new XQueryParser.p_FTUnit_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1828:9: ( (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) ) + // xquery/XQueryParser.g:1828:11: (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1828:11: (k+= WORDS | k+= SENTENCES | k+= PARAGRAPHS ) + var alt213=3; + switch ( this.input.LA(1) ) { + case WORDS: + alt213=1; + break; + case SENTENCES: + alt213=2; + break; + case PARAGRAPHS: + alt213=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 213, 0, this.input); + + throw nvae; + } + + switch (alt213) { + case 1 : + // xquery/XQueryParser.g:1828:13: k+= WORDS + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTUnit14803); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1828:24: k+= SENTENCES + k=this.match(this.input,SENTENCES,XQueryParser.FOLLOW_SENTENCES_in_p_FTUnit14809); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 3 : + // xquery/XQueryParser.g:1828:39: k+= PARAGRAPHS + k=this.match(this.input,PARAGRAPHS,XQueryParser.FOLLOW_PARAGRAPHS_in_p_FTUnit14815); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTScope_return: (function() { + XQueryParser.p_FTScope_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTScope_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1832:1: p_FTScope : (k+= SAME | k+= DIFFERENT ) p_FTBigUnit ; + // $ANTLR start "p_FTScope" + p_FTScope: function() { + var retval = new XQueryParser.p_FTScope_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTBigUnit619 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1833:9: ( (k+= SAME | k+= DIFFERENT ) p_FTBigUnit ) + // xquery/XQueryParser.g:1833:11: (k+= SAME | k+= DIFFERENT ) p_FTBigUnit + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1833:11: (k+= SAME | k+= DIFFERENT ) + var alt214=2; + var LA214_0 = this.input.LA(1); + + if ( (LA214_0==SAME) ) { + alt214=1; + } + else if ( (LA214_0==DIFFERENT) ) { + alt214=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 214, 0, this.input); + + throw nvae; + } + switch (alt214) { + case 1 : + // xquery/XQueryParser.g:1833:12: k+= SAME + k=this.match(this.input,SAME,XQueryParser.FOLLOW_SAME_in_p_FTScope14848); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1833:22: k+= DIFFERENT + k=this.match(this.input,DIFFERENT,XQueryParser.FOLLOW_DIFFERENT_in_p_FTScope14854); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTBigUnit_in_p_FTScope14859); + p_FTBigUnit619=this.p_FTBigUnit(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTBigUnit619.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTBigUnit_return: (function() { + XQueryParser.p_FTBigUnit_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTBigUnit_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1837:1: p_FTBigUnit : (k+= SENTENCE | k+= PARAGRAPH ) ; + // $ANTLR start "p_FTBigUnit" + p_FTBigUnit: function() { + var retval = new XQueryParser.p_FTBigUnit_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1838:9: ( (k+= SENTENCE | k+= PARAGRAPH ) ) + // xquery/XQueryParser.g:1838:11: (k+= SENTENCE | k+= PARAGRAPH ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1838:11: (k+= SENTENCE | k+= PARAGRAPH ) + var alt215=2; + var LA215_0 = this.input.LA(1); + + if ( (LA215_0==SENTENCE) ) { + alt215=1; + } + else if ( (LA215_0==PARAGRAPH) ) { + alt215=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 215, 0, this.input); + + throw nvae; + } + switch (alt215) { + case 1 : + // xquery/XQueryParser.g:1838:13: k+= SENTENCE + k=this.match(this.input,SENTENCE,XQueryParser.FOLLOW_SENTENCE_in_p_FTBigUnit14889); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1838:27: k+= PARAGRAPH + k=this.match(this.input,PARAGRAPH,XQueryParser.FOLLOW_PARAGRAPH_in_p_FTBigUnit14895); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTContent_return: (function() { + XQueryParser.p_FTContent_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTContent_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1842:1: p_FTContent : ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) ; + // $ANTLR start "p_FTContent" + p_FTContent: function() { + var retval = new XQueryParser.p_FTContent_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1843:9: ( ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) ) + // xquery/XQueryParser.g:1843:11: ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1843:11: ( (k+= AT k+= START ) | (k+= AT k+= END ) | (k+= ENTIRE k+= CONTENT ) ) + var alt216=3; + var LA216_0 = this.input.LA(1); + + if ( (LA216_0==AT) ) { + var LA216_1 = this.input.LA(2); + + if ( (LA216_1==START) ) { + alt216=1; + } + else if ( (LA216_1==END) ) { + alt216=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 216, 1, this.input); + + throw nvae; + } + } + else if ( (LA216_0==ENTIRE) ) { + alt216=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 216, 0, this.input); + + throw nvae; + } + switch (alt216) { + case 1 : + // xquery/XQueryParser.g:1843:13: (k+= AT k+= START ) + // xquery/XQueryParser.g:1843:13: (k+= AT k+= START ) + // xquery/XQueryParser.g:1843:14: k+= AT k+= START + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTContent14930); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,START,XQueryParser.FOLLOW_START_in_p_FTContent14934); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1843:32: (k+= AT k+= END ) + // xquery/XQueryParser.g:1843:32: (k+= AT k+= END ) + // xquery/XQueryParser.g:1843:33: k+= AT k+= END + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTContent14942); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,END,XQueryParser.FOLLOW_END_in_p_FTContent14946); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1843:49: (k+= ENTIRE k+= CONTENT ) + // xquery/XQueryParser.g:1843:49: (k+= ENTIRE k+= CONTENT ) + // xquery/XQueryParser.g:1843:50: k+= ENTIRE k+= CONTENT + k=this.match(this.input,ENTIRE,XQueryParser.FOLLOW_ENTIRE_in_p_FTContent14954); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,CONTENT,XQueryParser.FOLLOW_CONTENT_in_p_FTContent14958); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMatchOptions_return: (function() { + XQueryParser.p_FTMatchOptions_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMatchOptions_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1847:1: p_FTMatchOptions : (ku= USING p_FTMatchOption )+ ; + // $ANTLR start "p_FTMatchOptions" + p_FTMatchOptions: function() { + var retval = new XQueryParser.p_FTMatchOptions_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ku = null; + var p_FTMatchOption620 = null; + + var ku_tree=null; + + try { + // xquery/XQueryParser.g:1848:9: ( (ku= USING p_FTMatchOption )+ ) + // xquery/XQueryParser.g:1848:11: (ku= USING p_FTMatchOption )+ + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1848:11: (ku= USING p_FTMatchOption )+ + var cnt217=0; + loop217: + do { + var alt217=2; + var LA217_0 = this.input.LA(1); + + if ( (LA217_0==USING) ) { + alt217=1; + } + + + switch (alt217) { + case 1 : + // xquery/XQueryParser.g:1848:12: ku= USING p_FTMatchOption + ku=this.match(this.input,USING,XQueryParser.FOLLOW_USING_in_p_FTMatchOptions14992); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ku_tree = this.adaptor.create(ku); + this.adaptor.addChild(root_0, ku_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ku); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTMatchOption_in_p_FTMatchOptions14996); + p_FTMatchOption620=this.p_FTMatchOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTMatchOption620.getTree()); + + + break; + + default : + if ( cnt217 >= 1 ) { + break loop217; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(217, this.input); + throw eee; + } + cnt217++; + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTMatchOption_return: (function() { + XQueryParser.p_FTMatchOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTMatchOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1852:1: p_FTMatchOption : ( p_FTLanguageOption | p_FTWildCardOption | p_FTThesaurusOption | p_FTStemOption | p_FTCaseOption | p_FTDiacriticsOption | p_FTStopWordOption | p_FTExtensionOption ); + // $ANTLR start "p_FTMatchOption" + p_FTMatchOption: function() { + var retval = new XQueryParser.p_FTMatchOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_FTLanguageOption621 = null; + var p_FTWildCardOption622 = null; + var p_FTThesaurusOption623 = null; + var p_FTStemOption624 = null; + var p_FTCaseOption625 = null; + var p_FTDiacriticsOption626 = null; + var p_FTStopWordOption627 = null; + var p_FTExtensionOption628 = null; + + + try { + // xquery/XQueryParser.g:1853:9: ( p_FTLanguageOption | p_FTWildCardOption | p_FTThesaurusOption | p_FTStemOption | p_FTCaseOption | p_FTDiacriticsOption | p_FTStopWordOption | p_FTExtensionOption ) + var alt218=8; + alt218 = this.dfa218.predict(this.input); + switch (alt218) { + case 1 : + // xquery/XQueryParser.g:1853:11: p_FTLanguageOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTLanguageOption_in_p_FTMatchOption15024); + p_FTLanguageOption621=this.p_FTLanguageOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTLanguageOption621.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1854:11: p_FTWildCardOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTWildCardOption_in_p_FTMatchOption15036); + p_FTWildCardOption622=this.p_FTWildCardOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTWildCardOption622.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1855:11: p_FTThesaurusOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusOption_in_p_FTMatchOption15048); + p_FTThesaurusOption623=this.p_FTThesaurusOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusOption623.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1856:11: p_FTStemOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStemOption_in_p_FTMatchOption15060); + p_FTStemOption624=this.p_FTStemOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStemOption624.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1857:11: p_FTCaseOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTCaseOption_in_p_FTMatchOption15072); + p_FTCaseOption625=this.p_FTCaseOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTCaseOption625.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1858:11: p_FTDiacriticsOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTDiacriticsOption_in_p_FTMatchOption15084); + p_FTDiacriticsOption626=this.p_FTDiacriticsOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTDiacriticsOption626.getTree()); + + + break; + case 7 : + // xquery/XQueryParser.g:1859:11: p_FTStopWordOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordOption_in_p_FTMatchOption15096); + p_FTStopWordOption627=this.p_FTStopWordOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordOption627.getTree()); + + + break; + case 8 : + // xquery/XQueryParser.g:1860:11: p_FTExtensionOption + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_FTExtensionOption_in_p_FTMatchOption15108); + p_FTExtensionOption628=this.p_FTExtensionOption(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTExtensionOption628.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTCaseOption_return: (function() { + XQueryParser.p_FTCaseOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTCaseOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1864:1: p_FTCaseOption : ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) ; + // $ANTLR start "p_FTCaseOption" + p_FTCaseOption: function() { + var retval = new XQueryParser.p_FTCaseOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1865:9: ( ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) ) + // xquery/XQueryParser.g:1865:11: ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1865:11: ( (k+= CASE k+= INSENSITIVE ) | (k+= CASE k+= SENSITIVE ) | k+= LOWERCASE | k+= UPPERCASE ) + var alt219=4; + switch ( this.input.LA(1) ) { + case CASE: + var LA219_1 = this.input.LA(2); + + if ( (LA219_1==INSENSITIVE) ) { + alt219=1; + } + else if ( (LA219_1==SENSITIVE) ) { + alt219=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 219, 1, this.input); + + throw nvae; + } + break; + case LOWERCASE: + alt219=3; + break; + case UPPERCASE: + alt219=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 219, 0, this.input); + + throw nvae; + } + + switch (alt219) { + case 1 : + // xquery/XQueryParser.g:1865:13: (k+= CASE k+= INSENSITIVE ) + // xquery/XQueryParser.g:1865:13: (k+= CASE k+= INSENSITIVE ) + // xquery/XQueryParser.g:1865:14: k+= CASE k+= INSENSITIVE + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_FTCaseOption15139); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,INSENSITIVE,XQueryParser.FOLLOW_INSENSITIVE_in_p_FTCaseOption15143); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1866:13: (k+= CASE k+= SENSITIVE ) + // xquery/XQueryParser.g:1866:13: (k+= CASE k+= SENSITIVE ) + // xquery/XQueryParser.g:1866:14: k+= CASE k+= SENSITIVE + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_FTCaseOption15161); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,SENSITIVE,XQueryParser.FOLLOW_SENSITIVE_in_p_FTCaseOption15165); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1867:13: k+= LOWERCASE + k=this.match(this.input,LOWERCASE,XQueryParser.FOLLOW_LOWERCASE_in_p_FTCaseOption15182); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 4 : + // xquery/XQueryParser.g:1868:13: k+= UPPERCASE + k=this.match(this.input,UPPERCASE,XQueryParser.FOLLOW_UPPERCASE_in_p_FTCaseOption15198); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTDiacriticsOption_return: (function() { + XQueryParser.p_FTDiacriticsOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTDiacriticsOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1872:1: p_FTDiacriticsOption : ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) ; + // $ANTLR start "p_FTDiacriticsOption" + p_FTDiacriticsOption: function() { + var retval = new XQueryParser.p_FTDiacriticsOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1873:9: ( ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) ) + // xquery/XQueryParser.g:1873:11: ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1873:11: ( (k+= DIACRITICS k+= INSENSITIVE ) | (k+= DIACRITICS k+= SENSITIVE ) ) + var alt220=2; + var LA220_0 = this.input.LA(1); + + if ( (LA220_0==DIACRITICS) ) { + var LA220_1 = this.input.LA(2); + + if ( (LA220_1==INSENSITIVE) ) { + alt220=1; + } + else if ( (LA220_1==SENSITIVE) ) { + alt220=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 220, 1, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 220, 0, this.input); + + throw nvae; + } + switch (alt220) { + case 1 : + // xquery/XQueryParser.g:1873:13: (k+= DIACRITICS k+= INSENSITIVE ) + // xquery/XQueryParser.g:1873:13: (k+= DIACRITICS k+= INSENSITIVE ) + // xquery/XQueryParser.g:1873:14: k+= DIACRITICS k+= INSENSITIVE + k=this.match(this.input,DIACRITICS,XQueryParser.FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15233); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,INSENSITIVE,XQueryParser.FOLLOW_INSENSITIVE_in_p_FTDiacriticsOption15237); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1874:13: (k+= DIACRITICS k+= SENSITIVE ) + // xquery/XQueryParser.g:1874:13: (k+= DIACRITICS k+= SENSITIVE ) + // xquery/XQueryParser.g:1874:14: k+= DIACRITICS k+= SENSITIVE + k=this.match(this.input,DIACRITICS,XQueryParser.FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15255); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,SENSITIVE,XQueryParser.FOLLOW_SENSITIVE_in_p_FTDiacriticsOption15259); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStemOption_return: (function() { + XQueryParser.p_FTStemOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStemOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1878:1: p_FTStemOption : (k+= STEMMING | (k+= NO k+= STEMMING ) ) ; + // $ANTLR start "p_FTStemOption" + p_FTStemOption: function() { + var retval = new XQueryParser.p_FTStemOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1879:9: ( (k+= STEMMING | (k+= NO k+= STEMMING ) ) ) + // xquery/XQueryParser.g:1879:11: (k+= STEMMING | (k+= NO k+= STEMMING ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1879:11: (k+= STEMMING | (k+= NO k+= STEMMING ) ) + var alt221=2; + var LA221_0 = this.input.LA(1); + + if ( (LA221_0==STEMMING) ) { + alt221=1; + } + else if ( (LA221_0==NO) ) { + alt221=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 221, 0, this.input); + + throw nvae; + } + switch (alt221) { + case 1 : + // xquery/XQueryParser.g:1879:13: k+= STEMMING + k=this.match(this.input,STEMMING,XQueryParser.FOLLOW_STEMMING_in_p_FTStemOption15294); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1879:27: (k+= NO k+= STEMMING ) + // xquery/XQueryParser.g:1879:27: (k+= NO k+= STEMMING ) + // xquery/XQueryParser.g:1879:28: k+= NO k+= STEMMING + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTStemOption15301); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,STEMMING,XQueryParser.FOLLOW_STEMMING_in_p_FTStemOption15305); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTThesaurusOption_return: (function() { + XQueryParser.p_FTThesaurusOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTThesaurusOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1883:1: p_FTThesaurusOption : ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) ; + // $ANTLR start "p_FTThesaurusOption" + p_FTThesaurusOption: function() { + var retval = new XQueryParser.p_FTThesaurusOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LPAREN630 = null; + var COMMA632 = null; + var RPAREN634 = null; + var k = null; + var list_k=null; + var p_FTThesaurusID629 = null; + var p_FTThesaurusID631 = null; + var p_FTThesaurusID633 = null; + + var LPAREN630_tree=null; + var COMMA632_tree=null; + var RPAREN634_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1884:9: ( ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) ) + // xquery/XQueryParser.g:1884:11: ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1884:11: ( (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) | (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) | (k+= NO k+= THESAURUS ) ) + var alt225=3; + var LA225_0 = this.input.LA(1); + + if ( (LA225_0==THESAURUS) ) { + var LA225_1 = this.input.LA(2); + + if ( (LA225_1==LPAREN) ) { + alt225=2; + } + else if ( (LA225_1==AT||LA225_1==DEFAULT) ) { + alt225=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 225, 1, this.input); + + throw nvae; + } + } + else if ( (LA225_0==NO) ) { + alt225=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 225, 0, this.input); + + throw nvae; + } + switch (alt225) { + case 1 : + // xquery/XQueryParser.g:1884:13: (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) + // xquery/XQueryParser.g:1884:13: (k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) ) + // xquery/XQueryParser.g:1884:14: k+= THESAURUS ( p_FTThesaurusID | k+= DEFAULT ) + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15341); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1884:27: ( p_FTThesaurusID | k+= DEFAULT ) + var alt222=2; + var LA222_0 = this.input.LA(1); + + if ( (LA222_0==AT) ) { + alt222=1; + } + else if ( (LA222_0==DEFAULT) ) { + alt222=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 222, 0, this.input); + + throw nvae; + } + switch (alt222) { + case 1 : + // xquery/XQueryParser.g:1884:28: p_FTThesaurusID + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15344); + p_FTThesaurusID629=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID629.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1884:46: k+= DEFAULT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTThesaurusOption15350); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1885:13: (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) + // xquery/XQueryParser.g:1885:13: (k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN ) + // xquery/XQueryParser.g:1885:14: k+= THESAURUS LPAREN ( p_FTThesaurusID | k+= DEFAULT ) ( COMMA p_FTThesaurusID )* RPAREN + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15369); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + LPAREN630=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTThesaurusOption15371); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN630_tree = this.adaptor.create(LPAREN630); + this.adaptor.addChild(root_0, LPAREN630_tree); + } + // xquery/XQueryParser.g:1885:34: ( p_FTThesaurusID | k+= DEFAULT ) + var alt223=2; + var LA223_0 = this.input.LA(1); + + if ( (LA223_0==AT) ) { + alt223=1; + } + else if ( (LA223_0==DEFAULT) ) { + alt223=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 223, 0, this.input); + + throw nvae; + } + switch (alt223) { + case 1 : + // xquery/XQueryParser.g:1885:35: p_FTThesaurusID + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15374); + p_FTThesaurusID631=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID631.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1885:53: k+= DEFAULT + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTThesaurusOption15380); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + // xquery/XQueryParser.g:1885:65: ( COMMA p_FTThesaurusID )* + loop224: + do { + var alt224=2; + var LA224_0 = this.input.LA(1); + + if ( (LA224_0==COMMA) ) { + alt224=1; + } + + + switch (alt224) { + case 1 : + // xquery/XQueryParser.g:1885:66: COMMA p_FTThesaurusID + COMMA632=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_FTThesaurusOption15384); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA632_tree = this.adaptor.create(COMMA632); + this.adaptor.addChild(root_0, COMMA632_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15386); + p_FTThesaurusID633=this.p_FTThesaurusID(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTThesaurusID633.getTree()); + + + break; + + default : + break loop224; + } + } while (true); + + RPAREN634=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTThesaurusOption15390); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN634_tree = this.adaptor.create(RPAREN634); + this.adaptor.addChild(root_0, RPAREN634_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1886:13: (k+= NO k+= THESAURUS ) + // xquery/XQueryParser.g:1886:13: (k+= NO k+= THESAURUS ) + // xquery/XQueryParser.g:1886:14: k+= NO k+= THESAURUS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTThesaurusOption15408); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,THESAURUS,XQueryParser.FOLLOW_THESAURUS_in_p_FTThesaurusOption15412); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTThesaurusID_return: (function() { + XQueryParser.p_FTThesaurusID_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTThesaurusID_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1890:1: p_FTThesaurusID : k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? ; + // $ANTLR start "p_FTThesaurusID" + p_FTThesaurusID: function() { + var retval = new XQueryParser.p_FTThesaurusID_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_StringLiteral635 = null; + var p_StringLiteral636 = null; + var p_FTLiteralRange637 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1891:9: (k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? ) + // xquery/XQueryParser.g:1891:11: k+= AT p_StringLiteral (k+= RELATIONSHIP p_StringLiteral )? ( p_FTLiteralRange k+= LEVELS )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTThesaurusID15445); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTThesaurusID15447); + p_StringLiteral635=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral635.getTree()); + // xquery/XQueryParser.g:1891:33: (k+= RELATIONSHIP p_StringLiteral )? + var alt226=2; + var LA226_0 = this.input.LA(1); + + if ( (LA226_0==RELATIONSHIP) ) { + alt226=1; + } + switch (alt226) { + case 1 : + // xquery/XQueryParser.g:1891:34: k+= RELATIONSHIP p_StringLiteral + k=this.match(this.input,RELATIONSHIP,XQueryParser.FOLLOW_RELATIONSHIP_in_p_FTThesaurusID15452); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTThesaurusID15454); + p_StringLiteral636=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral636.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:1891:68: ( p_FTLiteralRange k+= LEVELS )? + var alt227=2; + var LA227_0 = this.input.LA(1); + + if ( ((LA227_0>=EXACTLY && LA227_0<=FROM)) ) { + alt227=1; + } + else if ( (LA227_0==AT) ) { + var LA227_2 = this.input.LA(2); + + if ( (LA227_2==LEAST||LA227_2==MOST) ) { + alt227=1; + } + } + switch (alt227) { + case 1 : + // xquery/XQueryParser.g:1891:69: p_FTLiteralRange k+= LEVELS + this.pushFollow(XQueryParser.FOLLOW_p_FTLiteralRange_in_p_FTThesaurusID15459); + p_FTLiteralRange637=this.p_FTLiteralRange(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTLiteralRange637.getTree()); + k=this.match(this.input,LEVELS,XQueryParser.FOLLOW_LEVELS_in_p_FTThesaurusID15463); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTLiteralRange_return: (function() { + XQueryParser.p_FTLiteralRange_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTLiteralRange_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1895:1: p_FTLiteralRange : ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) ; + // $ANTLR start "p_FTLiteralRange" + p_FTLiteralRange: function() { + var retval = new XQueryParser.p_FTLiteralRange_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var L_IntegerLiteral638 = null; + var L_IntegerLiteral639 = null; + var L_IntegerLiteral640 = null; + var L_IntegerLiteral641 = null; + var TO642 = null; + var L_IntegerLiteral643 = null; + var k = null; + var list_k=null; + + var L_IntegerLiteral638_tree=null; + var L_IntegerLiteral639_tree=null; + var L_IntegerLiteral640_tree=null; + var L_IntegerLiteral641_tree=null; + var TO642_tree=null; + var L_IntegerLiteral643_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:1896:9: ( ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) ) + // xquery/XQueryParser.g:1896:11: ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1896:11: ( (k+= EXACTLY L_IntegerLiteral ) | (k+= AT k+= LEAST L_IntegerLiteral ) | (k+= AT k+= MOST L_IntegerLiteral ) | (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) ) + var alt228=4; + switch ( this.input.LA(1) ) { + case EXACTLY: + alt228=1; + break; + case AT: + var LA228_2 = this.input.LA(2); + + if ( (LA228_2==LEAST) ) { + alt228=2; + } + else if ( (LA228_2==MOST) ) { + alt228=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 228, 2, this.input); + + throw nvae; + } + break; + case FROM: + alt228=4; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 228, 0, this.input); + + throw nvae; + } + + switch (alt228) { + case 1 : + // xquery/XQueryParser.g:1896:13: (k+= EXACTLY L_IntegerLiteral ) + // xquery/XQueryParser.g:1896:13: (k+= EXACTLY L_IntegerLiteral ) + // xquery/XQueryParser.g:1896:14: k+= EXACTLY L_IntegerLiteral + k=this.match(this.input,EXACTLY,XQueryParser.FOLLOW_EXACTLY_in_p_FTLiteralRange15498); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral638=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15500); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral638_tree = this.adaptor.create(L_IntegerLiteral638); + this.adaptor.addChild(root_0, L_IntegerLiteral638_tree); + } + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1897:13: (k+= AT k+= LEAST L_IntegerLiteral ) + // xquery/XQueryParser.g:1897:13: (k+= AT k+= LEAST L_IntegerLiteral ) + // xquery/XQueryParser.g:1897:14: k+= AT k+= LEAST L_IntegerLiteral + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTLiteralRange15518); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,LEAST,XQueryParser.FOLLOW_LEAST_in_p_FTLiteralRange15522); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral639=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15524); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral639_tree = this.adaptor.create(L_IntegerLiteral639); + this.adaptor.addChild(root_0, L_IntegerLiteral639_tree); + } + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1898:13: (k+= AT k+= MOST L_IntegerLiteral ) + // xquery/XQueryParser.g:1898:13: (k+= AT k+= MOST L_IntegerLiteral ) + // xquery/XQueryParser.g:1898:14: k+= AT k+= MOST L_IntegerLiteral + k=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTLiteralRange15542); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,MOST,XQueryParser.FOLLOW_MOST_in_p_FTLiteralRange15546); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral640=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15548); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral640_tree = this.adaptor.create(L_IntegerLiteral640); + this.adaptor.addChild(root_0, L_IntegerLiteral640_tree); + } + + + + + + break; + case 4 : + // xquery/XQueryParser.g:1899:13: (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) + // xquery/XQueryParser.g:1899:13: (k+= FROM L_IntegerLiteral TO L_IntegerLiteral ) + // xquery/XQueryParser.g:1899:14: k+= FROM L_IntegerLiteral TO L_IntegerLiteral + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_FTLiteralRange15566); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + L_IntegerLiteral641=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15568); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral641_tree = this.adaptor.create(L_IntegerLiteral641); + this.adaptor.addChild(root_0, L_IntegerLiteral641_tree); + } + TO642=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_FTLiteralRange15570); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + TO642_tree = this.adaptor.create(TO642); + this.adaptor.addChild(root_0, TO642_tree); + } + L_IntegerLiteral643=this.match(this.input,L_IntegerLiteral,XQueryParser.FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15572); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + L_IntegerLiteral643_tree = this.adaptor.create(L_IntegerLiteral643); + this.adaptor.addChild(root_0, L_IntegerLiteral643_tree); + } + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWordOption_return: (function() { + XQueryParser.p_FTStopWordOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWordOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1903:1: p_FTStopWordOption : ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) ; + // $ANTLR start "p_FTStopWordOption" + p_FTStopWordOption: function() { + var retval = new XQueryParser.p_FTStopWordOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTStopWords644 = null; + var p_FTStopWordsInclExcl645 = null; + var p_FTStopWordsInclExcl646 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1904:9: ( ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) ) + // xquery/XQueryParser.g:1904:11: ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1904:11: ( (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) | (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) | (k+= NO k+= STOP k+= WORDS ) ) + var alt231=3; + var LA231_0 = this.input.LA(1); + + if ( (LA231_0==STOP) ) { + var LA231_1 = this.input.LA(2); + + if ( (LA231_1==WORDS) ) { + var LA231_3 = this.input.LA(3); + + if ( (LA231_3==DEFAULT) ) { + alt231=2; + } + else if ( (LA231_3==AT||LA231_3==LPAREN) ) { + alt231=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 3, this.input); + + throw nvae; + } + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 1, this.input); + + throw nvae; + } + } + else if ( (LA231_0==NO) ) { + alt231=3; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 231, 0, this.input); + + throw nvae; + } + switch (alt231) { + case 1 : + // xquery/XQueryParser.g:1904:13: (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1904:13: (k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1904:14: k+= STOP k+= WORDS p_FTStopWords ( p_FTStopWordsInclExcl )* + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15608); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15612); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWords_in_p_FTStopWordOption15614); + p_FTStopWords644=this.p_FTStopWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWords644.getTree()); + // xquery/XQueryParser.g:1904:45: ( p_FTStopWordsInclExcl )* + loop229: + do { + var alt229=2; + var LA229_0 = this.input.LA(1); + + if ( (LA229_0==EXCEPT||LA229_0==UNION) ) { + alt229=1; + } + + + switch (alt229) { + case 1 : + // xquery/XQueryParser.g:1904:45: p_FTStopWordsInclExcl + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15616); + p_FTStopWordsInclExcl645=this.p_FTStopWordsInclExcl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordsInclExcl645.getTree()); + + + break; + + default : + break loop229; + } + } while (true); + + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1905:13: (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1905:13: (k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* ) + // xquery/XQueryParser.g:1905:14: k+= STOP k+= WORDS k+= DEFAULT ( p_FTStopWordsInclExcl )* + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15635); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15639); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_FTStopWordOption15643); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + // xquery/XQueryParser.g:1905:42: ( p_FTStopWordsInclExcl )* + loop230: + do { + var alt230=2; + var LA230_0 = this.input.LA(1); + + if ( (LA230_0==EXCEPT||LA230_0==UNION) ) { + alt230=1; + } + + + switch (alt230) { + case 1 : + // xquery/XQueryParser.g:1905:42: p_FTStopWordsInclExcl + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15645); + p_FTStopWordsInclExcl646=this.p_FTStopWordsInclExcl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWordsInclExcl646.getTree()); + + + break; + + default : + break loop230; + } + } while (true); + + + + + + + break; + case 3 : + // xquery/XQueryParser.g:1906:13: (k+= NO k+= STOP k+= WORDS ) + // xquery/XQueryParser.g:1906:13: (k+= NO k+= STOP k+= WORDS ) + // xquery/XQueryParser.g:1906:14: k+= NO k+= STOP k+= WORDS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTStopWordOption15664); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,STOP,XQueryParser.FOLLOW_STOP_in_p_FTStopWordOption15668); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WORDS,XQueryParser.FOLLOW_WORDS_in_p_FTStopWordOption15672); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWords_return: (function() { + XQueryParser.p_FTStopWords_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWords_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1910:1: p_FTStopWords : ( (ka= AT p_StringLiteral ) | ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) ); + // $ANTLR start "p_FTStopWords" + p_FTStopWords: function() { + var retval = new XQueryParser.p_FTStopWords_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ka = null; + var LPAREN648 = null; + var COMMA650 = null; + var RPAREN652 = null; + var p_StringLiteral647 = null; + var p_StringLiteral649 = null; + var p_StringLiteral651 = null; + + var ka_tree=null; + var LPAREN648_tree=null; + var COMMA650_tree=null; + var RPAREN652_tree=null; + + try { + // xquery/XQueryParser.g:1911:9: ( (ka= AT p_StringLiteral ) | ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) ) + var alt233=2; + var LA233_0 = this.input.LA(1); + + if ( (LA233_0==AT) ) { + alt233=1; + } + else if ( (LA233_0==LPAREN) ) { + alt233=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 233, 0, this.input); + + throw nvae; + } + switch (alt233) { + case 1 : + // xquery/XQueryParser.g:1911:11: (ka= AT p_StringLiteral ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1911:11: (ka= AT p_StringLiteral ) + // xquery/XQueryParser.g:1911:12: ka= AT p_StringLiteral + ka=this.match(this.input,AT,XQueryParser.FOLLOW_AT_in_p_FTStopWords15706); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ka_tree = this.adaptor.create(ka); + this.adaptor.addChild(root_0, ka_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ka); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15710); + p_StringLiteral647=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral647.getTree()); + + + + + + break; + case 2 : + // xquery/XQueryParser.g:1912:11: ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1912:11: ( LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN ) + // xquery/XQueryParser.g:1912:12: LPAREN p_StringLiteral ( COMMA p_StringLiteral )* RPAREN + LPAREN648=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_FTStopWords15724); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN648_tree = this.adaptor.create(LPAREN648); + this.adaptor.addChild(root_0, LPAREN648_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15726); + p_StringLiteral649=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral649.getTree()); + // xquery/XQueryParser.g:1912:35: ( COMMA p_StringLiteral )* + loop232: + do { + var alt232=2; + var LA232_0 = this.input.LA(1); + + if ( (LA232_0==COMMA) ) { + alt232=1; + } + + + switch (alt232) { + case 1 : + // xquery/XQueryParser.g:1912:36: COMMA p_StringLiteral + COMMA650=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_FTStopWords15729); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA650_tree = this.adaptor.create(COMMA650); + this.adaptor.addChild(root_0, COMMA650_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTStopWords15731); + p_StringLiteral651=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral651.getTree()); + + + break; + + default : + break loop232; + } + } while (true); + + RPAREN652=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_FTStopWords15735); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN652_tree = this.adaptor.create(RPAREN652); + this.adaptor.addChild(root_0, RPAREN652_tree); + } + + + + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTStopWordsInclExcl_return: (function() { + XQueryParser.p_FTStopWordsInclExcl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTStopWordsInclExcl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1916:1: p_FTStopWordsInclExcl : ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) ; + // $ANTLR start "p_FTStopWordsInclExcl" + p_FTStopWordsInclExcl: function() { + var retval = new XQueryParser.p_FTStopWordsInclExcl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_FTStopWords653 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1917:9: ( ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) ) + // xquery/XQueryParser.g:1917:11: ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1917:11: ( (k+= UNION | k+= EXCEPT ) p_FTStopWords ) + // xquery/XQueryParser.g:1917:13: (k+= UNION | k+= EXCEPT ) p_FTStopWords + // xquery/XQueryParser.g:1917:13: (k+= UNION | k+= EXCEPT ) + var alt234=2; + var LA234_0 = this.input.LA(1); + + if ( (LA234_0==UNION) ) { + alt234=1; + } + else if ( (LA234_0==EXCEPT) ) { + alt234=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 234, 0, this.input); + + throw nvae; + } + switch (alt234) { + case 1 : + // xquery/XQueryParser.g:1917:14: k+= UNION + k=this.match(this.input,UNION,XQueryParser.FOLLOW_UNION_in_p_FTStopWordsInclExcl15767); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1917:25: k+= EXCEPT + k=this.match(this.input,EXCEPT,XQueryParser.FOLLOW_EXCEPT_in_p_FTStopWordsInclExcl15773); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_FTStopWords_in_p_FTStopWordsInclExcl15776); + p_FTStopWords653=this.p_FTStopWords(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_FTStopWords653.getTree()); + + + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTLanguageOption_return: (function() { + XQueryParser.p_FTLanguageOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTLanguageOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1921:1: p_FTLanguageOption : kl= LANGUAGE p_StringLiteral ; + // $ANTLR start "p_FTLanguageOption" + p_FTLanguageOption: function() { + var retval = new XQueryParser.p_FTLanguageOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var kl = null; + var p_StringLiteral654 = null; + + var kl_tree=null; + + try { + // xquery/XQueryParser.g:1922:9: (kl= LANGUAGE p_StringLiteral ) + // xquery/XQueryParser.g:1922:11: kl= LANGUAGE p_StringLiteral + root_0 = this.adaptor.nil(); + + kl=this.match(this.input,LANGUAGE,XQueryParser.FOLLOW_LANGUAGE_in_p_FTLanguageOption15808); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + kl_tree = this.adaptor.create(kl); + this.adaptor.addChild(root_0, kl_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(kl); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTLanguageOption15812); + p_StringLiteral654=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral654.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTWildCardOption_return: (function() { + XQueryParser.p_FTWildCardOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTWildCardOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1926:1: p_FTWildCardOption : (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) ; + // $ANTLR start "p_FTWildCardOption" + p_FTWildCardOption: function() { + var retval = new XQueryParser.p_FTWildCardOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1927:9: ( (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) ) + // xquery/XQueryParser.g:1927:11: (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1927:11: (k+= WILDCARDS | (k+= NO k+= WILDCARDS ) ) + var alt235=2; + var LA235_0 = this.input.LA(1); + + if ( (LA235_0==WILDCARDS) ) { + alt235=1; + } + else if ( (LA235_0==NO) ) { + alt235=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 235, 0, this.input); + + throw nvae; + } + switch (alt235) { + case 1 : + // xquery/XQueryParser.g:1927:13: k+= WILDCARDS + k=this.match(this.input,WILDCARDS,XQueryParser.FOLLOW_WILDCARDS_in_p_FTWildCardOption15842); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + break; + case 2 : + // xquery/XQueryParser.g:1927:28: (k+= NO k+= WILDCARDS ) + // xquery/XQueryParser.g:1927:28: (k+= NO k+= WILDCARDS ) + // xquery/XQueryParser.g:1927:29: k+= NO k+= WILDCARDS + k=this.match(this.input,NO,XQueryParser.FOLLOW_NO_in_p_FTWildCardOption15849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,WILDCARDS,XQueryParser.FOLLOW_WILDCARDS_in_p_FTWildCardOption15853); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + + + + + + break; + + } + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTExtensionOption_return: (function() { + XQueryParser.p_FTExtensionOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTExtensionOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1931:1: p_FTExtensionOption : ko= OPTION p_QName p_StringLiteral ; + // $ANTLR start "p_FTExtensionOption" + p_FTExtensionOption: function() { + var retval = new XQueryParser.p_FTExtensionOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var ko = null; + var p_QName655 = null; + var p_StringLiteral656 = null; + + var ko_tree=null; + + try { + // xquery/XQueryParser.g:1932:9: (ko= OPTION p_QName p_StringLiteral ) + // xquery/XQueryParser.g:1932:11: ko= OPTION p_QName p_StringLiteral + root_0 = this.adaptor.nil(); + + ko=this.match(this.input,OPTION,XQueryParser.FOLLOW_OPTION_in_p_FTExtensionOption15886); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + ko_tree = this.adaptor.create(ko); + this.adaptor.addChild(root_0, ko_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(ko); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_FTExtensionOption15890); + p_QName655=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName655.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_FTExtensionOption15892); + p_StringLiteral656=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral656.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FTIgnoreOption_return: (function() { + XQueryParser.p_FTIgnoreOption_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FTIgnoreOption_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1936:1: p_FTIgnoreOption : k+= WITHOUT k+= CONTENT p_UnionExpr ; + // $ANTLR start "p_FTIgnoreOption" + p_FTIgnoreOption: function() { + var retval = new XQueryParser.p_FTIgnoreOption_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var list_k=null; + var p_UnionExpr657 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:1937:9: (k+= WITHOUT k+= CONTENT p_UnionExpr ) + // xquery/XQueryParser.g:1937:11: k+= WITHOUT k+= CONTENT p_UnionExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WITHOUT,XQueryParser.FOLLOW_WITHOUT_in_p_FTIgnoreOption15920); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + k=this.match(this.input,CONTENT,XQueryParser.FOLLOW_CONTENT_in_p_FTIgnoreOption15924); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if (org.antlr.lang.isNull(list_k)) list_k = []; + list_k.push(k); + + if ( this.state.backtracking===0 ) { + this.ak(list_k); + } + this.pushFollow(XQueryParser.FOLLOW_p_UnionExpr_in_p_FTIgnoreOption15928); + p_UnionExpr657=this.p_UnionExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_UnionExpr657.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Program_return: (function() { + XQueryParser.p_Program_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Program_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1947:1: p_Program : p_StatementsAndOptionalExpr ; + // $ANTLR start "p_Program" + p_Program: function() { + var retval = new XQueryParser.p_Program_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_StatementsAndOptionalExpr658 = null; + + + try { + // xquery/XQueryParser.g:1948:9: ( p_StatementsAndOptionalExpr ) + // xquery/XQueryParser.g:1948:11: p_StatementsAndOptionalExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndOptionalExpr_in_p_Program15960); + p_StatementsAndOptionalExpr658=this.p_StatementsAndOptionalExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndOptionalExpr658.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Statements_return: (function() { + XQueryParser.p_Statements_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Statements_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1952:1: p_Statements[strict] : ( p_Hybrid[$strict,true] )* ; + // $ANTLR start "p_Statements" + p_Statements: function(strict) { + var retval = new XQueryParser.p_Statements_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Hybrid659 = null; + + + try { + // xquery/XQueryParser.g:1953:9: ( ( p_Hybrid[$strict,true] )* ) + // xquery/XQueryParser.g:1953:11: ( p_Hybrid[$strict,true] )* + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:1953:11: ( p_Hybrid[$strict,true] )* + loop236: + do { + var alt236=2; + var LA236_0 = this.input.LA(1); + + if ( ((LA236_0>=ANCESTOR && LA236_0<=QUOT_ER)||LA236_0==LPAREN||(LA236_0>=DOLLAR && LA236_0<=LBRACKET)||LA236_0==ANN_PERCENT||(LA236_0>=STAR && LA236_0<=SMALLER)||(LA236_0>=SLASH && LA236_0<=DOT_DOT)||LA236_0==ATTR_SIGN||(LA236_0>=APOS && LA236_0<=QUOT)||LA236_0==L_NCName||(LA236_0>=L_Pragma && LA236_0<=L_DoubleLiteral)||LA236_0==EXPLICITLY) ) { + alt236=1; + } + + + switch (alt236) { + case 1 : + // xquery/XQueryParser.g:1953:11: p_Hybrid[$strict,true] + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_Statements15987); + p_Hybrid659=this.p_Hybrid(strict, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid659.getTree()); + + + break; + + default : + break loop236; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StatementsAndExpr_return: (function() { + XQueryParser.p_StatementsAndExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StatementsAndExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1957:1: p_StatementsAndExpr : p_Statements[false] ; + // $ANTLR start "p_StatementsAndExpr" + p_StatementsAndExpr: function() { + var retval = new XQueryParser.p_StatementsAndExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Statements660 = null; + + + try { + // xquery/XQueryParser.g:1958:9: ( p_Statements[false] ) + // xquery/XQueryParser.g:1958:11: p_Statements[false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_StatementsAndExpr16015); + p_Statements660=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements660.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_StatementsAndOptionalExpr_return: (function() { + XQueryParser.p_StatementsAndOptionalExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_StatementsAndOptionalExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1962:1: p_StatementsAndOptionalExpr : p_Statements[false] ; + // $ANTLR start "p_StatementsAndOptionalExpr" + p_StatementsAndOptionalExpr: function() { + var retval = new XQueryParser.p_StatementsAndOptionalExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_Statements661 = null; + + + try { + // xquery/XQueryParser.g:1963:9: ( p_Statements[false] ) + // xquery/XQueryParser.g:1963:11: p_Statements[false] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_StatementsAndOptionalExpr16042); + p_Statements661=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements661.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_Hybrid_return: (function() { + XQueryParser.p_Hybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Hybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1966:1: p_Hybrid[strict, allowConcat] : ( p_HybridExprSingle[$strict,$allowConcat] | p_Statement ); + // $ANTLR start "p_Hybrid" + p_Hybrid: function(strict, allowConcat) { + var retval = new XQueryParser.p_Hybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_HybridExprSingle662 = null; + var p_Statement663 = null; + + + try { + // xquery/XQueryParser.g:1967:9: ( p_HybridExprSingle[$strict,$allowConcat] | p_Statement ) + var alt237=2; + alt237 = this.dfa237.predict(this.input); + switch (alt237) { + case 1 : + // xquery/XQueryParser.g:1967:11: p_HybridExprSingle[$strict,$allowConcat] + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_HybridExprSingle_in_p_Hybrid16069); + p_HybridExprSingle662=this.p_HybridExprSingle(strict, allowConcat); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_HybridExprSingle662.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1968:11: p_Statement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Statement_in_p_Hybrid16082); + p_Statement663=this.p_Statement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statement663.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + + if(re instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch3"); + var v = this.p_StepExpr(); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, v.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw re; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_Statement_return: (function() { + XQueryParser.p_Statement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_Statement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1984:1: p_Statement : ( p_AssignStatement | p_BreakStatement | p_ContinueStatement | p_ExitStatement | p_VarDeclStatement | p_WhileStatement ); + // $ANTLR start "p_Statement" + p_Statement: function() { + var retval = new XQueryParser.p_Statement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_AssignStatement664 = null; + var p_BreakStatement665 = null; + var p_ContinueStatement666 = null; + var p_ExitStatement667 = null; + var p_VarDeclStatement668 = null; + var p_WhileStatement669 = null; + + + try { + // xquery/XQueryParser.g:1985:9: ( p_AssignStatement | p_BreakStatement | p_ContinueStatement | p_ExitStatement | p_VarDeclStatement | p_WhileStatement ) + var alt238=6; + switch ( this.input.LA(1) ) { + case DOLLAR: + alt238=1; + break; + case BREAK: + alt238=2; + break; + case CONTINUE: + alt238=3; + break; + case EXIT: + alt238=4; + break; + case VARIABLE: + case ANN_PERCENT: + alt238=5; + break; + case WHILE: + alt238=6; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 238, 0, this.input); + + throw nvae; + } + + switch (alt238) { + case 1 : + // xquery/XQueryParser.g:1985:11: p_AssignStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_AssignStatement_in_p_Statement16113); + p_AssignStatement664=this.p_AssignStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AssignStatement664.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:1986:11: p_BreakStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_BreakStatement_in_p_Statement16125); + p_BreakStatement665=this.p_BreakStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BreakStatement665.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:1987:11: p_ContinueStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ContinueStatement_in_p_Statement16137); + p_ContinueStatement666=this.p_ContinueStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ContinueStatement666.getTree()); + + + break; + case 4 : + // xquery/XQueryParser.g:1988:11: p_ExitStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExitStatement_in_p_Statement16149); + p_ExitStatement667=this.p_ExitStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExitStatement667.getTree()); + + + break; + case 5 : + // xquery/XQueryParser.g:1989:11: p_VarDeclStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_VarDeclStatement_in_p_Statement16161); + p_VarDeclStatement668=this.p_VarDeclStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_VarDeclStatement668.getTree()); + + + break; + case 6 : + // xquery/XQueryParser.g:1990:11: p_WhileStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_WhileStatement_in_p_Statement16173); + p_WhileStatement669=this.p_WhileStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_WhileStatement669.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_HybridExprSingle_return: (function() { + XQueryParser.p_HybridExprSingle_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_HybridExprSingle_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:1992:1: p_HybridExprSingle[strict, allowConcat] : e= p_Expr[$strict,$allowConcat] SEMICOLON ; + // $ANTLR start "p_HybridExprSingle" + p_HybridExprSingle: function(strict, allowConcat) { + var retval = new XQueryParser.p_HybridExprSingle_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON670 = null; + var e = null; + + var SEMICOLON670_tree=null; + + try { + // xquery/XQueryParser.g:1993:9: (e= p_Expr[$strict,$allowConcat] SEMICOLON ) + // xquery/XQueryParser.g:1993:11: e= p_Expr[$strict,$allowConcat] SEMICOLON + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_HybridExprSingle16200); + e=this.p_Expr(strict, allowConcat); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, e.getTree()); + if ( this.state.backtracking===0 ) { + if (strict || this.input.LT(1).getType() != SEMICOLON) throw new org.antlr.runtime.RecognitionException(this.input); + } + SEMICOLON670=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_HybridExprSingle16215); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON670_tree = this.adaptor.create(SEMICOLON670); + this.adaptor.addChild(root_0, SEMICOLON670_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + + if(re instanceof org.antlr.runtime.RecognitionException) { + //console.log("catch4"); + root_0 = this.adaptor.nil(); + this.adaptor.addChild(root_0, e.getTree()); + retval.stop = this.input.LT(-1); + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } else { + throw re; + } + + } + finally { + } + return retval; + }, + + // inline static return class + p_ApplyStatement_return: (function() { + XQueryParser.p_ApplyStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ApplyStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2028:1: p_ApplyStatement : p_ExprSimple SEMICOLON ; + // $ANTLR start "p_ApplyStatement" + p_ApplyStatement: function() { + var retval = new XQueryParser.p_ApplyStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var SEMICOLON672 = null; + var p_ExprSimple671 = null; + + var SEMICOLON672_tree=null; + + try { + // xquery/XQueryParser.g:2029:9: ( p_ExprSimple SEMICOLON ) + // xquery/XQueryParser.g:2029:11: p_ExprSimple SEMICOLON + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_ExprSimple_in_p_ApplyStatement16265); + p_ExprSimple671=this.p_ExprSimple(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSimple671.getTree()); + SEMICOLON672=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ApplyStatement16267); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON672_tree = this.adaptor.create(SEMICOLON672); + this.adaptor.addChild(root_0, SEMICOLON672_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AssignStatement_return: (function() { + XQueryParser.p_AssignStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AssignStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2033:1: p_AssignStatement : d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON ; + // $ANTLR start "p_AssignStatement" + p_AssignStatement: function() { + var retval = new XQueryParser.p_AssignStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var BIND673 = null; + var SEMICOLON675 = null; + var v = null; + var p_ExprSingle674 = null; + + var d_tree=null; + var BIND673_tree=null; + var SEMICOLON675_tree=null; + + try { + // xquery/XQueryParser.g:2034:9: (d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON ) + // xquery/XQueryParser.g:2034:11: d= DOLLAR v= p_VarName BIND p_ExprSingle[true] SEMICOLON + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_AssignStatement16295); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_AssignStatement16299); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + BIND673=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_AssignStatement16303); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND673_tree = this.adaptor.create(BIND673); + this.adaptor.addChild(root_0, BIND673_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_AssignStatement16305); + p_ExprSingle674=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle674.getTree()); + SEMICOLON675=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_AssignStatement16308); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON675_tree = this.adaptor.create(SEMICOLON675); + this.adaptor.addChild(root_0, SEMICOLON675_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockStatement_return: (function() { + XQueryParser.p_BlockStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2038:1: p_BlockStatement : LBRACKET p_Statements[false] RBRACKET ; + // $ANTLR start "p_BlockStatement" + p_BlockStatement: function() { + var retval = new XQueryParser.p_BlockStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET676 = null; + var RBRACKET678 = null; + var p_Statements677 = null; + + var LBRACKET676_tree=null; + var RBRACKET678_tree=null; + + try { + // xquery/XQueryParser.g:2039:9: ( LBRACKET p_Statements[false] RBRACKET ) + // xquery/XQueryParser.g:2039:11: LBRACKET p_Statements[false] RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET676=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockStatement16334); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET676_tree = this.adaptor.create(LBRACKET676); + this.adaptor.addChild(root_0, LBRACKET676_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_BlockStatement16336); + p_Statements677=this.p_Statements(false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements677.getTree()); + RBRACKET678=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockStatement16339); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET678_tree = this.adaptor.create(RBRACKET678); + this.adaptor.addChild(root_0, RBRACKET678_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockHybrid_return: (function() { + XQueryParser.p_BlockHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2042:1: p_BlockHybrid[strict] : LBRACKET p_Statements[$strict] RBRACKET ; + // $ANTLR start "p_BlockHybrid" + p_BlockHybrid: function(strict) { + var retval = new XQueryParser.p_BlockHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET679 = null; + var RBRACKET681 = null; + var p_Statements680 = null; + + var LBRACKET679_tree=null; + var RBRACKET681_tree=null; + + try { + // xquery/XQueryParser.g:2043:9: ( LBRACKET p_Statements[$strict] RBRACKET ) + // xquery/XQueryParser.g:2043:11: LBRACKET p_Statements[$strict] RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET679=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockHybrid16365); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET679_tree = this.adaptor.create(LBRACKET679); + this.adaptor.addChild(root_0, LBRACKET679_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Statements_in_p_BlockHybrid16367); + p_Statements680=this.p_Statements(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Statements680.getTree()); + RBRACKET681=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockHybrid16370); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET681_tree = this.adaptor.create(RBRACKET681); + this.adaptor.addChild(root_0, RBRACKET681_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BreakStatement_return: (function() { + XQueryParser.p_BreakStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BreakStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2047:1: p_BreakStatement : k= BREAK k= LOOP SEMICOLON ; + // $ANTLR start "p_BreakStatement" + p_BreakStatement: function() { + var retval = new XQueryParser.p_BreakStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON682 = null; + + var k_tree=null; + var SEMICOLON682_tree=null; + + try { + // xquery/XQueryParser.g:2048:9: (k= BREAK k= LOOP SEMICOLON ) + // xquery/XQueryParser.g:2048:11: k= BREAK k= LOOP SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,BREAK,XQueryParser.FOLLOW_BREAK_in_p_BreakStatement16398); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,LOOP,XQueryParser.FOLLOW_LOOP_in_p_BreakStatement16404); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + SEMICOLON682=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_BreakStatement16408); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON682_tree = this.adaptor.create(SEMICOLON682); + this.adaptor.addChild(root_0, SEMICOLON682_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ContinueStatement_return: (function() { + XQueryParser.p_ContinueStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ContinueStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2052:1: p_ContinueStatement : k= CONTINUE k= LOOP SEMICOLON ; + // $ANTLR start "p_ContinueStatement" + p_ContinueStatement: function() { + var retval = new XQueryParser.p_ContinueStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON683 = null; + + var k_tree=null; + var SEMICOLON683_tree=null; + + try { + // xquery/XQueryParser.g:2053:9: (k= CONTINUE k= LOOP SEMICOLON ) + // xquery/XQueryParser.g:2053:11: k= CONTINUE k= LOOP SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CONTINUE,XQueryParser.FOLLOW_CONTINUE_in_p_ContinueStatement16436); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,LOOP,XQueryParser.FOLLOW_LOOP_in_p_ContinueStatement16442); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + SEMICOLON683=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ContinueStatement16446); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON683_tree = this.adaptor.create(SEMICOLON683); + this.adaptor.addChild(root_0, SEMICOLON683_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExitStatement_return: (function() { + XQueryParser.p_ExitStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExitStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2057:1: p_ExitStatement : k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON ; + // $ANTLR start "p_ExitStatement" + p_ExitStatement: function() { + var retval = new XQueryParser.p_ExitStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var SEMICOLON685 = null; + var p_ExprSingle684 = null; + + var k_tree=null; + var SEMICOLON685_tree=null; + + try { + // xquery/XQueryParser.g:2058:9: (k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON ) + // xquery/XQueryParser.g:2058:11: k= EXIT k= RETURNING p_ExprSingle[true] SEMICOLON + root_0 = this.adaptor.nil(); + + k=this.match(this.input,EXIT,XQueryParser.FOLLOW_EXIT_in_p_ExitStatement16474); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURNING,XQueryParser.FOLLOW_RETURNING_in_p_ExitStatement16480); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ExitStatement16484); + p_ExprSingle684=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle684.getTree()); + SEMICOLON685=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_ExitStatement16487); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON685_tree = this.adaptor.create(SEMICOLON685); + this.adaptor.addChild(root_0, SEMICOLON685_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_FLWORStatement_return: (function() { + XQueryParser.p_FLWORStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_FLWORStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2062:1: p_FLWORStatement : p_InitialClause ( p_IntermediateClause )* p_ReturnStatement ; + // $ANTLR start "p_FLWORStatement" + p_FLWORStatement: function() { + var retval = new XQueryParser.p_FLWORStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_InitialClause686 = null; + var p_IntermediateClause687 = null; + var p_ReturnStatement688 = null; + + + try { + // xquery/XQueryParser.g:2063:9: ( p_InitialClause ( p_IntermediateClause )* p_ReturnStatement ) + // xquery/XQueryParser.g:2063:11: p_InitialClause ( p_IntermediateClause )* p_ReturnStatement + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_InitialClause_in_p_FLWORStatement16513); + p_InitialClause686=this.p_InitialClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_InitialClause686.getTree()); + // xquery/XQueryParser.g:2063:27: ( p_IntermediateClause )* + loop239: + do { + var alt239=2; + var LA239_0 = this.input.LA(1); + + if ( (LA239_0==FOR||LA239_0==LET||LA239_0==ORDER||LA239_0==STABLE||LA239_0==WHERE||LA239_0==COUNT||LA239_0==GROUP) ) { + alt239=1; + } + + + switch (alt239) { + case 1 : + // xquery/XQueryParser.g:2063:27: p_IntermediateClause + this.pushFollow(XQueryParser.FOLLOW_p_IntermediateClause_in_p_FLWORStatement16515); + p_IntermediateClause687=this.p_IntermediateClause(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IntermediateClause687.getTree()); + + + break; + + default : + break loop239; + } + } while (true); + + this.pushFollow(XQueryParser.FOLLOW_p_ReturnStatement_in_p_FLWORStatement16518); + p_ReturnStatement688=this.p_ReturnStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ReturnStatement688.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ReturnStatement_return: (function() { + XQueryParser.p_ReturnStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ReturnStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2067:1: p_ReturnStatement : k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_ReturnStatement" + p_ReturnStatement: function() { + var retval = new XQueryParser.p_ReturnStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_Hybrid689 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2068:9: (k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2068:11: k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_ReturnStatement16550); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_ReturnStatement16554); + p_Hybrid689=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid689.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IfStatement_return: (function() { + XQueryParser.p_IfStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IfStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2072:1: p_IfStatement : k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] ; + // $ANTLR start "p_IfStatement" + p_IfStatement: function() { + var retval = new XQueryParser.p_IfStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN690 = null; + var RPAREN692 = null; + var p_Expr691 = null; + var p_Hybrid693 = null; + var p_Hybrid694 = null; + + var k_tree=null; + var LPAREN690_tree=null; + var RPAREN692_tree=null; + + try { + // xquery/XQueryParser.g:2073:9: (k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2073:11: k= IF LPAREN p_Expr[true,true] RPAREN k= THEN p_Hybrid[false,false] k= ELSE p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_p_IfStatement16583); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN690=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_IfStatement16587); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN690_tree = this.adaptor.create(LPAREN690); + this.adaptor.addChild(root_0, LPAREN690_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_IfStatement16589); + p_Expr691=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr691.getTree()); + RPAREN692=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_IfStatement16592); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN692_tree = this.adaptor.create(RPAREN692); + this.adaptor.addChild(root_0, RPAREN692_tree); + } + k=this.match(this.input,THEN,XQueryParser.FOLLOW_THEN_in_p_IfStatement16596); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfStatement16600); + p_Hybrid693=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid693.getTree()); + k=this.match(this.input,ELSE,XQueryParser.FOLLOW_ELSE_in_p_IfStatement16605); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_IfStatement16609); + p_Hybrid694=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid694.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchStatement_return: (function() { + XQueryParser.p_SwitchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2077:1: p_SwitchStatement : k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_SwitchStatement" + p_SwitchStatement: function() { + var retval = new XQueryParser.p_SwitchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN695 = null; + var RPAREN697 = null; + var p_Expr696 = null; + var p_SwitchCaseStatement698 = null; + var p_Hybrid699 = null; + + var k_tree=null; + var LPAREN695_tree=null; + var RPAREN697_tree=null; + + try { + // xquery/XQueryParser.g:2078:9: (k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2078:11: k= SWITCH LPAREN p_Expr[true,true] RPAREN ( p_SwitchCaseStatement )+ k= DEFAULT k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_p_SwitchStatement16638); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN695=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_SwitchStatement16642); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN695_tree = this.adaptor.create(LPAREN695); + this.adaptor.addChild(root_0, LPAREN695_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_SwitchStatement16644); + p_Expr696=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr696.getTree()); + RPAREN697=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_SwitchStatement16647); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN697_tree = this.adaptor.create(RPAREN697); + this.adaptor.addChild(root_0, RPAREN697_tree); + } + // xquery/XQueryParser.g:2078:67: ( p_SwitchCaseStatement )+ + var cnt240=0; + loop240: + do { + var alt240=2; + var LA240_0 = this.input.LA(1); + + if ( (LA240_0==CASE) ) { + alt240=1; + } + + + switch (alt240) { + case 1 : + // xquery/XQueryParser.g:2078:67: p_SwitchCaseStatement + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseStatement_in_p_SwitchStatement16649); + p_SwitchCaseStatement698=this.p_SwitchCaseStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseStatement698.getTree()); + + + break; + + default : + if ( cnt240 >= 1 ) { + break loop240; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(240, this.input); + throw eee; + } + cnt240++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_SwitchStatement16654); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchStatement16660); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchStatement16664); + p_Hybrid699=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid699.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_SwitchCaseStatement_return: (function() { + XQueryParser.p_SwitchCaseStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_SwitchCaseStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2082:1: p_SwitchCaseStatement : (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_SwitchCaseStatement" + p_SwitchCaseStatement: function() { + var retval = new XQueryParser.p_SwitchCaseStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_SwitchCaseOperand700 = null; + var p_Hybrid701 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2083:9: ( (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2083:11: (k= CASE p_SwitchCaseOperand )+ k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2083:11: (k= CASE p_SwitchCaseOperand )+ + var cnt241=0; + loop241: + do { + var alt241=2; + var LA241_0 = this.input.LA(1); + + if ( (LA241_0==CASE) ) { + alt241=1; + } + + + switch (alt241) { + case 1 : + // xquery/XQueryParser.g:2083:12: k= CASE p_SwitchCaseOperand + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_SwitchCaseStatement16694); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseStatement16698); + p_SwitchCaseOperand700=this.p_SwitchCaseOperand(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SwitchCaseOperand700.getTree()); + + + break; + + default : + if ( cnt241 >= 1 ) { + break loop241; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(241, this.input); + throw eee; + } + cnt241++; + } while (true); + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_SwitchCaseStatement16704); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_SwitchCaseStatement16708); + p_Hybrid701=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid701.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchStatement_return: (function() { + XQueryParser.p_TryCatchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2087:1: p_TryCatchStatement : k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ ; + // $ANTLR start "p_TryCatchStatement" + p_TryCatchStatement: function() { + var retval = new XQueryParser.p_TryCatchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_BlockStatement702 = null; + var p_CatchErrorList703 = null; + var p_BlockStatement704 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2088:9: (k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ ) + // xquery/XQueryParser.g:2088:11: k= TRY p_BlockStatement (k= CATCH p_CatchErrorList p_BlockStatement )+ + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryCatchStatement16737); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_BlockStatement_in_p_TryCatchStatement16741); + p_BlockStatement702=this.p_BlockStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockStatement702.getTree()); + // xquery/XQueryParser.g:2088:49: (k= CATCH p_CatchErrorList p_BlockStatement )+ + var cnt242=0; + loop242: + do { + var alt242=2; + var LA242_0 = this.input.LA(1); + + if ( (LA242_0==CATCH) ) { + alt242=1; + } + + + switch (alt242) { + case 1 : + // xquery/XQueryParser.g:2088:50: k= CATCH p_CatchErrorList p_BlockStatement + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_TryCatchStatement16746); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_TryCatchStatement16750); + p_CatchErrorList703=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList703.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_BlockStatement_in_p_TryCatchStatement16752); + p_BlockStatement704=this.p_BlockStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockStatement704.getTree()); + + + break; + + default : + if ( cnt242 >= 1 ) { + break loop242; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(242, this.input); + throw eee; + } + cnt242++; + } while (true); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TryCatchHybrid_return: (function() { + XQueryParser.p_TryCatchHybrid_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TryCatchHybrid_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2091:1: p_TryCatchHybrid[strict] : k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ ; + // $ANTLR start "p_TryCatchHybrid" + p_TryCatchHybrid: function(strict) { + var retval = new XQueryParser.p_TryCatchHybrid_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_BlockHybrid705 = null; + var p_CatchErrorList706 = null; + var p_BlockHybrid707 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2092:9: (k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ ) + // xquery/XQueryParser.g:2092:11: k= TRY p_BlockHybrid[$strict] (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_p_TryCatchHybrid16784); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16788); + p_BlockHybrid705=this.p_BlockHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockHybrid705.getTree()); + // xquery/XQueryParser.g:2092:55: (k= CATCH p_CatchErrorList p_BlockHybrid[$strict] )+ + var cnt243=0; + loop243: + do { + var alt243=2; + var LA243_0 = this.input.LA(1); + + if ( (LA243_0==CATCH) ) { + alt243=1; + } + + + switch (alt243) { + case 1 : + // xquery/XQueryParser.g:2092:56: k= CATCH p_CatchErrorList p_BlockHybrid[$strict] + k=this.match(this.input,CATCH,XQueryParser.FOLLOW_CATCH_in_p_TryCatchHybrid16794); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_CatchErrorList_in_p_TryCatchHybrid16798); + p_CatchErrorList706=this.p_CatchErrorList(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CatchErrorList706.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16800); + p_BlockHybrid707=this.p_BlockHybrid(strict); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_BlockHybrid707.getTree()); + + + break; + + default : + if ( cnt243 >= 1 ) { + break loop243; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(243, this.input); + throw eee; + } + cnt243++; + } while (true); + + if ( this.state.backtracking===0 ) { + this.ak(k); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_TypeswitchStatement_return: (function() { + XQueryParser.p_TypeswitchStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_TypeswitchStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2096:1: p_TypeswitchStatement : k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_TypeswitchStatement" + p_TypeswitchStatement: function() { + var retval = new XQueryParser.p_TypeswitchStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var LPAREN708 = null; + var RPAREN710 = null; + var v = null; + var p_Expr709 = null; + var p_CaseStatement711 = null; + var p_Hybrid712 = null; + + var k_tree=null; + var d_tree=null; + var LPAREN708_tree=null; + var RPAREN710_tree=null; + + try { + // xquery/XQueryParser.g:2097:9: (k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2097:11: k= TYPESWITCH LPAREN p_Expr[true,true] RPAREN ( p_CaseStatement )+ k= DEFAULT (d= DOLLAR v= p_VarName )? k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_p_TypeswitchStatement16833); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN708=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_TypeswitchStatement16837); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN708_tree = this.adaptor.create(LPAREN708); + this.adaptor.addChild(root_0, LPAREN708_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_TypeswitchStatement16839); + p_Expr709=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr709.getTree()); + RPAREN710=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_TypeswitchStatement16842); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN710_tree = this.adaptor.create(RPAREN710); + this.adaptor.addChild(root_0, RPAREN710_tree); + } + // xquery/XQueryParser.g:2097:71: ( p_CaseStatement )+ + var cnt244=0; + loop244: + do { + var alt244=2; + var LA244_0 = this.input.LA(1); + + if ( (LA244_0==CASE) ) { + alt244=1; + } + + + switch (alt244) { + case 1 : + // xquery/XQueryParser.g:2097:71: p_CaseStatement + this.pushFollow(XQueryParser.FOLLOW_p_CaseStatement_in_p_TypeswitchStatement16844); + p_CaseStatement711=this.p_CaseStatement(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CaseStatement711.getTree()); + + + break; + + default : + if ( cnt244 >= 1 ) { + break loop244; + } + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var eee = new org.antlr.runtime.EarlyExitException(244, this.input); + throw eee; + } + cnt244++; + } while (true); + + k=this.match(this.input,DEFAULT,XQueryParser.FOLLOW_DEFAULT_in_p_TypeswitchStatement16849); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:2097:113: (d= DOLLAR v= p_VarName )? + var alt245=2; + var LA245_0 = this.input.LA(1); + + if ( (LA245_0==DOLLAR) ) { + alt245=1; + } + switch (alt245) { + case 1 : + // xquery/XQueryParser.g:2097:114: d= DOLLAR v= p_VarName + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_TypeswitchStatement16856); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_TypeswitchStatement16860); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + + + break; + + } + + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_TypeswitchStatement16868); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_TypeswitchStatement16872); + p_Hybrid712=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid712.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CaseStatement_return: (function() { + XQueryParser.p_CaseStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CaseStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2101:1: p_CaseStatement : k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] ; + // $ANTLR start "p_CaseStatement" + p_CaseStatement: function() { + var retval = new XQueryParser.p_CaseStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var AS713 = null; + var v = null; + var p_SequenceType714 = null; + var p_Hybrid715 = null; + + var k_tree=null; + var d_tree=null; + var AS713_tree=null; + + try { + // xquery/XQueryParser.g:2102:9: (k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2102:11: k= CASE (d= DOLLAR v= p_VarName AS )? p_SequenceType k= RETURN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,CASE,XQueryParser.FOLLOW_CASE_in_p_CaseStatement16901); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + // xquery/XQueryParser.g:2102:33: (d= DOLLAR v= p_VarName AS )? + var alt246=2; + var LA246_0 = this.input.LA(1); + + if ( (LA246_0==DOLLAR) ) { + alt246=1; + } + switch (alt246) { + case 1 : + // xquery/XQueryParser.g:2102:34: d= DOLLAR v= p_VarName AS + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_CaseStatement16908); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_CaseStatement16912); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + AS713=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CaseStatement16916); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + AS713_tree = this.adaptor.create(AS713); + this.adaptor.addChild(root_0, AS713_tree); + } + + + break; + + } + + this.pushFollow(XQueryParser.FOLLOW_p_SequenceType_in_p_CaseStatement16920); + p_SequenceType714=this.p_SequenceType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_SequenceType714.getTree()); + k=this.match(this.input,RETURN,XQueryParser.FOLLOW_RETURN_in_p_CaseStatement16924); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_CaseStatement16928); + p_Hybrid715=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid715.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_VarDeclStatement_return: (function() { + XQueryParser.p_VarDeclStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_VarDeclStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2106:1: p_VarDeclStatement : ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON ; + // $ANTLR start "p_VarDeclStatement" + p_VarDeclStatement: function() { + var retval = new XQueryParser.p_VarDeclStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var e = null; + var BIND718 = null; + var COMMA720 = null; + var BIND722 = null; + var SEMICOLON724 = null; + var v = null; + var w = null; + var p_Annotation716 = null; + var p_TypeDeclaration717 = null; + var p_ExprSingle719 = null; + var p_TypeDeclaration721 = null; + var p_ExprSingle723 = null; + + var k_tree=null; + var d_tree=null; + var e_tree=null; + var BIND718_tree=null; + var COMMA720_tree=null; + var BIND722_tree=null; + var SEMICOLON724_tree=null; + + try { + // xquery/XQueryParser.g:2107:9: ( ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON ) + // xquery/XQueryParser.g:2107:11: ( p_Annotation )* k= VARIABLE d= DOLLAR v= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* SEMICOLON + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2107:11: ( p_Annotation )* + loop247: + do { + var alt247=2; + var LA247_0 = this.input.LA(1); + + if ( (LA247_0==ANN_PERCENT) ) { + alt247=1; + } + + + switch (alt247) { + case 1 : + // xquery/XQueryParser.g:2107:11: p_Annotation + this.pushFollow(XQueryParser.FOLLOW_p_Annotation_in_p_VarDeclStatement16955); + p_Annotation716=this.p_Annotation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Annotation716.getTree()); + + + break; + + default : + break loop247; + } + } while (true); + + k=this.match(this.input,VARIABLE,XQueryParser.FOLLOW_VARIABLE_in_p_VarDeclStatement16960); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDeclStatement16966); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarDeclStatement16970); + v=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + // xquery/XQueryParser.g:2107:98: ( p_TypeDeclaration )? + var alt248=2; + var LA248_0 = this.input.LA(1); + + if ( (LA248_0==AS) ) { + alt248=1; + } + switch (alt248) { + case 1 : + // xquery/XQueryParser.g:2107:98: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement16974); + p_TypeDeclaration717=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration717.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2107:117: ( BIND p_ExprSingle[true] )? + var alt249=2; + var LA249_0 = this.input.LA(1); + + if ( (LA249_0==BIND) ) { + alt249=1; + } + switch (alt249) { + case 1 : + // xquery/XQueryParser.g:2107:118: BIND p_ExprSingle[true] + BIND718=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDeclStatement16978); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND718_tree = this.adaptor.create(BIND718); + this.adaptor.addChild(root_0, BIND718_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDeclStatement16980); + p_ExprSingle719=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle719.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2108:11: ( COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? )* + loop252: + do { + var alt252=2; + var LA252_0 = this.input.LA(1); + + if ( (LA252_0==COMMA) ) { + alt252=1; + } + + + switch (alt252) { + case 1 : + // xquery/XQueryParser.g:2108:12: COMMA e= DOLLAR w= p_VarName ( p_TypeDeclaration )? ( BIND p_ExprSingle[true] )? + COMMA720=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_VarDeclStatement16996); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA720_tree = this.adaptor.create(COMMA720); + this.adaptor.addChild(root_0, COMMA720_tree); + } + e=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_VarDeclStatement17000); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + e_tree = this.adaptor.create(e); + this.adaptor.addChild(root_0, e_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_VarName_in_p_VarDeclStatement17004); + w=this.p_VarName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, w.getTree()); + if ( this.state.backtracking===0 ) { + this.av(e, (w?w.stop:null)); + } + // xquery/XQueryParser.g:2108:65: ( p_TypeDeclaration )? + var alt250=2; + var LA250_0 = this.input.LA(1); + + if ( (LA250_0==AS) ) { + alt250=1; + } + switch (alt250) { + case 1 : + // xquery/XQueryParser.g:2108:65: p_TypeDeclaration + this.pushFollow(XQueryParser.FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement17008); + p_TypeDeclaration721=this.p_TypeDeclaration(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_TypeDeclaration721.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2108:84: ( BIND p_ExprSingle[true] )? + var alt251=2; + var LA251_0 = this.input.LA(1); + + if ( (LA251_0==BIND) ) { + alt251=1; + } + switch (alt251) { + case 1 : + // xquery/XQueryParser.g:2108:85: BIND p_ExprSingle[true] + BIND722=this.match(this.input,BIND,XQueryParser.FOLLOW_BIND_in_p_VarDeclStatement17012); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + BIND722_tree = this.adaptor.create(BIND722); + this.adaptor.addChild(root_0, BIND722_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_VarDeclStatement17014); + p_ExprSingle723=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle723.getTree()); + + + break; + + } + + + + break; + + default : + break loop252; + } + } while (true); + + SEMICOLON724=this.match(this.input,SEMICOLON,XQueryParser.FOLLOW_SEMICOLON_in_p_VarDeclStatement17031); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + SEMICOLON724_tree = this.adaptor.create(SEMICOLON724); + this.adaptor.addChild(root_0, SEMICOLON724_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_WhileStatement_return: (function() { + XQueryParser.p_WhileStatement_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_WhileStatement_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2113:1: p_WhileStatement : k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] ; + // $ANTLR start "p_WhileStatement" + p_WhileStatement: function() { + var retval = new XQueryParser.p_WhileStatement_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var LPAREN725 = null; + var RPAREN727 = null; + var p_Expr726 = null; + var p_Hybrid728 = null; + + var k_tree=null; + var LPAREN725_tree=null; + var RPAREN727_tree=null; + + try { + // xquery/XQueryParser.g:2114:9: (k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] ) + // xquery/XQueryParser.g:2114:11: k= WHILE LPAREN p_Expr[true,true] RPAREN p_Hybrid[false,false] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,WHILE,XQueryParser.FOLLOW_WHILE_in_p_WhileStatement17059); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + LPAREN725=this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_p_WhileStatement17063); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LPAREN725_tree = this.adaptor.create(LPAREN725); + this.adaptor.addChild(root_0, LPAREN725_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Expr_in_p_WhileStatement17065); + p_Expr726=this.p_Expr(true, true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Expr726.getTree()); + RPAREN727=this.match(this.input,RPAREN,XQueryParser.FOLLOW_RPAREN_in_p_WhileStatement17068); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RPAREN727_tree = this.adaptor.create(RPAREN727); + this.adaptor.addChild(root_0, RPAREN727_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_Hybrid_in_p_WhileStatement17070); + p_Hybrid728=this.p_Hybrid(false, false); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_Hybrid728.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ExprSimple_return: (function() { + XQueryParser.p_ExprSimple_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ExprSimple_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2118:1: p_ExprSimple : ( p_QuantifiedExpr | p_OrExpr | {...}? => pg_UpdateExpr ); + // $ANTLR start "p_ExprSimple" + p_ExprSimple: function() { + var retval = new XQueryParser.p_ExprSimple_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QuantifiedExpr729 = null; + var p_OrExpr730 = null; + var pg_UpdateExpr731 = null; + + + try { + // xquery/XQueryParser.g:2119:9: ( p_QuantifiedExpr | p_OrExpr | {...}? => pg_UpdateExpr ) + var alt253=3; + alt253 = this.dfa253.predict(this.input); + switch (alt253) { + case 1 : + // xquery/XQueryParser.g:2119:11: p_QuantifiedExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QuantifiedExpr_in_p_ExprSimple17097); + p_QuantifiedExpr729=this.p_QuantifiedExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QuantifiedExpr729.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2120:11: p_OrExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_OrExpr_in_p_ExprSimple17109); + p_OrExpr730=this.p_OrExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OrExpr730.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:2121:11: {...}? => pg_UpdateExpr + root_0 = this.adaptor.nil(); + + if ( !((this.lc(XQU))) ) { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + throw new org.antlr.runtime.FailedPredicateException(this.input, "p_ExprSimple", "this.lc(XQU)"); + } + this.pushFollow(XQueryParser.FOLLOW_pg_UpdateExpr_in_p_ExprSimple17124); + pg_UpdateExpr731=this.pg_UpdateExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, pg_UpdateExpr731.getTree()); + + + break; + + } + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_BlockExpr_return: (function() { + XQueryParser.p_BlockExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_BlockExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2125:1: p_BlockExpr : LBRACKET p_StatementsAndExpr RBRACKET ; + // $ANTLR start "p_BlockExpr" + p_BlockExpr: function() { + var retval = new XQueryParser.p_BlockExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var LBRACKET732 = null; + var RBRACKET734 = null; + var p_StatementsAndExpr733 = null; + + var LBRACKET732_tree=null; + var RBRACKET734_tree=null; + + try { + // xquery/XQueryParser.g:2126:9: ( LBRACKET p_StatementsAndExpr RBRACKET ) + // xquery/XQueryParser.g:2126:11: LBRACKET p_StatementsAndExpr RBRACKET + root_0 = this.adaptor.nil(); + + LBRACKET732=this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_p_BlockExpr17150); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + LBRACKET732_tree = this.adaptor.create(LBRACKET732); + this.adaptor.addChild(root_0, LBRACKET732_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_StatementsAndExpr_in_p_BlockExpr17152); + p_StatementsAndExpr733=this.p_StatementsAndExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StatementsAndExpr733.getTree()); + RBRACKET734=this.match(this.input,RBRACKET,XQueryParser.FOLLOW_RBRACKET_in_p_BlockExpr17154); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + RBRACKET734_tree = this.adaptor.create(RBRACKET734); + this.adaptor.addChild(root_0, RBRACKET734_tree); + } + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CollectionDecl_return: (function() { + XQueryParser.p_CollectionDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CollectionDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2133:1: p_CollectionDecl : k= COLLECTION p_QName ( p_CollectionTypeDecl )? ; + // $ANTLR start "p_CollectionDecl" + p_CollectionDecl: function() { + var retval = new XQueryParser.p_CollectionDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName735 = null; + var p_CollectionTypeDecl736 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2134:9: (k= COLLECTION p_QName ( p_CollectionTypeDecl )? ) + // xquery/XQueryParser.g:2134:11: k= COLLECTION p_QName ( p_CollectionTypeDecl )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_CollectionDecl17185); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_CollectionDecl17189); + p_QName735=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName735.getTree()); + // xquery/XQueryParser.g:2134:47: ( p_CollectionTypeDecl )? + var alt254=2; + var LA254_0 = this.input.LA(1); + + if ( (LA254_0==AS) ) { + alt254=1; + } + switch (alt254) { + case 1 : + // xquery/XQueryParser.g:2134:47: p_CollectionTypeDecl + this.pushFollow(XQueryParser.FOLLOW_p_CollectionTypeDecl_in_p_CollectionDecl17191); + p_CollectionTypeDecl736=this.p_CollectionTypeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_CollectionTypeDecl736.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_CollectionTypeDecl_return: (function() { + XQueryParser.p_CollectionTypeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_CollectionTypeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2137:1: p_CollectionTypeDecl : (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) ; + // $ANTLR start "p_CollectionTypeDecl" + p_CollectionTypeDecl: function() { + var retval = new XQueryParser.p_CollectionTypeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_KindTest737 = null; + var p_OccurrenceIndicator738 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2138:9: ( (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) ) + // xquery/XQueryParser.g:2138:11: (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) + root_0 = this.adaptor.nil(); + + // xquery/XQueryParser.g:2138:11: (k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? ) + // xquery/XQueryParser.g:2138:12: k= AS p_KindTest ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_CollectionTypeDecl17220); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_p_CollectionTypeDecl17224); + p_KindTest737=this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_KindTest737.getTree()); + // xquery/XQueryParser.g:2138:43: ( ( p_OccurrenceIndicator )=> p_OccurrenceIndicator )? + var alt255=2; + var LA255_0 = this.input.LA(1); + + if ( ((LA255_0>=QUESTION && LA255_0<=PLUS)) && (this.synpred18_XQueryParser())) { + alt255=1; + } + switch (alt255) { + case 1 : + // xquery/XQueryParser.g:2138:44: ( p_OccurrenceIndicator )=> p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_CollectionTypeDecl17233); + p_OccurrenceIndicator738=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OccurrenceIndicator738.getTree()); + + + break; + + } + + + + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexDecl_return: (function() { + XQueryParser.p_IndexDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2141:1: p_IndexDecl : k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* ; + // $ANTLR start "p_IndexDecl" + p_IndexDecl: function() { + var retval = new XQueryParser.p_IndexDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var COMMA742 = null; + var p_IndexName739 = null; + var p_IndexDomainExpr740 = null; + var p_IndexKeySpec741 = null; + var p_IndexKeySpec743 = null; + + var k_tree=null; + var COMMA742_tree=null; + + try { + // xquery/XQueryParser.g:2142:9: (k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* ) + // xquery/XQueryParser.g:2142:11: k= INDEX p_IndexName k= ON k= NODES p_IndexDomainExpr k= BY p_IndexKeySpec ( COMMA p_IndexKeySpec )* + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INDEX,XQueryParser.FOLLOW_INDEX_in_p_IndexDecl17263); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexName_in_p_IndexDecl17267); + p_IndexName739=this.p_IndexName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexName739.getTree()); + k=this.match(this.input,ON,XQueryParser.FOLLOW_ON_in_p_IndexDecl17271); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NODES,XQueryParser.FOLLOW_NODES_in_p_IndexDecl17277); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexDomainExpr_in_p_IndexDecl17281); + p_IndexDomainExpr740=this.p_IndexDomainExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexDomainExpr740.getTree()); + k=this.match(this.input,BY,XQueryParser.FOLLOW_BY_in_p_IndexDecl17285); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeySpec_in_p_IndexDecl17289); + p_IndexKeySpec741=this.p_IndexKeySpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeySpec741.getTree()); + // xquery/XQueryParser.g:2142:142: ( COMMA p_IndexKeySpec )* + loop256: + do { + var alt256=2; + var LA256_0 = this.input.LA(1); + + if ( (LA256_0==COMMA) ) { + alt256=1; + } + + + switch (alt256) { + case 1 : + // xquery/XQueryParser.g:2142:143: COMMA p_IndexKeySpec + COMMA742=this.match(this.input,COMMA,XQueryParser.FOLLOW_COMMA_in_p_IndexDecl17292); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + COMMA742_tree = this.adaptor.create(COMMA742); + this.adaptor.addChild(root_0, COMMA742_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeySpec_in_p_IndexDecl17294); + p_IndexKeySpec743=this.p_IndexKeySpec(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeySpec743.getTree()); + + + break; + + default : + break loop256; + } + } while (true); + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexName_return: (function() { + XQueryParser.p_IndexName_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexName_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2145:1: p_IndexName : p_QName ; + // $ANTLR start "p_IndexName" + p_IndexName: function() { + var retval = new XQueryParser.p_IndexName_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName744 = null; + + + try { + // xquery/XQueryParser.g:2146:9: ( p_QName ) + // xquery/XQueryParser.g:2146:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_IndexName17321); + p_QName744=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName744.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexDomainExpr_return: (function() { + XQueryParser.p_IndexDomainExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexDomainExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2149:1: p_IndexDomainExpr : p_PathExpr ; + // $ANTLR start "p_IndexDomainExpr" + p_IndexDomainExpr: function() { + var retval = new XQueryParser.p_IndexDomainExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PathExpr745 = null; + + + try { + // xquery/XQueryParser.g:2150:9: ( p_PathExpr ) + // xquery/XQueryParser.g:2150:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_IndexDomainExpr17346); + p_PathExpr745=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr745.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeySpec_return: (function() { + XQueryParser.p_IndexKeySpec_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeySpec_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2153:1: p_IndexKeySpec : p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? ; + // $ANTLR start "p_IndexKeySpec" + p_IndexKeySpec: function() { + var retval = new XQueryParser.p_IndexKeySpec_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_IndexKeyExpr746 = null; + var p_IndexKeyTypeDecl747 = null; + var p_IndexKeyCollation748 = null; + + + try { + // xquery/XQueryParser.g:2154:9: ( p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? ) + // xquery/XQueryParser.g:2154:11: p_IndexKeyExpr ( p_IndexKeyTypeDecl )? ( p_IndexKeyCollation )? + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyExpr_in_p_IndexKeySpec17371); + p_IndexKeyExpr746=this.p_IndexKeyExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyExpr746.getTree()); + // xquery/XQueryParser.g:2154:26: ( p_IndexKeyTypeDecl )? + var alt257=2; + var LA257_0 = this.input.LA(1); + + if ( (LA257_0==AS) ) { + alt257=1; + } + switch (alt257) { + case 1 : + // xquery/XQueryParser.g:2154:26: p_IndexKeyTypeDecl + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyTypeDecl_in_p_IndexKeySpec17373); + p_IndexKeyTypeDecl747=this.p_IndexKeyTypeDecl(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyTypeDecl747.getTree()); + + + break; + + } + + // xquery/XQueryParser.g:2154:46: ( p_IndexKeyCollation )? + var alt258=2; + var LA258_0 = this.input.LA(1); + + if ( (LA258_0==COLLATION) ) { + alt258=1; + } + switch (alt258) { + case 1 : + // xquery/XQueryParser.g:2154:46: p_IndexKeyCollation + this.pushFollow(XQueryParser.FOLLOW_p_IndexKeyCollation_in_p_IndexKeySpec17376); + p_IndexKeyCollation748=this.p_IndexKeyCollation(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_IndexKeyCollation748.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyExpr_return: (function() { + XQueryParser.p_IndexKeyExpr_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyExpr_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2157:1: p_IndexKeyExpr : p_PathExpr ; + // $ANTLR start "p_IndexKeyExpr" + p_IndexKeyExpr: function() { + var retval = new XQueryParser.p_IndexKeyExpr_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_PathExpr749 = null; + + + try { + // xquery/XQueryParser.g:2158:9: ( p_PathExpr ) + // xquery/XQueryParser.g:2158:11: p_PathExpr + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_IndexKeyExpr17402); + p_PathExpr749=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr749.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyTypeDecl_return: (function() { + XQueryParser.p_IndexKeyTypeDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyTypeDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2161:1: p_IndexKeyTypeDecl : k= AS p_AtomicType ( p_OccurrenceIndicator )? ; + // $ANTLR start "p_IndexKeyTypeDecl" + p_IndexKeyTypeDecl: function() { + var retval = new XQueryParser.p_IndexKeyTypeDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_AtomicType750 = null; + var p_OccurrenceIndicator751 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2162:9: (k= AS p_AtomicType ( p_OccurrenceIndicator )? ) + // xquery/XQueryParser.g:2162:11: k= AS p_AtomicType ( p_OccurrenceIndicator )? + root_0 = this.adaptor.nil(); + + k=this.match(this.input,AS,XQueryParser.FOLLOW_AS_in_p_IndexKeyTypeDecl17429); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_AtomicType_in_p_IndexKeyTypeDecl17433); + p_AtomicType750=this.p_AtomicType(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_AtomicType750.getTree()); + // xquery/XQueryParser.g:2162:44: ( p_OccurrenceIndicator )? + var alt259=2; + var LA259_0 = this.input.LA(1); + + if ( ((LA259_0>=QUESTION && LA259_0<=PLUS)) ) { + alt259=1; + } + switch (alt259) { + case 1 : + // xquery/XQueryParser.g:2162:44: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_p_IndexKeyTypeDecl17435); + p_OccurrenceIndicator751=this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_OccurrenceIndicator751.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_AtomicType_return: (function() { + XQueryParser.p_AtomicType_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_AtomicType_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2165:1: p_AtomicType : p_QName ; + // $ANTLR start "p_AtomicType" + p_AtomicType: function() { + var retval = new XQueryParser.p_AtomicType_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var p_QName752 = null; + + + try { + // xquery/XQueryParser.g:2166:9: ( p_QName ) + // xquery/XQueryParser.g:2166:11: p_QName + root_0 = this.adaptor.nil(); + + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_AtomicType17461); + p_QName752=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName752.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_IndexKeyCollation_return: (function() { + XQueryParser.p_IndexKeyCollation_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_IndexKeyCollation_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2169:1: p_IndexKeyCollation : k= COLLATION p_StringLiteral ; + // $ANTLR start "p_IndexKeyCollation" + p_IndexKeyCollation: function() { + var retval = new XQueryParser.p_IndexKeyCollation_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_StringLiteral753 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2170:9: (k= COLLATION p_StringLiteral ) + // xquery/XQueryParser.g:2170:11: k= COLLATION p_StringLiteral + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLATION,XQueryParser.FOLLOW_COLLATION_in_p_IndexKeyCollation17488); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_StringLiteral_in_p_IndexKeyCollation17492); + p_StringLiteral753=this.p_StringLiteral(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_StringLiteral753.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICDecl_return: (function() { + XQueryParser.p_ICDecl_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICDecl_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2173:1: p_ICDecl : k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) ; + // $ANTLR start "p_ICDecl" + p_ICDecl: function() { + var retval = new XQueryParser.p_ICDecl_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName754 = null; + var p_ICCollection755 = null; + var p_ICForeignKey756 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2174:9: (k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) ) + // xquery/XQueryParser.g:2174:11: k= INTEGRITY k= CONSTRAINT p_QName ( p_ICCollection | p_ICForeignKey ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,INTEGRITY,XQueryParser.FOLLOW_INTEGRITY_in_p_ICDecl17519); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,CONSTRAINT,XQueryParser.FOLLOW_CONSTRAINT_in_p_ICDecl17525); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICDecl17529); + p_QName754=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName754.getTree()); + // xquery/XQueryParser.g:2174:74: ( p_ICCollection | p_ICForeignKey ) + var alt260=2; + var LA260_0 = this.input.LA(1); + + if ( (LA260_0==ON) ) { + alt260=1; + } + else if ( (LA260_0==FOREIGN) ) { + alt260=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 260, 0, this.input); + + throw nvae; + } + switch (alt260) { + case 1 : + // xquery/XQueryParser.g:2174:75: p_ICCollection + this.pushFollow(XQueryParser.FOLLOW_p_ICCollection_in_p_ICDecl17532); + p_ICCollection755=this.p_ICCollection(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollection755.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2174:92: p_ICForeignKey + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKey_in_p_ICDecl17536); + p_ICForeignKey756=this.p_ICForeignKey(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKey756.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollection_return: (function() { + XQueryParser.p_ICCollection_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollection_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2177:1: p_ICCollection : k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) ; + // $ANTLR start "p_ICCollection" + p_ICCollection: function() { + var retval = new XQueryParser.p_ICCollection_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_QName757 = null; + var p_ICCollSequence758 = null; + var p_ICCollSequenceUnique759 = null; + var p_ICCollNode760 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2178:9: (k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) ) + // xquery/XQueryParser.g:2178:11: k= ON k= COLLECTION p_QName ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) + root_0 = this.adaptor.nil(); + + k=this.match(this.input,ON,XQueryParser.FOLLOW_ON_in_p_ICCollection17564); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_ICCollection17570); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollection17574); + p_QName757=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName757.getTree()); + // xquery/XQueryParser.g:2178:67: ( p_ICCollSequence | p_ICCollSequenceUnique | p_ICCollNode ) + var alt261=3; + switch ( this.input.LA(1) ) { + case DOLLAR: + alt261=1; + break; + case NODE: + alt261=2; + break; + case FOREACH: + alt261=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return retval;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 261, 0, this.input); + + throw nvae; + } + + switch (alt261) { + case 1 : + // xquery/XQueryParser.g:2178:68: p_ICCollSequence + this.pushFollow(XQueryParser.FOLLOW_p_ICCollSequence_in_p_ICCollection17577); + p_ICCollSequence758=this.p_ICCollSequence(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollSequence758.getTree()); + + + break; + case 2 : + // xquery/XQueryParser.g:2178:87: p_ICCollSequenceUnique + this.pushFollow(XQueryParser.FOLLOW_p_ICCollSequenceUnique_in_p_ICCollection17581); + p_ICCollSequenceUnique759=this.p_ICCollSequenceUnique(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollSequenceUnique759.getTree()); + + + break; + case 3 : + // xquery/XQueryParser.g:2178:112: p_ICCollNode + this.pushFollow(XQueryParser.FOLLOW_p_ICCollNode_in_p_ICCollection17585); + p_ICCollNode760=this.p_ICCollNode(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICCollNode760.getTree()); + + + break; + + } + + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollSequence_return: (function() { + XQueryParser.p_ICCollSequence_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollSequence_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2181:1: p_ICCollSequence : d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ; + // $ANTLR start "p_ICCollSequence" + p_ICCollSequence: function() { + var retval = new XQueryParser.p_ICCollSequence_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var d = null; + var k = null; + var v = null; + var p_ExprSingle761 = null; + + var d_tree=null; + var k_tree=null; + + try { + // xquery/XQueryParser.g:2182:9: (d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ) + // xquery/XQueryParser.g:2182:11: d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollSequence17613); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollSequence17617); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollSequence17623); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ICCollSequence17627); + p_ExprSingle761=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle761.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollSequenceUnique_return: (function() { + XQueryParser.p_ICCollSequenceUnique_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollSequenceUnique_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2185:1: p_ICCollSequenceUnique : k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr ; + // $ANTLR start "p_ICCollSequenceUnique" + p_ICCollSequenceUnique: function() { + var retval = new XQueryParser.p_ICCollSequenceUnique_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_PathExpr762 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2186:9: (k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr ) + // xquery/XQueryParser.g:2186:11: k= NODE d= DOLLAR v= p_QName k= CHECK k= UNIQUE k= KEY p_PathExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICCollSequenceUnique17655); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollSequenceUnique17661); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollSequenceUnique17665); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollSequenceUnique17671); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,UNIQUE,XQueryParser.FOLLOW_UNIQUE_in_p_ICCollSequenceUnique17677); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICCollSequenceUnique17683); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ICCollSequenceUnique17687); + p_PathExpr762=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr762.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICCollNode_return: (function() { + XQueryParser.p_ICCollNode_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICCollNode_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2189:1: p_ICCollNode : k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ; + // $ANTLR start "p_ICCollNode" + p_ICCollNode: function() { + var retval = new XQueryParser.p_ICCollNode_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_ExprSingle763 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2190:9: (k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] ) + // xquery/XQueryParser.g:2190:11: k= FOREACH k= NODE d= DOLLAR v= p_QName k= CHECK p_ExprSingle[true] + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOREACH,XQueryParser.FOLLOW_FOREACH_in_p_ICCollNode17714); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICCollNode17720); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICCollNode17726); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICCollNode17730); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,CHECK,XQueryParser.FOLLOW_CHECK_in_p_ICCollNode17736); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ExprSingle_in_p_ICCollNode17740); + p_ExprSingle763=this.p_ExprSingle(true); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ExprSingle763.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKey_return: (function() { + XQueryParser.p_ICForeignKey_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKey_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2193:1: p_ICForeignKey : k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget ; + // $ANTLR start "p_ICForeignKey" + p_ICForeignKey: function() { + var retval = new XQueryParser.p_ICForeignKey_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeySource764 = null; + var p_ICForeignKeyTarget765 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2194:9: (k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget ) + // xquery/XQueryParser.g:2194:11: k= FOREIGN k= KEY p_ICForeignKeySource p_ICForeignKeyTarget + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FOREIGN,XQueryParser.FOLLOW_FOREIGN_in_p_ICForeignKey17768); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICForeignKey17774); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeySource_in_p_ICForeignKey17778); + p_ICForeignKeySource764=this.p_ICForeignKeySource(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeySource764.getTree()); + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyTarget_in_p_ICForeignKey17780); + p_ICForeignKeyTarget765=this.p_ICForeignKeyTarget(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyTarget765.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeySource_return: (function() { + XQueryParser.p_ICForeignKeySource_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeySource_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2197:1: p_ICForeignKeySource : k= FROM p_ICForeignKeyValues ; + // $ANTLR start "p_ICForeignKeySource" + p_ICForeignKeySource: function() { + var retval = new XQueryParser.p_ICForeignKeySource_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeyValues766 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2198:9: (k= FROM p_ICForeignKeyValues ) + // xquery/XQueryParser.g:2198:11: k= FROM p_ICForeignKeyValues + root_0 = this.adaptor.nil(); + + k=this.match(this.input,FROM,XQueryParser.FOLLOW_FROM_in_p_ICForeignKeySource17807); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeySource17811); + p_ICForeignKeyValues766=this.p_ICForeignKeyValues(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyValues766.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeyTarget_return: (function() { + XQueryParser.p_ICForeignKeyTarget_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeyTarget_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2201:1: p_ICForeignKeyTarget : k= TO p_ICForeignKeyValues ; + // $ANTLR start "p_ICForeignKeyTarget" + p_ICForeignKeyTarget: function() { + var retval = new XQueryParser.p_ICForeignKeyTarget_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var p_ICForeignKeyValues767 = null; + + var k_tree=null; + + try { + // xquery/XQueryParser.g:2202:9: (k= TO p_ICForeignKeyValues ) + // xquery/XQueryParser.g:2202:11: k= TO p_ICForeignKeyValues + root_0 = this.adaptor.nil(); + + k=this.match(this.input,TO,XQueryParser.FOLLOW_TO_in_p_ICForeignKeyTarget17838); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeyTarget17842); + p_ICForeignKeyValues767=this.p_ICForeignKeyValues(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_ICForeignKeyValues767.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // inline static return class + p_ICForeignKeyValues_return: (function() { + XQueryParser.p_ICForeignKeyValues_return = function(){}; + org.antlr.lang.extend(XQueryParser.p_ICForeignKeyValues_return, + org.antlr.runtime.ParserRuleReturnScope, + { + getTree: function() { return this.tree; } + }); + return; + })(), + + // xquery/XQueryParser.g:2205:1: p_ICForeignKeyValues : k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr ; + // $ANTLR start "p_ICForeignKeyValues" + p_ICForeignKeyValues: function() { + var retval = new XQueryParser.p_ICForeignKeyValues_return(); + retval.start = this.input.LT(1); + + var root_0 = null; + + var k = null; + var d = null; + var v = null; + var p_QName768 = null; + var p_PathExpr769 = null; + + var k_tree=null; + var d_tree=null; + + try { + // xquery/XQueryParser.g:2206:9: (k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr ) + // xquery/XQueryParser.g:2206:11: k= COLLECTION p_QName k= NODE d= DOLLAR v= p_QName k= KEY p_PathExpr + root_0 = this.adaptor.nil(); + + k=this.match(this.input,COLLECTION,XQueryParser.FOLLOW_COLLECTION_in_p_ICForeignKeyValues17869); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICForeignKeyValues17873); + p_QName768=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_QName768.getTree()); + k=this.match(this.input,NODE,XQueryParser.FOLLOW_NODE_in_p_ICForeignKeyValues17877); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + d=this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_p_ICForeignKeyValues17883); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + d_tree = this.adaptor.create(d); + this.adaptor.addChild(root_0, d_tree); + } + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_p_ICForeignKeyValues17887); + v=this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, v.getTree()); + if ( this.state.backtracking===0 ) { + this.av(d, (v?v.stop:null)); + } + k=this.match(this.input,KEY,XQueryParser.FOLLOW_KEY_in_p_ICForeignKeyValues17893); if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) { + k_tree = this.adaptor.create(k); + this.adaptor.addChild(root_0, k_tree); + } + if ( this.state.backtracking===0 ) { + this.ak(k); + } + this.pushFollow(XQueryParser.FOLLOW_p_PathExpr_in_p_ICForeignKeyValues17897); + p_PathExpr769=this.p_PathExpr(); + + this.state._fsp--; + if (this.state.failed) return retval; + if ( this.state.backtracking===0 ) this.adaptor.addChild(root_0, p_PathExpr769.getTree()); + + + + retval.stop = this.input.LT(-1); + + if ( this.state.backtracking===0 ) { + + retval.tree = this.adaptor.rulePostProcessing(root_0); + this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (re) { + if (re instanceof org.antlr.runtime.RecognitionException) { + this.reportError(re); + this.recover(this.input,re); + retval.tree = this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re); + } else { + throw re; + } + } + finally { + } + return retval; + }, + + // $ANTLR start "synpred1_XQueryParser" + synpred1_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:574:11: ( ( ( FOR | LET ) DOLLAR ) | ( FOR ( TUMBLING | SLIDING ) ) ) + var alt262=2; + var LA262_0 = this.input.LA(1); + + if ( (LA262_0==FOR) ) { + var LA262_1 = this.input.LA(2); + + if ( (LA262_1==DOLLAR) ) { + alt262=1; + } + else if ( (LA262_1==SLIDING||LA262_1==TUMBLING) ) { + alt262=2; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 262, 1, this.input); + + throw nvae; + } + } + else if ( (LA262_0==LET) ) { + alt262=1; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 262, 0, this.input); + + throw nvae; + } + switch (alt262) { + case 1 : + // xquery/XQueryParser.g:574:12: ( ( FOR | LET ) DOLLAR ) + // xquery/XQueryParser.g:574:12: ( ( FOR | LET ) DOLLAR ) + // xquery/XQueryParser.g:574:13: ( FOR | LET ) DOLLAR + if ( this.input.LA(1)==FOR||this.input.LA(1)==LET ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.match(this.input,DOLLAR,XQueryParser.FOLLOW_DOLLAR_in_synpred1_XQueryParser3543); if (this.state.failed) return ; + + + + + + break; + case 2 : + // xquery/XQueryParser.g:574:35: ( FOR ( TUMBLING | SLIDING ) ) + // xquery/XQueryParser.g:574:35: ( FOR ( TUMBLING | SLIDING ) ) + // xquery/XQueryParser.g:574:36: FOR ( TUMBLING | SLIDING ) + this.match(this.input,FOR,XQueryParser.FOLLOW_FOR_in_synpred1_XQueryParser3549); if (this.state.failed) return ; + if ( this.input.LA(1)==SLIDING||this.input.LA(1)==TUMBLING ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + + + + break; + + }}, + // $ANTLR end "synpred1_XQueryParser", + + // $ANTLR start "synpred2_XQueryParser" + synpred2_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:575:11: ( IF LPAREN ) + // xquery/XQueryParser.g:575:12: IF LPAREN + this.match(this.input,IF,XQueryParser.FOLLOW_IF_in_synpred2_XQueryParser3577); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred2_XQueryParser3579); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred2_XQueryParser", + + // $ANTLR start "synpred3_XQueryParser" + synpred3_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:576:11: ( SWITCH LPAREN ) + // xquery/XQueryParser.g:576:12: SWITCH LPAREN + this.match(this.input,SWITCH,XQueryParser.FOLLOW_SWITCH_in_synpred3_XQueryParser3607); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred3_XQueryParser3609); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred3_XQueryParser", + + // $ANTLR start "synpred4_XQueryParser" + synpred4_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:577:11: ( TYPESWITCH LPAREN ) + // xquery/XQueryParser.g:577:12: TYPESWITCH LPAREN + this.match(this.input,TYPESWITCH,XQueryParser.FOLLOW_TYPESWITCH_in_synpred4_XQueryParser3633); if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred4_XQueryParser3635); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred4_XQueryParser", + + // $ANTLR start "synpred5_XQueryParser" + synpred5_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:578:11: ( TRY LBRACKET ) + // xquery/XQueryParser.g:578:12: TRY LBRACKET + this.match(this.input,TRY,XQueryParser.FOLLOW_TRY_in_synpred5_XQueryParser3655); if (this.state.failed) return ; + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred5_XQueryParser3657); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred5_XQueryParser", + + // $ANTLR start "synpred6_XQueryParser" + synpred6_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:864:11: ( VALIDATE ( p_ValidationMode | TYPE )? ) + // xquery/XQueryParser.g:864:12: VALIDATE ( p_ValidationMode | TYPE )? + this.match(this.input,VALIDATE,XQueryParser.FOLLOW_VALIDATE_in_synpred6_XQueryParser6189); if (this.state.failed) return ; + // xquery/XQueryParser.g:864:21: ( p_ValidationMode | TYPE )? + var alt263=3; + var LA263_0 = this.input.LA(1); + + if ( (LA263_0==LAX||LA263_0==STRICT) ) { + alt263=1; + } + else if ( (LA263_0==TYPE) ) { + alt263=2; + } + switch (alt263) { + case 1 : + // xquery/XQueryParser.g:864:23: p_ValidationMode + this.pushFollow(XQueryParser.FOLLOW_p_ValidationMode_in_synpred6_XQueryParser6193); + this.p_ValidationMode(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + case 2 : + // xquery/XQueryParser.g:864:42: TYPE + this.match(this.input,TYPE,XQueryParser.FOLLOW_TYPE_in_synpred6_XQueryParser6197); if (this.state.failed) return ; + + + break; + + } + + + + }, + // $ANTLR end "synpred6_XQueryParser", + + // $ANTLR start "synpred7_XQueryParser" + synpred7_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:909:11: ( SLASH p_RelativePathExpr ) + // xquery/XQueryParser.g:909:12: SLASH p_RelativePathExpr + this.match(this.input,SLASH,XQueryParser.FOLLOW_SLASH_in_synpred7_XQueryParser6553); if (this.state.failed) return ; + this.pushFollow(XQueryParser.FOLLOW_p_RelativePathExpr_in_synpred7_XQueryParser6555); + this.p_RelativePathExpr(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred7_XQueryParser", + + // $ANTLR start "synpred8_XQueryParser" + synpred8_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:922:11: ( LBRACKET | LPAREN | SMALLER | QUOT | APOS | DOLLAR ) + // xquery/XQueryParser.g: + if ( this.input.LA(1)==LPAREN||(this.input.LA(1)>=DOLLAR && this.input.LA(1)<=LBRACKET)||this.input.LA(1)==SMALLER||(this.input.LA(1)>=APOS && this.input.LA(1)<=QUOT) ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + + + }, + // $ANTLR end "synpred8_XQueryParser", + + // $ANTLR start "synpred9_XQueryParser" + synpred9_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:923:11: ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) ) + var alt266=3; + switch ( this.input.LA(1) ) { + case ATTRIBUTE: + case ELEMENT: + alt266=1; + break; + case NAMESPACE: + case PROCESSING_INSTRUCTION: + alt266=2; + break; + case COMMENT: + case DOCUMENT: + case TEXT: + alt266=3; + break; + default: + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var nvae = + new org.antlr.runtime.NoViableAltException("", 266, 0, this.input); + + throw nvae; + } + + switch (alt266) { + case 1 : + // xquery/XQueryParser.g:924:13: ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) + // xquery/XQueryParser.g:924:13: ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) + // xquery/XQueryParser.g:924:14: ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET + if ( this.input.LA(1)==ATTRIBUTE||this.input.LA(1)==ELEMENT ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + // xquery/XQueryParser.g:924:36: ( p_QName )? + var alt264=2; + var LA264_0 = this.input.LA(1); + + if ( ((LA264_0>=ANCESTOR && LA264_0<=SKIP)||(LA264_0>=VALUE && LA264_0<=QUOT_ER)||LA264_0==L_NCName||LA264_0==EXPLICITLY) ) { + alt264=1; + } + switch (alt264) { + case 1 : + // xquery/XQueryParser.g:924:36: p_QName + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_synpred9_XQueryParser6730); + this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6733); if (this.state.failed) return ; + + + + + + break; + case 2 : + // xquery/XQueryParser.g:925:13: ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) + // xquery/XQueryParser.g:925:13: ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) + // xquery/XQueryParser.g:925:14: ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET + if ( this.input.LA(1)==NAMESPACE||this.input.LA(1)==PROCESSING_INSTRUCTION ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + // xquery/XQueryParser.g:925:51: ( p_NCName )? + var alt265=2; + var LA265_0 = this.input.LA(1); + + if ( ((LA265_0>=ANCESTOR && LA265_0<=SKIP)||(LA265_0>=VALUE && LA265_0<=QUOT_ER)||LA265_0==L_NCName||LA265_0==EXPLICITLY) ) { + alt265=1; + } + switch (alt265) { + case 1 : + // xquery/XQueryParser.g:925:51: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred9_XQueryParser6759); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + break; + + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6762); if (this.state.failed) return ; + + + + + + break; + case 3 : + // xquery/XQueryParser.g:926:13: ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) + // xquery/XQueryParser.g:926:13: ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) + // xquery/XQueryParser.g:926:14: ( DOCUMENT | TEXT | COMMENT ) LBRACKET + if ( this.input.LA(1)==COMMENT||this.input.LA(1)==DOCUMENT||this.input.LA(1)==TEXT ) { + this.input.consume(); + this.state.errorRecovery=false;this.state.failed=false; + } + else { + if (this.state.backtracking>0) {this.state.failed=true; return ;} + var mse = new org.antlr.runtime.MismatchedSetException(null,this.input); + throw mse; + } + + this.match(this.input,LBRACKET,XQueryParser.FOLLOW_LBRACKET_in_synpred9_XQueryParser6792); if (this.state.failed) return ; + + + + + + break; + + }}, + // $ANTLR end "synpred9_XQueryParser", + + // $ANTLR start "synpred10_XQueryParser" + synpred10_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:928:11: ( p_KindTest ) + // xquery/XQueryParser.g:928:12: p_KindTest + this.pushFollow(XQueryParser.FOLLOW_p_KindTest_in_synpred10_XQueryParser6822); + this.p_KindTest(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred10_XQueryParser", + + // $ANTLR start "synpred11_XQueryParser" + synpred11_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:929:11: ( p_QName LPAREN ) + // xquery/XQueryParser.g:929:12: p_QName LPAREN + this.pushFollow(XQueryParser.FOLLOW_p_QName_in_synpred11_XQueryParser6841); + this.p_QName(); + + this.state._fsp--; + if (this.state.failed) return ; + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred11_XQueryParser6843); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred11_XQueryParser", + + // $ANTLR start "synpred12_XQueryParser" + synpred12_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:930:11: ( p_PrimaryExpr ) + // xquery/XQueryParser.g:930:12: p_PrimaryExpr + this.pushFollow(XQueryParser.FOLLOW_p_PrimaryExpr_in_synpred12_XQueryParser6861); + this.p_PrimaryExpr(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred12_XQueryParser", + + // $ANTLR start "synpred13_XQueryParser" + synpred13_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:988:11: ( p_Wildcard ) + // xquery/XQueryParser.g:988:12: p_Wildcard + this.pushFollow(XQueryParser.FOLLOW_p_Wildcard_in_synpred13_XQueryParser7300); + this.p_Wildcard(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred13_XQueryParser", + + // $ANTLR start "synpred14_XQueryParser" + synpred14_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:989:11: ( p_NCName COLON ) + // xquery/XQueryParser.g:989:12: p_NCName COLON + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred14_XQueryParser7319); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + this.match(this.input,COLON,XQueryParser.FOLLOW_COLON_in_synpred14_XQueryParser7321); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred14_XQueryParser", + + // $ANTLR start "synpred15_XQueryParser" + synpred15_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:990:11: ( p_NCName ) + // xquery/XQueryParser.g:990:12: p_NCName + this.pushFollow(XQueryParser.FOLLOW_p_NCName_in_synpred15_XQueryParser7339); + this.p_NCName(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred15_XQueryParser", + + // $ANTLR start "synpred16_XQueryParser" + synpred16_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:1027:11: ( LPAREN ) + // xquery/XQueryParser.g:1027:12: LPAREN + this.match(this.input,LPAREN,XQueryParser.FOLLOW_LPAREN_in_synpred16_XQueryParser7595); if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred16_XQueryParser", + + // $ANTLR start "synpred17_XQueryParser" + synpred17_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:1306:26: ( p_OccurrenceIndicator ) + // xquery/XQueryParser.g:1306:27: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_synpred17_XQueryParser9654); + this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred17_XQueryParser", + + // $ANTLR start "synpred18_XQueryParser" + synpred18_XQueryParser_fragment: function() { + // xquery/XQueryParser.g:2138:44: ( p_OccurrenceIndicator ) + // xquery/XQueryParser.g:2138:45: p_OccurrenceIndicator + this.pushFollow(XQueryParser.FOLLOW_p_OccurrenceIndicator_in_synpred18_XQueryParser17228); + this.p_OccurrenceIndicator(); + + this.state._fsp--; + if (this.state.failed) return ; + + + }, + // $ANTLR end "synpred18_XQueryParser" + + // Delegated rules + + + + synpred3_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred3_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred15_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred15_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred7_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred7_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred9_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred9_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred10_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred10_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred17_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred17_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred5_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred5_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred12_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred12_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred16_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred16_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred14_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred14_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred6_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred6_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred18_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred18_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred8_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred8_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred13_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred13_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred4_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred4_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred11_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred11_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred1_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred1_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + }, + synpred2_XQueryParser: function() { + this.state.backtracking++; + var start = this.input.mark(); + try { + this.synpred2_XQueryParser_fragment(); // can never throw exception + } catch (re) { + alert("impossible: "+re.toString()); + } + var success = !this.state.failed; + this.input.rewind(start); + this.state.backtracking--; + this.state.failed=false; + return success; + } + +}, true); // important to pass true to overwrite default implementations + +org.antlr.lang.augmentObject(XQueryParser, { + DFA1_eotS: + "\u000a\uffff", + DFA1_eofS: + "\u0001\u0005\u0001\u0009\u0008\uffff", + DFA1_minS: + "\u0001\u0010\u0001\u0012\u0008\uffff", + DFA1_maxS: + "\u0001\u0154\u0001\u00fe\u0008\uffff", + DFA1_acceptS: + "\u0002\uffff\u0004\u0002\u0001\u0001\u0003\u0002", + DFA1_specialS: + "\u0001\u0001\u0001\u0000\u0008\uffff}>", + DFA1_transitionS: [ + "\u0002\u0002\u0004\u0004\u0001\u0002\u0006\u0004\u0001\u0002"+ + "\u0001\u0004\u0001\u0002\u0002\u0004\u0001\u0002\u0001\u0004"+ + "\u0002\u0002\u0002\u0004\u0003\u0002\u0005\u0004\u0001\u0002"+ + "\u0002\u0004\u0003\u0002\u0005\u0004\u0002\u0002\u0009\u0004"+ + "\u0001\u0002\u0002\u0004\u0002\u0002\u0003\u0004\u0001\u0002"+ + "\u0004\u0004\u0001\u0002\u0001\u0004\u0003\u0002\u0001\u0004"+ + "\u0001\u0002\u0003\u0004\u0004\u0002\u0003\u0004\u0001\u0002"+ + "\u0003\u0004\u0001\u0002\u0001\u0004\u0003\u0002\u0002\u0004"+ + "\u0001\u0001\u000c\u0004\u0001\u0002\u0009\u0004\u0002\u0002"+ + "\u0007\u0004\u0002\u0002\u0001\u0004\u0001\u0002\u0004\u0004"+ + "\u0002\u0002\u0002\u0004\u0001\u0002\u002c\u0004\u0003\u0002"+ + "\u0002\u0004\u0001\u0002\u000a\u0004\u0001\u0002\u0003\u0004"+ + "\u0001\uffff\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff"+ + "\u0001\u0003\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002"+ + "\u000c\uffff\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff"+ + "\u0001\u0004\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0004", + "\u0001\u0007\u0008\uffff\u0002\u0007\u000a\uffff\u0001\u0007"+ + "\u0006\uffff\u0001\u0006\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0005\uffff\u0001\u0007\u0001\uffff\u0002\u0007\u0004\uffff"+ + "\u0003\u0007\u0002\uffff\u0001\u0007\u0002\uffff\u0002\u0007"+ + "\u0002\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0014\uffff"+ + "\u0002\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0006"+ + "\u0032\uffff\u0001\u0007\u003b\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u000b\u0007\u0002\uffff"+ + "\u0001\u0007\u0003\uffff\u0001\u0008\u0001\u0007", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA1_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_eotS), + DFA1_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_eofS), + DFA1_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA1_minS), + DFA1_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA1_maxS), + DFA1_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_acceptS), + DFA1_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA1_specialS), + DFA1_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA1_transitionS.length; + for (i=0; i=CAST && LA1_1<=CASTABLE)||LA1_1==DIV||LA1_1==EQ||LA1_1==EXCEPT||LA1_1==GE||(LA1_1>=GT && LA1_1<=IDIV)||(LA1_1>=INSTANCE && LA1_1<=IS)||LA1_1==LE||(LA1_1>=LT && LA1_1<=MOD)||LA1_1==NE||LA1_1==OR||(LA1_1>=TO && LA1_1<=TREAT)||LA1_1==UNION||LA1_1==CONTAINS||(LA1_1>=CONCAT && LA1_1<=LPAREN)||LA1_1==LSQUARE||LA1_1==EQUAL||LA1_1==NOTEQUAL||LA1_1==COMMA||(LA1_1>=STAR && LA1_1<=SLASH_SLASH)||LA1_1==COLON||LA1_1==VBAR) ) {s = 7;} + + else if ( (LA1_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA1_1==EOF) ) {s = 9;} + + + input.seek(index1_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA1_0 = input.LA(1); + + + var index1_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA1_0==XQUERY) ) {s = 1;} + + else if ( ((LA1_0>=ANCESTOR && LA1_0<=ANCESTOR_OR_SELF)||LA1_0==ATTRIBUTE||LA1_0==CHILD||LA1_0==COMMENT||LA1_0==DECLARE||(LA1_0>=DESCENDANT && LA1_0<=DESCENDANT_OR_SELF)||(LA1_0>=DOCUMENT && LA1_0<=ELEMENT)||LA1_0==EVERY||(LA1_0>=FOLLOWING && LA1_0<=FOR)||(LA1_0>=IF && LA1_0<=IMPORT)||LA1_0==LET||(LA1_0>=MODULE && LA1_0<=NAMESPACE)||LA1_0==NODE||LA1_0==ORDERED||(LA1_0>=PARENT && LA1_0<=PRECEDING_SIBLING)||LA1_0==PROCESSING_INSTRUCTION||(LA1_0>=SCHEMA_ATTRIBUTE && LA1_0<=SOME)||LA1_0==TEXT||LA1_0==TYPESWITCH||(LA1_0>=UNORDERED && LA1_0<=VARIABLE)||LA1_0==NAMESPACE_NODE||(LA1_0>=SWITCH && LA1_0<=TRY)||(LA1_0>=COPY && LA1_0<=DELETE)||LA1_0==INSERT||(LA1_0>=RENAME && LA1_0<=REPLACE)||LA1_0==UPDATING||(LA1_0>=BREAK && LA1_0<=EXIT)||LA1_0==WHILE||LA1_0==BINARY||LA1_0==LPAREN||(LA1_0>=DOLLAR && LA1_0<=LBRACKET)||(LA1_0>=STAR && LA1_0<=SMALLER)||(LA1_0>=SLASH && LA1_0<=DOT_DOT)||LA1_0==ATTR_SIGN||(LA1_0>=APOS && LA1_0<=QUOT)||(LA1_0>=L_Pragma && LA1_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA1_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( ((LA1_0>=AND && LA1_0<=AT)||(LA1_0>=BASE_URI && LA1_0<=CASTABLE)||LA1_0==COLLATION||(LA1_0>=CONSTRUCTION && LA1_0<=COPY_NAMESPACES)||LA1_0==DEFAULT||(LA1_0>=DESCENDING && LA1_0<=DIV)||(LA1_0>=ELSE && LA1_0<=EQ)||(LA1_0>=EXCEPT && LA1_0<=EXTERNAL)||(LA1_0>=FUNCTION && LA1_0<=IDIV)||(LA1_0>=IN && LA1_0<=LEAST)||(LA1_0>=LT && LA1_0<=MOD)||(LA1_0>=NE && LA1_0<=NO_PRESERVE)||(LA1_0>=OF && LA1_0<=ORDER)||LA1_0==ORDERING||LA1_0==PRESERVE||(LA1_0>=RETURN && LA1_0<=SCHEMA)||(LA1_0>=STABLE && LA1_0<=STRIP)||(LA1_0>=THEN && LA1_0<=TREAT)||LA1_0==UNION||(LA1_0>=VERSION && LA1_0<=WHERE)||(LA1_0>=ALLOWING && LA1_0<=MINUS_SIGN)||(LA1_0>=NAN && LA1_0<=START)||(LA1_0>=TUMBLING && LA1_0<=BEFORE)||LA1_0==FIRST||(LA1_0>=INTO && LA1_0<=NODES)||(LA1_0>=REVALIDATION && LA1_0<=SKIP)||(LA1_0>=VALUE && LA1_0<=WORDS)||(LA1_0>=LOOP && LA1_0<=RETURNING)||(LA1_0>=CHECK && LA1_0<=UNIQUE)||(LA1_0>=AMP_ER && LA1_0<=QUOT_ER)||LA1_0==L_NCName||LA1_0==EXPLICITLY) ) {s = 4;} + + else if ( (LA1_0==EOF) && ((this.lc(XQS)))) {s = 5;} + + + input.seek(index1_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 1, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA2_eotS: + "\u000a\uffff", + DFA2_eofS: + "\u0001\u0005\u0001\u0009\u0008\uffff", + DFA2_minS: + "\u0001\u0010\u0001\u0012\u0008\uffff", + DFA2_maxS: + "\u0001\u0154\u0001\u00fe\u0008\uffff", + DFA2_acceptS: + "\u0002\uffff\u0004\u0002\u0001\u0001\u0003\u0002", + DFA2_specialS: + "\u0001\u0001\u0001\u0000\u0008\uffff}>", + DFA2_transitionS: [ + "\u0002\u0002\u0004\u0004\u0001\u0002\u0006\u0004\u0001\u0002"+ + "\u0001\u0004\u0001\u0002\u0002\u0004\u0001\u0002\u0001\u0004"+ + "\u0002\u0002\u0002\u0004\u0003\u0002\u0005\u0004\u0001\u0002"+ + "\u0002\u0004\u0003\u0002\u0005\u0004\u0002\u0002\u0009\u0004"+ + "\u0001\u0002\u0002\u0004\u0001\u0001\u0001\u0002\u0003\u0004"+ + "\u0001\u0002\u0004\u0004\u0001\u0002\u0001\u0004\u0003\u0002"+ + "\u0001\u0004\u0001\u0002\u0003\u0004\u0004\u0002\u0003\u0004"+ + "\u0001\u0002\u0003\u0004\u0001\u0002\u0001\u0004\u0003\u0002"+ + "\u000f\u0004\u0001\u0002\u0009\u0004\u0002\u0002\u0007\u0004"+ + "\u0002\u0002\u0001\u0004\u0001\u0002\u0004\u0004\u0002\u0002"+ + "\u0002\u0004\u0001\u0002\u002c\u0004\u0003\u0002\u0002\u0004"+ + "\u0001\u0002\u000a\u0004\u0001\u0002\u0003\u0004\u0001\uffff"+ + "\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff\u0001\u0003"+ + "\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002\u000c\uffff"+ + "\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff\u0001\u0004"+ + "\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0004", + "\u0001\u0007\u0008\uffff\u0002\u0007\u000a\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0005\uffff"+ + "\u0001\u0007\u0001\uffff\u0002\u0007\u0004\uffff\u0003\u0007"+ + "\u0002\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0001\uffff"+ + "\u0001\u0006\u0001\u0007\u0005\uffff\u0001\u0007\u0014\uffff"+ + "\u0002\u0007\u0001\uffff\u0001\u0007\u0036\uffff\u0001\u0007"+ + "\u003b\uffff\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007"+ + "\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0008\u0001\u0007", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA2_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_eotS), + DFA2_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_eofS), + DFA2_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA2_minS), + DFA2_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA2_maxS), + DFA2_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_acceptS), + DFA2_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA2_specialS), + DFA2_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA2_transitionS.length; + for (i=0; i | mm= p_MainModule[$vd.tree] ->)"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA2_1 = input.LA(1); + + + var index2_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA2_1==NAMESPACE) ) {s = 6;} + + else if ( (LA2_1==AND||(LA2_1>=CAST && LA2_1<=CASTABLE)||LA2_1==DIV||LA2_1==EQ||LA2_1==EXCEPT||LA2_1==GE||(LA2_1>=GT && LA2_1<=IDIV)||(LA2_1>=INSTANCE && LA2_1<=IS)||LA2_1==LE||(LA2_1>=LT && LA2_1<=MOD)||LA2_1==NE||LA2_1==OR||(LA2_1>=TO && LA2_1<=TREAT)||LA2_1==UNION||LA2_1==CONTAINS||(LA2_1>=CONCAT && LA2_1<=LPAREN)||LA2_1==LSQUARE||LA2_1==EQUAL||LA2_1==NOTEQUAL||LA2_1==COMMA||(LA2_1>=STAR && LA2_1<=SLASH_SLASH)||LA2_1==COLON||LA2_1==VBAR) ) {s = 7;} + + else if ( (LA2_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA2_1==EOF) ) {s = 9;} + + + input.seek(index2_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA2_0 = input.LA(1); + + + var index2_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA2_0==MODULE) ) {s = 1;} + + else if ( ((LA2_0>=ANCESTOR && LA2_0<=ANCESTOR_OR_SELF)||LA2_0==ATTRIBUTE||LA2_0==CHILD||LA2_0==COMMENT||LA2_0==DECLARE||(LA2_0>=DESCENDANT && LA2_0<=DESCENDANT_OR_SELF)||(LA2_0>=DOCUMENT && LA2_0<=ELEMENT)||LA2_0==EVERY||(LA2_0>=FOLLOWING && LA2_0<=FOR)||(LA2_0>=IF && LA2_0<=IMPORT)||LA2_0==LET||LA2_0==NAMESPACE||LA2_0==NODE||LA2_0==ORDERED||(LA2_0>=PARENT && LA2_0<=PRECEDING_SIBLING)||LA2_0==PROCESSING_INSTRUCTION||(LA2_0>=SCHEMA_ATTRIBUTE && LA2_0<=SOME)||LA2_0==TEXT||LA2_0==TYPESWITCH||(LA2_0>=UNORDERED && LA2_0<=VARIABLE)||LA2_0==NAMESPACE_NODE||(LA2_0>=SWITCH && LA2_0<=TRY)||(LA2_0>=COPY && LA2_0<=DELETE)||LA2_0==INSERT||(LA2_0>=RENAME && LA2_0<=REPLACE)||LA2_0==UPDATING||(LA2_0>=BREAK && LA2_0<=EXIT)||LA2_0==WHILE||LA2_0==BINARY||LA2_0==LPAREN||(LA2_0>=DOLLAR && LA2_0<=LBRACKET)||(LA2_0>=STAR && LA2_0<=SMALLER)||(LA2_0>=SLASH && LA2_0<=DOT_DOT)||LA2_0==ATTR_SIGN||(LA2_0>=APOS && LA2_0<=QUOT)||(LA2_0>=L_Pragma && LA2_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA2_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( ((LA2_0>=AND && LA2_0<=AT)||(LA2_0>=BASE_URI && LA2_0<=CASTABLE)||LA2_0==COLLATION||(LA2_0>=CONSTRUCTION && LA2_0<=COPY_NAMESPACES)||LA2_0==DEFAULT||(LA2_0>=DESCENDING && LA2_0<=DIV)||(LA2_0>=ELSE && LA2_0<=EQ)||(LA2_0>=EXCEPT && LA2_0<=EXTERNAL)||(LA2_0>=FUNCTION && LA2_0<=IDIV)||(LA2_0>=IN && LA2_0<=LEAST)||(LA2_0>=LT && LA2_0<=MOD)||(LA2_0>=NE && LA2_0<=NO_PRESERVE)||(LA2_0>=OF && LA2_0<=ORDER)||LA2_0==ORDERING||LA2_0==PRESERVE||(LA2_0>=RETURN && LA2_0<=SCHEMA)||(LA2_0>=STABLE && LA2_0<=STRIP)||(LA2_0>=THEN && LA2_0<=TREAT)||LA2_0==UNION||(LA2_0>=VERSION && LA2_0<=MINUS_SIGN)||(LA2_0>=NAN && LA2_0<=START)||(LA2_0>=TUMBLING && LA2_0<=BEFORE)||LA2_0==FIRST||(LA2_0>=INTO && LA2_0<=NODES)||(LA2_0>=REVALIDATION && LA2_0<=SKIP)||(LA2_0>=VALUE && LA2_0<=WORDS)||(LA2_0>=LOOP && LA2_0<=RETURNING)||(LA2_0>=CHECK && LA2_0<=UNIQUE)||(LA2_0>=AMP_ER && LA2_0<=QUOT_ER)||LA2_0==L_NCName||LA2_0==EXPLICITLY) ) {s = 4;} + + else if ( (LA2_0==EOF) && ((this.lc(XQS)))) {s = 5;} + + + input.seek(index2_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 2, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA6_eotS: + "\u000a\uffff", + DFA6_eofS: + "\u0001\u0005\u0001\u0009\u0002\uffff\u0001\u0009\u0005\uffff", + DFA6_minS: + "\u0001\u0010\u0001\u0012\u0002\uffff\u0001\u0012\u0005\uffff", + DFA6_maxS: + "\u0001\u0154\u0001\u00fe\u0002\uffff\u0001\u00fe\u0005\uffff", + DFA6_acceptS: + "\u0002\uffff\u0002\u0002\u0001\uffff\u0001\u0002\u0002\u0001\u0002"+ + "\u0002", + DFA6_specialS: + "\u0001\u0002\u0001\u0001\u0002\uffff\u0001\u0000\u0005\uffff}>", + DFA6_transitionS: [ + "\u0002\u0002\u0004\u0005\u0001\u0002\u0006\u0005\u0001\u0002"+ + "\u0001\u0005\u0001\u0002\u0002\u0005\u0001\u0001\u0001\u0005"+ + "\u0002\u0002\u0002\u0005\u0003\u0002\u0005\u0005\u0001\u0002"+ + "\u0002\u0005\u0003\u0002\u0005\u0005\u0001\u0002\u0001\u0004"+ + "\u0009\u0005\u0001\u0002\u0003\u0005\u0001\u0002\u0003\u0005"+ + "\u0001\u0002\u0004\u0005\u0001\u0002\u0001\u0005\u0003\u0002"+ + "\u0001\u0005\u0001\u0002\u0003\u0005\u0004\u0002\u0003\u0005"+ + "\u0001\u0002\u0003\u0005\u0001\u0002\u0001\u0005\u0003\u0002"+ + "\u000f\u0005\u0001\u0002\u0009\u0005\u0002\u0002\u0007\u0005"+ + "\u0002\u0002\u0001\u0005\u0001\u0002\u0004\u0005\u0002\u0002"+ + "\u0002\u0005\u0001\u0002\u002c\u0005\u0003\u0002\u0002\u0005"+ + "\u0001\u0002\u000a\u0005\u0001\u0002\u0003\u0005\u0001\uffff"+ + "\u0001\u0002\u0001\uffff\u0002\u0002\u0006\uffff\u0001\u0003"+ + "\u0004\uffff\u0004\u0002\u0005\uffff\u0004\u0002\u000c\uffff"+ + "\u0001\u0002\u0002\uffff\u0002\u0002\u0002\uffff\u0001\u0005"+ + "\u0006\uffff\u0006\u0002\u003b\uffff\u0001\u0005", + "\u0001\u0005\u0004\uffff\u0002\u0007\u0002\uffff\u0002\u0005"+ + "\u0003\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0005\u0007\uffff\u0001\u0005\u0001\uffff\u0001\u0005"+ + "\u0004\uffff\u0002\u0005\u0001\uffff\u0002\u0005\u0004\uffff"+ + "\u0003\u0005\u0002\uffff\u0001\u0005\u0002\uffff\u0002\u0005"+ + "\u0001\uffff\u0001\u0007\u0001\u0005\u0004\uffff\u0002\u0005"+ + "\u0002\uffff\u0001\u0007\u0011\uffff\u0002\u0005\u0001\uffff"+ + "\u0001\u0005\u0002\uffff\u0001\u0005\u0005\uffff\u0001\u0005"+ + "\u0001\uffff\u0001\u0007\u0024\uffff\u0001\u0006\u0001\uffff"+ + "\u0001\u0005\u0004\uffff\u0001\u0005\u0007\uffff\u0001\u0007"+ + "\u0026\uffff\u0001\u0005\u0003\uffff\u0002\u0005\u0007\uffff"+ + "\u0002\u0005\u0004\uffff\u0001\u0005\u0001\uffff\u0001\u0005"+ + "\u0001\uffff\u0002\u0005\u0002\uffff\u0001\u0005\u0001\uffff"+ + "\u000b\u0005\u0002\uffff\u0001\u0005\u0003\uffff\u0001\u0008"+ + "\u0001\u0005", + "", + "", + "\u0001\u0009\u0008\uffff\u0002\u0009\u000a\uffff\u0001\u0009"+ + "\u0007\uffff\u0001\u0009\u0001\uffff\u0001\u0009\u0005\uffff"+ + "\u0001\u0009\u0001\uffff\u0002\u0009\u0004\uffff\u0003\u0009"+ + "\u0002\uffff\u0001\u0009\u0002\uffff\u0002\u0009\u0001\u0007"+ + "\u0001\uffff\u0001\u0009\u0005\uffff\u0001\u0009\u000a\uffff"+ + "\u0001\u0007\u0009\uffff\u0002\u0009\u0001\uffff\u0001\u0009"+ + "\u0036\uffff\u0001\u0009\u003b\uffff\u0002\u0009\u0004\uffff"+ + "\u0001\u0009\u0001\uffff\u0001\u0009\u0001\uffff\u0001\u0009"+ + "\u0003\uffff\u0001\u0009\u0001\uffff\u000b\u0009\u0002\uffff"+ + "\u0001\u0009\u0003\uffff\u0001\u0008\u0001\u0009", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA6_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_eotS), + DFA6_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_eofS), + DFA6_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA6_minS), + DFA6_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA6_maxS), + DFA6_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_acceptS), + DFA6_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA6_specialS), + DFA6_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA6_transitionS.length; + for (i=0; i=CAST && LA6_4<=CASTABLE)||LA6_4==DIV||LA6_4==EQ||LA6_4==EXCEPT||LA6_4==GE||(LA6_4>=GT && LA6_4<=IDIV)||(LA6_4>=INSTANCE && LA6_4<=IS)||LA6_4==LE||(LA6_4>=LT && LA6_4<=MOD)||LA6_4==NE||LA6_4==OR||(LA6_4>=TO && LA6_4<=TREAT)||LA6_4==UNION||LA6_4==CONTAINS||(LA6_4>=CONCAT && LA6_4<=LPAREN)||LA6_4==LSQUARE||LA6_4==EQUAL||LA6_4==NOTEQUAL||LA6_4==COMMA||(LA6_4>=STAR && LA6_4<=SLASH_SLASH)||LA6_4==COLON||LA6_4==VBAR) ) {s = 9;} + + else if ( (LA6_4==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA6_4==MODULE||LA6_4==SCHEMA) ) {s = 7;} + + + input.seek(index6_4); + if ( s>=0 ) return s; + break; + case 1 : + var LA6_1 = input.LA(1); + + + var index6_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA6_1==REVALIDATION) && ((this.lc(XQU)))) {s = 6;} + + else if ( ((LA6_1>=BASE_URI && LA6_1<=BOUNDARY_SPACE)||(LA6_1>=CONSTRUCTION && LA6_1<=COPY_NAMESPACES)||LA6_1==DEFAULT||LA6_1==NAMESPACE||LA6_1==ORDERING||LA6_1==DECIMAL_FORMAT||LA6_1==FT_OPTION) ) {s = 7;} + + else if ( (LA6_1==AND||(LA6_1>=CAST && LA6_1<=CASTABLE)||LA6_1==DIV||LA6_1==EQ||LA6_1==EXCEPT||(LA6_1>=FUNCTION && LA6_1<=GE)||(LA6_1>=GT && LA6_1<=IDIV)||(LA6_1>=INSTANCE && LA6_1<=IS)||LA6_1==LE||(LA6_1>=LT && LA6_1<=MOD)||LA6_1==NE||(LA6_1>=OPTION && LA6_1<=OR)||(LA6_1>=TO && LA6_1<=TREAT)||LA6_1==UNION||LA6_1==VARIABLE||LA6_1==CONTEXT||LA6_1==UPDATING||LA6_1==CONTAINS||LA6_1==COLLECTION||(LA6_1>=INDEX && LA6_1<=INTEGRITY)||(LA6_1>=CONCAT && LA6_1<=LPAREN)||LA6_1==LSQUARE||LA6_1==EQUAL||(LA6_1>=NOTEQUAL && LA6_1<=ANN_PERCENT)||LA6_1==COMMA||(LA6_1>=STAR && LA6_1<=SLASH_SLASH)||LA6_1==COLON||LA6_1==VBAR) ) {s = 5;} + + else if ( (LA6_1==SEMICOLON) && ((this.lc(XQS)))) {s = 8;} + + else if ( (LA6_1==EOF) ) {s = 9;} + + + input.seek(index6_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA6_0 = input.LA(1); + + + var index6_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA6_0==DECLARE) ) {s = 1;} + + else if ( ((LA6_0>=ANCESTOR && LA6_0<=ANCESTOR_OR_SELF)||LA6_0==ATTRIBUTE||LA6_0==CHILD||LA6_0==COMMENT||(LA6_0>=DESCENDANT && LA6_0<=DESCENDANT_OR_SELF)||(LA6_0>=DOCUMENT && LA6_0<=ELEMENT)||LA6_0==EVERY||(LA6_0>=FOLLOWING && LA6_0<=FOR)||LA6_0==IF||LA6_0==LET||LA6_0==NAMESPACE||LA6_0==NODE||LA6_0==ORDERED||(LA6_0>=PARENT && LA6_0<=PRECEDING_SIBLING)||LA6_0==PROCESSING_INSTRUCTION||(LA6_0>=SCHEMA_ATTRIBUTE && LA6_0<=SOME)||LA6_0==TEXT||LA6_0==TYPESWITCH||(LA6_0>=UNORDERED && LA6_0<=VARIABLE)||LA6_0==NAMESPACE_NODE||(LA6_0>=SWITCH && LA6_0<=TRY)||(LA6_0>=COPY && LA6_0<=DELETE)||LA6_0==INSERT||(LA6_0>=RENAME && LA6_0<=REPLACE)||LA6_0==UPDATING||(LA6_0>=BREAK && LA6_0<=EXIT)||LA6_0==WHILE||LA6_0==BINARY||LA6_0==LPAREN||(LA6_0>=DOLLAR && LA6_0<=LBRACKET)||(LA6_0>=STAR && LA6_0<=SMALLER)||(LA6_0>=SLASH && LA6_0<=DOT_DOT)||LA6_0==ATTR_SIGN||(LA6_0>=APOS && LA6_0<=QUOT)||(LA6_0>=L_Pragma && LA6_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA6_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 3;} + + else if ( (LA6_0==IMPORT) ) {s = 4;} + + else if ( (LA6_0==EOF||(LA6_0>=AND && LA6_0<=AT)||(LA6_0>=BASE_URI && LA6_0<=CASTABLE)||LA6_0==COLLATION||(LA6_0>=CONSTRUCTION && LA6_0<=COPY_NAMESPACES)||LA6_0==DEFAULT||(LA6_0>=DESCENDING && LA6_0<=DIV)||(LA6_0>=ELSE && LA6_0<=EQ)||(LA6_0>=EXCEPT && LA6_0<=EXTERNAL)||(LA6_0>=FUNCTION && LA6_0<=IDIV)||(LA6_0>=IN && LA6_0<=LEAST)||(LA6_0>=LT && LA6_0<=MODULE)||(LA6_0>=NE && LA6_0<=NO_PRESERVE)||(LA6_0>=OF && LA6_0<=ORDER)||LA6_0==ORDERING||LA6_0==PRESERVE||(LA6_0>=RETURN && LA6_0<=SCHEMA)||(LA6_0>=STABLE && LA6_0<=STRIP)||(LA6_0>=THEN && LA6_0<=TREAT)||LA6_0==UNION||(LA6_0>=VERSION && LA6_0<=MINUS_SIGN)||(LA6_0>=NAN && LA6_0<=START)||(LA6_0>=TUMBLING && LA6_0<=BEFORE)||LA6_0==FIRST||(LA6_0>=INTO && LA6_0<=NODES)||(LA6_0>=REVALIDATION && LA6_0<=SKIP)||(LA6_0>=VALUE && LA6_0<=WORDS)||(LA6_0>=LOOP && LA6_0<=RETURNING)||(LA6_0>=CHECK && LA6_0<=UNIQUE)||(LA6_0>=AMP_ER && LA6_0<=QUOT_ER)||LA6_0==L_NCName||LA6_0==EXPLICITLY) ) {s = 5;} + + + input.seek(index6_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 6, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA9_eotS: + "\u000c\uffff", + DFA9_eofS: + "\u000c\uffff", + DFA9_minS: + "\u0001\u0022\u0001\u0017\u0002\uffff\u0001\u001e\u0007\uffff", + DFA9_maxS: + "\u0001\u0022\u0001\u0099\u0002\uffff\u0001\u0074\u0007\uffff", + DFA9_acceptS: + "\u0002\uffff\u0001\u0007\u0001\u0001\u0001\uffff\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0008\u0001\u0009\u0001\u0002\u0001\u0006", + DFA9_specialS: + "\u0001\uffff\u0001\u0000\u000a\uffff}>", + DFA9_transitionS: [ + "\u0001\u0001", + "\u0001\u0005\u0001\u0003\u0007\uffff\u0001\u0006\u0001\u0008"+ + "\u0001\uffff\u0001\u0004\u0030\uffff\u0001\u0007\u001f\uffff"+ + "\u0001\u0009\u0024\uffff\u0001\u0002", + "", + "", + "\u0001\u000a\u0033\uffff\u0001\u000b\u0021\uffff\u0001\u0009", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA9_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_eotS), + DFA9_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_eofS), + DFA9_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA9_minS), + DFA9_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA9_maxS), + DFA9_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_acceptS), + DFA9_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA9_specialS), + DFA9_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA9_transitionS.length; + for (i=0; i pm_RevalidationDecl | pm_CopyNamespacesDecl | pm_DecimalFormatDecl );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA9_1 = input.LA(1); + + + var index9_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA9_1==REVALIDATION) && ((this.lc(XQU)))) {s = 2;} + + else if ( (LA9_1==BOUNDARY_SPACE) ) {s = 3;} + + else if ( (LA9_1==DEFAULT) ) {s = 4;} + + else if ( (LA9_1==BASE_URI) ) {s = 5;} + + else if ( (LA9_1==CONSTRUCTION) ) {s = 6;} + + else if ( (LA9_1==ORDERING) ) {s = 7;} + + else if ( (LA9_1==COPY_NAMESPACES) ) {s = 8;} + + else if ( (LA9_1==DECIMAL_FORMAT) ) {s = 9;} + + + input.seek(index9_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 9, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA44_eotS: + "\u0048\uffff", + DFA44_eofS: + "\u0001\u0043\u0047\uffff", + DFA44_minS: + "\u0001\u0010\u0042\u0000\u0001\uffff\u0002\u0000\u0002\uffff", + DFA44_maxS: + "\u0001\u0154\u0042\u0000\u0001\uffff\u0002\u0000\u0002\uffff", + DFA44_acceptS: + "\u0043\uffff\u0001\u0001\u0003\uffff\u0001\u0002", + DFA44_specialS: + "\u0001\u0000\u0001\u0001\u0001\u0002\u0001\u0003\u0001\u0004\u0001"+ + "\u0005\u0001\u0006\u0001\u0007\u0001\u0008\u0001\u0009\u0001\u000a\u0001"+ + "\u000b\u0001\u000c\u0001\u000d\u0001\u000e\u0001\u000f\u0001\u0010\u0001"+ + "\u0011\u0001\u0012\u0001\u0013\u0001\u0014\u0001\u0015\u0001\u0016\u0001"+ + "\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001\u001c\u0001"+ + "\u001d\u0001\u001e\u0001\u001f\u0001\u0020\u0001\u0021\u0001\u0022\u0001"+ + "\u0023\u0001\u0024\u0001\u0025\u0001\u0026\u0001\u0027\u0001\u0028\u0001"+ + "\u0029\u0001\u002a\u0001\u002b\u0001\u002c\u0001\u002d\u0001\u002e\u0001"+ + "\u002f\u0001\u0030\u0001\u0031\u0001\u0032\u0001\u0033\u0001\u0034\u0001"+ + "\u0035\u0001\u0036\u0001\u0037\u0001\u0038\u0001\u0039\u0001\u003a\u0001"+ + "\u003b\u0001\u003c\u0001\u003d\u0001\u003e\u0001\u003f\u0001\u0040\u0001"+ + "\u0041\u0001\u0042\u0001\uffff\u0001\u0043\u0001\u0044\u0002\uffff}>", + DFA44_transitionS: [ + "\u0001\u0027\u0001\u002a\u0004\u0044\u0001\u001f\u0006\u0044"+ + "\u0001\u002b\u0001\u0044\u0001\u0022\u0004\u0044\u0001\u002d"+ + "\u0001\u002f\u0002\u0044\u0001\u001a\u0001\u0024\u0001\u0017"+ + "\u0002\u0044\u0001\u0045\u0002\u0044\u0001\u0008\u0002\u0044"+ + "\u0001\u0031\u0001\u0030\u0001\u0001\u0005\u0044\u0001\u0003"+ + "\u0006\u0044\u0001\u0045\u0003\u0044\u0001\u0002\u0003\u0044"+ + "\u0001\u001e\u0003\u0044\u0001\u0037\u0004\u0044\u0001\u0016"+ + "\u0001\u0044\u0001\u0025\u0001\u0029\u0001\u0028\u0001\u0044"+ + "\u0001\u0023\u0003\u0044\u0001\u0035\u0001\u0034\u0001\u002e"+ + "\u0001\u0007\u0003\u0044\u0001\u0020\u0003\u0044\u0001\u0005"+ + "\u0001\u0044\u0001\u0019\u0001\u000b\u0001\u0042\u000f\u0044"+ + "\u0001\u0036\u0009\u0044\u0001\u0004\u0001\u0006\u0007\u0044"+ + "\u0001\u003e\u0001\u003b\u0001\u0044\u0001\u0032\u0004\u0044"+ + "\u0001\u003c\u0001\u003d\u0002\u0044\u0001\u0018\u002c\u0044"+ + "\u0001\u003f\u0001\u0040\u0001\u0041\u0002\u0044\u0001\u0038"+ + "\u000a\u0044\u0001\u0021\u0003\u0044\u0001\uffff\u0001\u000e"+ + "\u0001\uffff\u0001\u0014\u0001\u0026\u0006\uffff\u0001\u0043"+ + "\u0004\uffff\u0001\u0039\u0001\u0009\u0001\u000a\u0001\u001b"+ + "\u0005\uffff\u0001\u000c\u0001\u000d\u0001\u0015\u0001\u002c"+ + "\u000c\uffff\u0001\u0033\u0002\uffff\u0001\u0013\u0001\u0012"+ + "\u0002\uffff\u0001\u0044\u0006\uffff\u0001\u003a\u0001\u001c"+ + "\u0001\u001d\u0001\u000f\u0001\u0010\u0001\u0011\u003b\uffff"+ + "\u0001\u0044", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "\u0001\uffff", + "\u0001\uffff", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA44_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_eotS), + DFA44_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_eofS), + DFA44_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA44_minS), + DFA44_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA44_maxS), + DFA44_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_acceptS), + DFA44_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA44_specialS), + DFA44_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA44_transitionS.length; + for (i=0; i p_Program | p_Expr[true,true] );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA44_0 = input.LA(1); + + + var index44_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA44_0==FOR) ) {s = 1;} + + else if ( (LA44_0==LET) ) {s = 2;} + + else if ( (LA44_0==IF) ) {s = 3;} + + else if ( (LA44_0==SWITCH) ) {s = 4;} + + else if ( (LA44_0==TYPESWITCH) ) {s = 5;} + + else if ( (LA44_0==TRY) ) {s = 6;} + + else if ( (LA44_0==SOME) ) {s = 7;} + + else if ( (LA44_0==EVERY) ) {s = 8;} + + else if ( (LA44_0==PLUS) ) {s = 9;} + + else if ( (LA44_0==MINUS) ) {s = 10;} + + else if ( (LA44_0==VALIDATE) ) {s = 11;} + + else if ( (LA44_0==SLASH) ) {s = 12;} + + else if ( (LA44_0==SLASH_SLASH) ) {s = 13;} + + else if ( (LA44_0==LPAREN) ) {s = 14;} + + else if ( (LA44_0==L_IntegerLiteral) ) {s = 15;} + + else if ( (LA44_0==L_DecimalLiteral) ) {s = 16;} + + else if ( (LA44_0==L_DoubleLiteral) ) {s = 17;} + + else if ( (LA44_0==QUOT) ) {s = 18;} + + else if ( (LA44_0==APOS) ) {s = 19;} + + else if ( (LA44_0==DOLLAR) ) {s = 20;} + + else if ( (LA44_0==DOT) ) {s = 21;} + + else if ( (LA44_0==ORDERED) ) {s = 22;} + + else if ( (LA44_0==ELEMENT) ) {s = 23;} + + else if ( (LA44_0==UPDATING) ) {s = 24;} + + else if ( (LA44_0==UNORDERED) ) {s = 25;} + + else if ( (LA44_0==DOCUMENT) ) {s = 26;} + + else if ( (LA44_0==SMALLER) ) {s = 27;} + + else if ( (LA44_0==L_DirCommentConstructor) ) {s = 28;} + + else if ( (LA44_0==L_DirPIConstructor) ) {s = 29;} + + else if ( (LA44_0==NAMESPACE) ) {s = 30;} + + else if ( (LA44_0==ATTRIBUTE) ) {s = 31;} + + else if ( (LA44_0==TEXT) ) {s = 32;} + + else if ( (LA44_0==BINARY) ) {s = 33;} + + else if ( (LA44_0==COMMENT) ) {s = 34;} + + else if ( (LA44_0==PROCESSING_INSTRUCTION) ) {s = 35;} + + else if ( (LA44_0==DOCUMENT_NODE) ) {s = 36;} + + else if ( (LA44_0==PARENT) ) {s = 37;} + + else if ( (LA44_0==LBRACKET) ) {s = 38;} + + else if ( (LA44_0==ANCESTOR) ) {s = 39;} + + else if ( (LA44_0==PRECEDING_SIBLING) ) {s = 40;} + + else if ( (LA44_0==PRECEDING) ) {s = 41;} + + else if ( (LA44_0==ANCESTOR_OR_SELF) ) {s = 42;} + + else if ( (LA44_0==CHILD) ) {s = 43;} + + else if ( (LA44_0==DOT_DOT) ) {s = 44;} + + else if ( (LA44_0==DESCENDANT) ) {s = 45;} + + else if ( (LA44_0==SELF) ) {s = 46;} + + else if ( (LA44_0==DESCENDANT_OR_SELF) ) {s = 47;} + + else if ( (LA44_0==FOLLOWING_SIBLING) ) {s = 48;} + + else if ( (LA44_0==FOLLOWING) ) {s = 49;} + + else if ( (LA44_0==INSERT) ) {s = 50;} + + else if ( (LA44_0==ATTR_SIGN) ) {s = 51;} + + else if ( (LA44_0==SCHEMA_ELEMENT) ) {s = 52;} + + else if ( (LA44_0==SCHEMA_ATTRIBUTE) ) {s = 53;} + + else if ( (LA44_0==NAMESPACE_NODE) ) {s = 54;} + + else if ( (LA44_0==NODE) ) {s = 55;} + + else if ( (LA44_0==WHILE) ) {s = 56;} + + else if ( (LA44_0==STAR) ) {s = 57;} + + else if ( (LA44_0==L_Pragma) ) {s = 58;} + + else if ( (LA44_0==DELETE) ) {s = 59;} + + else if ( (LA44_0==RENAME) ) {s = 60;} + + else if ( (LA44_0==REPLACE) ) {s = 61;} + + else if ( (LA44_0==COPY) ) {s = 62;} + + else if ( (LA44_0==BREAK) ) {s = 63;} + + else if ( (LA44_0==CONTINUE) ) {s = 64;} + + else if ( (LA44_0==EXIT) ) {s = 65;} + + else if ( (LA44_0==VARIABLE) ) {s = 66;} + + else if ( (LA44_0==EOF||LA44_0==ANN_PERCENT) && ((this.lc(XQS)))) {s = 67;} + + else if ( ((LA44_0>=AND && LA44_0<=AT)||(LA44_0>=BASE_URI && LA44_0<=CASTABLE)||LA44_0==COLLATION||(LA44_0>=CONSTRUCTION && LA44_0<=DEFAULT)||(LA44_0>=DESCENDING && LA44_0<=DIV)||(LA44_0>=ELSE && LA44_0<=EMPTY)||(LA44_0>=ENCODING && LA44_0<=EQ)||(LA44_0>=EXCEPT && LA44_0<=EXTERNAL)||(LA44_0>=FUNCTION && LA44_0<=IDIV)||(LA44_0>=IMPORT && LA44_0<=IS)||(LA44_0>=LAX && LA44_0<=LEAST)||(LA44_0>=LT && LA44_0<=MODULE)||(LA44_0>=NE && LA44_0<=NO_PRESERVE)||(LA44_0>=OF && LA44_0<=ORDER)||LA44_0==ORDERING||LA44_0==PRESERVE||(LA44_0>=RETURN && LA44_0<=SCHEMA)||(LA44_0>=STABLE && LA44_0<=STRIP)||(LA44_0>=THEN && LA44_0<=TREAT)||LA44_0==UNION||(LA44_0>=VERSION && LA44_0<=MINUS_SIGN)||(LA44_0>=NAN && LA44_0<=START)||(LA44_0>=TUMBLING && LA44_0<=BEFORE)||LA44_0==FIRST||(LA44_0>=INTO && LA44_0<=NODES)||(LA44_0>=REVALIDATION && LA44_0<=SKIP)||(LA44_0>=VALUE && LA44_0<=WORDS)||(LA44_0>=LOOP && LA44_0<=RETURNING)||(LA44_0>=CHECK && LA44_0<=UNIQUE)||(LA44_0>=AMP_ER && LA44_0<=QUOT_ER)||LA44_0==L_NCName||LA44_0==EXPLICITLY) ) {s = 68;} + + else if ( (LA44_0==EMPTY_SEQUENCE||LA44_0==ITEM) ) {s = 69;} + + + input.seek(index44_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA44_1 = input.LA(1); + + + var index44_1 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA44_2 = input.LA(1); + + + var index44_2 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_2); + if ( s>=0 ) return s; + break; + case 3 : + var LA44_3 = input.LA(1); + + + var index44_3 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_3); + if ( s>=0 ) return s; + break; + case 4 : + var LA44_4 = input.LA(1); + + + var index44_4 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_4); + if ( s>=0 ) return s; + break; + case 5 : + var LA44_5 = input.LA(1); + + + var index44_5 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_5); + if ( s>=0 ) return s; + break; + case 6 : + var LA44_6 = input.LA(1); + + + var index44_6 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_6); + if ( s>=0 ) return s; + break; + case 7 : + var LA44_7 = input.LA(1); + + + var index44_7 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_7); + if ( s>=0 ) return s; + break; + case 8 : + var LA44_8 = input.LA(1); + + + var index44_8 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_8); + if ( s>=0 ) return s; + break; + case 9 : + var LA44_9 = input.LA(1); + + + var index44_9 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_9); + if ( s>=0 ) return s; + break; + case 10 : + var LA44_10 = input.LA(1); + + + var index44_10 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_10); + if ( s>=0 ) return s; + break; + case 11 : + var LA44_11 = input.LA(1); + + + var index44_11 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_11); + if ( s>=0 ) return s; + break; + case 12 : + var LA44_12 = input.LA(1); + + + var index44_12 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_12); + if ( s>=0 ) return s; + break; + case 13 : + var LA44_13 = input.LA(1); + + + var index44_13 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_13); + if ( s>=0 ) return s; + break; + case 14 : + var LA44_14 = input.LA(1); + + + var index44_14 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_14); + if ( s>=0 ) return s; + break; + case 15 : + var LA44_15 = input.LA(1); + + + var index44_15 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_15); + if ( s>=0 ) return s; + break; + case 16 : + var LA44_16 = input.LA(1); + + + var index44_16 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_16); + if ( s>=0 ) return s; + break; + case 17 : + var LA44_17 = input.LA(1); + + + var index44_17 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_17); + if ( s>=0 ) return s; + break; + case 18 : + var LA44_18 = input.LA(1); + + + var index44_18 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_18); + if ( s>=0 ) return s; + break; + case 19 : + var LA44_19 = input.LA(1); + + + var index44_19 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_19); + if ( s>=0 ) return s; + break; + case 20 : + var LA44_20 = input.LA(1); + + + var index44_20 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_20); + if ( s>=0 ) return s; + break; + case 21 : + var LA44_21 = input.LA(1); + + + var index44_21 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_21); + if ( s>=0 ) return s; + break; + case 22 : + var LA44_22 = input.LA(1); + + + var index44_22 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_22); + if ( s>=0 ) return s; + break; + case 23 : + var LA44_23 = input.LA(1); + + + var index44_23 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_23); + if ( s>=0 ) return s; + break; + case 24 : + var LA44_24 = input.LA(1); + + + var index44_24 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_24); + if ( s>=0 ) return s; + break; + case 25 : + var LA44_25 = input.LA(1); + + + var index44_25 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_25); + if ( s>=0 ) return s; + break; + case 26 : + var LA44_26 = input.LA(1); + + + var index44_26 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_26); + if ( s>=0 ) return s; + break; + case 27 : + var LA44_27 = input.LA(1); + + + var index44_27 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_27); + if ( s>=0 ) return s; + break; + case 28 : + var LA44_28 = input.LA(1); + + + var index44_28 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_28); + if ( s>=0 ) return s; + break; + case 29 : + var LA44_29 = input.LA(1); + + + var index44_29 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_29); + if ( s>=0 ) return s; + break; + case 30 : + var LA44_30 = input.LA(1); + + + var index44_30 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_30); + if ( s>=0 ) return s; + break; + case 31 : + var LA44_31 = input.LA(1); + + + var index44_31 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_31); + if ( s>=0 ) return s; + break; + case 32 : + var LA44_32 = input.LA(1); + + + var index44_32 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_32); + if ( s>=0 ) return s; + break; + case 33 : + var LA44_33 = input.LA(1); + + + var index44_33 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(MLS)))||(this.lc(XQS))||((this.lc(XQS))&&(this.lc(MLS)))||((this.lc(XQS))&&(this.lc(MLS)))||((this.lc(XQS))&&(this.lc(MLS))))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_33); + if ( s>=0 ) return s; + break; + case 34 : + var LA44_34 = input.LA(1); + + + var index44_34 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_34); + if ( s>=0 ) return s; + break; + case 35 : + var LA44_35 = input.LA(1); + + + var index44_35 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_35); + if ( s>=0 ) return s; + break; + case 36 : + var LA44_36 = input.LA(1); + + + var index44_36 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_36); + if ( s>=0 ) return s; + break; + case 37 : + var LA44_37 = input.LA(1); + + + var index44_37 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_37); + if ( s>=0 ) return s; + break; + case 38 : + var LA44_38 = input.LA(1); + + + var index44_38 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_38); + if ( s>=0 ) return s; + break; + case 39 : + var LA44_39 = input.LA(1); + + + var index44_39 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_39); + if ( s>=0 ) return s; + break; + case 40 : + var LA44_40 = input.LA(1); + + + var index44_40 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_40); + if ( s>=0 ) return s; + break; + case 41 : + var LA44_41 = input.LA(1); + + + var index44_41 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_41); + if ( s>=0 ) return s; + break; + case 42 : + var LA44_42 = input.LA(1); + + + var index44_42 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_42); + if ( s>=0 ) return s; + break; + case 43 : + var LA44_43 = input.LA(1); + + + var index44_43 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_43); + if ( s>=0 ) return s; + break; + case 44 : + var LA44_44 = input.LA(1); + + + var index44_44 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_44); + if ( s>=0 ) return s; + break; + case 45 : + var LA44_45 = input.LA(1); + + + var index44_45 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_45); + if ( s>=0 ) return s; + break; + case 46 : + var LA44_46 = input.LA(1); + + + var index44_46 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_46); + if ( s>=0 ) return s; + break; + case 47 : + var LA44_47 = input.LA(1); + + + var index44_47 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_47); + if ( s>=0 ) return s; + break; + case 48 : + var LA44_48 = input.LA(1); + + + var index44_48 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_48); + if ( s>=0 ) return s; + break; + case 49 : + var LA44_49 = input.LA(1); + + + var index44_49 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_49); + if ( s>=0 ) return s; + break; + case 50 : + var LA44_50 = input.LA(1); + + + var index44_50 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_50); + if ( s>=0 ) return s; + break; + case 51 : + var LA44_51 = input.LA(1); + + + var index44_51 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_51); + if ( s>=0 ) return s; + break; + case 52 : + var LA44_52 = input.LA(1); + + + var index44_52 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_52); + if ( s>=0 ) return s; + break; + case 53 : + var LA44_53 = input.LA(1); + + + var index44_53 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_53); + if ( s>=0 ) return s; + break; + case 54 : + var LA44_54 = input.LA(1); + + + var index44_54 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_54); + if ( s>=0 ) return s; + break; + case 55 : + var LA44_55 = input.LA(1); + + + var index44_55 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_55); + if ( s>=0 ) return s; + break; + case 56 : + var LA44_56 = input.LA(1); + + + var index44_56 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_56); + if ( s>=0 ) return s; + break; + case 57 : + var LA44_57 = input.LA(1); + + + var index44_57 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_57); + if ( s>=0 ) return s; + break; + case 58 : + var LA44_58 = input.LA(1); + + + var index44_58 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_58); + if ( s>=0 ) return s; + break; + case 59 : + var LA44_59 = input.LA(1); + + + var index44_59 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_59); + if ( s>=0 ) return s; + break; + case 60 : + var LA44_60 = input.LA(1); + + + var index44_60 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_60); + if ( s>=0 ) return s; + break; + case 61 : + var LA44_61 = input.LA(1); + + + var index44_61 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_61); + if ( s>=0 ) return s; + break; + case 62 : + var LA44_62 = input.LA(1); + + + var index44_62 = input.index(); + input.rewind(); + s = -1; + if ( ((((this.lc(XQS))&&(this.lc(XQU)))||(this.lc(XQS)))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_62); + if ( s>=0 ) return s; + break; + case 63 : + var LA44_63 = input.LA(1); + + + var index44_63 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_63); + if ( s>=0 ) return s; + break; + case 64 : + var LA44_64 = input.LA(1); + + + var index44_64 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_64); + if ( s>=0 ) return s; + break; + case 65 : + var LA44_65 = input.LA(1); + + + var index44_65 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_65); + if ( s>=0 ) return s; + break; + case 66 : + var LA44_66 = input.LA(1); + + + var index44_66 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_66); + if ( s>=0 ) return s; + break; + case 67 : + var LA44_68 = input.LA(1); + + + var index44_68 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_68); + if ( s>=0 ) return s; + break; + case 68 : + var LA44_69 = input.LA(1); + + + var index44_69 = input.index(); + input.rewind(); + s = -1; + if ( ((this.lc(XQS))) ) {s = 67;} + + else if ( (true) ) {s = 71;} + + + input.seek(index44_69); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 44, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA46_eotS: + "\u0011\uffff", + DFA46_eofS: + "\u0001\uffff\u0006\u0007\u000a\uffff", + DFA46_minS: + "\u0001\u0010\u0006\u0012\u000a\uffff", + DFA46_maxS: + "\u0001\u0154\u0006\u00fe\u000a\uffff", + DFA46_acceptS: + "\u0007\uffff\u0001\u0006\u0005\u0001\u0001\u0002\u0001\u0003\u0001"+ + "\u0004\u0001\u0005", + DFA46_specialS: + "\u0001\uffff\u0001\u0002\u0001\u0001\u0001\u0000\u0001\u0004\u0001"+ + "\u0005\u0001\u0003\u000a\uffff}>", + DFA46_transitionS: [ + "\u0025\u0007\u0001\u0001\u0005\u0007\u0001\u0003\u000a\u0007"+ + "\u0001\u0002\u0021\u0007\u0001\u0005\u001d\u0007\u0001\u0004"+ + "\u0001\u0006\u0054\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u000b\uffff\u0004\u0007\u0005\uffff\u0004\u0007"+ + "\u000c\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0002\uffff"+ + "\u0001\u0007\u0006\uffff\u0006\u0007\u003b\uffff\u0001\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0004\uffff\u0001\u000a\u0001\u0007"+ + "\u0002\uffff\u0001\u0009\u0004\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0001\uffff\u0001\u0007\u0007\uffff\u0001\u0007"+ + "\u0002\uffff\u0001\u0007\u003b\uffff\u0003\u0007\u0001\u0008"+ + "\u0001\uffff\u0004\u0007\u0001\uffff\u0001\u0007\u0003\uffff"+ + "\u0001\u0007\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007"+ + "\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u0018\uffff"+ + "\u0001\u000c\u0022\uffff\u0003\u0007\u0001\u000b\u0001\uffff"+ + "\u0004\u0007\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007"+ + "\u0001\uffff\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff"+ + "\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000d\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000e\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0001\u0007\u0001\u000f\u0001\u0007\u0002\uffff\u0004\u0007"+ + "\u0001\uffff\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff"+ + "\u000b\u0007\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "\u0003\u0007\u0005\uffff\u0003\u0007\u0001\uffff\u0001\u0007"+ + "\u0004\uffff\u0001\u0007\u0002\uffff\u0002\u0007\u0004\uffff"+ + "\u0001\u0007\u0002\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0003\uffff\u0001\u0007\u0001\uffff\u0001\u0007\u0001\uffff"+ + "\u0002\u0007\u0004\uffff\u0003\u0007\u0002\uffff\u0001\u0007"+ + "\u0001\uffff\u0003\u0007\u0002\uffff\u0001\u0007\u0005\uffff"+ + "\u0002\u0007\u0007\uffff\u0002\u0007\u0005\uffff\u0001\u0007"+ + "\u0004\uffff\u0002\u0007\u0001\uffff\u0001\u0007\u0004\uffff"+ + "\u0001\u0007\u0004\uffff\u0001\u0007\u0003\uffff\u0002\u0007"+ + "\u0006\uffff\u0001\u0007\u0005\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u0007\u0004\uffff\u0001\u0007\u0001\uffff\u0001\u0007"+ + "\u0007\uffff\u0001\u0007\u0002\uffff\u0001\u0007\u003b\uffff"+ + "\u0003\u0007\u0001\uffff\u0001\u0010\u0004\u0007\u0001\uffff"+ + "\u0001\u0007\u0003\uffff\u0001\u0007\u0001\uffff\u000b\u0007"+ + "\u0002\uffff\u0001\u0007\u0003\uffff\u0002\u0007", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA46_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_eotS), + DFA46_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_eofS), + DFA46_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA46_minS), + DFA46_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA46_maxS), + DFA46_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_acceptS), + DFA46_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA46_specialS), + DFA46_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA46_transitionS.length; + for (i=0; i p_FLWORHybrid[$strict] | ( IF LPAREN )=> p_IfHybrid[$strict] | ( SWITCH LPAREN )=> p_SwitchHybrid[$strict] | ( TYPESWITCH LPAREN )=> p_TypeswitchHybrid[$strict] | ( TRY LBRACKET )=> p_TryCatchHybrid[$strict] | p_ExprSimple );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA46_3 = input.LA(1); + + + var index46_3 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_3==LPAREN) && (this.synpred2_XQueryParser())) {s = 13;} + + else if ( (LA46_3==EOF||(LA46_3>=AND && LA46_3<=ASCENDING)||(LA46_3>=CASE && LA46_3<=CASTABLE)||LA46_3==COLLATION||LA46_3==DEFAULT||(LA46_3>=DESCENDING && LA46_3<=DIV)||LA46_3==EMPTY||LA46_3==EQ||LA46_3==EXCEPT||LA46_3==FOR||LA46_3==GE||(LA46_3>=GT && LA46_3<=IDIV)||(LA46_3>=INSTANCE && LA46_3<=IS)||LA46_3==LE||(LA46_3>=LET && LA46_3<=MOD)||LA46_3==NE||(LA46_3>=OR && LA46_3<=ORDER)||(LA46_3>=RETURN && LA46_3<=SATISFIES)||LA46_3==STABLE||(LA46_3>=TO && LA46_3<=TREAT)||LA46_3==UNION||LA46_3==WHERE||LA46_3==COUNT||(LA46_3>=END && LA46_3<=GROUP)||LA46_3==ONLY||LA46_3==START||(LA46_3>=AFTER && LA46_3<=BEFORE)||LA46_3==INTO||LA46_3==MODIFY||LA46_3==WITH||LA46_3==CONTAINS||LA46_3==CONCAT||LA46_3==RPAREN||(LA46_3>=RBRACKET && LA46_3<=EQUAL)||LA46_3==NOTEQUAL||LA46_3==COMMA||(LA46_3>=STAR && LA46_3<=SLASH_SLASH)||LA46_3==COLON||(LA46_3>=SEMICOLON && LA46_3<=VBAR)) ) {s = 7;} + + + input.seek(index46_3); + if ( s>=0 ) return s; + break; + case 1 : + var LA46_2 = input.LA(1); + + + var index46_2 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_2==DOLLAR) && (this.synpred1_XQueryParser())) {s = 11;} + + else if ( (LA46_2==SCORE) && (this.synpred1_XQueryParser())) {s = 12;} + + else if ( (LA46_2==EOF||(LA46_2>=AND && LA46_2<=ASCENDING)||(LA46_2>=CASE && LA46_2<=CASTABLE)||LA46_2==COLLATION||LA46_2==DEFAULT||(LA46_2>=DESCENDING && LA46_2<=DIV)||LA46_2==EMPTY||LA46_2==EQ||LA46_2==EXCEPT||LA46_2==FOR||LA46_2==GE||(LA46_2>=GT && LA46_2<=IDIV)||(LA46_2>=INSTANCE && LA46_2<=IS)||LA46_2==LE||(LA46_2>=LET && LA46_2<=MOD)||LA46_2==NE||(LA46_2>=OR && LA46_2<=ORDER)||(LA46_2>=RETURN && LA46_2<=SATISFIES)||LA46_2==STABLE||(LA46_2>=TO && LA46_2<=TREAT)||LA46_2==UNION||LA46_2==WHERE||LA46_2==COUNT||(LA46_2>=END && LA46_2<=GROUP)||LA46_2==ONLY||LA46_2==START||(LA46_2>=AFTER && LA46_2<=BEFORE)||LA46_2==INTO||LA46_2==MODIFY||LA46_2==WITH||LA46_2==CONTAINS||(LA46_2>=CONCAT && LA46_2<=RPAREN)||(LA46_2>=RBRACKET && LA46_2<=EQUAL)||LA46_2==NOTEQUAL||LA46_2==COMMA||(LA46_2>=STAR && LA46_2<=SLASH_SLASH)||LA46_2==COLON||(LA46_2>=SEMICOLON && LA46_2<=VBAR)) ) {s = 7;} + + + input.seek(index46_2); + if ( s>=0 ) return s; + break; + case 2 : + var LA46_1 = input.LA(1); + + + var index46_1 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_1==DOLLAR) && (this.synpred1_XQueryParser())) {s = 8;} + + else if ( (LA46_1==TUMBLING) && (this.synpred1_XQueryParser())) {s = 9;} + + else if ( (LA46_1==SLIDING) && (this.synpred1_XQueryParser())) {s = 10;} + + else if ( (LA46_1==EOF||(LA46_1>=AND && LA46_1<=ASCENDING)||(LA46_1>=CASE && LA46_1<=CASTABLE)||LA46_1==COLLATION||LA46_1==DEFAULT||(LA46_1>=DESCENDING && LA46_1<=DIV)||LA46_1==EMPTY||LA46_1==EQ||LA46_1==EXCEPT||LA46_1==FOR||LA46_1==GE||(LA46_1>=GT && LA46_1<=IDIV)||(LA46_1>=INSTANCE && LA46_1<=IS)||LA46_1==LE||(LA46_1>=LET && LA46_1<=MOD)||LA46_1==NE||(LA46_1>=OR && LA46_1<=ORDER)||(LA46_1>=RETURN && LA46_1<=SATISFIES)||LA46_1==STABLE||(LA46_1>=TO && LA46_1<=TREAT)||LA46_1==UNION||LA46_1==WHERE||LA46_1==COUNT||(LA46_1>=END && LA46_1<=GROUP)||LA46_1==ONLY||LA46_1==START||(LA46_1>=AFTER && LA46_1<=BEFORE)||LA46_1==INTO||LA46_1==MODIFY||LA46_1==WITH||LA46_1==CONTAINS||(LA46_1>=CONCAT && LA46_1<=RPAREN)||(LA46_1>=RBRACKET && LA46_1<=EQUAL)||LA46_1==NOTEQUAL||LA46_1==COMMA||(LA46_1>=STAR && LA46_1<=SLASH_SLASH)||LA46_1==COLON||(LA46_1>=SEMICOLON && LA46_1<=VBAR)) ) {s = 7;} + + + input.seek(index46_1); + if ( s>=0 ) return s; + break; + case 3 : + var LA46_6 = input.LA(1); + + + var index46_6 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_6==LBRACKET) && (this.synpred5_XQueryParser())) {s = 16;} + + else if ( (LA46_6==EOF||(LA46_6>=AND && LA46_6<=ASCENDING)||(LA46_6>=CASE && LA46_6<=CASTABLE)||LA46_6==COLLATION||LA46_6==DEFAULT||(LA46_6>=DESCENDING && LA46_6<=DIV)||LA46_6==EMPTY||LA46_6==EQ||LA46_6==EXCEPT||LA46_6==FOR||LA46_6==GE||(LA46_6>=GT && LA46_6<=IDIV)||(LA46_6>=INSTANCE && LA46_6<=IS)||LA46_6==LE||(LA46_6>=LET && LA46_6<=MOD)||LA46_6==NE||(LA46_6>=OR && LA46_6<=ORDER)||(LA46_6>=RETURN && LA46_6<=SATISFIES)||LA46_6==STABLE||(LA46_6>=TO && LA46_6<=TREAT)||LA46_6==UNION||LA46_6==WHERE||LA46_6==COUNT||(LA46_6>=END && LA46_6<=GROUP)||LA46_6==ONLY||LA46_6==START||(LA46_6>=AFTER && LA46_6<=BEFORE)||LA46_6==INTO||LA46_6==MODIFY||LA46_6==WITH||LA46_6==CONTAINS||(LA46_6>=CONCAT && LA46_6<=RPAREN)||(LA46_6>=RBRACKET && LA46_6<=EQUAL)||LA46_6==NOTEQUAL||LA46_6==COMMA||(LA46_6>=STAR && LA46_6<=SLASH_SLASH)||LA46_6==COLON||(LA46_6>=SEMICOLON && LA46_6<=VBAR)) ) {s = 7;} + + + input.seek(index46_6); + if ( s>=0 ) return s; + break; + case 4 : + var LA46_4 = input.LA(1); + + + var index46_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_4==LPAREN) && (this.synpred3_XQueryParser())) {s = 14;} + + else if ( (LA46_4==EOF||(LA46_4>=AND && LA46_4<=ASCENDING)||(LA46_4>=CASE && LA46_4<=CASTABLE)||LA46_4==COLLATION||LA46_4==DEFAULT||(LA46_4>=DESCENDING && LA46_4<=DIV)||LA46_4==EMPTY||LA46_4==EQ||LA46_4==EXCEPT||LA46_4==FOR||LA46_4==GE||(LA46_4>=GT && LA46_4<=IDIV)||(LA46_4>=INSTANCE && LA46_4<=IS)||LA46_4==LE||(LA46_4>=LET && LA46_4<=MOD)||LA46_4==NE||(LA46_4>=OR && LA46_4<=ORDER)||(LA46_4>=RETURN && LA46_4<=SATISFIES)||LA46_4==STABLE||(LA46_4>=TO && LA46_4<=TREAT)||LA46_4==UNION||LA46_4==WHERE||LA46_4==COUNT||(LA46_4>=END && LA46_4<=GROUP)||LA46_4==ONLY||LA46_4==START||(LA46_4>=AFTER && LA46_4<=BEFORE)||LA46_4==INTO||LA46_4==MODIFY||LA46_4==WITH||LA46_4==CONTAINS||LA46_4==CONCAT||LA46_4==RPAREN||(LA46_4>=RBRACKET && LA46_4<=EQUAL)||LA46_4==NOTEQUAL||LA46_4==COMMA||(LA46_4>=STAR && LA46_4<=SLASH_SLASH)||LA46_4==COLON||(LA46_4>=SEMICOLON && LA46_4<=VBAR)) ) {s = 7;} + + + input.seek(index46_4); + if ( s>=0 ) return s; + break; + case 5 : + var LA46_5 = input.LA(1); + + + var index46_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA46_5==LPAREN) && (this.synpred4_XQueryParser())) {s = 15;} + + else if ( (LA46_5==EOF||(LA46_5>=AND && LA46_5<=ASCENDING)||(LA46_5>=CASE && LA46_5<=CASTABLE)||LA46_5==COLLATION||LA46_5==DEFAULT||(LA46_5>=DESCENDING && LA46_5<=DIV)||LA46_5==EMPTY||LA46_5==EQ||LA46_5==EXCEPT||LA46_5==FOR||LA46_5==GE||(LA46_5>=GT && LA46_5<=IDIV)||(LA46_5>=INSTANCE && LA46_5<=IS)||LA46_5==LE||(LA46_5>=LET && LA46_5<=MOD)||LA46_5==NE||(LA46_5>=OR && LA46_5<=ORDER)||(LA46_5>=RETURN && LA46_5<=SATISFIES)||LA46_5==STABLE||(LA46_5>=TO && LA46_5<=TREAT)||LA46_5==UNION||LA46_5==WHERE||LA46_5==COUNT||(LA46_5>=END && LA46_5<=GROUP)||LA46_5==ONLY||LA46_5==START||(LA46_5>=AFTER && LA46_5<=BEFORE)||LA46_5==INTO||LA46_5==MODIFY||LA46_5==WITH||LA46_5==CONTAINS||LA46_5==CONCAT||LA46_5==RPAREN||(LA46_5>=RBRACKET && LA46_5<=EQUAL)||LA46_5==NOTEQUAL||LA46_5==COMMA||(LA46_5>=STAR && LA46_5<=SLASH_SLASH)||LA46_5==COLON||(LA46_5>=SEMICOLON && LA46_5<=VBAR)) ) {s = 7;} + + + input.seek(index46_5); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 46, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA117_eotS: + "\u0031\uffff", + DFA117_eofS: + "\u0031\uffff", + DFA117_minS: + "\u0001\u0010\u0001\u0000\u002f\uffff", + DFA117_maxS: + "\u0001\u0154\u0001\u0000\u002f\uffff", + DFA117_acceptS: + "\u0002\uffff\u0001\u0003\u0001\u0004\u002b\uffff\u0001\u0001\u0001"+ + "\u0002", + DFA117_specialS: + "\u0001\uffff\u0001\u0000\u002f\uffff}>", + DFA117_transitionS: [ + "\u00cc\u0003\u0001\uffff\u0001\u0003\u0001\uffff\u0002\u0003"+ + "\u000b\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0001\u0001\u0002\u0002\u0003\u000c\uffff\u0001\u0003"+ + "\u0002\uffff\u0002\u0003\u0002\uffff\u0001\u0003\u0007\uffff"+ + "\u0005\u0003\u003b\uffff\u0001\u0003", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA117_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_eotS), + DFA117_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_eofS), + DFA117_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA117_minS), + DFA117_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA117_maxS), + DFA117_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_acceptS), + DFA117_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA117_specialS), + DFA117_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA117_transitionS.length; + for (i=0; i ( SLASH p_RelativePathExpr ) | SLASH | SLASH_SLASH p_RelativePathExpr | p_RelativePathExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA117_1 = input.LA(1); + + + var index117_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred7_XQueryParser()) ) {s = 47;} + + else if ( (true) ) {s = 48;} + + + input.seek(index117_1); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 117, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA119_eotS: + "\u0033\uffff", + DFA119_eofS: + "\u0033\uffff", + DFA119_minS: + "\u0001\u0010\u002c\u0000\u0006\uffff", + DFA119_maxS: + "\u0001\u0154\u002c\u0000\u0006\uffff", + DFA119_acceptS: + "\u002d\uffff\u0001\u0001\u0001\u0002\u0001\u0004\u0001\u0005\u0001"+ + "\u0003\u0001\u0006", + DFA119_specialS: + "\u0001\uffff\u0001\u0000\u0001\u0001\u0001\u0002\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0006\u0001\u0007\u0001\u0008\u0001\u0009\u0001"+ + "\u000a\u0001\u000b\u0001\u000c\u0001\u000d\u0001\u000e\u0001\u000f\u0001"+ + "\u0010\u0001\u0011\u0001\u0012\u0001\u0013\u0001\u0014\u0001\u0015\u0001"+ + "\u0016\u0001\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001"+ + "\u001c\u0001\u001d\u0001\u001e\u0001\u001f\u0001\u0020\u0001\u0021\u0001"+ + "\u0022\u0001\u0023\u0001\u0024\u0001\u0025\u0001\u0026\u0001\u0027\u0001"+ + "\u0028\u0001\u0029\u0001\u002a\u0001\u002b\u0006\uffff}>", + DFA119_transitionS: [ + "\u0001\u001a\u0001\u001d\u0004\u0025\u0001\u0012\u0006\u0025"+ + "\u0001\u001e\u0001\u0025\u0001\u0015\u0004\u0025\u0001\u0020"+ + "\u0001\u0022\u0002\u0025\u0001\u000d\u0001\u0017\u0001\u000a"+ + "\u0002\u0025\u0001\u002b\u0005\u0025\u0001\u0024\u0001\u0023"+ + "\u0006\u0025\u0001\u002b\u0006\u0025\u0001\u002b\u0007\u0025"+ + "\u0001\u0011\u0003\u0025\u0001\u002a\u0004\u0025\u0001\u0009"+ + "\u0001\u0025\u0001\u0018\u0001\u001c\u0001\u001b\u0001\u0025"+ + "\u0001\u0016\u0003\u0025\u0001\u0028\u0001\u0027\u0001\u0021"+ + "\u0004\u0025\u0001\u0013\u0003\u0025\u0001\u002b\u0001\u0025"+ + "\u0001\u000c\u0011\u0025\u0001\u0029\u0009\u0025\u0001\u002b"+ + "\u0014\u0025\u0001\u000b\u0031\u0025\u0001\u002b\u000a\u0025"+ + "\u0001\u0014\u0003\u0025\u0001\uffff\u0001\u0001\u0001\uffff"+ + "\u0001\u0007\u0001\u0019\u000b\uffff\u0001\u002c\u0002\uffff"+ + "\u0001\u000e\u0007\uffff\u0001\u0008\u0001\u001f\u000c\uffff"+ + "\u0001\u0026\u0002\uffff\u0001\u0006\u0001\u0005\u0002\uffff"+ + "\u0001\u0025\u0007\uffff\u0001\u000f\u0001\u0010\u0001\u0002"+ + "\u0001\u0003\u0001\u0004\u003b\uffff\u0001\u0025", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "\u0001\uffff", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA119_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_eotS), + DFA119_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_eofS), + DFA119_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA119_minS), + DFA119_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA119_maxS), + DFA119_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_acceptS), + DFA119_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA119_specialS), + DFA119_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA119_transitionS.length; + for (i=0; i p_PostfixExpr | ( ( ( ELEMENT | ATTRIBUTE ) ( p_QName )? LBRACKET ) | ( ( NAMESPACE | PROCESSING_INSTRUCTION ) ( p_NCName )? LBRACKET ) | ( ( DOCUMENT | TEXT | COMMENT ) LBRACKET ) )=> p_PostfixExpr | ( p_KindTest )=> p_AxisStep | ( p_QName LPAREN )=> p_PostfixExpr | ( p_PrimaryExpr )=> p_PostfixExpr | p_AxisStep );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA119_1 = input.LA(1); + + + var index119_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_1); + if ( s>=0 ) return s; + break; + case 1 : + var LA119_2 = input.LA(1); + + + var index119_2 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_2); + if ( s>=0 ) return s; + break; + case 2 : + var LA119_3 = input.LA(1); + + + var index119_3 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_3); + if ( s>=0 ) return s; + break; + case 3 : + var LA119_4 = input.LA(1); + + + var index119_4 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_4); + if ( s>=0 ) return s; + break; + case 4 : + var LA119_5 = input.LA(1); + + + var index119_5 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_5); + if ( s>=0 ) return s; + break; + case 5 : + var LA119_6 = input.LA(1); + + + var index119_6 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_6); + if ( s>=0 ) return s; + break; + case 6 : + var LA119_7 = input.LA(1); + + + var index119_7 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_7); + if ( s>=0 ) return s; + break; + case 7 : + var LA119_8 = input.LA(1); + + + var index119_8 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_8); + if ( s>=0 ) return s; + break; + case 8 : + var LA119_9 = input.LA(1); + + + var index119_9 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_9); + if ( s>=0 ) return s; + break; + case 9 : + var LA119_10 = input.LA(1); + + + var index119_10 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_10); + if ( s>=0 ) return s; + break; + case 10 : + var LA119_11 = input.LA(1); + + + var index119_11 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_11); + if ( s>=0 ) return s; + break; + case 11 : + var LA119_12 = input.LA(1); + + + var index119_12 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_12); + if ( s>=0 ) return s; + break; + case 12 : + var LA119_13 = input.LA(1); + + + var index119_13 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_13); + if ( s>=0 ) return s; + break; + case 13 : + var LA119_14 = input.LA(1); + + + var index119_14 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_14); + if ( s>=0 ) return s; + break; + case 14 : + var LA119_15 = input.LA(1); + + + var index119_15 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_15); + if ( s>=0 ) return s; + break; + case 15 : + var LA119_16 = input.LA(1); + + + var index119_16 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_16); + if ( s>=0 ) return s; + break; + case 16 : + var LA119_17 = input.LA(1); + + + var index119_17 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_17); + if ( s>=0 ) return s; + break; + case 17 : + var LA119_18 = input.LA(1); + + + var index119_18 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_18); + if ( s>=0 ) return s; + break; + case 18 : + var LA119_19 = input.LA(1); + + + var index119_19 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_19); + if ( s>=0 ) return s; + break; + case 19 : + var LA119_20 = input.LA(1); + + + var index119_20 = input.index(); + input.rewind(); + s = -1; + if ( ((this.synpred8_XQueryParser()||(this.synpred8_XQueryParser()&&(this.lc(MLS))))) ) {s = 45;} + + else if ( ((this.synpred9_XQueryParser()||(this.synpred9_XQueryParser()&&(this.lc(MLS))))) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (((this.synpred11_XQueryParser()&&(this.lc(MLS)))||this.synpred11_XQueryParser())) ) {s = 47;} + + else if ( (((this.synpred12_XQueryParser()&&(this.lc(MLS)))||this.synpred12_XQueryParser())) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_20); + if ( s>=0 ) return s; + break; + case 20 : + var LA119_21 = input.LA(1); + + + var index119_21 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_21); + if ( s>=0 ) return s; + break; + case 21 : + var LA119_22 = input.LA(1); + + + var index119_22 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_22); + if ( s>=0 ) return s; + break; + case 22 : + var LA119_23 = input.LA(1); + + + var index119_23 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_23); + if ( s>=0 ) return s; + break; + case 23 : + var LA119_24 = input.LA(1); + + + var index119_24 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_24); + if ( s>=0 ) return s; + break; + case 24 : + var LA119_25 = input.LA(1); + + + var index119_25 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + + input.seek(index119_25); + if ( s>=0 ) return s; + break; + case 25 : + var LA119_26 = input.LA(1); + + + var index119_26 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_26); + if ( s>=0 ) return s; + break; + case 26 : + var LA119_27 = input.LA(1); + + + var index119_27 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_27); + if ( s>=0 ) return s; + break; + case 27 : + var LA119_28 = input.LA(1); + + + var index119_28 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_28); + if ( s>=0 ) return s; + break; + case 28 : + var LA119_29 = input.LA(1); + + + var index119_29 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_29); + if ( s>=0 ) return s; + break; + case 29 : + var LA119_30 = input.LA(1); + + + var index119_30 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_30); + if ( s>=0 ) return s; + break; + case 30 : + var LA119_31 = input.LA(1); + + + var index119_31 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_31); + if ( s>=0 ) return s; + break; + case 31 : + var LA119_32 = input.LA(1); + + + var index119_32 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_32); + if ( s>=0 ) return s; + break; + case 32 : + var LA119_33 = input.LA(1); + + + var index119_33 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_33); + if ( s>=0 ) return s; + break; + case 33 : + var LA119_34 = input.LA(1); + + + var index119_34 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_34); + if ( s>=0 ) return s; + break; + case 34 : + var LA119_35 = input.LA(1); + + + var index119_35 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_35); + if ( s>=0 ) return s; + break; + case 35 : + var LA119_36 = input.LA(1); + + + var index119_36 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_36); + if ( s>=0 ) return s; + break; + case 36 : + var LA119_37 = input.LA(1); + + + var index119_37 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_37); + if ( s>=0 ) return s; + break; + case 37 : + var LA119_38 = input.LA(1); + + + var index119_38 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_38); + if ( s>=0 ) return s; + break; + case 38 : + var LA119_39 = input.LA(1); + + + var index119_39 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_39); + if ( s>=0 ) return s; + break; + case 39 : + var LA119_40 = input.LA(1); + + + var index119_40 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_40); + if ( s>=0 ) return s; + break; + case 40 : + var LA119_41 = input.LA(1); + + + var index119_41 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_41); + if ( s>=0 ) return s; + break; + case 41 : + var LA119_42 = input.LA(1); + + + var index119_42 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_42); + if ( s>=0 ) return s; + break; + case 42 : + var LA119_43 = input.LA(1); + + + var index119_43 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred8_XQueryParser()) ) {s = 45;} + + else if ( (this.synpred9_XQueryParser()) ) {s = 46;} + + else if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (this.synpred11_XQueryParser()) ) {s = 47;} + + else if ( (this.synpred12_XQueryParser()) ) {s = 48;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_43); + if ( s>=0 ) return s; + break; + case 43 : + var LA119_44 = input.LA(1); + + + var index119_44 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred10_XQueryParser()) ) {s = 49;} + + else if ( (true) ) {s = 50;} + + + input.seek(index119_44); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 119, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA121_eotS: + "\u000a\uffff", + DFA121_eofS: + "\u0001\uffff\u0007\u0008\u0002\uffff", + DFA121_minS: + "\u0001\u0010\u0007\u0012\u0002\uffff", + DFA121_maxS: + "\u0001\u0154\u0007\u00fe\u0002\uffff", + DFA121_acceptS: + "\u0008\uffff\u0001\u0002\u0001\u0001", + DFA121_specialS: + "\u000a\uffff}>", + DFA121_transitionS: [ + "\u0006\u0008\u0001\u0003\u0006\u0008\u0001\u0001\u0006\u0008"+ + "\u0001\u0002\u0001\u0005\u000d\u0008\u0001\u0007\u0001\u0006"+ + "\u002a\u0008\u0001\u0004\u003b\u0008\u0001\uffff\u0040\u0008"+ + "\u0010\uffff\u0001\u0008\u0018\uffff\u0001\u0008\u0002\uffff"+ + "\u0002\u0008\u0002\uffff\u0001\u0008\u0047\uffff\u0001\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0003\u0008\u0002\uffff"+ + "\u0004\u0008\u0001\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0001\uffff\u000b\u0008\u0002\uffff\u0001\u0008\u0001\u0009"+ + "\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "\u0003\u0008\u0004\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0004\uffff\u0001\u0008\u0002\uffff\u0002\u0008\u0004\uffff"+ + "\u0001\u0008\u0002\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u0001\u0008\u0001\uffff"+ + "\u0002\u0008\u0004\uffff\u0003\u0008\u0002\uffff\u0001\u0008"+ + "\u0001\uffff\u0003\u0008\u0002\uffff\u0001\u0008\u0005\uffff"+ + "\u0002\u0008\u0007\uffff\u0002\u0008\u0005\uffff\u0001\u0008"+ + "\u0004\uffff\u0002\u0008\u0001\uffff\u0001\u0008\u0004\uffff"+ + "\u0001\u0008\u0004\uffff\u0001\u0008\u0003\uffff\u0002\u0008"+ + "\u0006\uffff\u0001\u0008\u0005\uffff\u0001\u0008\u0007\uffff"+ + "\u0002\u0008\u0004\uffff\u0001\u0008\u0001\uffff\u0001\u0008"+ + "\u0007\uffff\u0001\u0008\u0002\uffff\u0001\u0008\u0014\uffff"+ + "\u0001\u0008\u0006\uffff\u0001\u0008\u0003\uffff\u0001\u0008"+ + "\u0006\uffff\u0001\u0008\u0014\uffff\u0001\u0008\u0001\uffff"+ + "\u0001\u0008\u0002\uffff\u0004\u0008\u0001\uffff\u0001\u0008"+ + "\u0003\uffff\u0001\u0008\u0001\uffff\u000b\u0008\u0002\uffff"+ + "\u0001\u0008\u0001\u0009\u0002\uffff\u0002\u0008", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA121_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_eotS), + DFA121_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_eofS), + DFA121_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA121_minS), + DFA121_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA121_maxS), + DFA121_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_acceptS), + DFA121_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA121_specialS), + DFA121_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA121_transitionS.length; + for (i=0; i", + DFA126_transitionS: [ + "\u0006\u000b\u0001\u0003\u0008\u000b\u0001\u0007\u0009\u000b"+ + "\u0001\u0001\u0001\u0002\u0023\u000b\u0001\u000a\u000a\u000b"+ + "\u0001\u0006\u0003\u000b\u0001\u0005\u0001\u0004\u0005\u000b"+ + "\u0001\u0008\u0017\u000b\u0001\u0009\u001e\u000b\u0001\uffff"+ + "\u0040\u000b\u0010\uffff\u0001\u000b\u001b\uffff\u0002\u000b"+ + "\u0002\uffff\u0001\u000b\u0047\uffff\u0001\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "\u0003\u000b\u0004\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0004\uffff\u0001\u000b\u0002\uffff\u0002\u000b\u0004\uffff"+ + "\u0001\u000b\u0002\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u0001\u000b\u0001\uffff"+ + "\u0002\u000b\u0004\uffff\u0003\u000b\u0002\uffff\u0001\u000b"+ + "\u0001\uffff\u0003\u000b\u0002\uffff\u0001\u000b\u0005\uffff"+ + "\u0002\u000b\u0007\uffff\u0002\u000b\u0005\uffff\u0001\u000b"+ + "\u0004\uffff\u0002\u000b\u0001\uffff\u0001\u000b\u0004\uffff"+ + "\u0001\u000b\u0004\uffff\u0001\u000b\u0003\uffff\u0002\u000b"+ + "\u0006\uffff\u0001\u000b\u0005\uffff\u0001\u000b\u0007\uffff"+ + "\u0002\u000b\u0004\uffff\u0001\u000b\u0001\uffff\u0001\u000b"+ + "\u0007\uffff\u0001\u000b\u0002\uffff\u0001\u000b\u0014\uffff"+ + "\u0001\u000b\u0006\uffff\u0001\u000b\u0003\uffff\u0001\u000b"+ + "\u0006\uffff\u0001\u000b\u0014\uffff\u0001\u000b\u0001\u000c"+ + "\u0001\u000b\u0002\uffff\u0004\u000b\u0001\uffff\u0001\u000b"+ + "\u0003\uffff\u0001\u000b\u0001\uffff\u000b\u000b\u0002\uffff"+ + "\u0001\u000b\u0003\uffff\u0002\u000b", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA126_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_eotS), + DFA126_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_eofS), + DFA126_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA126_minS), + DFA126_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA126_maxS), + DFA126_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_acceptS), + DFA126_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA126_specialS), + DFA126_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA126_transitionS.length; + for (i=0; i", + DFA134_transitionS: [ + "\u0006\u0007\u0001\u000c\u0008\u0007\u0001\u000f\u0008\u0007"+ + "\u0001\u0009\u0001\u0007\u0001\u0006\u001f\u0007\u0001\u000b"+ + "\u0008\u0007\u0001\u0005\u0005\u0007\u0001\u0010\u000a\u0007"+ + "\u0001\u000d\u0005\u0007\u0001\u0008\u006d\u0007\u0001\u000e"+ + "\u0003\u0007\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0003"+ + "\u0001\u0011\u000e\uffff\u0001\u000a\u0007\uffff\u0001\u0004"+ + "\u0010\uffff\u0002\u0002\u0002\uffff\u0001\u0007\u0007\uffff"+ + "\u0002\u000a\u0003\u0002\u003b\uffff\u0001\u0007", + "", + "", + "", + "", + "\u0001\u0007\u0002\uffff\u0001\u0012\u0018\uffff\u0001\u0007", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0004\uffff\u0001\u000a"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u000a\u0047\uffff"+ + "\u0001\u000a", + "", + "\u0001\u0007\u0002\uffff\u0001\u0013\u0018\uffff\u0001\u0007", + "\u0001\u0007\u0002\uffff\u0001\u000a\u0018\uffff\u0001\u0007", + "", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0001\uffff\u0001\u0007"+ + "\u0002\uffff\u0001\u000a\u0018\uffff\u0001\u0007\u0012\uffff"+ + "\u0001\u000a\u0047\uffff\u0001\u000a", + "\u008b\u000a\u0001\uffff\u0040\u000a\u0004\uffff\u0001\u000a"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u000a\u0047\uffff"+ + "\u0001\u000a", + "\u0001\u000a\u0018\uffff\u0001\u0007", + "\u0001\u0007\u0002\uffff\u0001\u0014\u0018\uffff\u0001\u0007", + "\u0001\u0015\u0018\uffff\u0001\u0007", + "\u008b\u0015\u0001\uffff\u0040\u0015\u0004\uffff\u0001\u0015"+ + "\u0018\uffff\u0001\u0007\u0012\uffff\u0001\u0015\u0047\uffff"+ + "\u0001\u0015", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA134_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_eotS), + DFA134_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_eofS), + DFA134_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA134_minS), + DFA134_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA134_maxS), + DFA134_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_acceptS), + DFA134_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA134_specialS), + DFA134_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA134_transitionS.length; + for (i=0; i p_ParenthesizedExpr | p_Literal | p_VarRef | p_ContextItemExpr | p_FunctionCall | p_OrderedExpr | p_UnorderedExpr | p_Constructor | p_BlockExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA134_14 = input.LA(1); + + + var index134_14 = input.index(); + input.rewind(); + s = -1; + if ( (LA134_14==LPAREN||LA134_14==COLON) ) {s = 7;} + + else if ( (LA134_14==LBRACKET) && ((this.lc(MLS)))) {s = 20;} + + + input.seek(index134_14); + if ( s>=0 ) return s; + break; + case 1 : + var LA134_0 = input.LA(1); + + + var index134_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA134_0==LPAREN) && (this.synpred16_XQueryParser())) {s = 1;} + + else if ( ((LA134_0>=APOS && LA134_0<=QUOT)||(LA134_0>=L_IntegerLiteral && LA134_0<=L_DoubleLiteral)) ) {s = 2;} + + else if ( (LA134_0==DOLLAR) ) {s = 3;} + + else if ( (LA134_0==DOT) ) {s = 4;} + + else if ( (LA134_0==ORDERED) ) {s = 5;} + + else if ( (LA134_0==ELEMENT) ) {s = 6;} + + else if ( ((LA134_0>=ANCESTOR && LA134_0<=AT)||(LA134_0>=BASE_URI && LA134_0<=COLLATION)||(LA134_0>=CONSTRUCTION && LA134_0<=DIV)||LA134_0==DOCUMENT_NODE||(LA134_0>=ELSE && LA134_0<=MODULE)||(LA134_0>=NE && LA134_0<=ORDER)||(LA134_0>=ORDERING && LA134_0<=PRESERVE)||(LA134_0>=RETURN && LA134_0<=STRIP)||(LA134_0>=THEN && LA134_0<=UNION)||(LA134_0>=VALIDATE && LA134_0<=UNIQUE)||(LA134_0>=AMP_ER && LA134_0<=QUOT_ER)||LA134_0==L_NCName||LA134_0==EXPLICITLY) ) {s = 7;} + + else if ( (LA134_0==UNORDERED) ) {s = 8;} + + else if ( (LA134_0==DOCUMENT) ) {s = 9;} + + else if ( (LA134_0==SMALLER||(LA134_0>=L_DirCommentConstructor && LA134_0<=L_DirPIConstructor)) ) {s = 10;} + + else if ( (LA134_0==NAMESPACE) ) {s = 11;} + + else if ( (LA134_0==ATTRIBUTE) ) {s = 12;} + + else if ( (LA134_0==TEXT) ) {s = 13;} + + else if ( (LA134_0==BINARY) ) {s = 14;} + + else if ( (LA134_0==COMMENT) ) {s = 15;} + + else if ( (LA134_0==PROCESSING_INSTRUCTION) ) {s = 16;} + + else if ( (LA134_0==LBRACKET) ) {s = 17;} + + + input.seek(index134_0); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 134, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA162_eotS: + "\u004a\uffff", + DFA162_eofS: + "\u0001\u0002\u0049\uffff", + DFA162_minS: + "\u0001\u0012\u0001\u0000\u0007\uffff\u0001\u0000\u0040\uffff", + DFA162_maxS: + "\u0001\u00fe\u0001\u0000\u0007\uffff\u0001\u0000\u0040\uffff", + DFA162_acceptS: + "\u0002\uffff\u0001\u0002\u000a\uffff\u0001\u0001\u003c\uffff", + DFA162_specialS: + "\u0001\u0000\u0001\u0001\u0007\uffff\u0001\u0002\u0040\uffff}>", + DFA162_transitionS: [ + "\u0004\u0002\u0004\uffff\u0001\u0002\u0003\uffff\u0001\u0002"+ + "\u0004\uffff\u0001\u0002\u0002\uffff\u0002\u0002\u0004\uffff"+ + "\u0001\u0002\u0002\uffff\u0001\u0002\u0001\uffff\u0002\u0002"+ + "\u0002\uffff\u0001\u0002\u0001\uffff\u0001\u0002\u0001\uffff"+ + "\u0002\u0002\u0002\uffff\u0001\u0002\u0001\uffff\u0003\u0002"+ + "\u0002\uffff\u0001\u0002\u0001\uffff\u0003\u0002\u0002\uffff"+ + "\u0001\u0002\u0005\uffff\u0002\u0002\u0007\uffff\u0002\u0002"+ + "\u0005\uffff\u0001\u0002\u0004\uffff\u0001\u0002\u0002\uffff"+ + "\u0001\u0002\u0004\uffff\u0001\u0002\u0001\uffff\u0001\u0002"+ + "\u0002\uffff\u0001\u0002\u0003\uffff\u0002\u0002\u0006\uffff"+ + "\u0001\u0002\u0005\uffff\u0001\u0002\u0007\uffff\u0002\u0002"+ + "\u0004\uffff\u0001\u0002\u0001\uffff\u0001\u0002\u0007\uffff"+ + "\u0001\u0002\u0002\uffff\u0001\u0002\u0014\uffff\u0001\u0002"+ + "\u0003\uffff\u0001\u0002\u0002\uffff\u0001\u0002\u0003\uffff"+ + "\u0001\u0002\u0006\uffff\u0001\u0002\u0014\uffff\u0001\u0002"+ + "\u0001\uffff\u0001\u0002\u0001\uffff\u0002\u0002\u0001\uffff"+ + "\u0004\u0002\u0003\uffff\u0001\u0002\u0001\u000d\u0001\u0001"+ + "\u0001\u0009\u0007\u0002\u0008\uffff\u0002\u0002", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "\u0001\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA162_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_eotS), + DFA162_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_eofS), + DFA162_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA162_minS), + DFA162_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA162_maxS), + DFA162_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_acceptS), + DFA162_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA162_specialS), + DFA162_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA162_transitionS.length; + for (i=0; ioi= p_OccurrenceIndicator )?"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA162_0 = input.LA(1); + + + var index162_0 = input.index(); + input.rewind(); + s = -1; + if ( (LA162_0==STAR) ) {s = 1;} + + else if ( (LA162_0==EOF||(LA162_0>=AND && LA162_0<=AT)||LA162_0==CASE||LA162_0==COLLATION||LA162_0==DEFAULT||(LA162_0>=DESCENDING && LA162_0<=DIV)||LA162_0==EMPTY||LA162_0==EQ||(LA162_0>=EXCEPT && LA162_0<=EXTERNAL)||LA162_0==FOR||LA162_0==GE||(LA162_0>=GT && LA162_0<=IDIV)||LA162_0==IN||(LA162_0>=INSTANCE && LA162_0<=IS)||LA162_0==LE||(LA162_0>=LET && LA162_0<=MOD)||LA162_0==NE||(LA162_0>=OR && LA162_0<=ORDER)||(LA162_0>=RETURN && LA162_0<=SATISFIES)||LA162_0==STABLE||LA162_0==TO||LA162_0==UNION||LA162_0==WHERE||LA162_0==ALLOWING||LA162_0==COUNT||(LA162_0>=END && LA162_0<=GROUP)||LA162_0==ONLY||LA162_0==START||(LA162_0>=AFTER && LA162_0<=BEFORE)||LA162_0==INTO||LA162_0==MODIFY||LA162_0==WITH||LA162_0==CONTAINS||LA162_0==PARAGRAPHS||LA162_0==SCORE||LA162_0==SENTENCES||LA162_0==TIMES||LA162_0==WORDS||LA162_0==CONCAT||LA162_0==RPAREN||(LA162_0>=LBRACKET && LA162_0<=RBRACKET)||(LA162_0>=RSQUARE && LA162_0<=NOTEQUAL)||LA162_0==COMMA||(LA162_0>=MINUS && LA162_0<=GREATER_GREATER)||(LA162_0>=SEMICOLON && LA162_0<=VBAR)) ) {s = 2;} + + else if ( (LA162_0==PLUS) ) {s = 9;} + + else if ( (LA162_0==QUESTION) && (this.synpred17_XQueryParser())) {s = 13;} + + + input.seek(index162_0); + if ( s>=0 ) return s; + break; + case 1 : + var LA162_1 = input.LA(1); + + + var index162_1 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred17_XQueryParser()) ) {s = 13;} + + else if ( (true) ) {s = 2;} + + + input.seek(index162_1); + if ( s>=0 ) return s; + break; + case 2 : + var LA162_9 = input.LA(1); + + + var index162_9 = input.index(); + input.rewind(); + s = -1; + if ( (this.synpred17_XQueryParser()) ) {s = 13;} + + else if ( (true) ) {s = 2;} + + + input.seek(index162_9); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 162, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA164_eotS: + "\u0012\uffff", + DFA164_eofS: + "\u0001\uffff\u000c\u000d\u0005\uffff", + DFA164_minS: + "\u0001\u0010\u000c\u0012\u0005\uffff", + DFA164_maxS: + "\u0001\u0154\u000c\u00fe\u0005\uffff", + DFA164_acceptS: + "\u000d\uffff\u0001\u0004\u0001\u0005\u0001\u0001\u0001\u0002\u0001"+ + "\u0003", + DFA164_specialS: + "\u000b\uffff\u0001\u0000\u0006\uffff}>", + DFA164_transitionS: [ + "\u0006\u000d\u0001\u0003\u0008\u000d\u0001\u0007\u0009\u000d"+ + "\u0001\u0001\u0001\u0002\u0017\u000d\u0001\u000c\u000b\u000d"+ + "\u0001\u000a\u000a\u000d\u0001\u0006\u0003\u000d\u0001\u0005"+ + "\u0001\u0004\u0005\u000d\u0001\u0008\u0017\u000d\u0001\u0009"+ + "\u001e\u000d\u0001\uffff\u003c\u000d\u0001\u000b\u0003\u000d"+ + "\u0001\uffff\u0001\u000e\u002e\uffff\u0001\u000d\u0047\uffff"+ + "\u0001\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u000f\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u0010\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "\u0004\u000d\u0004\uffff\u0001\u000d\u0003\uffff\u0001\u000d"+ + "\u0004\uffff\u0001\u000d\u0002\uffff\u0002\u000d\u0004\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0002\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0001\uffff"+ + "\u0002\u000d\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d"+ + "\u0002\uffff\u0001\u000d\u0001\uffff\u0003\u000d\u0002\uffff"+ + "\u0001\u000d\u0005\uffff\u0002\u000d\u0007\uffff\u0002\u000d"+ + "\u0005\uffff\u0001\u000d\u0004\uffff\u0001\u000d\u0002\uffff"+ + "\u0001\u000d\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d"+ + "\u0002\uffff\u0001\u000d\u0003\uffff\u0002\u000d\u0006\uffff"+ + "\u0001\u000d\u0005\uffff\u0001\u000d\u0007\uffff\u0002\u000d"+ + "\u0004\uffff\u0001\u000d\u0001\uffff\u0001\u000d\u0007\uffff"+ + "\u0001\u000d\u0002\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0003\uffff\u0001\u000d\u0002\uffff\u0001\u000d\u0003\uffff"+ + "\u0001\u000d\u0006\uffff\u0001\u000d\u0014\uffff\u0001\u000d"+ + "\u0001\u0011\u0001\u000d\u0001\uffff\u0002\u000d\u0001\uffff"+ + "\u0004\u000d\u0003\uffff\u000b\u000d\u0004\uffff\u0001\u000d"+ + "\u0003\uffff\u0002\u000d", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA164_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_eotS), + DFA164_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_eofS), + DFA164_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA164_minS), + DFA164_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA164_maxS), + DFA164_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_acceptS), + DFA164_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA164_specialS), + DFA164_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA164_transitionS.length; + for (i=0; i ^( KindTest p_KindTest ) | {...}? => ( BINARY LPAREN RPAREN ) -> ^( BinaryTest BINARY LPAREN RPAREN ) | ( ITEM LPAREN RPAREN ) -> ^( ItemTest ITEM LPAREN RPAREN ) | p_AtomicOrUnionType | p_ParenthesizedItemType );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA164_11 = input.LA(1); + + + var index164_11 = input.index(); + input.rewind(); + s = -1; + if ( (LA164_11==LPAREN) && ((this.lc(MLS)))) {s = 16;} + + else if ( (LA164_11==EOF||(LA164_11>=AND && LA164_11<=AT)||LA164_11==CASE||LA164_11==COLLATION||LA164_11==DEFAULT||(LA164_11>=DESCENDING && LA164_11<=DIV)||LA164_11==EMPTY||LA164_11==EQ||(LA164_11>=EXCEPT && LA164_11<=EXTERNAL)||LA164_11==FOR||LA164_11==GE||(LA164_11>=GT && LA164_11<=IDIV)||LA164_11==IN||(LA164_11>=INSTANCE && LA164_11<=IS)||LA164_11==LE||(LA164_11>=LET && LA164_11<=MOD)||LA164_11==NE||(LA164_11>=OR && LA164_11<=ORDER)||(LA164_11>=RETURN && LA164_11<=SATISFIES)||LA164_11==STABLE||LA164_11==TO||LA164_11==UNION||LA164_11==WHERE||LA164_11==ALLOWING||LA164_11==COUNT||(LA164_11>=END && LA164_11<=GROUP)||LA164_11==ONLY||LA164_11==START||(LA164_11>=AFTER && LA164_11<=BEFORE)||LA164_11==INTO||LA164_11==MODIFY||LA164_11==WITH||LA164_11==CONTAINS||LA164_11==PARAGRAPHS||LA164_11==SCORE||LA164_11==SENTENCES||LA164_11==TIMES||LA164_11==WORDS||LA164_11==CONCAT||LA164_11==RPAREN||(LA164_11>=LBRACKET && LA164_11<=RBRACKET)||(LA164_11>=RSQUARE && LA164_11<=NOTEQUAL)||(LA164_11>=COMMA && LA164_11<=GREATER_GREATER)||LA164_11==COLON||(LA164_11>=SEMICOLON && LA164_11<=VBAR)) ) {s = 13;} + + + input.seek(index164_11); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 164, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); +org.antlr.lang.augmentObject(XQueryParser, { + DFA218_eotS: + "\u000a\uffff", + DFA218_eofS: + "\u000a\uffff", + DFA218_minS: + "\u0001\u001a\u0002\uffff\u0001\u00bd\u0006\uffff", + DFA218_maxS: + "\u0001\u00c4\u0002\uffff\u0001\u00c4\u0006\uffff", + DFA218_acceptS: + "\u0001\uffff\u0001\u0001\u0001\u0002\u0001\uffff\u0001\u0003\u0001"+ + "\u0004\u0001\u0005\u0001\u0006\u0001\u0007\u0001\u0008", + DFA218_specialS: + "\u000a\uffff}>", + DFA218_transitionS: [ + "\u0001\u0006\u0035\uffff\u0001\u0009\u0051\uffff\u0001\u0007"+ + "\u000a\uffff\u0001\u0001\u0001\uffff\u0001\u0006\u0001\uffff"+ + "\u0001\u0003\u000b\uffff\u0001\u0005\u0001\u0008\u0001\u0004"+ + "\u0001\uffff\u0001\u0006\u0002\uffff\u0001\u0002", + "", + "", + "\u0001\u0005\u0001\u0008\u0001\u0004\u0004\uffff\u0001\u0002", + "", + "", + "", + "", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA218_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_eotS), + DFA218_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_eofS), + DFA218_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA218_minS), + DFA218_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA218_maxS), + DFA218_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_acceptS), + DFA218_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA218_specialS), + DFA218_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA218_transitionS.length; + for (i=0; i", + DFA237_transitionS: [ + "\u005c\u0001\u0001\u0007\u005b\u0001\u0001\u0004\u0001\u0005"+ + "\u0001\u0006\u0002\u0001\u0001\u0003\u000e\u0001\u0001\uffff"+ + "\u0001\u0001\u0001\uffff\u0001\u0002\u0001\u0001\u0006\uffff"+ + "\u0001\u0008\u0004\uffff\u0004\u0001\u0005\uffff\u0004\u0001"+ + "\u000c\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0006\uffff\u0006\u0001\u003b\uffff\u0001\u0001", + "", + "\u008b\u0009\u0001\uffff\u0040\u0009\u0030\uffff\u0001\u0009"+ + "\u0047\uffff\u0001\u0009", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0001\u0008\u0004\uffff\u0001\u0001\u0001\uffff"+ + "\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff\u0001\u0001"+ + "\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001\u0003\uffff"+ + "\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002a\uffff"+ + "\u0001\u0008\u0010\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002a\uffff"+ + "\u0001\u0008\u0010\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u002b\uffff"+ + "\u0001\u0008\u000f\uffff\u0002\u0001\u0004\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0002\u0001\u0001\uffff\u0001\u0008\u0002\uffff\u0001\u0001"+ + "\u0001\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0003\uffff"+ + "\u0001\u0001\u0001\uffff\u000b\u0001\u0002\uffff\u0001\u0001"+ + "\u0003\uffff\u0002\u0001", + "", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0001\uffff\u0001\u0001"+ + "\u0001\u0008\u0001\u0001\u0003\uffff\u0001\u0001\u0001\uffff"+ + "\u000b\u0001\u0002\uffff\u0001\u000a\u0003\uffff\u0002\u0001", + "\u008b\u000b\u0001\uffff\u0040\u000b\u0030\uffff\u0001\u000b"+ + "\u0047\uffff\u0001\u000b", + "\u0001\u0001\u0008\uffff\u0002\u0001\u000a\uffff\u0001\u0001"+ + "\u0007\uffff\u0001\u0001\u0001\uffff\u0001\u0001\u0005\uffff"+ + "\u0001\u0001\u0001\uffff\u0002\u0001\u0004\uffff\u0003\u0001"+ + "\u0002\uffff\u0001\u0001\u0002\uffff\u0002\u0001\u0002\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0014\uffff\u0002\u0001"+ + "\u0001\uffff\u0001\u0001\u0036\uffff\u0001\u0001\u003b\uffff"+ + "\u0001\u0001\u0005\uffff\u0001\u0001\u0001\uffff\u0001\u0001"+ + "\u0001\u0008\u0001\u0001\u0003\uffff\u0001\u0001\u0001\uffff"+ + "\u000b\u0001\u0006\uffff\u0002\u0001" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA237_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_eotS), + DFA237_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_eofS), + DFA237_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA237_minS), + DFA237_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA237_maxS), + DFA237_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_acceptS), + DFA237_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA237_specialS), + DFA237_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA237_transitionS.length; + for (i=0; i", + DFA253_transitionS: [ + "\u0020\u0003\u0001\u0002\u002f\u0003\u0001\u0001\u002e\u0003"+ + "\u0001\u0008\u0001\u0005\u0001\u0003\u0001\u0004\u0004\u0003"+ + "\u0001\u0006\u0001\u0007\u0043\u0003\u0001\uffff\u0001\u0003"+ + "\u0001\uffff\u0002\u0003\u000b\uffff\u0004\u0003\u0005\uffff"+ + "\u0004\u0003\u000c\uffff\u0001\u0003\u0002\uffff\u0002\u0003"+ + "\u0002\uffff\u0001\u0003\u0006\uffff\u0006\u0003\u003b\uffff"+ + "\u0001\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u0009\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u0009\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0001\u000a\u0006\uffff\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0001\u000a\u0006\uffff\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0007\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff\u0004\u0003"+ + "\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff"+ + "\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0002\uffff"+ + "\u0001\u000a\u0002\uffff\u0002\u0003\u0007\uffff\u0002\u0003"+ + "\u0005\uffff\u0001\u0003\u0004\uffff\u0002\u0003\u0001\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0004\uffff\u0001\u0003"+ + "\u0003\uffff\u0002\u0003\u0006\uffff\u0001\u0003\u0005\uffff"+ + "\u0001\u0003\u0007\uffff\u0002\u0003\u0004\uffff\u0001\u0003"+ + "\u0001\uffff\u0001\u0003\u0006\uffff\u0001\u000a\u0001\u0003"+ + "\u0002\uffff\u0001\u0003\u003b\uffff\u0003\u0003\u0002\uffff"+ + "\u0004\u0003\u0001\uffff\u0001\u0003\u0003\uffff\u0001\u0003"+ + "\u0001\uffff\u000b\u0003\u0002\uffff\u0001\u0003\u0003\uffff"+ + "\u0002\u0003", + "\u0003\u0003\u0005\uffff\u0003\u0003\u0001\uffff\u0001\u0003"+ + "\u0004\uffff\u0001\u0003\u0002\uffff\u0002\u0003\u0004\uffff"+ + "\u0001\u0003\u0002\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0003\uffff\u0001\u0003\u0001\uffff\u0001\u0003\u0001\uffff"+ + "\u0002\u0003\u0004\uffff\u0003\u0003\u0002\uffff\u0001\u0003"+ + "\u0001\uffff\u0003\u0003\u0002\uffff\u0001\u0003\u0005\uffff"+ + "\u0002\u0003\u0007\uffff\u0002\u0003\u0005\uffff\u0001\u0003"+ + "\u0004\uffff\u0002\u0003\u0001\uffff\u0001\u0003\u0004\uffff"+ + "\u0001\u0003\u0004\uffff\u0001\u0003\u0003\uffff\u0002\u0003"+ + "\u0006\uffff\u0001\u0003\u0005\uffff\u0001\u0003\u0007\uffff"+ + "\u0002\u0003\u0004\uffff\u0001\u0003\u0001\uffff\u0001\u0003"+ + "\u0007\uffff\u0001\u0003\u0002\uffff\u0001\u0003\u003b\uffff"+ + "\u0003\u0003\u0001\u000a\u0001\uffff\u0004\u0003\u0001\uffff"+ + "\u0001\u0003\u0003\uffff\u0001\u0003\u0001\uffff\u000b\u0003"+ + "\u0002\uffff\u0001\u0003\u0003\uffff\u0002\u0003", + "", + "" + ] +}); + +org.antlr.lang.augmentObject(XQueryParser, { + DFA253_eot: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_eotS), + DFA253_eof: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_eofS), + DFA253_min: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA253_minS), + DFA253_max: + org.antlr.runtime.DFA.unpackEncodedStringToUnsignedChars(XQueryParser.DFA253_maxS), + DFA253_accept: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_acceptS), + DFA253_special: + org.antlr.runtime.DFA.unpackEncodedString(XQueryParser.DFA253_specialS), + DFA253_transition: (function() { + var a = [], + i, + numStates = XQueryParser.DFA253_transitionS.length; + for (i=0; i pg_UpdateExpr );"; + }, + specialStateTransition: function(s, input) { + var _s = s; + /* bind to recognizer so semantic predicates can be evaluated */ + var retval = (function(s, input) { + switch ( s ) { + case 0 : + var LA253_8 = input.LA(1); + + + var index253_8 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_8==DOLLAR) && ((this.lc(XQU)))) {s = 10;} + + else if ( (LA253_8==EOF||(LA253_8>=AND && LA253_8<=ASCENDING)||(LA253_8>=CASE && LA253_8<=CASTABLE)||LA253_8==COLLATION||LA253_8==DEFAULT||(LA253_8>=DESCENDING && LA253_8<=DIV)||LA253_8==EMPTY||LA253_8==EQ||LA253_8==EXCEPT||LA253_8==FOR||LA253_8==GE||(LA253_8>=GT && LA253_8<=IDIV)||(LA253_8>=INSTANCE && LA253_8<=IS)||LA253_8==LE||(LA253_8>=LET && LA253_8<=MOD)||LA253_8==NE||(LA253_8>=OR && LA253_8<=ORDER)||(LA253_8>=RETURN && LA253_8<=SATISFIES)||LA253_8==STABLE||(LA253_8>=TO && LA253_8<=TREAT)||LA253_8==UNION||LA253_8==WHERE||LA253_8==COUNT||(LA253_8>=END && LA253_8<=GROUP)||LA253_8==ONLY||LA253_8==START||(LA253_8>=AFTER && LA253_8<=BEFORE)||LA253_8==INTO||LA253_8==MODIFY||LA253_8==WITH||LA253_8==CONTAINS||(LA253_8>=CONCAT && LA253_8<=RPAREN)||(LA253_8>=RBRACKET && LA253_8<=EQUAL)||LA253_8==NOTEQUAL||LA253_8==COMMA||(LA253_8>=STAR && LA253_8<=SLASH_SLASH)||LA253_8==COLON||(LA253_8>=SEMICOLON && LA253_8<=VBAR)) ) {s = 3;} + + + input.seek(index253_8); + if ( s>=0 ) return s; + break; + case 1 : + var LA253_5 = input.LA(1); + + + var index253_5 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_5==EOF||(LA253_5>=AND && LA253_5<=ASCENDING)||(LA253_5>=CASE && LA253_5<=CASTABLE)||LA253_5==COLLATION||LA253_5==DEFAULT||(LA253_5>=DESCENDING && LA253_5<=DIV)||LA253_5==EMPTY||LA253_5==EQ||LA253_5==EXCEPT||LA253_5==FOR||LA253_5==GE||(LA253_5>=GT && LA253_5<=IDIV)||(LA253_5>=INSTANCE && LA253_5<=IS)||LA253_5==LE||(LA253_5>=LET && LA253_5<=MOD)||LA253_5==NE||(LA253_5>=OR && LA253_5<=ORDER)||(LA253_5>=RETURN && LA253_5<=SATISFIES)||LA253_5==STABLE||(LA253_5>=TO && LA253_5<=TREAT)||LA253_5==UNION||LA253_5==WHERE||LA253_5==COUNT||(LA253_5>=END && LA253_5<=GROUP)||LA253_5==ONLY||LA253_5==START||(LA253_5>=AFTER && LA253_5<=BEFORE)||LA253_5==INTO||LA253_5==MODIFY||LA253_5==WITH||LA253_5==CONTAINS||(LA253_5>=CONCAT && LA253_5<=RPAREN)||(LA253_5>=RBRACKET && LA253_5<=EQUAL)||LA253_5==NOTEQUAL||LA253_5==COMMA||(LA253_5>=STAR && LA253_5<=SLASH_SLASH)||LA253_5==COLON||(LA253_5>=SEMICOLON && LA253_5<=VBAR)) ) {s = 3;} + + else if ( (LA253_5==NODE||LA253_5==NODES) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_5); + if ( s>=0 ) return s; + break; + case 2 : + var LA253_4 = input.LA(1); + + + var index253_4 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_4==EOF||(LA253_4>=AND && LA253_4<=ASCENDING)||(LA253_4>=CASE && LA253_4<=CASTABLE)||LA253_4==COLLATION||LA253_4==DEFAULT||(LA253_4>=DESCENDING && LA253_4<=DIV)||LA253_4==EMPTY||LA253_4==EQ||LA253_4==EXCEPT||LA253_4==FOR||LA253_4==GE||(LA253_4>=GT && LA253_4<=IDIV)||(LA253_4>=INSTANCE && LA253_4<=IS)||LA253_4==LE||(LA253_4>=LET && LA253_4<=MOD)||LA253_4==NE||(LA253_4>=OR && LA253_4<=ORDER)||(LA253_4>=RETURN && LA253_4<=SATISFIES)||LA253_4==STABLE||(LA253_4>=TO && LA253_4<=TREAT)||LA253_4==UNION||LA253_4==WHERE||LA253_4==COUNT||(LA253_4>=END && LA253_4<=GROUP)||LA253_4==ONLY||LA253_4==START||(LA253_4>=AFTER && LA253_4<=BEFORE)||LA253_4==INTO||LA253_4==MODIFY||LA253_4==WITH||LA253_4==CONTAINS||(LA253_4>=CONCAT && LA253_4<=RPAREN)||(LA253_4>=RBRACKET && LA253_4<=EQUAL)||LA253_4==NOTEQUAL||LA253_4==COMMA||(LA253_4>=STAR && LA253_4<=SLASH_SLASH)||LA253_4==COLON||(LA253_4>=SEMICOLON && LA253_4<=VBAR)) ) {s = 3;} + + else if ( (LA253_4==NODE||LA253_4==NODES) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_4); + if ( s>=0 ) return s; + break; + case 3 : + var LA253_6 = input.LA(1); + + + var index253_6 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_6==NODE) && ((this.lc(XQU)))) {s = 10;} + + else if ( (LA253_6==EOF||(LA253_6>=AND && LA253_6<=ASCENDING)||(LA253_6>=CASE && LA253_6<=CASTABLE)||LA253_6==COLLATION||LA253_6==DEFAULT||(LA253_6>=DESCENDING && LA253_6<=DIV)||LA253_6==EMPTY||LA253_6==EQ||LA253_6==EXCEPT||LA253_6==FOR||LA253_6==GE||(LA253_6>=GT && LA253_6<=IDIV)||(LA253_6>=INSTANCE && LA253_6<=IS)||LA253_6==LE||(LA253_6>=LET && LA253_6<=MOD)||LA253_6==NE||(LA253_6>=OR && LA253_6<=ORDER)||(LA253_6>=RETURN && LA253_6<=SATISFIES)||LA253_6==STABLE||(LA253_6>=TO && LA253_6<=TREAT)||LA253_6==UNION||LA253_6==WHERE||LA253_6==COUNT||(LA253_6>=END && LA253_6<=GROUP)||LA253_6==ONLY||LA253_6==START||(LA253_6>=AFTER && LA253_6<=BEFORE)||LA253_6==INTO||LA253_6==MODIFY||LA253_6==WITH||LA253_6==CONTAINS||(LA253_6>=CONCAT && LA253_6<=RPAREN)||(LA253_6>=RBRACKET && LA253_6<=EQUAL)||LA253_6==NOTEQUAL||LA253_6==COMMA||(LA253_6>=STAR && LA253_6<=SLASH_SLASH)||LA253_6==COLON||(LA253_6>=SEMICOLON && LA253_6<=VBAR)) ) {s = 3;} + + + input.seek(index253_6); + if ( s>=0 ) return s; + break; + case 4 : + var LA253_7 = input.LA(1); + + + var index253_7 = input.index(); + input.rewind(); + s = -1; + if ( (LA253_7==EOF||(LA253_7>=AND && LA253_7<=ASCENDING)||(LA253_7>=CASE && LA253_7<=CASTABLE)||LA253_7==COLLATION||LA253_7==DEFAULT||(LA253_7>=DESCENDING && LA253_7<=DIV)||LA253_7==EMPTY||LA253_7==EQ||LA253_7==EXCEPT||LA253_7==FOR||LA253_7==GE||(LA253_7>=GT && LA253_7<=IDIV)||(LA253_7>=INSTANCE && LA253_7<=IS)||LA253_7==LE||(LA253_7>=LET && LA253_7<=MOD)||LA253_7==NE||(LA253_7>=OR && LA253_7<=ORDER)||(LA253_7>=RETURN && LA253_7<=SATISFIES)||LA253_7==STABLE||(LA253_7>=TO && LA253_7<=TREAT)||LA253_7==UNION||LA253_7==WHERE||LA253_7==COUNT||(LA253_7>=END && LA253_7<=GROUP)||LA253_7==ONLY||LA253_7==START||(LA253_7>=AFTER && LA253_7<=BEFORE)||LA253_7==INTO||LA253_7==MODIFY||LA253_7==WITH||LA253_7==CONTAINS||(LA253_7>=CONCAT && LA253_7<=RPAREN)||(LA253_7>=RBRACKET && LA253_7<=EQUAL)||LA253_7==NOTEQUAL||LA253_7==COMMA||(LA253_7>=STAR && LA253_7<=SLASH_SLASH)||LA253_7==COLON||(LA253_7>=SEMICOLON && LA253_7<=VBAR)) ) {s = 3;} + + else if ( (LA253_7==NODE||LA253_7==VALUE) && ((this.lc(XQU)))) {s = 10;} + + + input.seek(index253_7); + if ( s>=0 ) return s; + break; + } + }).call(this.recognizer, s, input); + if (!org.antlr.lang.isUndefined(retval)) { + return retval; + } + if (this.recognizer.state.backtracking>0) {this.recognizer.state.failed=true; return -1;} + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), 253, _s, input); + this.error(nvae); + throw nvae; + }, + dummy: null +}); + + +// public class variables +org.antlr.lang.augmentObject(XQueryParser, { + tokenNames: ["", "", "", "", "L_QuotAttrContentChar", "L_AposAttrContentChar", "L_ElementContentChar", "L_CDataSection", "L_PredefinedEntityRef", "L_CharRef", "ESCAPE_LBRACKET", "ESCAPE_RBRACKET", "ESCAPE_APOS", "ESCAPE_QUOT", "CDATA_START", "CDATA_END", "ANCESTOR", "ANCESTOR_OR_SELF", "AND", "AS", "ASCENDING", "AT", "ATTRIBUTE", "BASE_URI", "BOUNDARY_SPACE", "BY", "CASE", "CAST", "CASTABLE", "CHILD", "COLLATION", "COMMENT", "CONSTRUCTION", "COPY_NAMESPACES", "DECLARE", "DEFAULT", "DESCENDANT", "DESCENDANT_OR_SELF", "DESCENDING", "DIV", "DOCUMENT", "DOCUMENT_NODE", "ELEMENT", "ELSE", "EMPTY", "EMPTY_SEQUENCE", "ENCODING", "EQ", "EVERY", "EXCEPT", "EXTERNAL", "FOLLOWING", "FOLLOWING_SIBLING", "FOR", "FUNCTION", "GE", "GREATEST", "GT", "IDIV", "IF", "IMPORT", "IN", "INHERIT", "INSTANCE", "INTERSECT", "IS", "ITEM", "LAX", "LE", "LEAST", "LET", "LT", "MOD", "MODULE", "NAMESPACE", "NE", "NO_INHERIT", "NO_PRESERVE", "NODE", "OF", "OPTION", "OR", "ORDER", "ORDERED", "ORDERING", "PARENT", "PRECEDING", "PRECEDING_SIBLING", "PRESERVE", "PROCESSING_INSTRUCTION", "RETURN", "SATISFIES", "SCHEMA", "SCHEMA_ATTRIBUTE", "SCHEMA_ELEMENT", "SELF", "SOME", "STABLE", "STRICT", "STRIP", "TEXT", "THEN", "TO", "TREAT", "TYPESWITCH", "UNION", "UNORDERED", "VALIDATE", "VARIABLE", "VERSION", "WHERE", "XQUERY", "ALLOWING", "CATCH", "CONTEXT", "COUNT", "DECIMAL_FORMAT", "DECIMAL_SEPARATOR", "DIGIT", "END", "GROUP", "GROUPING_SEPARATOR", "INFINITY", "MINUS_SIGN", "NAMESPACE_NODE", "NAN", "NEXT", "ONLY", "PATTERN_SEPARATOR", "PERCENT", "PER_MILLE", "PREVIOUS", "SLIDING", "START", "SWITCH", "TRY", "TUMBLING", "TYPE", "WHEN", "WINDOW", "ZERO_DIGIT", "AFTER", "BEFORE", "COPY", "DELETE", "FIRST", "INSERT", "INTO", "LAST", "MODIFY", "NODES", "RENAME", "REPLACE", "REVALIDATION", "SKIP", "UPDATING", "VALUE", "WITH", "ALL", "ANY", "CONTAINS", "CONTENT", "DIACRITICS", "DIFFERENT", "DISTANCE", "ENTIRE", "EXACTLY", "FROM", "FT_OPTION", "FTAND", "FTNOT", "FTOR", "INSENSITIVE", "LANGUAGE", "LEVELS", "LOWERCASE", "MOST", "NO", "NOT", "OCCURS", "PARAGRAPH", "PARAGRAPHS", "PHRASE", "RELATIONSHIP", "SAME", "SCORE", "SENSITIVE", "SENTENCE", "SENTENCES", "STEMMING", "STOP", "THESAURUS", "TIMES", "UPPERCASE", "USING", "WEIGHT", "WILDCARDS", "WITHOUT", "WORD", "WORDS", "BREAK", "CONTINUE", "EXIT", "LOOP", "RETURNING", "WHILE", "CHECK", "COLLECTION", "CONSTRAINT", "FOREACH", "FOREIGN", "INDEX", "INTEGRITY", "KEY", "ON", "UNIQUE", "BINARY", "AMP_ER", "APOS_ER", "QUOT_ER", "CONCAT", "LPAREN", "RPAREN", "DOLLAR", "LBRACKET", "RBRACKET", "LSQUARE", "RSQUARE", "EQUAL", "BIND", "NOTEQUAL", "ANN_PERCENT", "HASH", "AMP", "COMMA", "QUESTION", "STAR", "PLUS", "MINUS", "SMALLER", "GREATER", "SMALLEREQ", "GREATEREQ", "SMALLER_SMALLER", "GREATER_GREATER", "SLASH", "SLASH_SLASH", "DOT", "DOT_DOT", "COLON", "COLON_COLON", "EMPTY_CLOSE_TAG", "CLOSE_TAG", "SEMICOLON", "VBAR", "PRAGMA_START", "PRAGMA_END", "XML_COMMENT_START", "XML_COMMENT_END", "PI_START", "PI_END", "ATTR_SIGN", "CHARREF_DEC", "CHARREF_HEX", "APOS", "QUOT", "NCNameStartChar", "NCNameChar", "L_NCName", "Letter", "HexLetter", "Digit", "Digits", "S", "SU", "L_Pragma", "L_DirCommentConstructor", "L_DirPIConstructor", "L_IntegerLiteral", "L_DecimalLiteral", "L_DoubleLiteral", "L_Comment", "L_AnyChar", "L_QuotStringLiteralChar", "L_AposStringLiteralChar", "LibraryModule", "MainModule", "VersionDecl", "VersionDeclEncoding", "VersionDeclVersion", "ModuleDecl", "Prolog", "DefaultNamespaceDecls", "DefaultNamespaceDecl", "Setters", "Setter", "NamespaceDecls", "NamespaceDecl", "Imports", "FTOptionDecls", "SchemaImport", "SchemaPrefix", "NamespaceName", "DefaultElementNamespace", "AtHints", "ModuleImport", "BaseURIDecl", "OrderedDecls", "VarDecl", "VarType", "VarValue", "VarDefaultValue", "VarVariableDecl", "FunctionDecl", "ParamList", "ReturnType", "OptionDecl", "TypeDeclaration", "Param", "EnclosedExpr", "QueryBody", "UnaryExpr", "DirElemConstructor", "DirAttributeList", "DirAttributeValue", "DirElemContent", "CommonContent", "SequenceType", "EmptySequenceTest", "KindTest", "ItemTest", "FunctionTest", "AtomicType", "AtomicOrUnionType", "StringLiteral", "ElementContentChar", "AttributeValueChar", "QName", "BlockExpr", "BinaryTest", "EXPLICITLY"], + FOLLOW_p_VersionDecl_in_p_Module507: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_LibraryModule_in_p_Module540: new org.antlr.runtime.BitSet([0x00000000, 0x00000000]), + FOLLOW_p_MainModule_in_p_Module563: new org.antlr.runtime.BitSet([0x00000000, 0x00000000]), + FOLLOW_EOF_in_p_Module587: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_XQUERY_in_p_VersionDecl615: new org.antlr.runtime.BitSet([0x00000000, 0x00004000,0x00000000, 0x00002000]), + FOLLOW_ENCODING_in_p_VersionDecl623: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl629: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_VERSION_in_p_VersionDecl650: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl656: new org.antlr.runtime.BitSet([0x00000000, 0x00004000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_ENCODING_in_p_VersionDecl661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_VersionDecl667: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_VersionDecl673: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_Prolog_in_p_MainModule739: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pm_QueryBody_in_p_MainModule741: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ModuleDecl_in_p_LibraryModule797: new org.antlr.runtime.BitSet([0x00000000, 0x10000004]), + FOLLOW_pm_Prolog_in_p_LibraryModule799: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_MODULE_in_p_ModuleDecl855: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_p_ModuleDecl859: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_ModuleDecl863: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_ModuleDecl865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_ModuleDecl867: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ModuleDecl869: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DefaultNamespaceDecl_in_pm_Prolog928: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_p_Setter_in_pm_Prolog934: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pm_NamespaceDecl_in_pm_Prolog940: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_p_Import_in_pm_Prolog946: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pm_FTOptionDecl_in_pm_Prolog952: new org.antlr.runtime.BitSet([0x00000002, 0x10000004]), + FOLLOW_pg_OrderedDecl_in_pm_Prolog959: new org.antlr.runtime.BitSet([0x00000002, 0x00000004]), + FOLLOW_pm_ContextItemDecl_in_pg_OrderedDecl1274: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_AnnotatedDecl_in_pg_OrderedDecl1286: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_OptionDecl_in_pg_OrderedDecl1298: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_BoundarySpaceDecl_in_p_Setter1328: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DefaultCollationDecl_in_p_Setter1340: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_BaseURIDecl_in_p_Setter1352: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_ConstructionDecl_in_p_Setter1364: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_OrderingModeDecl_in_p_Setter1376: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_EmptyOrderDecl_in_p_Setter1388: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_RevalidationDecl_in_p_Setter1403: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CopyNamespacesDecl_in_p_Setter1415: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_DecimalFormatDecl_in_p_Setter1427: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_BoundarySpaceDecl1459: new org.antlr.runtime.BitSet([0x01000000, 0x00000000]), + FOLLOW_BOUNDARY_SPACE_in_pm_BoundarySpaceDecl1465: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01000000, 0x00000008]), + FOLLOW_PRESERVE_in_pm_BoundarySpaceDecl1474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_STRIP_in_pm_BoundarySpaceDecl1484: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_BoundarySpaceDecl1491: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DefaultCollationDecl1519: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_DefaultCollationDecl1525: new org.antlr.runtime.BitSet([0x40000000, 0x00000000]), + FOLLOW_COLLATION_in_pm_DefaultCollationDecl1531: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DefaultCollationDecl1535: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DefaultCollationDecl1537: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_BaseURIDecl1573: new org.antlr.runtime.BitSet([0x00800000, 0x00000000]), + FOLLOW_BASE_URI_in_pm_BaseURIDecl1579: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_BaseURIDecl1585: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_BaseURIDecl1587: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_ConstructionDecl1640: new org.antlr.runtime.BitSet([0x00000000, 0x00000001]), + FOLLOW_CONSTRUCTION_in_pm_ConstructionDecl1646: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01000000, 0x00000008]), + FOLLOW_STRIP_in_pm_ConstructionDecl1655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_PRESERVE_in_pm_ConstructionDecl1661: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_ConstructionDecl1668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_OrderingModeDecl1696: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_ORDERING_in_pm_OrderingModeDecl1702: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00080000, 0x00000400]), + FOLLOW_ORDERED_in_pm_OrderingModeDecl1711: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_UNORDERED_in_pm_OrderingModeDecl1717: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_OrderingModeDecl1724: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_EmptyOrderDecl1752: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_EmptyOrderDecl1758: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00040000, 0x00000000]), + FOLLOW_ORDER_in_pm_EmptyOrderDecl1764: new org.antlr.runtime.BitSet([0x00000000, 0x00001000]), + FOLLOW_EMPTY_in_pm_EmptyOrderDecl1770: new org.antlr.runtime.BitSet([0x00000000, 0x01000000,0x00000020, 0x00000000]), + FOLLOW_GREATEST_in_pm_EmptyOrderDecl1779: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_LEAST_in_pm_EmptyOrderDecl1785: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_EmptyOrderDecl1792: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_CopyNamespacesDecl1820: new org.antlr.runtime.BitSet([0x00000000, 0x00000002]), + FOLLOW_COPY_NAMESPACES_in_pm_CopyNamespacesDecl1826: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x01002000, 0x00000000]), + FOLLOW_p_PreserveMode_in_pm_CopyNamespacesDecl1830: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_pm_CopyNamespacesDecl1832: new org.antlr.runtime.BitSet([0x00000000, 0x40000000,0x00001000, 0x00000000]), + FOLLOW_p_InheritMode_in_pm_CopyNamespacesDecl1834: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_CopyNamespacesDecl1836: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRESERVE_in_p_PreserveMode1865: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_PRESERVE_in_p_PreserveMode1871: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INHERIT_in_p_InheritMode1903: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_INHERIT_in_p_InheritMode1909: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DecimalFormatDecl1948: new org.antlr.runtime.BitSet([0x00000000, 0x00000008,0x00000000, 0x00100000]), + FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1956: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_DecimalFormatDecl1960: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_DEFAULT_in_pm_DecimalFormatDecl1968: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00100000]), + FOLLOW_DECIMAL_FORMAT_in_pm_DecimalFormatDecl1974: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_p_DFPropertyName_in_pm_DecimalFormatDecl1981: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_DecimalFormatDecl1983: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DecimalFormatDecl1985: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x2E600000,0x00001007, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DecimalFormatDecl1989: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECIMAL_SEPARATOR_in_p_DFPropertyName2018: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GROUPING_SEPARATOR_in_p_DFPropertyName2024: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INFINITY_in_p_DFPropertyName2030: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_MINUS_SIGN_in_p_DFPropertyName2036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAN_in_p_DFPropertyName2042: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PERCENT_in_p_DFPropertyName2048: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PER_MILLE_in_p_DFPropertyName2054: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ZERO_DIGIT_in_p_DFPropertyName2060: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIGIT_in_p_DFPropertyName2066: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PATTERN_SEPARATOR_in_p_DFPropertyName2072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_SchemaImport_in_p_Import2101: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_ModuleImport_in_p_Import2105: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IMPORT_in_pm_SchemaImport2141: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_SCHEMA_in_pm_SchemaImport2147: new org.antlr.runtime.BitSet([0x00000000, 0x00000008,0x00000400, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_SchemaPrefix_in_pm_SchemaImport2153: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2158: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_AT_in_pm_SchemaImport2163: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2169: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_pm_SchemaImport2172: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_SchemaImport2176: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_pm_SchemaImport2182: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_in_p_SchemaPrefix2252: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_SchemaPrefix2258: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_SchemaPrefix2260: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DEFAULT_in_p_SchemaPrefix2299: new org.antlr.runtime.BitSet([0x00000000, 0x00000400]), + FOLLOW_ELEMENT_in_p_SchemaPrefix2305: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_p_SchemaPrefix2311: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IMPORT_in_pm_ModuleImport2361: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000200, 0x00000000]), + FOLLOW_MODULE_in_pm_ModuleImport2367: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_ModuleImport2374: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_ModuleImport2380: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_ModuleImport2382: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2388: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_AT_in_pm_ModuleImport2393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_pm_ModuleImport2402: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_ModuleImport2406: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_pm_ModuleImport2412: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_NamespaceDecl2481: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_NamespaceDecl2487: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_NamespaceDecl2493: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_pm_NamespaceDecl2495: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_NamespaceDecl2499: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_NamespaceDecl2501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_DefaultNamespaceDecl2558: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_pm_DefaultNamespaceDecl2564: new org.antlr.runtime.BitSet([0x00000000, 0x00400400]), + FOLLOW_ELEMENT_in_pm_DefaultNamespaceDecl2571: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_FUNCTION_in_pm_DefaultNamespaceDecl2577: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_NAMESPACE_in_pm_DefaultNamespaceDecl2584: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_DefaultNamespaceDecl2588: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_DefaultNamespaceDecl2590: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_AnnotatedDecl2618: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00001000,0x08000000, 0x00000000,0x00188000, 0x00000080]), + FOLLOW_p_Annotation_in_pm_AnnotatedDecl2622: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00001000,0x08000000, 0x00000000,0x00188000, 0x00000080]), + FOLLOW_pg_AnnotatedDecl_in_pm_AnnotatedDecl2625: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_AnnotatedDecl2627: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarDecl_in_pg_AnnotatedDecl2651: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_FunctionDecl_in_pg_AnnotatedDecl2663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CollectionDecl_in_pg_AnnotatedDecl2678: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IndexDecl_in_pg_AnnotatedDecl2693: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICDecl_in_pg_AnnotatedDecl2708: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANN_PERCENT_in_p_Annotation2734: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_Annotation2736: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_Annotation2739: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_Literal_in_p_Annotation2741: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_Annotation2744: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_Literal_in_p_Annotation2746: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_Annotation2750: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VARIABLE_in_p_VarDecl2780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDecl2786: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_VarDecl2790: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_TypeDeclaration_in_p_VarDecl2796: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_VarDecl2801: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarValue_in_p_VarDecl2805: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXTERNAL_in_p_VarDecl2813: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_VarDecl2818: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarDefaultValue_in_p_VarDecl2822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarValue2901: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDefaultValue2928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_ContextItemDecl2957: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_CONTEXT_in_pm_ContextItemDecl2963: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_ITEM_in_pm_ContextItemDecl2969: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_AS_in_pm_ContextItemDecl2976: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ItemType_in_pm_ContextItemDecl2980: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_pm_ContextItemDecl2986: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarValue_in_pm_ContextItemDecl2988: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_EXTERNAL_in_pm_ContextItemDecl2996: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000020]), + FOLLOW_BIND_in_pm_ContextItemDecl3001: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarDefaultValue_in_pm_ContextItemDecl3003: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_ContextItemDecl3009: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UPDATING_in_pm_FunctionDecl3042: new org.antlr.runtime.BitSet([0x00000000, 0x00400000]), + FOLLOW_FUNCTION_in_pm_FunctionDecl3050: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pg_FQName_in_pm_FunctionDecl3056: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_pm_FunctionDecl3058: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0xC0000000, 0x00000000]), + FOLLOW_p_ParamList_in_pm_FunctionDecl3062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_pm_FunctionDecl3065: new org.antlr.runtime.BitSet([0x00080000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_AS_in_pm_FunctionDecl3070: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_pm_FunctionDecl3076: new org.antlr.runtime.BitSet([0x00000000, 0x00040000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_FunctionDecl3081: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_FunctionDecl3085: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_FunctionDecl3087: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXTERNAL_in_pm_FunctionDecl3093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Param_in_p_ParamList3170: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_ParamList3173: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_Param_in_p_ParamList3177: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_Param3237: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_Param3241: new org.antlr.runtime.BitSet([0x00080002, 0x00000000]), + FOLLOW_p_TypeDeclaration_in_p_Param3247: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_EnclosedExpr_in_pm_FunctionBody3303: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_EnclosedExpr3330: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_EnclosedExpr3332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_EnclosedExpr3335: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_OptionDecl3387: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00010000, 0x00000000]), + FOLLOW_OPTION_in_pm_OptionDecl3393: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_OptionDecl3397: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_pm_OptionDecl3399: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_OptionDecl3401: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Program_in_pm_QueryBody3430: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_pm_QueryBody3442: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Expr3478: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_Expr3494: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Expr3496: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_FLWORHybrid_in_p_ExprSingle3563: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IfHybrid_in_p_ExprSingle3593: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SwitchHybrid_in_p_ExprSingle3619: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TypeswitchHybrid_in_p_ExprSingle3641: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TryCatchHybrid_in_p_ExprSingle3668: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSimple_in_p_ExprSingle3681: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_FLWORHybrid3708: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_IntermediateClause_in_p_FLWORHybrid3710: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_ReturnHybrid_in_p_FLWORHybrid3713: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ForClause_in_p_InitialClause3740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_LetClause_in_p_InitialClause3744: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WindowClause_in_p_InitialClause3748: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_IntermediateClause3774: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WhereClause_in_p_IntermediateClause3778: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_GroupByClause_in_p_IntermediateClause3782: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderByClause_in_p_IntermediateClause3786: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CountClause_in_p_IntermediateClause3790: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RangeExpr_in_p_StringConcatExpr3811: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_CONCAT_in_p_StringConcatExpr3817: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RangeExpr_in_p_StringConcatExpr3821: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_FOR_in_p_ForClause3848: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_ForBinding_in_p_ForClause3852: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_ForClause3855: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_ForBinding_in_p_ForClause3857: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_ForBinding3887: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_ForBinding3891: new org.antlr.runtime.BitSet([0x00280000, 0x20000000,0x00000000, 0x00010000,0x00000000, 0x02000000]), + FOLLOW_p_TypeDeclaration_in_p_ForBinding3895: new org.antlr.runtime.BitSet([0x00200000, 0x20000000,0x00000000, 0x00010000,0x00000000, 0x02000000]), + FOLLOW_p_AllowingEmpty_in_p_ForBinding3898: new org.antlr.runtime.BitSet([0x00200000, 0x20000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_p_PositionalVar_in_p_ForBinding3901: new org.antlr.runtime.BitSet([0x00000000, 0x20000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_p_FTScoreVar_in_p_ForBinding3904: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_ForBinding3909: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ForBinding3913: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ALLOWING_in_p_AllowingEmpty3942: new org.antlr.runtime.BitSet([0x00000000, 0x00001000]), + FOLLOW_EMPTY_in_p_AllowingEmpty3948: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_PositionalVar3978: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_PositionalVar3984: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_PositionalVar3988: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LET_in_p_LetClause4018: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000,0x80000000, 0x00000000]), + FOLLOW_p_LetBinding_in_p_LetClause4022: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_LetClause4025: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000,0x80000000, 0x00000000]), + FOLLOW_p_LetBinding_in_p_LetClause4027: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_LetBinding4061: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_LetBinding4065: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_TypeDeclaration_in_p_LetBinding4069: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_p_FTScoreVar_in_p_LetBinding4075: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_LetBinding4079: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_LetBinding4081: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOR_in_p_WindowClause4110: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000110, 0x00000000]), + FOLLOW_p_TumblingWindowClause_in_p_WindowClause4115: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SlidingWindowClause_in_p_WindowClause4119: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TUMBLING_in_p_TumblingWindowClause4156: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_WINDOW_in_p_TumblingWindowClause4162: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TumblingWindowClause4168: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TumblingWindowClause4172: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_TumblingWindowClause4176: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_TumblingWindowClause4181: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TumblingWindowClause4185: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_WindowStartCondition_in_p_TumblingWindowClause4188: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x80800000]), + FOLLOW_p_WindowEndCondition_in_p_TumblingWindowClause4190: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLIDING_in_p_SlidingWindowClause4219: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_WINDOW_in_p_SlidingWindowClause4225: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_SlidingWindowClause4231: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_SlidingWindowClause4235: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_SlidingWindowClause4239: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_SlidingWindowClause4244: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SlidingWindowClause4248: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_WindowStartCondition_in_p_SlidingWindowClause4251: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x80800000]), + FOLLOW_p_WindowEndCondition_in_p_SlidingWindowClause4253: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_START_in_p_WindowStartCondition4282: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x40000000,0x00000408, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_WindowVars_in_p_WindowStartCondition4286: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_WHEN_in_p_WindowStartCondition4290: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WindowStartCondition4294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ONLY_in_p_WindowEndCondition4324: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00800000]), + FOLLOW_END_in_p_WindowEndCondition4332: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x40000000,0x00000408, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_WindowVars_in_p_WindowEndCondition4336: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000400, 0x00000000]), + FOLLOW_WHEN_in_p_WindowEndCondition4340: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WindowEndCondition4344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4374: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CurrentItem_in_p_WindowVars4378: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x40000000,0x00000008, 0x00000000]), + FOLLOW_p_PositionalVar_in_p_WindowVars4384: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x40000000,0x00000008, 0x00000000]), + FOLLOW_PREVIOUS_in_p_WindowVars4390: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4394: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PreviousItem_in_p_WindowVars4396: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_NEXT_in_p_WindowVars4403: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_WindowVars4407: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NextItem_in_p_WindowVars4409: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_CurrentItem4437: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_PreviousItem4463: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NextItem4489: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COUNT_in_p_CountClause4517: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CountClause4523: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CountClause4527: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WHERE_in_p_WhereClause4565: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_WhereClause4569: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GROUP_in_p_GroupByClause4598: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_GroupByClause4604: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_GroupingSpecList_in_p_GroupByClause4608: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4634: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_GroupingSpecList4637: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_p_GroupingSpec_in_p_GroupingSpecList4639: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_DOLLAR_in_p_GroupingSpec4669: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_GroupingSpec4673: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_COLLATION_in_p_GroupingSpec4680: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_GroupingSpec4684: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDER_in_p_OrderByClause4716: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_OrderByClause4720: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_STABLE_in_p_OrderByClause4728: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00040000, 0x00000000]), + FOLLOW_ORDER_in_p_OrderByClause4732: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_OrderByClause4736: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_OrderSpecList_in_p_OrderByClause4742: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderSpec_in_p_OrderSpecList4768: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_OrderSpecList4771: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_OrderSpec_in_p_OrderSpecList4773: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_ExprSingle_in_p_OrderSpec4801: new org.antlr.runtime.BitSet([0x40100000, 0x00001040]), + FOLLOW_p_OrderModifier_in_p_OrderSpec4804: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ASCENDING_in_p_OrderModifier4833: new org.antlr.runtime.BitSet([0x40000002, 0x00001000]), + FOLLOW_DESCENDING_in_p_OrderModifier4839: new org.antlr.runtime.BitSet([0x40000002, 0x00001000]), + FOLLOW_EMPTY_in_p_OrderModifier4846: new org.antlr.runtime.BitSet([0x00000000, 0x01000000,0x00000020, 0x00000000]), + FOLLOW_GREATEST_in_p_OrderModifier4851: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_LEAST_in_p_OrderModifier4857: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_COLLATION_in_p_OrderModifier4865: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_OrderModifier4867: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RETURN_in_p_ReturnHybrid4900: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_ReturnHybrid4904: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SOME_in_p_QuantifiedExpr4934: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_EVERY_in_p_QuantifiedExpr4940: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_QuantifiedExpr4947: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_QuantifiedExpr4951: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4955: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_QuantifiedExpr4960: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4964: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x08000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_QuantifiedExpr4968: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_QuantifiedExpr4972: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_QuantifiedExpr4976: new org.antlr.runtime.BitSet([0x00080000, 0x20000000]), + FOLLOW_p_TypeDeclaration_in_p_QuantifiedExpr4980: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_QuantifiedExpr4985: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr4989: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x08000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_SATISFIES_in_p_QuantifiedExpr4996: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_QuantifiedExpr5000: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_p_SwitchHybrid5030: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SwitchHybrid5034: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_SwitchHybrid5036: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SwitchHybrid5039: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_SwitchCaseHybrid_in_p_SwitchHybrid5041: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_SwitchHybrid5047: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchHybrid5053: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchHybrid5057: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_SwitchCaseHybrid5088: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseHybrid5092: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchCaseHybrid5098: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchCaseHybrid5102: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SwitchCaseOperand5129: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPESWITCH_in_p_TypeswitchHybrid5159: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypeswitchHybrid5163: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_TypeswitchHybrid5165: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TypeswitchHybrid5168: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_CaseHybrid_in_p_TypeswitchHybrid5170: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_TypeswitchHybrid5176: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TypeswitchHybrid5183: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TypeswitchHybrid5187: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TypeswitchHybrid5195: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_TypeswitchHybrid5199: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_CaseHybrid5229: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CaseHybrid5236: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CaseHybrid5240: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CaseHybrid5246: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceTypeUnion_in_p_CaseHybrid5252: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_CaseHybrid5256: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_CaseHybrid5260: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5287: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_VBAR_in_p_SequenceTypeUnion5290: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_SequenceTypeUnion5292: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_IF_in_p_IfHybrid5323: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_IfHybrid5327: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_IfHybrid5329: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_IfHybrid5332: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_THEN_in_p_IfHybrid5336: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfHybrid5340: new org.antlr.runtime.BitSet([0x00000000, 0x00000800]), + FOLLOW_ELSE_in_p_IfHybrid5345: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfHybrid5349: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TryClause_in_p_TryCatchExpr5376: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_p_CatchClause_in_p_TryCatchExpr5378: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TRY_in_p_TryClause5407: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_TryClause5411: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TryTargetExpr_in_p_TryClause5413: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_TryClause5415: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_TryTargetExpr5441: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CATCH_in_p_CatchClause5470: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_CatchClause5474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CatchClause5476: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CatchClause5478: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CatchClause5481: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NameTest_in_p_CatchErrorList5507: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_VBAR_in_p_CatchErrorList5510: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NameTest_in_p_CatchErrorList5512: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_p_AndExpr_in_p_OrExpr5557: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_OR_in_p_OrExpr5563: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AndExpr_in_p_OrExpr5567: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_p_ComparisonExpr_in_p_AndExpr5596: new org.antlr.runtime.BitSet([0x00040002, 0x00000000]), + FOLLOW_AND_in_p_AndExpr5602: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ComparisonExpr_in_p_AndExpr5606: new org.antlr.runtime.BitSet([0x00040002, 0x00000000]), + FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5636: new org.antlr.runtime.BitSet([0x00000002, 0x02808000,0x00000892, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x001F8050]), + FOLLOW_p_ValueComp_in_p_ComparisonExpr5641: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_GeneralComp_in_p_ComparisonExpr5645: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeComp_in_p_ComparisonExpr5649: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_FTContainsExpr_in_p_ComparisonExpr5652: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_RangeExpr5681: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_RangeExpr5687: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_RangeExpr5691: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5720: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00006000]), + FOLLOW_PLUS_in_p_AdditiveExpr5727: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MINUS_in_p_AdditiveExpr5735: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_MultiplicativeExpr_in_p_AdditiveExpr5740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00006000]), + FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5769: new org.antlr.runtime.BitSet([0x00000002, 0x04000080,0x00000100, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_MultiplicativeExpr5776: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DIV_in_p_MultiplicativeExpr5785: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_IDIV_in_p_MultiplicativeExpr5791: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MOD_in_p_MultiplicativeExpr5797: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_UnionExpr_in_p_MultiplicativeExpr5803: new org.antlr.runtime.BitSet([0x00000002, 0x04000080,0x00000100, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5832: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000200,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_UNION_in_p_UnionExpr5839: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_VBAR_in_p_UnionExpr5845: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IntersectExceptExpr_in_p_UnionExpr5848: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000200,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5877: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000001, 0x00000000]), + FOLLOW_INTERSECT_in_p_IntersectExceptExpr5884: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_EXCEPT_in_p_IntersectExceptExpr5890: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_InstanceofExpr_in_p_IntersectExceptExpr5895: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000001, 0x00000000]), + FOLLOW_p_TreatExpr_in_p_InstanceofExpr5924: new org.antlr.runtime.BitSet([0x00000002, 0x80000000]), + FOLLOW_INSTANCE_in_p_InstanceofExpr5930: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_OF_in_p_InstanceofExpr5936: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_InstanceofExpr5940: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CastableExpr_in_p_TreatExpr5968: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_TREAT_in_p_TreatExpr5974: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_TreatExpr5980: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TreatExpr5984: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CastExpr_in_p_CastableExpr6021: new org.antlr.runtime.BitSet([0x10000002, 0x00000000]), + FOLLOW_CASTABLE_in_p_CastableExpr6027: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CastableExpr6033: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SingleType_in_p_CastableExpr6037: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_UnaryExpr_in_p_CastExpr6074: new org.antlr.runtime.BitSet([0x08000002, 0x00000000]), + FOLLOW_CAST_in_p_CastExpr6080: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CastExpr6086: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SingleType_in_p_CastExpr6090: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PLUS_in_p_UnaryExpr6122: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_MINUS_in_p_UnaryExpr6130: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ValueExpr_in_p_UnaryExpr6135: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ValidateExpr_in_p_ValueExpr6205: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ValueExpr6217: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExtensionExpr_in_p_ValueExpr6229: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EQUAL_in_p_GeneralComp6258: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NOTEQUAL_in_p_GeneralComp6264: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_in_p_GeneralComp6270: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLEREQ_in_p_GeneralComp6276: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_in_p_GeneralComp6282: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATEREQ_in_p_GeneralComp6288: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EQ_in_p_ValueComp6320: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NE_in_p_ValueComp6326: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LT_in_p_ValueComp6332: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LE_in_p_ValueComp6338: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GT_in_p_ValueComp6344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GE_in_p_ValueComp6350: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IS_in_p_NodeComp6381: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_SMALLER_in_p_NodeComp6387: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_GREATER_in_p_NodeComp6391: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VALIDATE_in_p_ValidateExpr6419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000008, 0x00000004,0x00000200, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_ValidationMode_in_p_ValidateExpr6425: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_TYPE_in_p_ValidateExpr6431: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_ValidateExpr6435: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_ValidateExpr6440: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ValidateExpr6442: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_ValidateExpr6445: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LAX_in_p_ValidationMode6474: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STRICT_in_p_ValidationMode6480: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_Pragma_in_p_ExtensionExpr6509: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00080000, 0x00000000]), + FOLLOW_LBRACKET_in_p_ExtensionExpr6512: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F003,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ExtensionExpr6514: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_ExtensionExpr6518: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_p_PathExpr6561: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6563: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_p_PathExpr6576: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_SLASH_in_p_PathExpr6588: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6590: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_p_PathExpr6602: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StepExpr_in_p_RelativePathExpr6630: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00600000]), + FOLLOW_set_in_p_RelativePathExpr6633: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StepExpr_in_p_RelativePathExpr6641: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00600000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6695: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6809: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AxisStep_in_p_StepExpr6827: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6848: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PostfixExpr_in_p_StepExpr6866: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AxisStep_in_p_StepExpr6878: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReverseStep_in_p_AxisStep6905: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_ForwardStep_in_p_AxisStep6909: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_PredicateList_in_p_AxisStep6912: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ForwardAxis_in_p_ForwardStep6938: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_ForwardStep6940: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AbbrevForwardStep_in_p_ForwardStep6952: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CHILD_in_p_ForwardAxis6978: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis6980: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DESCENDANT_in_p_ForwardAxis6992: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis6994: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_p_ForwardAxis7006: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7008: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SELF_in_p_ForwardAxis7020: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7022: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DESCENDANT_OR_SELF_in_p_ForwardAxis7034: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOLLOWING_SIBLING_in_p_ForwardAxis7048: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7050: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOLLOWING_in_p_ForwardAxis7062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ForwardAxis7064: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTR_SIGN_in_p_AbbrevForwardStep7090: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_AbbrevForwardStep7093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReverseAxis_in_p_ReverseStep7119: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001000,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NodeTest_in_p_ReverseStep7121: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AbbrevReverseStep_in_p_ReverseStep7133: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARENT_in_p_ReverseAxis7159: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7161: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANCESTOR_in_p_ReverseAxis7173: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7175: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRECEDING_SIBLING_in_p_ReverseAxis7187: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7189: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PRECEDING_in_p_ReverseAxis7201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7203: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANCESTOR_OR_SELF_in_p_ReverseAxis7215: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_COLON_COLON_in_p_ReverseAxis7217: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOT_DOT_in_p_AbbrevReverseStep7243: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_p_NodeTest7269: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NameTest_in_p_NodeTest7273: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Wildcard_in_p_NameTest7305: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NameTest7326: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_NameTest7344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_Wildcard7374: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7377: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_Wildcard7379: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_Wildcard7393: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7395: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_Wildcard7397: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_Wildcard7409: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_p_Wildcard7411: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_Wildcard7413: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PrimaryExpr_in_p_PostfixExpr7451: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_p_Predicate_in_p_PostfixExpr7454: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_LPAREN_in_p_ArgumentList7495: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xEFFFFFFF, 0x01E0F801,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Argument_in_p_ArgumentList7498: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_ArgumentList7501: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F801,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Argument_in_p_ArgumentList7503: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_ArgumentList7509: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Predicate_in_p_PredicateList7535: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000004]), + FOLLOW_LSQUARE_in_p_Predicate7562: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_Predicate7564: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000008]), + FOLLOW_RSQUARE_in_p_Predicate7567: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ParenthesizedExpr_in_p_PrimaryExpr7600: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Literal_in_p_PrimaryExpr7612: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarRef_in_p_PrimaryExpr7624: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ContextItemExpr_in_p_PrimaryExpr7636: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FunctionCall_in_p_PrimaryExpr7648: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrderedExpr_in_p_PrimaryExpr7660: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_UnorderedExpr_in_p_PrimaryExpr7672: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Constructor_in_p_PrimaryExpr7684: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_BlockExpr_in_p_PrimaryExpr7698: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NumericLiteral_in_p_Literal7724: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_Literal7728: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_NumericLiteral7756: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DecimalLiteral_in_p_NumericLiteral7764: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DoubleLiteral_in_p_NumericLiteral7772: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarRef7810: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarRef7814: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_VarName7842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_ParenthesizedExpr7868: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xEFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_ParenthesizedExpr7870: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ParenthesizedExpr7874: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOT_in_p_ContextItemExpr7900: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDERED_in_p_OrderedExpr7928: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_OrderedExpr7932: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_OrderedExpr7934: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_OrderedExpr7937: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UNORDERED_in_p_UnorderedExpr7965: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_UnorderedExpr7969: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_UnorderedExpr7971: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_UnorderedExpr7974: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_FQName_in_p_FunctionCall8003: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_ArgumentList_in_p_FunctionCall8008: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_Argument8034: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ArgumentPlaceholder_in_p_Argument8039: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_QUESTION_in_p_ArgumentPlaceholder8065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirectConstructor_in_p_Constructor8091: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ComputedConstructor_in_p_Constructor8103: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirElemConstructor_in_p_DirectConstructor8129: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirCommentConstructor_in_p_DirectConstructor8141: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirPIConstructor_in_p_DirectConstructor8153: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SMALLER_in_p_DirElemConstructor8180: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirElemConstructor8196: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08010000,0x00020000, 0x00000000]), + FOLLOW_p_DirAttributeList_in_p_DirElemConstructor8201: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08010000]), + FOLLOW_EMPTY_CLOSE_TAG_in_p_DirElemConstructor8215: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_GREATER_in_p_DirElemConstructor8220: new org.antlr.runtime.BitSet([0x00000FC0, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10008001,0x00300000, 0x00000000]), + FOLLOW_pm_DirElemContent_in_p_DirElemConstructor8222: new org.antlr.runtime.BitSet([0x00000FC0, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10008001,0x00300000, 0x00000000]), + FOLLOW_CLOSE_TAG_in_p_DirElemConstructor8225: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirElemConstructor8229: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000,0x00020000, 0x00000000]), + FOLLOW_S_in_p_DirElemConstructor8233: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_GREATER_in_p_DirElemConstructor8236: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8313: new org.antlr.runtime.BitSet([0xFFFF0002, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00021000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_DirAttributeList8318: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010,0x00020000, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_EQUAL_in_p_DirAttributeList8325: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020300, 0x00000000]), + FOLLOW_S_in_p_DirAttributeList8327: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020300, 0x00000000]), + FOLLOW_p_DirAttributeValue_in_p_DirAttributeList8332: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00020000, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8366: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_ESCAPE_QUOT_in_p_DirAttributeValue8373: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8379: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_p_QuotAttrValueContent_in_p_DirAttributeValue8383: new org.antlr.runtime.BitSet([0x00002F10, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8389: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8434: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_ESCAPE_APOS_in_p_DirAttributeValue8441: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_QUOT_in_p_DirAttributeValue8447: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_p_AposAttrValueContent_in_p_DirAttributeValue8451: new org.antlr.runtime.BitSet([0x00001F20, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00000300, 0x00000000]), + FOLLOW_APOS_in_p_DirAttributeValue8457: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QuotAttrContentChar_in_p_QuotAttrValueContent8515: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_p_QuotAttrValueContent8521: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AposAttrContentChar_in_p_AposAttrValueContent8549: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_p_AposAttrValueContent8555: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DirectConstructor_in_pm_DirElemContent8581: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CDataSection_in_pm_DirElemContent8593: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CommonContent_in_pm_DirElemContent8605: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementContentChar_in_pm_DirElemContent8617: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_PredefinedEntityRef_in_pm_CommonContent8645: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_CharRef_in_pm_CommonContent8657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ESCAPE_LBRACKET_in_pm_CommonContent8671: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ESCAPE_RBRACKET_in_pm_CommonContent8687: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_EnclosedExprXml_in_pm_CommonContent8701: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_pg_EnclosedExprXml8733: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pg_EnclosedExprXml8749: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pg_EnclosedExprXml8763: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DirCommentConstructor_in_p_DirCommentConstructor8794: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_DirPIConstructor_in_p_DirPIConstructor8830: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_CDataSection_in_p_CDataSection8867: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompDocConstructor_in_p_ComputedConstructor8901: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompElemConstructor_in_p_ComputedConstructor8913: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompAttrConstructor_in_p_ComputedConstructor8925: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompNamespaceConstructor_in_p_ComputedConstructor8937: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompTextConstructor_in_p_ComputedConstructor8949: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompCommentConstructor_in_p_ComputedConstructor8961: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pm_CompPIConstructor_in_p_ComputedConstructor8973: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CompBinaryConstructor_in_p_ComputedConstructor8988: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOCUMENT_in_pm_CompDocConstructor9017: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompDocConstructor9021: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompDocConstructor9023: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompDocConstructor9025: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ELEMENT_in_pm_CompElemConstructor9061: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_CompElemConstructor9066: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompElemConstructor9071: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompElemConstructor9073: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompElemConstructor9076: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompElemConstructor9080: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_pm_ContentExpr_in_pm_CompElemConstructor9082: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompElemConstructor9084: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_ContentExpr9111: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_pm_CompAttrConstructor9140: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_pm_CompAttrConstructor9145: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompAttrConstructor9150: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompAttrConstructor9152: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompAttrConstructor9155: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompAttrConstructor9159: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompAttrConstructor9161: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompAttrConstructor9163: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_in_p_CompNamespaceConstructor9191: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Prefix_in_p_CompNamespaceConstructor9196: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9201: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PrefixExpr_in_p_CompNamespaceConstructor9203: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9205: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompNamespaceConstructor9209: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F003,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_URIExpr_in_p_CompNamespaceConstructor9211: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompNamespaceConstructor9214: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_Prefix9240: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_PrefixExpr9266: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_URIExpr9293: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TEXT_in_p_CompTextConstructor9322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompTextConstructor9326: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CompTextConstructor9328: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompTextConstructor9331: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BINARY_in_p_CompBinaryConstructor9359: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_CompBinaryConstructor9363: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_CompBinaryConstructor9365: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_CompBinaryConstructor9368: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COMMENT_in_pm_CompCommentConstructor9397: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompCommentConstructor9401: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompCommentConstructor9403: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompCommentConstructor9405: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PROCESSING_INSTRUCTION_in_pm_CompPIConstructor9434: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pm_CompPIConstructor9439: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompPIConstructor9444: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_pm_CompPIConstructor9446: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompPIConstructor9449: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_pm_CompPIConstructor9453: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_pm_CompPIConstructor9455: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_pm_CompPIConstructor9457: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AtomicOrUnionType_in_p_SingleType9501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_QUESTION_in_p_SingleType9503: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_TypeDeclaration9532: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypeDeclaration9538: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EMPTY_SEQUENCE_in_p_SequenceType9591: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SequenceType9597: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SequenceType9601: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ItemType_in_p_SequenceType9650: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_SequenceType9661: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_OccurrenceIndicator0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_p_ItemType9763: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BINARY_in_p_ItemType9803: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ItemType9805: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ItemType9807: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ITEM_in_p_ItemType9849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ItemType9851: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ItemType9853: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AtomicOrUnionType_in_p_ItemType9897: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ParenthesizedItemType_in_p_ItemType9909: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AtomicOrUnionType9935: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DocumentTest_in_p_KindTest9985: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementTest_in_p_KindTest9997: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeTest_in_p_KindTest10009: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SchemaElementTest_in_p_KindTest10021: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_SchemaAttributeTest_in_p_KindTest10033: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PITest_in_p_KindTest10045: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_CommentTest_in_p_KindTest10057: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TextTest_in_p_KindTest10069: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NamespaceNodeTest_in_p_KindTest10081: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AnyKindTest_in_p_KindTest10093: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NODE_in_p_AnyKindTest10119: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AnyKindTest10121: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AnyKindTest10123: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOCUMENT_NODE_in_p_DocumentTest10149: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_DocumentTest10151: new org.antlr.runtime.BitSet([0x00000000, 0x00000400,0x40000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_ElementTest_in_p_DocumentTest10154: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_SchemaElementTest_in_p_DocumentTest10158: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_DocumentTest10162: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TEXT_in_p_TextTest10188: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TextTest10190: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TextTest10192: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COMMENT_in_p_CommentTest10218: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_CommentTest10220: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_CommentTest10222: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NAMESPACE_NODE_in_p_NamespaceNodeTest10248: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_NamespaceNodeTest10250: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_NamespaceNodeTest10252: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PROCESSING_INSTRUCTION_in_p_PITest10278: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_PITest10280: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00000000,0x01C01300, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_p_PITest10283: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_PITest10287: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_PITest10291: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ATTRIBUTE_in_p_AttributeTest10317: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AttributeTest10319: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00001000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AttribNameOrWildcard_in_p_AttributeTest10322: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_AttributeTest10325: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_AttributeTest10327: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AttributeTest10333: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeName_in_p_AttribNameOrWildcard10361: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_AttribNameOrWildcard10365: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCHEMA_ATTRIBUTE_in_p_SchemaAttributeTest10391: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SchemaAttributeTest10393: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AttributeDeclaration_in_p_SchemaAttributeTest10395: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SchemaAttributeTest10397: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AttributeName_in_p_AttributeDeclaration10423: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ELEMENT_in_p_ElementTest10449: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_ElementTest10451: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x4FFFFFFF, 0x00001000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ElementNameOrWildcard_in_p_ElementTest10454: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_ElementTest10457: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TypeName_in_p_ElementTest10459: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000800]), + FOLLOW_QUESTION_in_p_ElementTest10461: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ElementTest10468: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_ElementNameOrWildcard10494: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STAR_in_p_ElementNameOrWildcard10498: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCHEMA_ELEMENT_in_p_SchemaElementTest10516: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SchemaElementTest10518: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ElementDeclaration_in_p_SchemaElementTest10520: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SchemaElementTest10522: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ElementName_in_p_ElementDeclaration10548: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AttributeName10574: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_ElementName10600: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_TypeName10626: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Annotation_in_p_FunctionTest10652: new org.antlr.runtime.BitSet([0x00000000, 0x00400000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_p_AnyFunctionTest_in_p_FunctionTest10656: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TypedFunctionTest_in_p_FunctionTest10660: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FUNCTION_in_p_AnyFunctionTest10687: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_AnyFunctionTest10689: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_STAR_in_p_AnyFunctionTest10691: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_AnyFunctionTest10693: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FUNCTION_in_p_TypedFunctionTest10719: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypedFunctionTest10721: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x6FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10724: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_TypedFunctionTest10727: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10729: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_TypedFunctionTest10735: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_TypedFunctionTest10737: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_TypedFunctionTest10739: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_ParenthesizedItemType10765: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ItemType_in_p_ParenthesizedItemType10767: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_ParenthesizedItemType10769: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_QUOT_in_p_StringLiteral10820: new org.antlr.runtime.BitSet([0xFFFFFFF0, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFFFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_pg_QuotStringLiteralContent_in_p_StringLiteral10824: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000200, 0x00000000]), + FOLLOW_QUOT_in_p_StringLiteral10826: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_APOS_in_p_StringLiteral10865: new org.antlr.runtime.BitSet([0xFFFFFFF0, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFFFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_pg_AposStringLiteralContent_in_p_StringLiteral10869: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000100, 0x00000000]), + FOLLOW_APOS_in_p_StringLiteral10871: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_pg_QuotStringLiteralContent10937: new org.antlr.runtime.BitSet([0xFFFFFFF2, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFDFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_set_in_pg_AposStringLiteralContent10988: new org.antlr.runtime.BitSet([0xFFFFFFF2, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFDFF,0xFFFFFEFF, 0xFFFFFFFF,0x001FFFFF, 0x00000000]), + FOLLOW_L_ElementContentChar_in_p_ElementContentChar11046: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_QuotAttrContentChar_in_p_QuotAttrContentChar11072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_AposAttrContentChar_in_p_AposAttrContentChar11122: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_QName_in_p_QName11208: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_p_QName11220: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_QName_in_pg_FQName11281: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FNCName_in_pg_FQName11293: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_pg_QName11337: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_pg_QName11339: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_pg_QName11343: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_NCName0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_p_FNCName0: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InsertExpr_in_pg_UpdateExpr13334: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_DeleteExpr_in_pg_UpdateExpr13346: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_RenameExpr_in_pg_UpdateExpr13358: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ReplaceExpr_in_pg_UpdateExpr13370: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_TransformExpr_in_pg_UpdateExpr13382: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_RevalidationDecl13410: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x02000000, 0x00000000]), + FOLLOW_REVALIDATION_in_pm_RevalidationDecl13414: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000008, 0x00000004,0x04000000, 0x00000000]), + FOLLOW_STRICT_in_pm_RevalidationDecl13419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_LAX_in_pm_RevalidationDecl13425: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SKIP_in_pm_RevalidationDecl13431: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_RevalidationDecl13436: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_InsertExprTargetChoice13466: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00120000, 0x00000000]), + FOLLOW_FIRST_in_p_InsertExprTargetChoice13471: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00080000, 0x00000000]), + FOLLOW_LAST_in_p_InsertExprTargetChoice13477: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00080000, 0x00000000]), + FOLLOW_INTO_in_p_InsertExprTargetChoice13484: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AFTER_in_p_InsertExprTargetChoice13501: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BEFORE_in_p_InsertExprTargetChoice13517: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INSERT_in_p_InsertExpr13547: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODE_in_p_InsertExpr13552: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_NODES_in_p_InsertExpr13558: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SourceExpr_in_p_InsertExpr13561: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00086000, 0x00000000]), + FOLLOW_p_InsertExprTargetChoice_in_p_InsertExpr13563: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_InsertExpr13565: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DELETE_in_p_DeleteExpr13595: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODE_in_p_DeleteExpr13600: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_NODES_in_p_DeleteExpr13606: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_DeleteExpr13609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_REPLACE_in_p_ReplaceExpr13639: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x10000000, 0x00000000]), + FOLLOW_VALUE_in_p_ReplaceExpr13644: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_OF_in_p_ReplaceExpr13648: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ReplaceExpr13654: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ReplaceExpr13656: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_WITH_in_p_ReplaceExpr13661: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ReplaceExpr13663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RENAME_in_p_RenameExpr13694: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_RenameExpr13698: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_TargetExpr_in_p_RenameExpr13700: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_RenameExpr13704: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NewNameExpr_in_p_RenameExpr13706: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_SourceExpr13734: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TargetExpr13761: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_NewNameExpr13788: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COPY_in_p_TransformExpr13817: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TransformExpr13821: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TransformExpr13825: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_TransformExpr13829: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13831: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_TransformExpr13835: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TransformExpr13839: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TransformExpr13843: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_TransformExpr13847: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_MODIFY_in_p_TransformExpr13856: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13858: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TransformExpr13863: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_TransformExpr13865: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DECLARE_in_pm_FTOptionDecl13903: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000100]), + FOLLOW_FT_OPTION_in_pm_FTOptionDecl13907: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_p_FTMatchOptions_in_pm_FTOptionDecl13909: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_pm_FTOptionDecl13911: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SCORE_in_p_FTScoreVar13941: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_FTScoreVar13947: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_FTScoreVar13951: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringConcatExpr_in_p_FTContainsExpr13979: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_CONTAINS_in_p_FTContainsExpr13985: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000010]), + FOLLOW_TEXT_in_p_FTContainsExpr13989: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTContainsExpr13993: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_p_FTIgnoreOption_in_p_FTContainsExpr13995: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTOr_in_p_FTSelection14025: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00080000, 0x00000000,0x00000800, 0x01000038]), + FOLLOW_p_FTPosFilter_in_p_FTSelection14027: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00080000, 0x00000000,0x00000800, 0x01000038]), + FOLLOW_WEIGHT_in_p_FTWeight14056: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_p_FTWeight14060: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_FTWeight14062: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTWeight14065: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTAnd_in_p_FTOr14091: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_FTOR_in_p_FTOr14097: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTAnd_in_p_FTOr14101: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000800]), + FOLLOW_p_FTMildNot_in_p_FTAnd14130: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000200]), + FOLLOW_FTAND_in_p_FTAnd14136: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTMildNot_in_p_FTAnd14140: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000200]), + FOLLOW_p_FTUnaryNot_in_p_FTMildNot14169: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_NOT_in_p_FTMildNot14175: new org.antlr.runtime.BitSet([0x00000000, 0x20000000]), + FOLLOW_IN_in_p_FTMildNot14179: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTUnaryNot_in_p_FTMildNot14183: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00040000]), + FOLLOW_FTNOT_in_p_FTUnaryNot14216: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTPrimaryWithOptions_in_p_FTUnaryNot14223: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTPrimary_in_p_FTPrimaryWithOptions14249: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x0000000C, 0x00000000]), + FOLLOW_p_FTMatchOptions_in_p_FTPrimaryWithOptions14251: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000008, 0x00000000]), + FOLLOW_p_FTWeight_in_p_FTPrimaryWithOptions14254: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWords_in_p_FTPrimary14285: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00080000]), + FOLLOW_p_FTTimes_in_p_FTPrimary14287: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_FTPrimary14302: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000001,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTPrimary14304: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_FTPrimary14306: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTExtensionSelection_in_p_FTPrimary14319: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWordsValue_in_p_FTWords14345: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0xC0000000, 0x00400000]), + FOLLOW_p_FTAnyallOption_in_p_FTWords14347: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTWordsValue14374: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_FTWordsValue14387: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_FTWordsValue14389: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTWordsValue14392: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_L_Pragma_in_p_FTExtensionSelection14419: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001,0x00080000, 0x00000000]), + FOLLOW_LBRACKET_in_p_FTExtensionSelection14422: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400,0x20000000, 0x00000003,0x01C80300, 0x00000000]), + FOLLOW_p_FTSelection_in_p_FTExtensionSelection14424: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_FTExtensionSelection14427: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ANY_in_p_FTAnyallOption14458: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000040, 0x00000000]), + FOLLOW_WORD_in_p_FTAnyallOption14462: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ALL_in_p_FTAnyallOption14471: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTAnyallOption14473: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PHRASE_in_p_FTAnyallOption14481: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_OCCURS_in_p_FTTimes14513: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTRange_in_p_FTTimes14515: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000001, 0x00000000]), + FOLLOW_TIMES_in_p_FTTimes14519: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXACTLY_in_p_FTRange14552: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14554: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTRange14572: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_LEAST_in_p_FTRange14576: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14578: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTRange14596: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_MOST_in_p_FTRange14600: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14602: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_FTRange14620: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14622: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_FTRange14626: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTRange14628: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTOrder_in_p_FTPosFilter14659: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWindow_in_p_FTPosFilter14663: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTDistance_in_p_FTPosFilter14667: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTScope_in_p_FTPosFilter14671: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTContent_in_p_FTPosFilter14675: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ORDERED_in_p_FTOrder14703: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WINDOW_in_p_FTWindow14733: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AdditiveExpr_in_p_FTWindow14737: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10200000,0x00000080, 0x00000000]), + FOLLOW_p_FTUnit_in_p_FTWindow14739: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DISTANCE_in_p_FTDistance14767: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTRange_in_p_FTDistance14771: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x10200000,0x00000080, 0x00000000]), + FOLLOW_p_FTUnit_in_p_FTDistance14773: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WORDS_in_p_FTUnit14803: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SENTENCES_in_p_FTUnit14809: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARAGRAPHS_in_p_FTUnit14815: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SAME_in_p_FTScope14848: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08100000]), + FOLLOW_DIFFERENT_in_p_FTScope14854: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x08100000]), + FOLLOW_p_FTBigUnit_in_p_FTScope14859: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SENTENCE_in_p_FTBigUnit14889: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_PARAGRAPH_in_p_FTBigUnit14895: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTContent14930: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_START_in_p_FTContent14934: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTContent14942: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00800000]), + FOLLOW_END_in_p_FTContent14946: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ENTIRE_in_p_FTContent14954: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_CONTENT_in_p_FTContent14958: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_USING_in_p_FTMatchOptions14992: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x00010000, 0x00000000,0x00000000, 0xE002A004,0x00000012, 0x00000000]), + FOLLOW_p_FTMatchOption_in_p_FTMatchOptions14996: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000004, 0x00000000]), + FOLLOW_p_FTLanguageOption_in_p_FTMatchOption15024: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTWildCardOption_in_p_FTMatchOption15036: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTThesaurusOption_in_p_FTMatchOption15048: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTStemOption_in_p_FTMatchOption15060: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTCaseOption_in_p_FTMatchOption15072: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTDiacriticsOption_in_p_FTMatchOption15084: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTStopWordOption_in_p_FTMatchOption15096: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_FTExtensionOption_in_p_FTMatchOption15108: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_FTCaseOption15139: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_INSENSITIVE_in_p_FTCaseOption15143: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_FTCaseOption15161: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_SENSITIVE_in_p_FTCaseOption15165: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LOWERCASE_in_p_FTCaseOption15182: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UPPERCASE_in_p_FTCaseOption15198: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15233: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00001000]), + FOLLOW_INSENSITIVE_in_p_FTDiacriticsOption15237: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DIACRITICS_in_p_FTDiacriticsOption15255: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x04000000]), + FOLLOW_SENSITIVE_in_p_FTDiacriticsOption15259: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STEMMING_in_p_FTStemOption15294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTStemOption15301: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_STEMMING_in_p_FTStemOption15305: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15341: new org.antlr.runtime.BitSet([0x00200000, 0x00000008]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15344: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DEFAULT_in_p_FTThesaurusOption15350: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15369: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_FTThesaurusOption15371: new org.antlr.runtime.BitSet([0x00200000, 0x00000008]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15374: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_DEFAULT_in_p_FTThesaurusOption15380: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_FTThesaurusOption15384: new org.antlr.runtime.BitSet([0x00200000, 0x00000000]), + FOLLOW_p_FTThesaurusID_in_p_FTThesaurusOption15386: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_FTThesaurusOption15390: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTThesaurusOption15408: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x80000000]), + FOLLOW_THESAURUS_in_p_FTThesaurusOption15412: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTThesaurusID15445: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTThesaurusID15447: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x008000C0]), + FOLLOW_RELATIONSHIP_in_p_FTThesaurusID15452: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTThesaurusID15454: new org.antlr.runtime.BitSet([0x00200002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x000000C0]), + FOLLOW_p_FTLiteralRange_in_p_FTThesaurusID15459: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00004000]), + FOLLOW_LEVELS_in_p_FTThesaurusID15463: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXACTLY_in_p_FTLiteralRange15498: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15500: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTLiteralRange15518: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000020, 0x00000000]), + FOLLOW_LEAST_in_p_FTLiteralRange15522: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15524: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTLiteralRange15542: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00010000]), + FOLLOW_MOST_in_p_FTLiteralRange15546: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15548: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_FTLiteralRange15566: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15568: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_TO_in_p_FTLiteralRange15570: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_L_IntegerLiteral_in_p_FTLiteralRange15572: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_STOP_in_p_FTStopWordOption15608: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15612: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_FTStopWords_in_p_FTStopWordOption15614: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15616: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_STOP_in_p_FTStopWordOption15635: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15639: new org.antlr.runtime.BitSet([0x00000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_FTStopWordOption15643: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_p_FTStopWordsInclExcl_in_p_FTStopWordOption15645: new org.antlr.runtime.BitSet([0x00000002, 0x00020000,0x00000000, 0x00000200]), + FOLLOW_NO_in_p_FTStopWordOption15664: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x40000000]), + FOLLOW_STOP_in_p_FTStopWordOption15668: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000080, 0x00000000]), + FOLLOW_WORDS_in_p_FTStopWordOption15672: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AT_in_p_FTStopWords15706: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15710: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_p_FTStopWords15724: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15726: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_COMMA_in_p_FTStopWords15729: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTStopWords15731: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000400]), + FOLLOW_RPAREN_in_p_FTStopWords15735: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_UNION_in_p_FTStopWordsInclExcl15767: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_EXCEPT_in_p_FTStopWordsInclExcl15773: new org.antlr.runtime.BitSet([0x00200000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_p_FTStopWords_in_p_FTStopWordsInclExcl15776: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LANGUAGE_in_p_FTLanguageOption15808: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTLanguageOption15812: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WILDCARDS_in_p_FTWildCardOption15842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NO_in_p_FTWildCardOption15849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000010, 0x00000000]), + FOLLOW_WILDCARDS_in_p_FTWildCardOption15853: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_OPTION_in_p_FTExtensionOption15886: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_FTExtensionOption15890: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_FTExtensionOption15892: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WITHOUT_in_p_FTIgnoreOption15920: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_CONTENT_in_p_FTIgnoreOption15924: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_UnionExpr_in_p_FTIgnoreOption15928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_StatementsAndOptionalExpr_in_p_Program15960: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Hybrid_in_p_Statements15987: new org.antlr.runtime.BitSet([0xFFFF0002, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_StatementsAndExpr16015: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Statements_in_p_StatementsAndOptionalExpr16042: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_HybridExprSingle_in_p_Hybrid16069: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Statement_in_p_Hybrid16082: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_AssignStatement_in_p_Statement16113: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_BreakStatement_in_p_Statement16125: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ContinueStatement_in_p_Statement16137: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExitStatement_in_p_Statement16149: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_VarDeclStatement_in_p_Statement16161: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_WhileStatement_in_p_Statement16173: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Expr_in_p_HybridExprSingle16200: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_HybridExprSingle16215: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ExprSimple_in_p_ApplyStatement16265: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ApplyStatement16267: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_AssignStatement16295: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_AssignStatement16299: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_BIND_in_p_AssignStatement16303: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_AssignStatement16305: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_AssignStatement16308: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockStatement16334: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F083,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_BlockStatement16336: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockStatement16339: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockHybrid16365: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F083,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Statements_in_p_BlockHybrid16367: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockHybrid16370: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_BREAK_in_p_BreakStatement16398: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_LOOP_in_p_BreakStatement16404: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_BreakStatement16408: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CONTINUE_in_p_ContinueStatement16436: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000800, 0x00000000]), + FOLLOW_LOOP_in_p_ContinueStatement16442: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ContinueStatement16446: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_EXIT_in_p_ExitStatement16474: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00001000, 0x00000000]), + FOLLOW_RETURNING_in_p_ExitStatement16480: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ExitStatement16484: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000000]), + FOLLOW_SEMICOLON_in_p_ExitStatement16487: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_InitialClause_in_p_FLWORStatement16513: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_IntermediateClause_in_p_FLWORStatement16515: new org.antlr.runtime.BitSet([0x00000000, 0x00200000,0x04040040, 0x01084002]), + FOLLOW_p_ReturnStatement_in_p_FLWORStatement16518: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_RETURN_in_p_ReturnStatement16550: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_ReturnStatement16554: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IF_in_p_IfStatement16583: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_IfStatement16587: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_IfStatement16589: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_IfStatement16592: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000020]), + FOLLOW_THEN_in_p_IfStatement16596: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfStatement16600: new org.antlr.runtime.BitSet([0x00000000, 0x00000800]), + FOLLOW_ELSE_in_p_IfStatement16605: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_IfStatement16609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_p_SwitchStatement16638: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_SwitchStatement16642: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_SwitchStatement16644: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_SwitchStatement16647: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_SwitchCaseStatement_in_p_SwitchStatement16649: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_SwitchStatement16654: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchStatement16660: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchStatement16664: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_SwitchCaseStatement16694: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SwitchCaseOperand_in_p_SwitchCaseStatement16698: new org.antlr.runtime.BitSet([0x04000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_SwitchCaseStatement16704: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_SwitchCaseStatement16708: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TRY_in_p_TryCatchStatement16737: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockStatement_in_p_TryCatchStatement16741: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_CATCH_in_p_TryCatchStatement16746: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_TryCatchStatement16750: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockStatement_in_p_TryCatchStatement16752: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TRY_in_p_TryCatchHybrid16784: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16788: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_CATCH_in_p_TryCatchHybrid16794: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x01001001,0x01C01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_CatchErrorList_in_p_TryCatchHybrid16798: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_p_BlockHybrid_in_p_TryCatchHybrid16800: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00020000]), + FOLLOW_TYPESWITCH_in_p_TypeswitchStatement16833: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_TypeswitchStatement16837: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_TypeswitchStatement16839: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_TypeswitchStatement16842: new org.antlr.runtime.BitSet([0x04000000, 0x00000000]), + FOLLOW_p_CaseStatement_in_p_TypeswitchStatement16844: new org.antlr.runtime.BitSet([0x04000000, 0x00000008]), + FOLLOW_DEFAULT_in_p_TypeswitchStatement16849: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_TypeswitchStatement16856: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_TypeswitchStatement16860: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_TypeswitchStatement16868: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_TypeswitchStatement16872: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_CASE_in_p_CaseStatement16901: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_DOLLAR_in_p_CaseStatement16908: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_CaseStatement16912: new org.antlr.runtime.BitSet([0x00080000, 0x00000000]), + FOLLOW_AS_in_p_CaseStatement16916: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x2FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_SequenceType_in_p_CaseStatement16920: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x04000000, 0x00000000]), + FOLLOW_RETURN_in_p_CaseStatement16924: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_CaseStatement16928: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Annotation_in_p_VarDeclStatement16955: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00001000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_VARIABLE_in_p_VarDeclStatement16960: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDeclStatement16966: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarDeclStatement16970: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement16974: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_BIND_in_p_VarDeclStatement16978: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDeclStatement16980: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_COMMA_in_p_VarDeclStatement16996: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_VarDeclStatement17000: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_VarName_in_p_VarDeclStatement17004: new org.antlr.runtime.BitSet([0x00080000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_p_TypeDeclaration_in_p_VarDeclStatement17008: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000420]), + FOLLOW_BIND_in_p_VarDeclStatement17012: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_VarDeclStatement17014: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x20000400]), + FOLLOW_SEMICOLON_in_p_VarDeclStatement17031: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_WHILE_in_p_WhileStatement17059: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_p_WhileStatement17063: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Expr_in_p_WhileStatement17065: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x40000000, 0x00000000]), + FOLLOW_RPAREN_in_p_WhileStatement17068: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_Hybrid_in_p_WhileStatement17070: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QuantifiedExpr_in_p_ExprSimple17097: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OrExpr_in_p_ExprSimple17109: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_pg_UpdateExpr_in_p_ExprSimple17124: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LBRACKET_in_p_BlockExpr17150: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F081,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_StatementsAndExpr_in_p_BlockExpr17152: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000002]), + FOLLOW_RBRACKET_in_p_BlockExpr17154: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLECTION_in_p_CollectionDecl17185: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_CollectionDecl17189: new org.antlr.runtime.BitSet([0x00080002, 0x00000000]), + FOLLOW_p_CollectionTypeDecl_in_p_CollectionDecl17191: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_CollectionTypeDecl17220: new org.antlr.runtime.BitSet([0x80400000, 0x00000600,0x62004000, 0x10000010]), + FOLLOW_p_KindTest_in_p_CollectionTypeDecl17224: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_CollectionTypeDecl17233: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INDEX_in_p_IndexDecl17263: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexName_in_p_IndexDecl17267: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_ON_in_p_IndexDecl17271: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00400000, 0x00000000]), + FOLLOW_NODES_in_p_IndexDecl17277: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexDomainExpr_in_p_IndexDecl17281: new org.antlr.runtime.BitSet([0x02000000, 0x00000000]), + FOLLOW_BY_in_p_IndexDecl17285: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexKeySpec_in_p_IndexDecl17289: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_COMMA_in_p_IndexDecl17292: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_IndexKeySpec_in_p_IndexDecl17294: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000400]), + FOLLOW_p_QName_in_p_IndexName17321: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_IndexDomainExpr17346: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_IndexKeyExpr_in_p_IndexKeySpec17371: new org.antlr.runtime.BitSet([0x40080002, 0x00000000]), + FOLLOW_p_IndexKeyTypeDecl_in_p_IndexKeySpec17373: new org.antlr.runtime.BitSet([0x40000002, 0x00000000]), + FOLLOW_p_IndexKeyCollation_in_p_IndexKeySpec17376: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PathExpr_in_p_IndexKeyExpr17402: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_AS_in_p_IndexKeyTypeDecl17429: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_AtomicType_in_p_IndexKeyTypeDecl17433: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00003800]), + FOLLOW_p_OccurrenceIndicator_in_p_IndexKeyTypeDecl17435: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_p_AtomicType17461: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLATION_in_p_IndexKeyCollation17488: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x01C00300, 0x00000000]), + FOLLOW_p_StringLiteral_in_p_IndexKeyCollation17492: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_INTEGRITY_in_p_ICDecl17519: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00010000, 0x00000000]), + FOLLOW_CONSTRAINT_in_p_ICDecl17525: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICDecl17529: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00440000, 0x00000000]), + FOLLOW_p_ICCollection_in_p_ICDecl17532: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICForeignKey_in_p_ICDecl17536: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_ON_in_p_ICCollection17564: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_COLLECTION_in_p_ICCollection17570: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollection17574: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000,0x00000000, 0x00000000,0x80020000, 0x00000000]), + FOLLOW_p_ICCollSequence_in_p_ICCollection17577: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICCollSequenceUnique_in_p_ICCollection17581: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_ICCollNode_in_p_ICCollection17585: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollSequence17613: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollSequence17617: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollSequence17623: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ICCollSequence17627: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_NODE_in_p_ICCollSequenceUnique17655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollSequenceUnique17661: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollSequenceUnique17665: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollSequenceUnique17671: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00800000, 0x00000000]), + FOLLOW_UNIQUE_in_p_ICCollSequenceUnique17677: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICCollSequenceUnique17683: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ICCollSequenceUnique17687: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOREACH_in_p_ICCollNode17714: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ICCollNode17720: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICCollNode17726: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICCollNode17730: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_CHECK_in_p_ICCollNode17736: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E0F001,0x01F81320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_ExprSingle_in_p_ICCollNode17740: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOREIGN_in_p_ICForeignKey17768: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICForeignKey17774: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000080]), + FOLLOW_p_ICForeignKeySource_in_p_ICForeignKey17778: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000040]), + FOLLOW_p_ICForeignKeyTarget_in_p_ICForeignKey17780: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FROM_in_p_ICForeignKeySource17807: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeySource17811: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TO_in_p_ICForeignKeyTarget17838: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00008000, 0x00000000]), + FOLLOW_p_ICForeignKeyValues_in_p_ICForeignKeyTarget17842: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_COLLECTION_in_p_ICForeignKeyValues17869: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICForeignKeyValues17873: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00004000, 0x00000000]), + FOLLOW_NODE_in_p_ICForeignKeyValues17877: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_p_ICForeignKeyValues17883: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000000,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_p_ICForeignKeyValues17887: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00200000, 0x00000000]), + FOLLOW_KEY_in_p_ICForeignKeyValues17893: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_PathExpr_in_p_ICForeignKeyValues17897: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred1_XQueryParser3535: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x80000000, 0x00000000]), + FOLLOW_DOLLAR_in_synpred1_XQueryParser3543: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_FOR_in_synpred1_XQueryParser3549: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000110, 0x00000000]), + FOLLOW_set_in_synpred1_XQueryParser3551: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_IF_in_synpred2_XQueryParser3577: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred2_XQueryParser3579: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SWITCH_in_synpred3_XQueryParser3607: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred3_XQueryParser3609: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPESWITCH_in_synpred4_XQueryParser3633: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred4_XQueryParser3635: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TRY_in_synpred5_XQueryParser3655: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred5_XQueryParser3657: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_VALIDATE_in_synpred6_XQueryParser6189: new org.antlr.runtime.BitSet([0x00000002, 0x00000000,0x00000008, 0x00000004,0x00000200, 0x00000000]), + FOLLOW_p_ValidationMode_in_synpred6_XQueryParser6193: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_TYPE_in_synpred6_XQueryParser6197: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_SLASH_in_synpred7_XQueryParser6553: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xAFFFFFFF, 0x01E09001,0x01F01320, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_RelativePathExpr_in_synpred7_XQueryParser6555: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred8_XQueryParser6669: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6722: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_QName_in_synpred9_XQueryParser6730: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6733: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6751: new org.antlr.runtime.BitSet([0xFFFF0000, 0xFFFFFFFF,0xFFFFFFFF, 0xFFFFFFFF,0xF7FFFFFF, 0xFFFFFFFF,0x0FFFFFFF, 0x00000001,0x00001000, 0x00000000,0x00100000, 0x00000000]), + FOLLOW_p_NCName_in_synpred9_XQueryParser6759: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6762: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_set_in_synpred9_XQueryParser6780: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000001]), + FOLLOW_LBRACKET_in_synpred9_XQueryParser6792: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_KindTest_in_synpred10_XQueryParser6822: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_QName_in_synpred11_XQueryParser6841: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x20000000, 0x00000000]), + FOLLOW_LPAREN_in_synpred11_XQueryParser6843: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_PrimaryExpr_in_synpred12_XQueryParser6861: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_Wildcard_in_synpred13_XQueryParser7300: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_synpred14_XQueryParser7319: new org.antlr.runtime.BitSet([0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x00000000,0x00000000, 0x02000000]), + FOLLOW_COLON_in_synpred14_XQueryParser7321: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_NCName_in_synpred15_XQueryParser7339: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_LPAREN_in_synpred16_XQueryParser7595: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OccurrenceIndicator_in_synpred17_XQueryParser9654: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]), + FOLLOW_p_OccurrenceIndicator_in_synpred18_XQueryParser17228: new org.antlr.runtime.BitSet([0x00000002, 0x00000000]) +}); + +})(); +exports.XQueryParser = XQueryParser; +}); \ No newline at end of file diff --git a/lib/ace/mode/xquery/XQuerySemanticHighlighter.js b/lib/ace/mode/xquery/XQuerySemanticHighlighter.js new file mode 100644 index 00000000..9a856f28 --- /dev/null +++ b/lib/ace/mode/xquery/XQuerySemanticHighlighter.js @@ -0,0 +1,159 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. * + * ***** END LICENSE BLOCK ***** */ +define(function(require, exports, module){ + + var Position = require("./Position").Position; + var XQuerySemanticHighlighter = exports.XQuerySemanticHighlighter = function() { + this.tokenizer = null; + this.plain = null; + this.source = []; + this.lines = []; + + this.getTokens = function() { + var result = []; + var previousState = "start"; + for(i in this.source){ + var lineTokens = []; + var tokens = []; + if(this.lines[i]) { + tokens = this.lines[i].sort(function(a, b){ return a.position.getOffset() - b.position.getOffset(); }); + } + var sourceLine = this.source[i]; + var tokenizedLine = ""; + var cursor = 0; + for(j in tokens) + { + var token = tokens[j]; + var position = token.position; + if(position.getOffset() > cursor) { + var value = sourceLine.substring(cursor, position.getOffset()); + tokenizedLine += value; + lineTokens.push({ + type: "text", + value: value + }); + } + cursor = position.getOffset() + position.getLength(); + value = sourceLine.substring(position.getOffset(), cursor); + tokenizedLine += value; + lineTokens.push({ + type: token.type, + value: value + }); + } + + var nextState = "start"; + if(lineTokens.length > 0) { + lineTokens[lineTokens.length - 1].type; + } + nextState = (nextState != "comment" && nextState != "string" && nextState != "cdata" && nextState != "tag") ? "start" : nextState; + + if(cursor < (sourceLine.length )) { + value = sourceLine.substring(cursor); + lineTokens.push({ + type: "text", + value: value + }); + tokenizedLine += value; + } + //Check if the tokenized line is equal to the original one: + if(sourceLine == tokenizedLine) { + result[i] = { tokens: lineTokens, state: nextState }; + //result[i] = { line: sourceLine, startState: previousState, tokens: { tokens: lineTokens, state: nextState } }; + } else { + console.log("sourceLine: " + sourceLine); + console.log("tokenizedLine: " + tokenizedLine); + result[i] = { tokens: [ { type: "text", value: sourceLine } ], state: nextState }; + } + + if(result[i].tokens.length === 1 && result[i].tokens[0].type === "text" && this.tokenizer instanceof Object) { + var prev = result[i - 1] ? result[i - 1].state : "start"; + result[i] = this.tokenizer.getLineTokens(result[i].tokens[0].value, prev); + } + } + return result; + }; + + this.addToken = function(start, stop, type) { + var before = this.plain.substring(0, start); + var startLine = this.plain.substring(0, start).split("\n").length; + startLine = startLine == 0 ? 0 : startLine - 1; + + var offset = before.lastIndexOf("\n"); + offset = offset == -1 ? start : start - before.lastIndexOf("\n") - 1; + + var cursor = start; + + var text = this.plain.substring(start, stop); + + var currentLine = startLine; + for(var i in text) + { + var c = text[i]; + if(c == "\n") { + var s = i; + s = s < stop ? s : stop; + this.addPosition(new Position(currentLine, offset, s), type); + currentLine++; + offset = 0; + cursor = i; + } + }; + this.addPosition(new Position(currentLine, offset, stop - cursor + 1), type); + }; + + this.addPosition = function(position, type) + { + var line = position.getLine(); + if(!this.lines[line]) { + this.lines[line] = []; + } + this.lines[line].push({ + type: type, + position: position + }); + }; + + this.setSource = function(source) + { + this.plain = source.data; + this.source = this.plain.split("\n"); + }; + //console.log("Line: " + token.getLine()); + //console.log(token.getText()); + //console.log(type); + }; +}); diff --git a/lib/ace/mode/xquery/antlr3-all.js b/lib/ace/mode/xquery/antlr3-all.js new file mode 100644 index 00000000..4daef05f --- /dev/null +++ b/lib/ace/mode/xquery/antlr3-all.js @@ -0,0 +1,6177 @@ +/* +Copyright (c) 2003-2008 Terence Parr. All rights reserved. +Code licensed under the BSD License: +http://www.antlr.org/license.html + +Some parts of the ANTLR class: +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +*/ +/* +Some portions: +Copyright (c) 2008, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.5.1 +*/ +define(function(require, exports, module){ +var NewLazyTokenStream = exports.NewLazyTokenStream = function(tokenSource) { + + this.tokenSource = tokenSource; + this.tokens = []; + this.isWsExplicit = false; + this.p = 0; + this.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + + this.LT = function(k) { + if (k == 0) + return null; + if (k < 0) + return this.readReverseNthGoodToken(-k); + + return this.readNthGoodToken(k); + }; + + this.get = function(i) { + if (i >= this.tokens.length) + return org.antlr.runtime.Token.EOF_TOKEN; + else + return this.tokens[i]; + }; + + this.getTokenSource = function() { + return this.tokenSource; + }; + + this.toString = function(start, stop) { + if(start == undefined) { + return this.toString(0, this.tokens.length - 1); + } else + if(start instanceof org.antlr.runtime.Token) { + return this.toString(start.getTokenIndex(), stop.getTokenIndex()); + } else { + if (start < 0) + start = 0; + if (this.p <= stop) { + this.readNTokens(stop - this.p + 1); + } + + var sb = ""; + for (var i = start; i <= stop && i < this.tokens.length; i++) { + sb += this.tokens[i].getText(); + } + return sb; + } + }; + + this.LA = function(i) { + return this.LT(i).getType(); + }; + + this.done = false; + + this.consume = function() { + if (this.done) { + return; + } + this.p++; + if (!this.isWsExplicit) { + this.jumpToFirstValidToken(); + } + }; + + this.getSourceName = function() { + return this.getTokenSource().getSourceName(); + }; + + this.index = function() { + return this.p; + }; + + this.mark = function() { + this.lastMarker = this.index(); + return this.lastMarker; + }; + + this.release = function(marker) { + }; + + this.rewind = function(marker) { + if(arguments.length == 1) { + this.seek(marker); + } else { + this.seek(this.lastMarker); + } + }; + + this.seek = function(index) { + this.p = index; + this.done = false; + }; + + this.size = function() { + return this.tokens.length; + }; + + this.setTokenSource = function(source) { + this.tokenSource = source; + this.setWsExplicit(source.isWsExplicit); + // un-read the unused tokens + // they are different for the new source + if (this.p < this.tokens.length) { + var rIndex = this.p > 0 ? this.tokens[this.p - 1].getStopIndex() : 0; + this.tokenSource.rewindToIndex(rIndex + 1); + for (var i = this.tokens.length - 1; i >= this.p; i--) { + this.tokens.splice(i, 1); + } + } + + // if we ignore WS, jump to next token + if (!this.isWsExplicit) { + this.jumpToFirstValidToken(); + } + }; + + this.setWsExplicit = function(explicit) { + this.isWsExplicit = explicit; + if (!explicit) { + this.jumpToFirstValidToken(); + } + }; + + this.readNthGoodToken = function(n) { + var count = this.tokens.length; + // number of buffered tokens available + var avt = count - this.p; + // i counts good tokens, j counts all tokens + var i = 1, j = 0; + var t = null; + while (i <= n) { + if (j < avt) // read from buffer + t = this.tokens[this.p + j]; + else { // read from source + t = this.tokenSource.nextToken(); + if (t == org.antlr.runtime.Token.EOF_TOKEN) { + return t; + } + t.setTokenIndex(count++); + this.tokens.push(t); + } + if (this.isWsExplicit || t.getChannel() == this.channel) { + i++; + } + j++; + } + return t; + }; + + this.readReverseNthGoodToken = function(n) { + if (n == 0 || (this.p - n) < 0) + return null; + + // i counts good tokens, j counts all tokens + var i = 1, j = 0; + var t = null; + while (this.p - 1 - j >= 0) { + t = this.get(this.p - 1 - j); + + if (this.isWsExplicit || t.getChannel() == this.channel) { + if (i++ == n) + return t; + } + j++; + } + return null; + }; + + this.readNTokens = function(n) { + var t = null; + for (var i = 0; i < n; i++) { + if (this.tokens.length > this.p + i) + continue; + + t = this.tokenSource.nextToken(); + if (t == org.antlr.runtime.Token.EOF_TOKEN) + return; + + t.setTokenIndex(this.p + i); + this.tokens.push(t); + } + }; + + this.jumpToFirstValidToken = function() { + var t = this.LT(1); + if (t != org.antlr.runtime.Token.EOF_TOKEN) { + this.done = false; + this.p = t.getTokenIndex(); + } + }; +}; + +// create org.antlr module +if (typeof org == "undefined" || !org) { + var org = {}; +} +if (typeof org.antlr == "undefined" || !org.antlr) { + /** + * The org.antlr global namespace object. If antlr is already defined, the + * existing antlr object will not be overwritten so that defined + * namespaces are preserved. + * @namespace org.antlr + */ + org.antlr = {}; +} + +/** + * The global JavaScript object. + */ +org.antlr.global = (function() { + return this; +}).call(null); + +/** + * Returns the namespace specified and creates it if it doesn't exist. + * + * Be careful when naming packages. Reserved words may work in some browsers + * and not others. For instance, the following will fail in Safari: + *
+ * org.antlr.namespace("really.long.nested.namespace");
+ * 
+ * This fails because "long" is a future reserved word in ECMAScript + * + * @static + * @param {String*} arguments 1-n namespaces to create + * @return {Object} A reference to the last namespace object created + * @example + * org.antlr.namespace("org.antlr.property.package"); + */ +org.antlr.namespace = function() { + var a=arguments, o=null, i, j, d; + for (i=0; i0 then it's the level of backtracking. + */ + this.backtracking = 0; + + /** An array[size num rules] of Map that tracks + * the stop token index for each rule. ruleMemo[ruleIndex] is + * the memoization table for ruleIndex. For key ruleStartIndex, you + * get back the stop token for associated rule or MEMO_RULE_FAILED. + * + * This is only used if rule memoization is on (which it is by default). + */ + this.ruleMemo = null; + + + // LEXER FIELDS (must be in same state object to avoid casting + // constantly in generated code and Lexer object) :( + + + /** The goal of all lexer rules/methods is to create a token object. + * This is an instance variable as multiple rules may collaborate to + * create a single token. nextToken will return this object after + * matching lexer rule(s). If you subclass to allow multiple token + * emissions, then set this to the last token to be matched or + * something nonnull so that the auto token emit mechanism will not + * emit another token. + */ + this.token = null; + + /** What character index in the stream did the current token start at? + * Needed, for example, to get the text for current token. Set at + * the start of nextToken. + */ + this.tokenStartCharIndex = -1; + + /** The line on which the first character of the token resides */ + // this.tokenStartLine; + + /** The character position of first character within the line */ + // this.tokenStartCharPositionInLine; + + /** The channel number for the current token */ + // this.channel; + + /** The token type for the current token */ + // this.type; + + /** You can set the text for the current token to override what is in + * the input char buffer. Use setText() or can set this instance var. + */ + this.text = null; +}; +org.antlr.runtime.IndexOutOfBoundsException = function(m) { + org.antlr.runtime.IndexOutOfBoundsException.superclass.constructor.call(this, m); +}; + +org.antlr.lang.extend(org.antlr.runtime.IndexOutOfBoundsException, Error, { + name: "org.antlr.runtime.IndexOutOfBoundsException" +}); +/** The root of the ANTLR exception hierarchy. + * + *

To avoid English-only error messages and to generally make things + * as flexible as possible, these exceptions are not created with strings, + * but rather the information necessary to generate an error. Then + * the various reporting methods in Parser and Lexer can be overridden + * to generate a localized error message. For example, MismatchedToken + * exceptions are built with the expected token type. + * So, don't expect getMessage() to return anything.

+ * + *

ANTLR generates code that throws exceptions upon recognition error and + * also generates code to catch these exceptions in each rule. If you + * want to quit upon first error, you can turn off the automatic error + * handling mechanism using rulecatch action, but you still need to + * override methods mismatch and recoverFromMismatchSet.

+ * + *

In general, the recognition exceptions can track where in a grammar a + * problem occurred and/or what was the expected input. While the parser + * knows its state (such as current input symbol and line info) that + * state can change before the exception is reported so current token index + * is computed and stored at exception time. From this info, you can + * perhaps print an entire line of input not just a single token, for example. + * Better to just say the recognizer had a problem and then let the parser + * figure out a fancy report.

+ * + * @class + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @extends Error + * + */ +org.antlr.runtime.RecognitionException = function(input) { + org.antlr.runtime.RecognitionException.superclass.constructor.call(this); + this.input = input; + this.index = input.index(); + if ( input instanceof NewLazyTokenStream ) {//org.antlr.runtime.CommonTokenStream ) { + this.token = input.LT(1); + this.line = this.token.getLine(); + this.charPositionInLine = this.token.getCharPositionInLine(); + } + if ( input instanceof org.antlr.runtime.tree.TreeNodeStream ) { + this.extractInformationFromTreeNodeStream(input); + } + else if ( input instanceof org.antlr.runtime.ANTLRStringStream ) { + // Note: removed CharStream from hierarchy in JS port so checking for + // StringStream instead + this.c = input.LA(1); + this.line = input.getLine(); + this.charPositionInLine = input.getCharPositionInLine(); + } + else { + this.c = input.LA(1); + } + + this.message = this.toString(); +}; + +org.antlr.lang.extend(org.antlr.runtime.RecognitionException, Error, +/** @lends org.antlr.runtime.RecognitionException.prototype */ +{ + /** + * What input stream did the error occur in? + */ + input: null, + + /** What is index of token/char were we looking at when the error occurred? + * @type Number + */ + index: null, + + /** The current Token when an error occurred. Since not all streams + * can retrieve the ith Token, we have to track the Token object. + * For parsers. Even when it's a tree parser, token might be set. + * @type org.antlr.runtime.CommonToken + */ + token: null, + + /** If this is a tree parser exception, node is set to the node with + * the problem. + * @type Object + */ + node: null, + + /** The current char when an error occurred. For lexers. + * @type Number + */ + c: null, + + /** Track the line at which the error occurred in case this is + * generated from a lexer. We need to track this since the + * unexpected char doesn't carry the line info. + * @type Number + */ + line: null, + + /** The exception's class name. + * @type String + */ + name: "org.antlr.runtime.RecognitionException", + + /** Position in the line where exception occurred. + * @type Number + */ + charPositionInLine: null, + + /** If you are parsing a tree node stream, you will encounter som + * imaginary nodes w/o line/col info. We now search backwards looking + * for most recent token with line/col info, but notify getErrorHeader() + * that info is approximate. + * @type Boolean + */ + approximateLineInfo: null, + + /** Gather exception information from input stream. + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + */ + extractInformationFromTreeNodeStream: function(input) { + var nodes = input, + priorNode, + priorPayLoad, + type, + text, + i; + + this.node = nodes.LT(1); + var adaptor = nodes.getTreeAdaptor(), + payload = adaptor.getToken(this.node); + if ( payload ) { + this.token = payload; + if ( payload.getLine()<= 0 ) { + // imaginary node; no line/pos info; scan backwards + i = -1; + priorNode = nodes.LT(i); + while ( priorNode ) { + priorPayload = adaptor.getToken(priorNode); + if ( priorPayload && priorPayload.getLine()>0 ) { + // we found the most recent real line / pos info + this.line = priorPayload.getLine(); + this.charPositionInLine = priorPayload.getCharPositionInLine(); + this.approximateLineInfo = true; + break; + } + --i; + priorNode = nodes.LT(i); + } + } + else { // node created from real token + this.line = payload.getLine(); + this.charPositionInLine = payload.getCharPositionInLine(); + } + } + else if ( this.node instanceof org.antlr.runtime.tree.CommonTree) { + this.line = this.node.getLine(); + this.charPositionInLine = this.node.getCharPositionInLine(); + if ( this.node instanceof org.antlr.runtime.tree.CommonTree) { + this.token = this.node.token; + } + } + else { + type = adaptor.getType(this.node); + text = adaptor.getText(this.node); + this.token = new org.antlr.runtime.CommonToken(type, text); + } + }, + + /** Return the token type or char of the unexpected input element + * @return {Number} type of the unexpected input element. + */ + getUnexpectedType: function() { + if ( this.input instanceof NewLazyTokenStream) {//org.antlr.runtime.CommonTokenStream ) { + return this.token.getType(); + } + else if ( this.input instanceof org.antlr.runtime.tree.TreeNodeStream ) { + var nodes = this.input; + var adaptor = nodes.getTreeAdaptor(); + return adaptor.getType(this.node); + } + else { + return this.c; + } + } +}); +org.antlr.runtime.MismatchedTokenException = function(expecting, input) { + if (arguments.length===0) { + this.expecting = org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } else { + org.antlr.runtime.MismatchedTokenException.superclass.constructor.call( + this, input); + this.expecting = expecting; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedTokenException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedTokenException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedTokenException" +}); +/** An extra token while parsing a TokenStream */ +org.antlr.runtime.UnwantedTokenException = function(expecting, input) { + if (arguments.length>0) { + org.antlr.runtime.UnwantedTokenException.superclass.constructor.call( + this, expecting, input); + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.UnwantedTokenException, + org.antlr.runtime.MismatchedTokenException, { + getUnexpectedToken: function() { + return this.token; + }, + toString: function() { + var exp = ", expected "+this.expecting; + if ( this.expecting===org.antlr.runtime.Token.INVALID_TOKEN_TYPE ) { + exp = ""; + } + if ( !org.antlr.lang.isValue(this.token) ) { + return "UnwantedTokenException(found="+exp+")"; + } + return "UnwantedTokenException(found="+this.token.getText()+exp+")"; + }, + name: "org.antlr.runtime.UnwantedTokenException" +}); +org.antlr.runtime.MissingTokenException = function(expecting, input, inserted) { + if (arguments.length>0) { + org.antlr.runtime.MissingTokenException.superclass.constructor.call( + this, expecting, input); + this.inserted = inserted; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MissingTokenException, + org.antlr.runtime.MismatchedTokenException, { + getMissingType: function() { + return this.expecting; + }, + + toString: function() { + if (org.antlr.lang.isValue(this.inserted) && + org.antlr.lang.isValue(this.token)) + { + return "MissingTokenException(inserted "+this.inserted+" at "+this.token.getText()+")"; + } + if ( org.antlr.lang.isValue(this.token) ) { + return "MissingTokenException(at "+this.token.getText()+")"; + } + return "MissingTokenException"; + }, + name: "org.antlr.runtime.MissingTokenException" +}); +org.antlr.runtime.NoViableAltException = function(grammarDecisionDescription, + decisionNumber, + stateNumber, + input) +{ + org.antlr.runtime.NoViableAltException.superclass.constructor.call(this, input); + this.grammarDecisionDescription = grammarDecisionDescription; + this.decisionNumber = decisionNumber; + this.stateNumber = stateNumber; +}; + +org.antlr.lang.extend( + org.antlr.runtime.NoViableAltException, + org.antlr.runtime.RecognitionException, { + toString: function() { + if ( this.input instanceof org.antlr.runtime.ANTLRStringStream ) { + return "NoViableAltException('"+this.getUnexpectedType()+"'@["+this.grammarDecisionDescription+"])"; + } + else { + return "NoViableAltException("+this.getUnexpectedType()+"@["+this.grammarDecisionDescription+"])"; + } + }, + name: "org.antlr.runtime.NoViableAltException" +}); +/** The recognizer did not match anything for a ()+ loop. + * + * @class + * @param {Number} decisionNumber + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @extends org.antlr.runtime.RecognitionException + */ +org.antlr.runtime.EarlyExitException = function(decisionNumber, input) { + org.antlr.runtime.EarlyExitException.superclass.constructor.call( + this, input); + this.decisionNumber = decisionNumber; +}; + +org.antlr.lang.extend( + org.antlr.runtime.EarlyExitException, + org.antlr.runtime.RecognitionException, +/** @lends org.antlr.runtime.EarlyExitException.prototype */ +{ + /** Name of this class. + * @type String + */ + name: "org.antlr.runtime.EarlyExitException" +}); +org.antlr.runtime.MismatchedSetException = function(expecting, input) { + org.antlr.runtime.MismatchedSetException.superclass.constructor.call( + this, input); + this.expecting = expecting; +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedSetException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedSetException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedSetException" +}); +org.antlr.runtime.MismatchedNotSetException = function(expecting, input) { + org.antlr.runtime.MismatchedNotSetException.superclass.constructor.call(this, expecting, input); +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedNotSetException, + org.antlr.runtime.MismatchedSetException, { + toString: function() { + return "MismatchedNotSetException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedNotSetException" +}); +org.antlr.runtime.MismatchedRangeException = function(a, b, input) { + if (arguments.length===0) { + return this; + } + + org.antlr.runtime.MismatchedRangeException.superclass.constructor.call( + this, input); + this.a = a; + this.b = b; +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedRangeException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedRangeException(" + + this.getUnexpectedType()+" not in ["+this.a+","+this.b+"])"; + }, + name: "org.antlr.runtime.MismatchedRangeException" +}); +/** A semantic predicate failed during validation. Validation of predicates + * occurs when normally parsing the alternative just like matching a token. + * Disambiguating predicate evaluation occurs when we hoist a predicate into + * a prediction decision. + * + * @class + * @param {org.antlr.runtime.CommonTokenStream|org.antlr.runtime.tree.TreeNodeStream|org.antlr.runtime.ANTLRStringStream} input input stream that has an exception. + * @param {String} ruleName name of the rule in which the exception occurred. + * @param {String} predicateText the predicate that failed. + * @extends org.antlr.runtime.RecognitionException + */ +org.antlr.runtime.FailedPredicateException = function(input, ruleName, predicateText){ + org.antlr.runtime.FailedPredicateException.superclass.constructor.call(this, input); + this.ruleName = ruleName; + this.predicateText = predicateText; +}; + +org.antlr.lang.extend( + org.antlr.runtime.FailedPredicateException, + org.antlr.runtime.RecognitionException, +/** @lends org.antlr.runtime.FailedPredicateException.prototype */ +{ + /** Create a string representation of this exception. + * @returns {String} + */ + toString: function() { + return "FailedPredicateException("+this.ruleName+",{"+this.predicateText+"}?)"; + }, + + /** Name of this class. + * @type String + */ + name: "org.antlr.runtime.FailedPredicateException" +}); +/** + * A BitSet similar to java.util.BitSet. + * + *

JavaScript Note: There is no good way to implement something like this in + * JavaScript. JS has no true int type, arrays are usually implemented as + * hashes, etc. This class should probably be nixed for something that is + * similarly (in)efficient, but more clear.

+ * + * @class + * @param {Number|Array} [bits] a 32 bit number or array of 32 bit numbers + * representing the bitset. These are typically + * generated by the ANTLR Tool. + */ +org.antlr.runtime.BitSet = function(bits) { + if (!bits) { + bits = org.antlr.runtime.BitSet.BITS; + } + + if (org.antlr.lang.isArray(bits)) { + /** + * An array of Numbers representing the BitSet. + * @type Array + */ + this.bits = bits; + } else if(org.antlr.lang.isNumber(bits)) { + this.bits = []; + } +}; + +org.antlr.lang.augmentObject(org.antlr.runtime.BitSet, { + /** + * Number of bits in each number. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + BITS: 32, + + /** + * Log (base 2) of the number of bits in each number. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + LOG_BITS: 5, // 2^5 == 32 + + /** + * We will often need to do a mod operator (i mod nbits). Its + * turns out that, for powers of two, this mod operation is + * same as (i & (nbits-1)). Since mod is slow, we use a + * precomputed mod mask to do the mod instead. + * @constant + * @memberOf org.antlr.runtime.BitSet + */ + MOD_MASK: 31, // BITS - 1 + + /** + * Create mask for bit modded to fit in a single word. + * @example + * bitmask(35) => 00000000000000000000000000000100 + * bitmask(3) => 00000000000000000000000000000100 + * @param {Number} bitNumber the bit to create a mask for. + * @returns {Number} the bitmask. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + bitMask: function(bitNumber) { + var bitPosition = bitNumber & org.antlr.runtime.BitSet.MOD_MASK; + return 1 << bitPosition; + }, + + /** + * Calculate the minimum number of bits needed to represent el. + * @param {Number} el a number to be included in the BitSet. + * @returns {Number} the number of bits need to create a BitSet with member + * el. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + numWordsToHold: function(el) { + return (el >> org.antlr.runtime.BitSet.LOG_BITS) + 1; + }, + + /** + * @param {Number} bit a number to be included in the BitSet + * @returns {Number} the index of the word in the field bits that would + * hold bit. + * @memberOf org.antlr.runtime.BitSet + * @private + */ + wordNumber: function(bit) { + return bit >> org.antlr.runtime.BitSet.LOG_BITS; // bit / BITS + }, + + /** + * BitSet factory method. + * + *

Operates in a number of modes: + *

    + *
  • If el is a number create the BitSet containing that number.
  • + *
  • If el is an array create the BitSet containing each number in the + * array.
  • + *
  • If el is a BitSet return el.
  • + *
  • If el is an Object create the BitSet containing each numeric value + * in el.
  • + *
  • If el is a number and el2 is a number return a BitSet containing + * the numbers between el and el2 (inclusive).
  • + *
+ *

+ * @param {Number|Array|org.antlr.runtime.BitSet|Object} el + * @param {Number} el2 + * @returns {org.antlr.runtime.BitSet} + * @memberOf org.antlr.runtime.BitSet + */ + of: function(el, el2) { + var i, n, s, keys; + + if (org.antlr.lang.isNumber(el)) { + if (org.antlr.lang.isNumber(el2)) { + s = new org.antlr.runtime.BitSet(el2 + 1); + for (i = el; i <= el2; i++) { + n = org.antlr.runtime.BitSet.wordNumber(i); + s.bits[n] |= org.antlr.runtime.BitSet.bitMask(i); + } + return s; + } else { + s = new org.antlr.runtime.BitSet(el + 1); + s.add(el); + return s; + } + } else if(org.antlr.lang.isArray(el)) { + s = new org.antlr.runtime.BitSet(); + for (i=el.length-1; i>=0; i--) { + s.add(el[i]); + } + return s; + } else if (el instanceof org.antlr.runtime.BitSet) { + if (!el) { + return null; + } + return el; + } else if (el instanceof org.antlr.runtime.IntervalSet) { + if (!el) { + return null; + } + s = new org.antlr.runtime.BitSet(); + s.addAll(el); + return s; + } else if (org.antlr.lang.isObject(el)) { + keys = []; + for (i in el) { + if (org.antlr.lang.isNumber(i)) { + keys.push(i); + } + } + return org.antlr.runtime.BitSet.of(keys); + } + } +}); + + + +org.antlr.runtime.BitSet.prototype = { + /** + * Add el into this set. + * @param {Number} el the number to add to the set. + */ + add: function(el) { + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { + this.growToInclude(el); + } + this.bits[n] |= org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Add multiple elements into this set. + * @param {Array|org.antlr.runtime.BitSet} elements the elements to be added to + * this set. + */ + addAll: function(elements) { + var other, + i, + e; + + if ( elements instanceof org.antlr.runtime.BitSet ) { + this.orInPlace(elements); + } + else if ( elements instanceof org.antlr.runtime.IntervalSet ) { + other = elements; + // walk set and add each interval + /* @todo after implementing intervalset + for (Iterator iter = other.intervals.iterator(); iter.hasNext();) { + Interval I = (Interval) iter.next(); + this.orInPlace(BitSet.range(I.a,I.b)); + }*/ + } else if (org.antlr.lang.isArray(elements)) { + for (i = 0; i < elements.length; i++) { + e = elements[i]; + this.add(e); + } + } else { + return; + } + }, + + /** + * Clone this BitSet and then {@link #andInPlace} with a. + * @param {org.antlr.runtime.BitSet} a a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + and: function(a) { + var s = this.clone(); + s.andInPlace(a); + return s; + }, + + /** + * Perform a logical AND of this target BitSet with the argument BitSet. + * + * This bit set is modified so that each bit in it has the value true if + * and only if it both initially had the value true and the corresponding + * bit in the bit set argument also had the value true. + * @param {org.antlr.runtime.BitSet} a a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + andInPlace: function(a) { + var min = Math.min(this.bits.length, a.bits.length), + i; + for (i = min - 1; i >= 0; i--) { + this.bits[i] &= a.bits[i]; + } + // clear all bits in this not present in a (if this bigger than a). + for (i = min; i < this.bits.length; i++) { + this.bits[i] = 0; + } + }, + + /** + * Clear all bits or a specific bit. + * + * If no arguments given, sets all of the bits in this BitSet to false. + * If one argument given, sets the bit specified by the index to false. + * @param {Number} [el] the index of the bit to be cleared. + */ + clear: function(el) { + if (arguments.length===0) { + var i; + for (i = this.bits.length - 1; i >= 0; i--) { + this.bits[i] = 0; + } + return; + } + + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { // grow as necessary to accommodate + this.growToInclude(el); + } + this.bits[n] &= ~org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Cloning this BitSet produces a new BitSet that is equal to it. + * + * The clone of the bit set is another bit set that has exactly the same + * bit set to true as this bit set. + * @returns {org.antlr.runtime.BitSet} a clone of this BitSet. + */ + clone: function() { + var i, len, b=[]; + for (i=0, len=this.bits.length; i= 0; i--) { + word = this.bits[i]; + if (word !== 0) { + for (bit = org.antlr.runtime.BitSet.BITS - 1; bit >= 0; bit--) { + if ((word & (1 << bit)) !== 0) { + deg++; + } + } + } + } + return deg; + }, + + /** + * Compares this object against the specified object. + * + * The result is true if and only if the argument is not null and is a + * BitSet object that has exactly the same set of bits set to true as + * this bit set. That is, for every nonnegative int index k, + *

+     * ((BitSet)obj).get(k) == this.get(k)
+     * 
+ * must be true. The current sizes of the two bit sets are not compared. + * @param {Object} other the object to compare with. + * @returns {Boolean} if the objects are the same; false otherwise. + */ + equals: function(other) { + if ( !other || !(other instanceof org.antlr.runtime.BitSet) ) { + return false; + } + + var otherSet = other, + i, + n = Math.min(this.bits.length, otherSet.bits.length); + + // for any bits in common, compare + for (i=0; i n) { + for (i = n+1; i n) { + for (i = n+1; i= this.bits.length) { return false; } + return (this.bits[n] & org.antlr.runtime.BitSet.bitMask(el)) !== 0; + }, + + /** + * Returns the index of the first bit that is set to true. + * If no such bit exists then -1 is returned. + * @returns {Number} the index of the next set bit. + */ + getSingleElement: function() { + var i; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + return i; + } + } + return -1; //Label.INVALID; + }, + + /** + * Returns true if this BitSet contains no bits that are set to true. + * @returns {Boolean} boolean indicating whether this BitSet is empty. + */ + isNil: function() { + var i; + for (i = this.bits.length - 1; i >= 0; i--) { + if (this.bits[i] !== 0) { + return false; + } + } + return true; + }, + + /** + * If a bit set argument is passed performs a {@link #subtract} of this bit + * set with the argument bit set. If no argument is passed, clone this bit + * set and {@link #notInPlace}. + * @param {org.antlr.runtime.BitSet} [set] + * @returns {org.antlr.runtime.BitSet} + */ + complement: function(set) { + if (set) { + return set.subtract(this); + } else { + var s = this.clone(); + s.notInPlace(); + return s; + } + }, + + /** + * If no arguments are passed sets all bits to the complement of their + * current values. If one argument is passed sets each bit from the + * beginning of the bit set to index1 (inclusive) to the complement of its + * current value. If two arguments are passed sets each bit from the + * specified index1 (inclusive) to the sepcified index2 (inclusive) to the + * complement of its current value. + * @param {Number} index1 + * @param {Number} index2 + */ + notInPlace: function() { + var minBit, maxBit, i, n; + if (arguments.length===0) { + for (i = this.bits.length - 1; i >= 0; i--) { + this.bits[i] = ~this.bits[i]; + } + } else { + if (arguments.length===1) { + minBit = 0; + maxBit = arguments[0]; + } else { + minBit = arguments[0]; + maxBit = arguments[1]; + } + // make sure that we have room for maxBit + this.growToInclude(maxBit); + for (i = minBit; i <= maxBit; i++) { + n = org.antlr.runtime.BitSet.wordNumber(i); + this.bits[n] ^= org.antlr.runtime.BitSet.bitMask(i); + } + } + + }, + + /** + * Performs a logical OR of this bit set with the bit set argument. + * If no argument is passed, return this bit set. Otherwise a clone of + * this bit set is modified so that a bit in it has the value true if and + * only if it either already had the value true or the corresponding bit + * in the bit set argument has the value true. + * @param {org.antlr.runtime.BitSet} [a] a bit set. + * @returns {org.antlr.runtime.BitSet} + */ + or: function(a) { + if ( !a ) { + return this; + } + var s = this.clone(); + s.orInPlace(a); + return s; + }, + + /** + * Performs a logical {@link #or} in place. + * @param {org.antlr.runtime.BitSet} [a] + * @returns {org.antlr.runtime.BitSet} + */ + orInPlace: function(a) { + if ( !a ) { + return; + } + // If this is smaller than a, grow this first + if (a.bits.length > this.bits.length) { + this.setSize(a.bits.length); + } + var min = Math.min(this.bits.length, a.bits.length), + i; + for (i = min - 1; i >= 0; i--) { + this.bits[i] |= a.bits[i]; + } + }, + + /** + * Sets the bit specified by the index to false. + * @param {Number} bitIndex the index of the bit to be cleared. + */ + remove: function(el) { + var n = org.antlr.runtime.BitSet.wordNumber(el); + if (n >= this.bits.length) { + this.growToInclude(el); + } + this.bits[n] &= ~org.antlr.runtime.BitSet.bitMask(el); + }, + + /** + * Grows the internal bits array to include at least nwords numbers. + * @private + * @param {Number} nwords how many words the new set should be + * @private + */ + setSize: function(nwords) { + var n = nwords - this.bits.length; + while (n>=0) { + this.bits.push(0); + n--; + } + }, + + /** + * Returns the number of bits capable of being represented by this bit set + * given its current size. + * @returns {Number} the maximum number of bits that can be represented at + * the moment. + * @private + */ + numBits: function() { + return this.bits.length << org.antlr.runtime.BitSet.LOG_BITS; // num words * bits per word + }, + + /** + * Return how much space is being used by the bits array not + * how many actually have member bits on. + * @returns {Number} the length of the internal bits array. + * @private + */ + lengthInLongWords: function() { + return this.bits.length; + }, + + /** + * Is this bit set contained within a? + * @param {org.antlr.runtime.BitSet} a bit set + * @returns {Boolean} true if and only if a is a subset of this bit set. + */ + subset: function(a) { + if (!a) { return false; } + return this.and(a).equals(this); + }, + + /** + * Subtract the elements of the argument bit set from this bit set in place. + * That is, for each set bit in the argument bit set, set the corresponding + * bit in this bit set to false. + * @param {org.antlr.runtime.BitSet} a bit set. + */ + subtractInPlace: function(a) { + if (!a) { return; } + // for all words of 'a', turn off corresponding bits of 'this' + var i; + for (i = 0; i < this.bits.length && i < a.bits.length; i++) { + this.bits[i] &= ~a.bits[i]; + } + }, + + /** + * Perform a {@link #subtractInPlace} on a clone of this bit set. + * @param {org.antlr.runtime.BitSet} a bit set. + * @returns {org.antlr.runtime.BitSet} the new bit set. + */ + subtract: function(a) { + if (!a || !(a instanceof org.antlr.runtime.BitSet)) { return null; } + + var s = this.clone(); + s.subtractInPlace(a); + return s; + }, + + /* antlr-java needs this to make its class hierarchy happy . . . + toList: function() { + throw new Error("BitSet.toList() unimplemented"); + }, + */ + + /** + * Creates an array of the indexes of each bit set in this bit set. + * @returns {Array} + */ + toArray: function() { + var elems = [], //new Array(this.size()), + i, + en = 0; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + elems[en++] = i; + } + } + return elems; + }, + + /** + * Returns the internal representation of this bit set. + * This representation is an array of numbers, each representing 32 bits. + * @returns {Array} + */ + toPackedArray: function() { + return this.bits; + }, + + /** + * Returns a string representation of this bit set. + *

For every index for which this BitSet contains a bit in the set state, + * the decimal representation of that index is included in the result. + * Such indices are listed in order from lowest to highest, separated by + * ", " (a comma and a space) and surrounded by braces, resulting in the + * usual mathematical notation for a set of integers.

+ * + *

If a grammar g is passed, print g.getTokenDisplayName(i) for each set + * index instead of the numerical index.

+ * + * <>If two arguments are passed, the first will be used as a custom + * separator string. The second argument is an array whose i-th element + * will be added if the corresponding bit is set.

+ * + * @param {Object|String} [arg1] an Object with function property + * getTokenDispalyName or a String that will be used as a list + * separator. + * @param {Array} [vocabulary] array from which the i-th value will be + * drawn if the corresponding bit is set. Must pass a string as the + * first argument if using this option. + * @return A commma-separated list of values + */ + toString: function() { + if (arguments.length===0) { + return this.toString1(null); + } else { + if (org.antlr.lang.isString(arguments[0])) { + if (!org.antlr.lang.isValue(arguments[1])) { + return this.toString1(null); + } else { + return this.toString2(arguments[0], arguments[1]); + } + } else { + return this.toString1(arguments[0]); + } + } + }, + + /** + * Transform a bit set into a string by formatting each element as an + * integer separator The string to put in between elements + * @private + * @return A commma-separated list of values + */ + toString1: function(g) { + var buf = "{", + separator = ",", + i, + havePrintedAnElement = false; + + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + if (i > 0 && havePrintedAnElement ) { + buf += separator; + } + if ( g ) { + buf += g.getTokenDisplayName(i); + } + else { + buf += i.toString(); + } + havePrintedAnElement = true; + } + } + return buf + "}"; + }, + + /** + * Create a string representation where instead of integer elements, the + * ith element of vocabulary is displayed instead. Vocabulary is a Vector + * of Strings. + * separator The string to put in between elements + * @private + * @return A commma-separated list of character constants. + */ + toString2: function(separator, vocabulary) { + var str = "", + i; + for (i = 0; i < (this.bits.length << org.antlr.runtime.BitSet.LOG_BITS); i++) { + if (this.member(i)) { + if (str.length > 0) { + str += separator; + } + if (i >= vocabulary.size()) { + str += "'" + i + "'"; + } + else if (!org.antlr.lang.isValue(vocabulary.get(i))) { + str += "'" + i + "'"; + } + else { + str += vocabulary.get(i); + } + } + } + return str; + } + + /* + * Dump a comma-separated list of the words making up the bit set. + * Split each 32 bit number into two more manageable 16 bit numbers. + * @returns {String} comma separated list view of the this.bits property. + * + toStringOfHalfWords: function() { + var s = "", + tmp, + i; + for (i = 0; i < this.bits.length; i++) { + if (i !== 0) { + s+=", "; + } + tmp = this.bits[i]; + tmp &= 0xFFFF; + s += tmp + "UL, "; + tmp = this.bits[i] >> 16; + tmp &= 0xFFFF; + s += tmp+"UL"; + } + return s; + }, + */ + + /* + * Dump a comma-separated list of the words making up the bit set. + * This generates a comma-separated list of Java-like long int constants. + * + toStringOfWords: function() { + var s="", + i; + for (i = 0; i < this.bits.length; i++) { + if (i !== 0) { + s+=", "; + } + s += this.bits[i]+"L"; + } + return s; + }, + + toStringWithRanges: function() { + return this.toString(); + } + */ +}; + +/* + * + * +org.antlr.runtime.IntervalSet = function() { + throw new Error("not implemented"); +}; +*/ +org.antlr.runtime.CharStream = { + EOF: -1 +}; +org.antlr.runtime.CommonToken = function() { + var oldToken; + + this.charPositionInLine = -1; // set to invalid position + this.channel = 0; // org.antlr.runtime.CommonToken.DEFAULT_CHANNEL + this.index = -1; + + if (arguments.length == 1) { + if (org.antlr.lang.isNumber(arguments[0])) { + this.type = arguments[0]; + } else { + oldToken = arguments[0]; + this.text = oldToken.getText(); + this.type = oldToken.getType(); + this.line = oldToken.getLine(); + this.index = oldToken.getTokenIndex(); + this.charPositionInLine = oldToken.getCharPositionInLine(); + this.channel = oldToken.getChannel(); + if ( oldToken instanceof org.antlr.runtime.CommonToken ) { + this.start = oldToken.start; + this.stop = oldToken.stop; + } + } + } else if (arguments.length == 2) { + this.type = arguments[0]; + this.text = arguments[1]; + this.channel = 0; // org.antlr.runtime.CommonToken.DEFAULT_CHANNEL + } else if (arguments.length == 5) { + this.input = arguments[0]; + this.type = arguments[1]; + this.channel = arguments[2]; + this.start = arguments[3]; + this.stop = arguments[4]; + } +}; + +org.antlr.runtime.CommonToken.prototype = { + getType: function() { + return this.type; + }, + + setLine: function(line) { + this.line = line; + }, + + getText: function() { + if ( org.antlr.lang.isString(this.text) ) { + return this.text; + } + if ( !this.input ) { + return null; + } + this.text = this.input.substring(this.start,this.stop); + return this.text; + }, + + /** Override the text for this token. getText() will return this text + * rather than pulling from the buffer. Note that this does not mean + * that start/stop indexes are not valid. It means that that input + * was converted to a new string in the token object. + */ + setText: function(text) { + this.text = text; + }, + + getLine: function() { + return this.line; + }, + + getCharPositionInLine: function() { + return this.charPositionInLine; + }, + + setCharPositionInLine: function(charPositionInLine) { + this.charPositionInLine = charPositionInLine; + }, + + getChannel: function() { + return this.channel; + }, + + setChannel: function(channel) { + this.channel = channel; + }, + + setType: function(type) { + this.type = type; + }, + + getStartIndex: function() { + return this.start; + }, + + setStartIndex: function(start) { + this.start = start; + }, + + getStopIndex: function() { + return this.stop; + }, + + setStopIndex: function(stop) { + this.stop = stop; + }, + + getTokenIndex: function() { + return this.index; + }, + + setTokenIndex: function(index) { + this.index = index; + }, + + getInputStream: function() { + return this.input; + }, + + setInputStream: function(input) { + this.input = input; + }, + + toString: function() { + var channelStr = ""; + if ( this.channel>0 ) { + channelStr=",channel="+this.channel; + } + var txt = this.getText(); + if ( !org.antlr.lang.isNull(txt) ) { + txt = txt.replace(/\n/g,"\\\\n"); + txt = txt.replace(/\r/g,"\\\\r"); + txt = txt.replace(/\t/g,"\\\\t"); + } + else { + txt = ""; + } + return "[@"+this.getTokenIndex()+","+this.start+":"+this.stop+"='"+txt+"',<"+this.type+">"+channelStr+","+this.line+":"+this.getCharPositionInLine()+"]"; + } +}; +// NB: Because Token has static members of type CommonToken, the Token dummy +// constructor is defined in CommonToken. All methods and vars of Token are +// defined here. Token is an interface, not a subclass in the Java runtime. + +/** + * @class Abstract base class of all token types. + * @name Token + * @memberOf org.antlr.runtime + */ +org.antlr.runtime.Token = function() {}; +org.antlr.lang.augmentObject(org.antlr.runtime.Token, /** @lends Token */ { + EOR_TOKEN_TYPE: 1, + + /** imaginary tree navigation type; traverse "get child" link */ + DOWN: 2, + /** imaginary tree navigation type; finish with a child list */ + UP: 3, + + MIN_TOKEN_TYPE: 4, // UP+1, + + EOF: org.antlr.runtime.CharStream.EOF, + EOF_TOKEN: new org.antlr.runtime.CommonToken(org.antlr.runtime.CharStream.EOF), + + INVALID_TOKEN_TYPE: 0, + INVALID_TOKEN: new org.antlr.runtime.CommonToken(0), + + /** In an action, a lexer rule can set token to this SKIP_TOKEN and ANTLR + * will avoid creating a token for this symbol and try to fetch another. + */ + SKIP_TOKEN: new org.antlr.runtime.CommonToken(0), + + /** All tokens go to the parser (unless skip() is called in that rule) + * on a particular "channel". The parser tunes to a particular channel + * so that whitespace etc... can go to the parser on a "hidden" channel. + */ + DEFAULT_CHANNEL: 0, + + /** Anything on different channel than DEFAULT_CHANNEL is not parsed + * by parser. + */ + HIDDEN_CHANNEL: 99 +}); + +org.antlr.lang.augmentObject(org.antlr.runtime.CommonToken, org.antlr.runtime.Token); +org.antlr.runtime.tree = {}; +org.antlr.runtime.tree.RewriteCardinalityException = function(elementDescription) { + this.elementDescription = elementDescription; +}; + +/** Base class for all exceptions thrown during AST rewrite construction. + * This signifies a case where the cardinality of two or more elements + * in a subrule are different: (ID INT)+ where |ID|!=|INT| + */ +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteCardinalityException, Error, { + getMessage: function() { + if ( org.antlr.lang.isString(this.elementDescription) ) { + return this.elementDescription; + } + return null; + }, + name: function() { + return "org.antlr.runtime.tree.RewriteCardinalityException"; + } +}); +/** Ref to ID or expr but no tokens in ID stream or subtrees in expr stream */ +org.antlr.runtime.tree.RewriteEmptyStreamException = function(elementDescription) { + var sup = org.antlr.runtime.tree.RewriteEmptyStreamException.superclass; + sup.constructor.call(this, elementDescription); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteEmptyStreamException, + org.antlr.runtime.tree.RewriteCardinalityException, { + name: function() { + return "org.antlr.runtime.tree.RewriteEmptyStreamException"; + } +}); +/** No elements within a (...)+ in a rewrite rule */ +org.antlr.runtime.tree.RewriteEarlyExitException = function(elementDescription) { + var sup = org.antlr.runtime.tree.RewriteEarlyExitException.superclass; + if (org.antlr.lang.isUndefined(elementDescription)) { + elementDescription = null; + } + sup.constructor.call(this, elementDescription); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteEarlyExitException, + org.antlr.runtime.tree.RewriteCardinalityException, { + name: function() { + return "org.antlr.runtime.tree.RewriteEarlyExitException"; + } +}); +org.antlr.runtime.MismatchedTreeNodeException = function(expecting, input) { + if (expecting && input) { + org.antlr.runtime.MismatchedTreeNodeException.superclass.constructor.call( + this, input); + this.expecting = expecting; + } +}; + +org.antlr.lang.extend( + org.antlr.runtime.MismatchedTreeNodeException, + org.antlr.runtime.RecognitionException, { + toString: function() { + return "MismatchedTreeNodeException(" + + this.getUnexpectedType() + "!=" + this.expecting + ")"; + }, + name: "org.antlr.runtime.MismatchedTreeNodeException" +}); +/** A generic tree implementation with no payload. You must subclass to + * actually have any user data. ANTLR v3 uses a list of children approach + * instead of the child-sibling approach in v2. A flat tree (a list) is + * an empty node whose children represent the list. An empty, but + * non-null node is called "nil". + */ +org.antlr.runtime.tree.BaseTree = function() {}; + +org.antlr.runtime.tree.BaseTree.prototype = { + getChild: function(i) { + if ( !this.children || i>=this.children.length ) { + return null; + } + return this.children[i]; + }, + + /** Get the children internal List; note that if you directly mess with + * the list, do so at your own risk. + */ + getChildren: function() { + return this.children; + }, + + getFirstChildWithType: function(type) { + var i, t; + for (i = 0; this.children && i < this.children.length; i++) { + t = this.children[i]; + if ( t.getType()===type ) { + return t; + } + } + return null; + }, + + getChildCount: function() { + if ( !this.children ) { + return 0; + } + return this.children.length; + }, + + /** Add t as child of this node. + * + * Warning: if t has no children, but child does + * and child isNil then this routine moves children to t via + * t.children = child.children; i.e., without copying the array. + */ + addChild: function(t) { + if ( !org.antlr.lang.isValue(t) ) { + return; // do nothing upon addChild(null) + } + var childTree = t, n, i, c; + if ( childTree.isNil() ) { // t is an empty node possibly with children + if ( this.children && this.children == childTree.children ) { + throw new Error("attempt to add child list to itself"); + } + // just add all of childTree's children to this + if ( childTree.children ) { + if ( this.children ) { // must copy, this has children already + n = childTree.children.length; + for (i = 0; i < n; i++) { + c = childTree.children[i]; + this.children.push(c); + // handle double-link stuff for each child of nil root + c.setParent(this); + c.setChildIndex(this.children.length-1); + } + } + else { + // no children for this but t has children; just set pointer + // call general freshener routine + this.children = childTree.children; + this.freshenParentAndChildIndexes(); + } + } + } + else { // child is not nil (don't care about children) + if ( !this.children ) { + this.children = this.createChildrenList(); // create children list on demand + } + this.children.push(t); + childTree.setParent(this); + childTree.setChildIndex(this.children.length-1); + } + }, + + /** Add all elements of kids list as children of this node */ + addChildren: function(kids) { + var i, t; + for (i = 0; i < kids.length; i++) { + t = kids[i]; + this.addChild(t); + } + }, + + setChild: function(i, t) { + if ( !t ) { + return; + } + if ( t.isNil() ) { + throw new Error("Can't set single child to a list"); + } + if ( !this.children ) { + this.children = this.createChildrenList(); + } + this.children[i] = t; + t.setParent(this); + t.setChildIndex(i); + }, + + deleteChild: function(i) { + if ( !this.children ) { + return null; + } + if (i<0 || i>=this.children.length) { + throw new Error("Index out of bounds."); + } + var killed = this.children.splice(i, 1)[0]; + // walk rest and decrement their child indexes + this.freshenParentAndChildIndexes(i); + return killed; + }, + + /** Delete children from start to stop and replace with t even if t is + * a list (nil-root tree). num of children can increase or decrease. + * For huge child lists, inserting children can force walking rest of + * children to set their childindex; could be slow. + */ + replaceChildren: function(startChildIndex, stopChildIndex, t) { + if ( !this.children ) { + throw new Error("indexes invalid; no children in list"); + } + var replacingHowMany = stopChildIndex - startChildIndex + 1; + var replacingWithHowMany; + var newTree = t; + var newChildren = null; + // normalize to a list of children to add: newChildren + if ( newTree.isNil() ) { + newChildren = newTree.children; + } + else { + newChildren = []; + newChildren.push(newTree); + } + replacingWithHowMany = newChildren.length; + var numNewChildren = newChildren.length; + var delta = replacingHowMany - replacingWithHowMany; + var j, i, child, indexToDelete, c, killed, numToInsert; + // if same number of nodes, do direct replace + if ( delta === 0 ) { + j = 0; // index into new children + for (i=startChildIndex; i<=stopChildIndex; i++) { + child = newChildren[j]; + this.children[i] = child; + child.setParent(this); + child.setChildIndex(i); + j++; + } + } + else if ( delta > 0 ) { // fewer new nodes than there were + // set children and then delete extra + for (j=0; j0 ) { + buf += ' '; + } + buf += t.toStringTree(); + } + if ( !this.isNil() ) { + buf += ")"; + } + return buf; + }, + + getLine: function() { + return 0; + }, + + getCharPositionInLine: function() { + return 0; + } +}; +/** A tree node that is wrapper for a Token object. After 3.0 release + * while building tree rewrite stuff, it became clear that computing + * parent and child index is very difficult and cumbersome. Better to + * spend the space in every tree node. If you don't want these extra + * fields, it's easy to cut them out in your own BaseTree subclass. + */ +org.antlr.runtime.tree.CommonTree = function(node) { + /** What token indexes bracket all tokens associated with this node + * and below? + */ + this.startIndex = -1; + this.stopIndex = -1; + + /** What index is this node in the child list? Range: 0..n-1 */ + this.childIndex = -1; + + /** Who is the parent node of this node; if null, implies node is root */ + this.parent = null; + + /** A single token is the payload */ + this.token = null; + + if (node instanceof org.antlr.runtime.tree.CommonTree) { + org.antlr.runtime.tree.CommonTree.superclass.constructor.call(this, node); + this.token = node.token; + this.startIndex = node.startIndex; + this.stopIndex = node.stopIndex; + } else if (node instanceof org.antlr.runtime.CommonToken) { + this.token = node; + } +}; + +/** A tree node that is wrapper for a Token object. */ +org.antlr.lang.extend(org.antlr.runtime.tree.CommonTree, org.antlr.runtime.tree.BaseTree, { + getToken: function() { + return this.token; + }, + + dupNode: function() { + return new org.antlr.runtime.tree.CommonTree(this); + }, + + isNil: function() { + return !this.token; + }, + + getType: function() { + if ( !this.token ) { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } + return this.token.getType(); + }, + + getText: function() { + if ( !this.token ) { + return null; + } + return this.token.getText(); + }, + + getLine: function() { + if ( !this.token || this.token.getLine()===0 ) { + if ( this.getChildCount()>0 ) { + return this.getChild(0).getLine(); + } + return 0; + } + return this.token.getLine(); + }, + + getCharPositionInLine: function() { + if ( !this.token || this.token.getCharPositionInLine()===-1 ) { + if ( this.getChildCount()>0 ) { + return this.getChild(0).getCharPositionInLine(); + } + return 0; + } + return this.token.getCharPositionInLine(); + }, + + getTokenStartIndex: function() { + if ( this.token ) { + return this.token.getTokenIndex(); + } + return this.startIndex; + }, + + setTokenStartIndex: function(index) { + this.startIndex = index; + }, + + getTokenStopIndex: function() { + if ( this.token ) { + return this.token.getTokenIndex(); + } + return this.stopIndex; + }, + + setTokenStopIndex: function(index) { + this.stopIndex = index; + }, + + getChildIndex: function() { + return this.childIndex; + }, + + getParent: function() { + return this.parent; + }, + + setParent: function(t) { + this.parent = t; + }, + + setChildIndex: function(index) { + this.childIndex = index; + }, + + toString: function() { + if ( this.isNil() ) { + return "nil"; + } + if ( this.getType()===org.antlr.runtime.Token.INVALID_TOKEN_TYPE ) { + return ""; + } + if ( !this.token ) { + return null; + } + return this.token.getText(); + } +}); +/** What does a tree look like? ANTLR has a number of support classes + * such as CommonTreeNodeStream that work on these kinds of trees. You + * don't have to make your trees implement this interface, but if you do, + * you'll be able to use more support code. + * + * NOTE: When constructing trees, ANTLR can build any kind of tree; it can + * even use Token objects as trees if you add a child list to your tokens. + * + * This is a tree node without any payload; just navigation and factory stuff. + */ +org.antlr.runtime.tree.Tree = { + INVALID_NODE: new org.antlr.runtime.tree.CommonTree(org.antlr.runtime.Token.INVALID_TOKEN) +}; +org.antlr.runtime.tree.CommonErrorNode = function(input, start, stop, e) { + if ( !stop || + (stop.getTokenIndex() < start.getTokenIndex() && + stop.getType()!=org.antlr.runtime.Token.EOF) ) + { + // sometimes resync does not consume a token (when LT(1) is + // in follow set. So, stop will be 1 to left to start. adjust. + // Also handle case where start is the first token and no token + // is consumed during recovery; LT(-1) will return null. + stop = start; + } + this.input = input; + this.start = start; + this.stop = stop; + this.trappedException = e; +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.CommonErrorNode, org.antlr.runtime.tree.CommonTree, { + isNil: function() { + return false; + }, + + getType: function() { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + }, + + getText: function() { + var badText = null; + if ( this.start instanceof org.antlr.runtime.CommonToken ) { + var i = this.start.getTokenIndex(); + var j = this.stop.getTokenIndex(); + if ( this.stop.getType() === org.antlr.runtime.Token.EOF ) { + j = this.input.size(); + } + badText = this.input.toString(i, j); + } + else if ( this.start instanceof org.antlr.runtime.tree.CommonTree ) { + badText = this.input.toString(this.start, this.stop); + } + else { + // people should subclass if they alter the tree type so this + // next one is for sure correct. + badText = ""; + } + return badText; + }, + + toString: function() { + if ( this.trappedException instanceof org.antlr.runtime.MissingTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.UnwantedTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.MismatchedTokenException ) { + return ""; + } + else if ( this.trappedException instanceof org.antlr.runtime.NoViableAltException ) { + return ""; + } + return ""; + } +}); +/** A TreeAdaptor that works with any Tree implementation. */ +org.antlr.runtime.tree.BaseTreeAdaptor = function() { + this.uniqueNodeID = 1; +}; + +org.antlr.runtime.tree.BaseTreeAdaptor.prototype = { + nil: function() { + return this.create(null); + }, + + /** create tree node that holds the start and stop tokens associated + * with an error. + * + * If you specify your own kind of tree nodes, you will likely have to + * override this method. CommonTree returns Token.INVALID_TOKEN_TYPE + * if no token payload but you might have to set token type for diff + * node type. + */ + errorNode: function(input, start, stop, e) { + var t = new org.antlr.runtime.tree.CommonErrorNode(input, start, stop, e); + return t; + }, + + isNil: function(tree) { + return tree.isNil(); + }, + + /** This is generic in the sense that it will work with any kind of + * tree (not just Tree interface). It invokes the adaptor routines + * not the tree node routines to do the construction. + */ + dupTree: function(t, parent) { + if (arguments.length===1) { + parent = null; + } + if ( !t ) { + return null; + } + var newTree = this.dupNode(t); + // ensure new subtree root has parent/child index set + this.setChildIndex(newTree, this.getChildIndex(t)); // same index in new tree + this.setParent(newTree, parent); + var n = this.getChildCount(t), + i, child, newSubTree; + for (i = 0; i < n; i++) { + child = this.getChild(t, i); + newSubTree = this.dupTree(child, t); + this.addChild(newTree, newSubTree); + } + return newTree; + }, + + /** Add a child to the tree t. If child is a flat tree (a list), make all + * in list children of t. Warning: if t has no children, but child does + * and child isNil then you can decide it is ok to move children to t via + * t.children = child.children; i.e., without copying the array. Just + * make sure that this is consistent with have the user will build + * ASTs. + */ + addChild: function(t, child) { + if ( t && org.antlr.lang.isValue(child) ) { + t.addChild(child); + } + }, + + /** If oldRoot is a nil root, just copy or move the children to newRoot. + * If not a nil root, make oldRoot a child of newRoot. + * + * old=^(nil a b c), new=r yields ^(r a b c) + * old=^(a b c), new=r yields ^(r ^(a b c)) + * + * If newRoot is a nil-rooted single child tree, use the single + * child as the new root node. + * + * old=^(nil a b c), new=^(nil r) yields ^(r a b c) + * old=^(a b c), new=^(nil r) yields ^(r ^(a b c)) + * + * If oldRoot was null, it's ok, just return newRoot (even if isNil). + * + * old=null, new=r yields r + * old=null, new=^(nil r) yields ^(nil r) + * + * Return newRoot. Throw an exception if newRoot is not a + * simple node or nil root with a single child node--it must be a root + * node. If newRoot is ^(nil x) return x as newRoot. + * + * Be advised that it's ok for newRoot to point at oldRoot's + * children; i.e., you don't have to copy the list. We are + * constructing these nodes so we should have this control for + * efficiency. + */ + becomeRoot: function(newRoot, oldRoot) { + if (newRoot instanceof org.antlr.runtime.CommonToken || !newRoot) { + newRoot = this.create(newRoot); + } + + var newRootTree = newRoot, + oldRootTree = oldRoot; + if ( !oldRoot ) { + return newRoot; + } + // handle ^(nil real-node) + if ( newRootTree.isNil() ) { + if ( newRootTree.getChildCount()>1 ) { + // TODO: make tree run time exceptions hierarchy + throw new Error("more than one node as root (TODO: make exception hierarchy)"); + } + newRootTree = newRootTree.getChild(0); + } + // add oldRoot to newRoot; addChild takes care of case where oldRoot + // is a flat list (i.e., nil-rooted tree). All children of oldRoot + // are added to newRoot. + newRootTree.addChild(oldRootTree); + return newRootTree; + }, + + /** Transform ^(nil x) to x */ + rulePostProcessing: function(root) { + var r = root; + if ( r && r.isNil() ) { + if ( r.getChildCount()===0 ) { + r = null; + } + else if ( r.getChildCount()===1 ) { + r = r.getChild(0); + // whoever invokes rule will set parent and child index + r.setParent(null); + r.setChildIndex(-1); + } + } + return r; + }, + + create: function(tokenType, fromToken) { + var text, t; + if (arguments.length===2) { + if (org.antlr.lang.isString(arguments[1])) { + text = arguments[1]; + fromToken = this.createToken(tokenType, text); + t = this.create(fromToken); + return t; + } else { + fromToken = this.createToken(fromToken); + fromToken.setType(tokenType); + t = this.create(fromToken); + return t; + } + } else if (arguments.length===3) { + text = arguments[2]; + fromToken = this.createToken(fromToken); + fromToken.setType(tokenType); + fromToken.setText(text); + t = this.create(fromToken); + return t; + } + }, + + getType: function(t) { + t.getType(); + return 0; + }, + + setType: function(t, type) { + throw new Error("don't know enough about Tree node"); + }, + + getText: function(t) { + return t.getText(); + }, + + setText: function(t, text) { + throw new Error("don't know enough about Tree node"); + }, + + getChild: function(t, i) { + return t.getChild(i); + }, + + setChild: function(t, i, child) { + t.setChild(i, child); + }, + + deleteChild: function(t, i) { + return t.deleteChild(i); + }, + + getChildCount: function(t) { + return t.getChildCount(); + }, + + getUniqueID: function(node) { + if ( !this.treeToUniqueIDMap ) { + this.treeToUniqueIDMap = {}; + } + var prevID = this.treeToUniqueIDMap[node]; + if ( org.antlr.lang.isValue(prevID) ) { + return prevID; + } + var ID = this.uniqueNodeID; + this.treeToUniqueIDMap[node] = ID; + this.uniqueNodeID++; + return ID; + // GC makes these nonunique: + // return System.identityHashCode(node); + } +}; +/** A TreeAdaptor that works with any Tree implementation. It provides + * really just factory methods; all the work is done by BaseTreeAdaptor. + * If you would like to have different tokens created than ClassicToken + * objects, you need to override this and then set the parser tree adaptor to + * use your subclass. + * + * To get your parser to build nodes of a different type, override + * create(Token). + */ +org.antlr.runtime.tree.CommonTreeAdaptor = function() {}; + +org.antlr.lang.extend(org.antlr.runtime.tree.CommonTreeAdaptor, + org.antlr.runtime.tree.BaseTreeAdaptor, { + /** Duplicate a node. This is part of the factory; + * override if you want another kind of node to be built. + * + * I could use reflection to prevent having to override this + * but reflection is slow. + */ + dupNode: function(t) { + if ( !org.antlr.lang.isValue(t) ) { + return null; + } + return t.dupNode(); + }, + + create: function(payload) { + if (arguments.length>1) { + return org.antlr.runtime.tree.CommonTreeAdaptor.superclass.create.apply(this, arguments); + } + return new org.antlr.runtime.tree.CommonTree(payload); + }, + + /** Tell me how to create a token for use with imaginary token nodes. + * For example, there is probably no input symbol associated with imaginary + * token DECL, but you need to create it as a payload or whatever for + * the DECL node as in ^(DECL type ID). + * + * If you care what the token payload objects' type is, you should + * override this method and any other createToken variant. + * + * Tell me how to create a token for use with imaginary token nodes. + * For example, there is probably no input symbol associated with imaginary + * token DECL, but you need to create it as a payload or whatever for + * the DECL node as in ^(DECL type ID). + * + * This is a variant of createToken where the new token is derived from + * an actual real input token. Typically this is for converting '{' + * tokens to BLOCK etc... You'll see + * + * r : lc='{' ID+ '}' -> ^(BLOCK[$lc] ID+) ; + * + * If you care what the token payload objects' type is, you should + * override this method and any other createToken variant. + */ + createToken: function(fromToken) { + if (arguments.length===2) { + return new org.antlr.runtime.CommonToken(arguments[0], arguments[1]); + } else { + return new org.antlr.runtime.CommonToken(arguments[0]); + } + }, + + /** Track start/stop token for subtree root created for a rule. + * Only works with Tree nodes. For rules that match nothing, + * seems like this will yield start=i and stop=i-1 in a nil node. + * Might be useful info so I'll not force to be i..i. + */ + setTokenBoundaries: function(t, startToken, stopToken) { + if ( !org.antlr.lang.isValue(t) ) { + return; + } + var start = 0, + stop = 0; + if ( org.antlr.lang.isValue(startToken) ) { + if (startToken.getTokenIndex) { + start = startToken.getTokenIndex(); + } else if (startToken.getStartIndex) { + start = startToken.getStartIndex(); + } else { + start = startToken.getTokenStartIndex(); + } + } + if ( org.antlr.lang.isValue(stopToken) ) { + if (stop.getTokenIndex) { + stop = stopToken.getTokenIndex(); + } else if (stopToken.getStopIndex) { + stop = stopToken.getStopIndex(); + } else { + stop = stopToken.getTokenStopIndex(); + } + } + t.setTokenStartIndex(start); + t.setTokenStopIndex(stop); + }, + + getTokenStartIndex: function(t) { + if (!t) { + return -1; + } + return t.getTokenStartIndex(); + }, + + getTokenStopIndex: function(t) { + if (!t) { + return -1; + } + return t.getTokenStopIndex(); + }, + + getText: function(t) { + if (!t) { + return null; + } + return t.getText(); + }, + + getType: function(t) { + if (!t) { + return org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + } + return t.getType(); + }, + + /** What is the Token associated with this node? If + * you are not using CommonTree, then you must + * override this in your own adaptor. + */ + getToken: function(t) { + if ( t instanceof org.antlr.runtime.tree.CommonTree ) { + return t.getToken(); + } + return null; // no idea what to do + }, + + getChild: function(t, i) { + if (!t) { + return null; + } + return t.getChild(i); + }, + + getChildCount: function(t) { + if (!t) { + return 0; + } + return t.getChildCount(); + }, + + getParent: function(t) { + return t.getParent(); + }, + + setParent: function(t, parent) { + t.setParent(parent); + }, + + getChildIndex: function(t) { + return t.getChildIndex(); + }, + + setChildIndex: function(t, index) { + t.setChildIndex(index); + }, + + replaceChildren: function(parent, startChildIndex, stopChildIndex, t) { + if ( parent ) { + parent.replaceChildren(startChildIndex, stopChildIndex, t); + } + } +}); +/** + * A stream of characters created from a JavaScript string that in turn gets + * fed to a lexer. + * @class + * @param {String} data the string from which this stream will be created. + */ +org.antlr.runtime.ANTLRStringStream = function(data) { + /** + * Location in the stream. + * Ranges from 0 to (stream length - 1). + * @private + * @type Number + */ + this.p = 0; + + /** + * The current line in the input. + * Ranges from 1 to (number of lines). + * @private + * @type Number + */ + this.line = 1; + + /** + * The index of the character relative to the beginning of the line. + * Ranges from 0 to (length of line - 1). + * @private + * @type Number + */ + this.charPositionInLine = 0; + + /** + * Tracks how deep mark() calls are nested + * @private + * @type Number + */ + this.markDepth = 0; + + /** + * An Array of objects that tracks the stream state + * values line, charPositionInLine, and p that can change as you + * move through the input stream. Indexed from 1..markDepth. + * A null is kept at index 0. Created upon first call to mark(). + * @private + * @type Array + */ + this.markers = null; + + /** + * Track the last mark() call result value for use in rewind(). + * @private + * @type Number + */ + this.lastMarker = null; + + /** + * The data being scanned. + * @private + * @type String + */ + this.data = data; + + /** + * The number of characters in the stream. + * @private + * @type Number + */ + this.n = data.length; +}; + +org.antlr.runtime.ANTLRStringStream.prototype = { + /** + * Reset the stream so that it's in the same state it was + * when the object was created *except* the data array is not + * touched. + */ + reset: function() { + this.p = 0; + this.line = 1; + this.charPositionInLine = 0; + this.markDepth = 0; + }, + + /** + * Consume the next character of data in the stream. + */ + consume: function() { + //console.log("prev p="+ this.p +", c="+ this.data.charAt(this.p)); + if ( this.p < this.n ) { + this.charPositionInLine++; + if ( this.data.charAt(this.p)==="\n" ) { + this.line++; + this.charPositionInLine=0; + } + this.p++; + //console.log("p moves to " + this.p + " (c='"+ this.data.charAt(this.p) +"')"); + } + }, + + /** + * Get character at current input pointer + i ahead where i=1 is next int. + * Negative indexes are allowed. LA(-1) is previous token (token + * just matched). LA(-i) where i is before first token should + * yield -1, invalid char / EOF. + * @param {Number} i non-zero amount of lookahead or lookback + * @returns {String|Number} The charcter at the specified position or -1 if + * you fell off either end of the stream. + */ + LA: function(i) { + if ( i<0 ) { + i++; // e.g., translate LA(-1) to use offset i=0; then data[p+0-1] + } + + var new_pos = this.p+i-1; + if (new_pos>=this.n || new_pos<0) { + return org.antlr.runtime.CharStream.EOF; + } + return this.data.charAt(new_pos); + }, + + + /** + * Return the current input symbol index 0..n where n indicates the + * last symbol has been read. The index is the index of char to + * be returned from LA(1) (i.e. the one about to be consumed). + * @returns {Number} the index of the current input symbol + */ + index: function() { + return this.p; + }, + + /** + * The length of this stream. + * @returns {Number} the length of this stream. + */ + size: function() { + return this.n; + }, + + /** + * Tell the stream to start buffering if it hasn't already. Return + * current input position, index(), or some other marker so that + * when passed to rewind() you get back to the same spot. + * rewind(mark()) should not affect the input cursor. The Lexer + * tracks line/col info as well as input index so its markers are + * not pure input indexes. Same for tree node streams. + * + *

Marking is a mechanism for storing the current position of a stream + * in a stack. This corresponds with the predictive look-ahead mechanism + * used in Lexers.

+ * @returns {Number} the current size of the mark stack. + */ + mark: function() { + if ( !this.markers ) { + this.markers = []; + this.markers.push(null); // depth 0 means no backtracking, leave blank + } + this.markDepth++; + var state = null; + if ( this.markDepth>=this.markers.length ) { + state = {}; + this.markers.push(state); + } + else { + state = this.markers[this.markDepth]; + } + state.p = this.p; + state.line = this.line; + state.charPositionInLine = this.charPositionInLine; + this.lastMarker = this.markDepth; + return this.markDepth; + }, + + /** + * Rewind to the input position of the last marker. + * Used currently only after a cyclic DFA and just + * before starting a sem/syn predicate to get the + * input position back to the start of the decision. + * Do not "pop" the marker off the state. mark(i) + * and rewind(i) should balance still. It is + * like invoking rewind(last marker) but it should not "pop" + * the marker off. It's like seek(last marker's input position). + * @param {Number} [m] the index in the mark stack to load instead of the + * last. + */ + rewind: function(m) { + if (!org.antlr.lang.isNumber(m)) { + m = this.lastMarker; + } + + var state = this.markers[m]; + // restore stream state + this.seek(state.p); + this.line = state.line; + this.charPositionInLine = state.charPositionInLine; + this.release(m); + }, + + /** + * You may want to commit to a backtrack but don't want to force the + * stream to keep bookkeeping objects around for a marker that is + * no longer necessary. This will have the same behavior as + * rewind() except it releases resources without the backward seek. + * This must throw away resources for all markers back to the marker + * argument. So if you're nested 5 levels of mark(), and then release(2) + * you have to release resources for depths 2..5. + * @param {Number} marker the mark depth above which all mark states will + * be released. + */ + release: function(marker) { + // unwind any other markers made after m and release m + this.markDepth = marker; + // release this marker + this.markDepth--; + }, + + /** + * Set the input cursor to the position indicated by index. This is + * normally used to seek ahead in the input stream. No buffering is + * required to do this unless you know your stream will use seek to + * move backwards such as when backtracking. + * + *

This is different from rewind in its multi-directional + * requirement and in that its argument is strictly an input cursor + * (index).

+ * + *

For char streams, seeking forward must update the stream state such + * as line number. For seeking backwards, you will be presumably + * backtracking using the mark/rewind mechanism that restores state and + * so this method does not need to update state when seeking backwards.

+ * + *

Currently, this method is only used for efficient backtracking using + * memoization, but in the future it may be used for incremental + * parsing.

+ * + *

The index is 0..n-1. A seek to position i means that LA(1) will + * return the ith symbol. So, seeking to 0 means LA(1) will return the + * first element in the stream.

+ * + *

Esentially this method method moves the input position, + * {@link #consume}-ing data if necessary.

+ * + * @param {Number} index the position to seek to. + */ + seek: function(index) { + if ( index<=this.p ) { + this.p = index; // just jump; don't update stream state (line, ...) + return; + } + // seek forward, consume until p hits index + while ( this.p= 2) { + this.channel = channel; + } else if (arguments.length === 1) { + this.tokenSource = tokenSource; + } +}; + +org.antlr.runtime.CommonTokenStream.prototype = { + /** Reset this token stream by setting its token source. */ + setTokenSource: function(tokenSource) { + this.tokenSource = tokenSource; + this.tokens = []; + this.p = -1; + this.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + }, + + /** Load all tokens from the token source and put in tokens. + * This is done upon first LT request because you might want to + * set some token type / channel overrides before filling buffer. + */ + fillBuffer: function() { + var index = 0, + t = this.tokenSource.nextToken(), + discard, + channelI; + while ( org.antlr.lang.isValue(t) && + t.getType()!=org.antlr.runtime.CharStream.EOF ) + { + discard = false; + // is there a channel override for token type? + if ( this.channelOverrideMap ) { + channelI = this.channelOverrideMap[t.getType()]; + if ( org.antlr.lang.isValue(channelI) ) { + t.setChannel(channelI); + } + } + if ( this.discardSet && this.discardSet[t.getType()] ) + { + discard = true; + } + else if ( this.v_discardOffChannelTokens && + t.getChannel()!=this.channel ) + { + discard = true; + } + if ( !discard ) { + t.setTokenIndex(index); + this.tokens.push(t); + index++; + } + t = this.tokenSource.nextToken(); + } + // leave p pointing at first token on channel + this.p = 0; + this.p = this.skipOffTokenChannels(this.p); + }, + + /** Move the input pointer to the next incoming token. The stream + * must become active with LT(1) available. consume() simply + * moves the input pointer so that LT(1) points at the next + * input symbol. Consume at least one token. + * + * Walk past any token not on the channel the parser is listening to. + */ + consume: function() { + if ( this.p=0 && (this.tokens[i]).getChannel()!=this.channel ) { + i--; + } + return i; + }, + + /** A simple filter mechanism whereby you can tell this token stream + * to force all tokens of type ttype to be on channel. For example, + * when interpreting, we cannot exec actions so we need to tell + * the stream to force all WS and NEWLINE to be a different, ignored + * channel. + */ + setTokenTypeChannel: function(ttype, channel) { + if ( !this.channelOverrideMap ) { + this.channelOverrideMap = {}; + } + this.channelOverrideMap[ttype] = channel; + }, + + discardTokenType: function(ttype) { + if ( !this.discardSet ) { + this.discardSet = {}; + } + this.discardSet[ttype] = true; + }, + + discardOffChannelTokens: function(b) { + this.v_discardOffChannelTokens = b; + }, + + /** Given a start and stop index, return a List of all tokens in + * the token type BitSet. Return null if no tokens were found. This + * method looks at both on and off channel tokens. + */ + getTokens: function(start, stop, types) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + + if (arguments.length===0) { + return this.tokens; + } + + if (org.antlr.lang.isArray(types)) { + types = new org.antlr.runtime.BitSet(types); + } else if (org.antlr.lang.isNumber(types)) { + types = org.antlr.runtime.BitSet.of(types); + } + + if ( stop>=this.tokens.length ) { + stop=this.tokens.length-1; + } + if ( start<0 ) { + start=0; + } + if ( start>stop ) { + return null; + } + + // list = tokens[start:stop]:{Token t, t.getType() in types} + var filteredTokens = [], + i, + t; + for (i=start; i<=stop; i++) { + t = this.tokens[i]; + if ( !this.types || types.member(t.getType()) ) { + filteredTokens.push(t); + } + } + if ( filteredTokens.length===0 ) { + filteredTokens = null; + } + return filteredTokens; + }, + + /** Get the ith token from the current position 1..n where k=1 is the + * first symbol of lookahead. + */ + LT: function(k) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + if ( k===0 ) { + return null; + } + if ( k<0 ) { + return this.LB(-1*k); + } + if ( (this.p+k-1) >= this.tokens.length ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + var i = this.p, + n = 1; + // find k good tokens + while ( n=this.tokens.length ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + return this.tokens[i]; + }, + + /** Look backwards k tokens on-channel tokens */ + LB: function(k) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + if ( k===0 ) { + return null; + } + if ( (this.p-k)<0 ) { + return null; + } + + var i = this.p, + n = 1; + // find k good tokens looking backwards + while ( n<=k ) { + // skip off-channel tokens + i = this.skipOffTokenChannelsReverse(i-1); // leave p on valid token + n++; + } + if ( i<0 ) { + return null; + } + return this.tokens[i]; + }, + + /** Return absolute token i; ignore which channel the tokens are on; + * that is, count all tokens not just on-channel tokens. + */ + get: function(i) { + return this.tokens[i]; + }, + + LA: function(i) { + return this.LT(i).getType(); + }, + + mark: function() { + if ( this.p === -1 ) { + this.fillBuffer(); + } + this.lastMarker = this.index(); + return this.lastMarker; + }, + + release: function(marker) { + // no resources to release + }, + + size: function() { + return this.tokens.length; + }, + + index: function() { + return this.p; + }, + + rewind: function(marker) { + if (!org.antlr.lang.isNumber(marker)) { + marker = this.lastMarker; + } + this.seek(marker); + }, + + reset: function() { + this.p = -1; + this.lastMarker = 0; + }, + + seek: function(index) { + this.p = index; + }, + + getTokenSource: function() { + return this.tokenSource; + }, + + getSourceName: function() { + return this.getTokenSource().getSourceName(); + }, + + toString: function(start, stop) { + if (arguments.length===0) { + if ( this.p === -1 ) { + this.fillBuffer(); + } + start = 0; + stop = this.tokens.length-1; + } + + if (!org.antlr.lang.isNumber(start) && !org.antlr.lang.isNumber(stop)) { + if ( org.antlr.lang.isValue(start) && org.antlr.lang.isValue(stop) ) { + start = start.getTokenIndex(); + stop = stop.getTokenIndex(); + } else { + return null; + } + } + + var buf = "", + i; + + if ( start<0 || stop<0 ) { + return null; + } + if ( this.p == -1 ) { + this.fillBuffer(); + } + if ( stop>=this.tokens.length ) { + stop = this.tokens.length-1; + } + for (i = start; i <= stop; i++) { + t = this.tokens[i]; + buf = buf + this.tokens[i].getText(); + } + return buf; + } +}; +/* Useful for dumping out the input stream after doing some + * augmentation or other manipulations. + * + * You can insert stuff, replace, and delete chunks. Note that the + * operations are done lazily--only if you convert the buffer to a + * String. This is very efficient because you are not moving data around + * all the time. As the buffer of tokens is converted to strings, the + * toString() method(s) check to see if there is an operation at the + * current index. If so, the operation is done and then normal String + * rendering continues on the buffer. This is like having multiple Turing + * machine instruction streams (programs) operating on a single input tape. :) + * + * Since the operations are done lazily at toString-time, operations do not + * screw up the token index values. That is, an insert operation at token + * index i does not change the index values for tokens i+1..n-1. + * + * Because operations never actually alter the buffer, you may always get + * the original token stream back without undoing anything. Since + * the instructions are queued up, you can easily simulate transactions and + * roll back any changes if there is an error just by removing instructions. + * For example, + * + * CharStream input = new ANTLRFileStream("input"); + * TLexer lex = new TLexer(input); + * TokenRewriteStream tokens = new TokenRewriteStream(lex); + * T parser = new T(tokens); + * parser.startRule(); + * + * Then in the rules, you can execute + * Token t,u; + * ... + * input.insertAfter(t, "text to put after t");} + * input.insertAfter(u, "text after u");} + * System.out.println(tokens.toString()); + * + * Actually, you have to cast the 'input' to a TokenRewriteStream. :( + * + * You can also have multiple "instruction streams" and get multiple + * rewrites from a single pass over the input. Just name the instruction + * streams and use that name again when printing the buffer. This could be + * useful for generating a C file and also its header file--all from the + * same buffer: + * + * tokens.insertAfter("pass1", t, "text to put after t");} + * tokens.insertAfter("pass2", u, "text after u");} + * System.out.println(tokens.toString("pass1")); + * System.out.println(tokens.toString("pass2")); + * + * If you don't use named rewrite streams, a "default" stream is used as + * the first example shows. + */ + +org.antlr.runtime.TokenRewriteStream = function() { + var sup = org.antlr.runtime.TokenRewriteStream.superclass; + + /** You may have multiple, named streams of rewrite operations. + * I'm calling these things "programs." + * Maps String (name) -> rewrite (List) + */ + this.programs = null; + + /** Map String (program name) -> Integer index */ + this.lastRewriteTokenIndexes = null; + + + if (arguments.length===0) { + this.init(); + } else { + sup.constructor.apply(this, arguments); + this.init(); + } +}; + +(function(){ +var trs = org.antlr.runtime.TokenRewriteStream; + +org.antlr.lang.augmentObject(trs, { + DEFAULT_PROGRAM_NAME: "default", + PROGRAM_INIT_SIZE: 100, + MIN_TOKEN_INDEX: 0 +}); + +// +// Define the rewrite operation hierarchy +// + +trs.RewriteOperation = function(index, text) { + this.index = index; + this.text = text; +}; + +/** Execute the rewrite operation by possibly adding to the buffer. + * Return the index of the next token to operate on. + */ +trs.RewriteOperation.prototype = { + execute: function(buf) { + return this.index; + }, + toString: function() { + /*String opName = getClass().getName(); + int $index = opName.indexOf('$'); + opName = opName.substring($index+1, opName.length()); + return opName+"@"+index+'"'+text+'"';*/ + return this.text; + } +}; + +trs.InsertBeforeOp = function(index, text) { + trs.InsertBeforeOp.superclass.constructor.call(this, index, text); +}; +org.antlr.lang.extend(trs.InsertBeforeOp, trs.RewriteOperation, { + execute: function(buf) { + buf.push(this.text); + return this.index; + } +}); + +/** I'm going to try replacing range from x..y with (y-x)+1 ReplaceOp + * instructions. + */ +trs.ReplaceOp = function(from, to, text) { + trs.ReplaceOp.superclass.constructor.call(this, from, text); + this.lastIndex = to; +}; +org.antlr.lang.extend(trs.ReplaceOp, trs.RewriteOperation, { + execute: function(buf) { + if (org.antlr.lang.isValue(this.text)) { + buf.push(this.text); + } + return this.lastIndex+1; + } +}); + +trs.DeleteOp = function(from, to) { + trs.DeleteOp.superclass.constructor.call(this, from, to); +}; +org.antlr.lang.extend(trs.DeleteOp, trs.ReplaceOp); + +org.antlr.lang.extend(trs, org.antlr.runtime.CommonTokenStream, { + init: function() { + this.programs = {}; + this.programs[trs.DEFAULT_PROGRAM_NAME] = []; + this.lastRewriteTokenIndexes = {}; + }, + + /** Rollback the instruction stream for a program so that + * the indicated instruction (via instructionIndex) is no + * longer in the stream. UNTESTED! + */ + rollback: function() { + var programName, + instructionIndex; + + if (arguments.length===1) { + programName = trs.DEFAULT_PROGRAM_NAME; + instructionIndex = arguments[0]; + } else if (arguments.length===2) { + programName = arguments[0]; + instructionIndex = arguments[1]; + } + var is = this.programs[programName]; + if (is) { + programs[programName] = is.slice(trs.MIN_TOKEN_INDEX, this.instructionIndex); + } + }, + + /** Reset the program so that no instructions exist */ + deleteProgram: function(programName) { + programName = programName || trs.DEFAULT_PROGRAM_NAME; + this.rollback(programName, trs.MIN_TOKEN_INDEX); + }, + + /** Add an instruction to the rewrite instruction list ordered by + * the instruction number (use a binary search for efficiency). + * The list is ordered so that toString() can be done efficiently. + * + * When there are multiple instructions at the same index, the instructions + * must be ordered to ensure proper behavior. For example, a delete at + * index i must kill any replace operation at i. Insert-before operations + * must come before any replace / delete instructions. If there are + * multiple insert instructions for a single index, they are done in + * reverse insertion order so that "insert foo" then "insert bar" yields + * "foobar" in front rather than "barfoo". This is convenient because + * I can insert new InsertOp instructions at the index returned by + * the binary search. A ReplaceOp kills any previous replace op. Since + * delete is the same as replace with null text, i can check for + * ReplaceOp and cover DeleteOp at same time. :) + */ + addToSortedRewriteList: function() { + var programName, + op; + if (arguments.length===1) { + programName = trs.DEFAULT_PROGRAM_NAME; + op = arguments[0]; + } else if (arguments.length===2) { + programName = arguments[0]; + op = arguments[1]; + } + + var rewrites = this.getProgram(programName); + var len, pos, searchOp, replaced, prevOp, i; + for (pos=0, len=rewrites.length; pos op.index) { + rewrites.splice(pos, 0, op); + break; + } + } + if (pos===len) { + rewrites.push(op); + } + }, + + insertAfter: function() { + var index, programName, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + index = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = arguments[0]; + index = arguments[1]; + text = arguments[2]; + } + + if (index instanceof org.antlr.runtime.CommonToken) { + // index is a Token, grab it's stream index + index = index.index; // that's ugly + } + + // insert after is the same as insert before the next index + this.insertBefore(programName, index+1, text); + }, + + insertBefore: function() { + var index, programName, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + index = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = arguments[0]; + index = arguments[1]; + text = arguments[2]; + } + + if (index instanceof org.antlr.runtime.CommonToken) { + // index is a Token, grab it's stream index + index = index.index; // that's ugly + } + + this.addToSortedRewriteList( + programName, + new trs.InsertBeforeOp(index,text) + ); + }, + + replace: function() { + var programName, first, last, text; + if (arguments.length===2) { + programName = trs.DEFAULT_PROGRAM_NAME; + first = arguments[0]; + last = arguments[0]; + text = arguments[1]; + } else if (arguments.length===3) { + programName = trs.DEFAULT_PROGRAM_NAME; + first = arguments[0]; + last = arguments[1]; + text = arguments[2]; + } if (arguments.length===4) { + programName = arguments[0]; + first = arguments[1]; + last = arguments[2]; + text = arguments[3]; + } + + if (first instanceof org.antlr.runtime.CommonToken) { + first = first.index; + } + + if (last instanceof org.antlr.runtime.CommonToken) { + last = last.index; // that's ugly + } + + if ( first > last || last<0 || first<0 ) { + return; + } + this.addToSortedRewriteList( + programName, + new trs.ReplaceOp(first, last, text)); + }, + + // !!! API Break: delete is a JS keyword, so using remove instead. + remove: function() { + // convert arguments to a real array + var args=[], i=arguments.length-1; + while (i>=0) { + args[i] = arguments[i]; + i--; + } + + args.push(""); + this.replace.apply(this, args); + }, + + getLastRewriteTokenIndex: function(programName) { + programName = programName || trs.DEFAULT_PROGRAM_NAME; + return this.lastRewriteTokenIndexes[programName] || -1; + }, + + setLastRewriteTokenIndex: function(programName, i) { + this.lastRewriteTokenIndexes[programName] = i; + }, + + getProgram: function(name) { + var is = this.programs[name]; + if ( !is ) { + is = this.initializeProgram(name); + } + return is; + }, + + initializeProgram: function(name) { + var is = []; + this.programs[name] = is; + return is; + }, + + toOriginalString: function(start, end) { + if (!org.antlr.lang.isNumber(start)) { + start = trs.MIN_TOKEN_INDEX; + } + if (!org.antlr.lang.isNumber(end)) { + end = this.size()-1; + } + + var buf = [], i; + for (i=start; i>=trs.MIN_TOKEN_INDEX && i<=end && i=trs.MIN_TOKEN_INDEX && + tokenCursor<=end && + tokenCursor=trs.MIN_TOKEN_INDEX && i<=end && i0 ) { + this.addNavigationNode(org.antlr.runtime.Token.DOWN); + } + // and now add all its children + var c, child; + for (c=0; c0 ) { + this.addNavigationNode(org.antlr.runtime.Token.UP); + } + + if (reset_p) { + this.p = 0; // buffer of nodes intialized now + } + }, + + getNodeIndex: function(node) { + if ( this.p==-1 ) { + this.fillBuffer(); + } + var i, t; + for (i=0; i= this.nodes.length ) { + return this.eof; + } + return this.nodes[this.p+k-1]; + }, + + getCurrentSymbol: function() { return this.LT(1); }, + + /** Look backwards k nodes */ + LB: function(k) { + if ( k===0 ) { + return null; + } + if ( (this.p-k)<0 ) { + return null; + } + return this.nodes[this.p-k]; + }, + + getTreeSource: function() { + return this.root; + }, + + getSourceName: function() { + return this.getTokenStream().getSourceName(); + }, + + getTokenStream: function() { + return this.tokens; + }, + + setTokenStream: function(tokens) { + this.tokens = tokens; + }, + + getTreeAdaptor: function() { + return this.adaptor; + }, + + setTreeAdaptor: function(adaptor) { + this.adaptor = adaptor; + }, + + hasUniqueNavigationNodes: function() { + return this.uniqueNavigationNodes; + }, + + setUniqueNavigationNodes: function(uniqueNavigationNodes) { + this.uniqueNavigationNodes = uniqueNavigationNodes; + }, + + consume: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.p++; + }, + + LA: function(i) { + return this.adaptor.getType(this.LT(i)); + }, + + mark: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.lastMarker = this.index(); + return this.lastMarker; + }, + + release: function(marker) { + // no resources to release + }, + + index: function() { + return this.p; + }, + + rewind: function(marker) { + if (!org.antlr.lang.isNumber(marker)) { + marker = this.lastMarker; + } + this.seek(marker); + }, + + seek: function(index) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + this.p = index; + }, + + /** Make stream jump to a new location, saving old location. + * Switch back with pop(). + */ + push: function(index) { + if ( !this.calls ) { + this.calls = []; + } + this.calls.push(this.p); // save current index + this.seek(index); + }, + + /** Seek back to previous index saved during last push() call. + * Return top of stack (return index). + */ + pop: function() { + var ret = this.calls.pop(); + this.seek(ret); + return ret; + }, + + reset: function() { + this.p = -1; + this.lastMarker = 0; + if (this.calls) { + this.calls = []; + } + }, + + size: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + return this.nodes.length; + }, + + iterator: function() { + if ( this.p===-1 ) { + this.fillBuffer(); + } + return this.StreamIterator(); + }, + + replaceChildren: function(parent, startChildIndex, stopChildIndex, t) { + if ( parent ) { + this.adaptor.replaceChildren(parent, startChildIndex, stopChildIndex, t); + } + }, + + /** Debugging */ + toTokenString: function(start, stop) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + var buf='', i, t; + for (i = start; i < this.nodes.length && i <= stop; i++) { + t = this.nodes[i]; + buf += " "+this.adaptor.getToken(t); + } + return buf; + }, + + /** Used for testing, just return the token type stream */ + toString: function(start, stop) { + var buf = "", + text, + t, + i; + if (arguments.length===0) { + if ( this.p===-1 ) { + this.fillBuffer(); + } + for (i = 0; i < this.nodes.length; i++) { + t = this.nodes[i]; + buf += " "; + buf += this.adaptor.getType(t); + } + return buf; + } else { + if ( !org.antlr.lang.isNumber(start) || !org.antlr.lang.isNumber(stop) ) { + return null; + } + if ( this.p===-1 ) { + this.fillBuffer(); + } + //System.out.println("stop: "+stop); + if ( start instanceof org.antlr.runtime.tree.CommonTree ) { + //System.out.print("toString: "+((CommonTree)start).getToken()+", "); + } else { + //System.out.println(start); + } + if ( stop instanceof org.antlr.runtime.tree.CommonTree ) { + //System.out.println(((CommonTree)stop).getToken()); + } else { + //System.out.println(stop); + } + // if we have the token stream, use that to dump text in order + var beginTokenIndex, + endTokenIndex; + if ( this.tokens ) { + beginTokenIndex = this.adaptor.getTokenStartIndex(start); + endTokenIndex = this.adaptor.getTokenStopIndex(stop); + // if it's a tree, use start/stop index from start node + // else use token range from start/stop nodes + if ( this.adaptor.getType(stop)===org.antlr.runtime.Token.UP ) { + endTokenIndex = this.adaptor.getTokenStopIndex(start); + } + else if ( this.adaptor.getType(stop)==org.antlr.runtime.Token.EOF ) + { + endTokenIndex = this.size()-2; // don't use EOF + } + return this.tokens.toString(beginTokenIndex, endTokenIndex); + } + // walk nodes looking for start + t = null; + i = 0; + for (; i < this.nodes.length; i++) { + t = this.nodes[i]; + if ( t===start ) { + break; + } + } + // now walk until we see stop, filling string buffer with text + buf = text = ""; + t = this.nodes[i]; + while ( t!==stop ) { + text = this.adaptor.getText(t); + if ( !org.antlr.lang.isString(text) ) { + text = " "+this.adaptor.getType(t).toString(); + } + buf += text; + i++; + t = nodes[i]; + } + // include stop node too + text = this.adaptor.getText(stop); + if ( !org.antlr.lang.isString(text) ) { + text = " "+this.adaptor.getType(stop).toString(); + } + buf += text; + return buf; + } + } +}); +/** A generic list of elements tracked in an alternative to be used in + * a -> rewrite rule. We need to subclass to fill in the next() method, + * which returns either an AST node wrapped around a token payload or + * an existing subtree. + * + * Once you start next()ing, do not try to add more elements. It will + * break the cursor tracking I believe. + * + * @see org.antlr.runtime.tree.RewriteRuleSubtreeStream + * @see org.antlr.runtime.tree.RewriteRuleTokenStream + * + * TODO: add mechanism to detect/puke on modification after reading from stream + */ +org.antlr.runtime.tree.RewriteRuleElementStream = function(adaptor, elementDescription, el) { + /** Cursor 0..n-1. If singleElement!=null, cursor is 0 until you next(), + * which bumps it to 1 meaning no more elements. + */ + this.cursor = 0; + + /** Once a node / subtree has been used in a stream, it must be dup'd + * from then on. Streams are reset after subrules so that the streams + * can be reused in future subrules. So, reset must set a dirty bit. + * If dirty, then next() always returns a dup. + * + * I wanted to use "naughty bit" here, but couldn't think of a way + * to use "naughty". + */ + this.dirty = false; + + this.elementDescription = elementDescription; + this.adaptor = adaptor; + if (el) { + if (org.antlr.lang.isArray(el)) { + this.singleElement = null; + this.elements = el; + } else { + this.add(el); + } + } +}; + +org.antlr.runtime.tree.RewriteRuleElementStream.prototype = { + /** Reset the condition of this stream so that it appears we have + * not consumed any of its elements. Elements themselves are untouched. + * Once we reset the stream, any future use will need duplicates. Set + * the dirty bit. + */ + reset: function() { + this.cursor = 0; + this.dirty = true; + }, + + add: function(el) { + if ( !org.antlr.lang.isValue(el) ) { + return; + } + if ( this.elements ) { // if in list, just add + this.elements.push(el); + return; + } + if ( !org.antlr.lang.isValue(this.singleElement) ) { // no elements yet, track w/o list + this.singleElement = el; + return; + } + // adding 2nd element, move to list + this.elements = []; + this.elements.push(this.singleElement); + this.singleElement = null; + this.elements.push(el); + }, + + /** Return the next element in the stream. If out of elements, throw + * an exception unless size()==1. If size is 1, then return elements[0]. + * Return a duplicate node/subtree if stream is out of elements and + * size==1. If we've already used the element, dup (dirty bit set). + */ + nextTree: function() { + var n = this.size(), + el; + if ( this.dirty || (this.cursor>=n && n==1) ) { + // if out of elements and size is 1, dup + el = this._next(); + return this.dup(el); + } + // test size above then fetch + el = this._next(); + return el; + }, + + /** do the work of getting the next element, making sure that it's + * a tree node or subtree. Deal with the optimization of single- + * element list versus list of size > 1. Throw an exception + * if the stream is empty or we're out of elements and size>1. + * protected so you can override in a subclass if necessary. + */ + _next: function() { + var n = this.size(); + if (n===0) { + throw new org.antlr.runtime.tree.RewriteEmptyStreamException(this.elementDescription); + } + if ( this.cursor>= n) { // out of elements? + if ( n===1 ) { // if size is 1, it's ok; return and we'll dup + return this.toTree(this.singleElement); + } + // out of elements and size was not 1, so we can't dup + throw new org.antlr.runtime.tree.RewriteCardinalityException(this.elementDescription); + } + // we have elements + if ( org.antlr.lang.isValue(this.singleElement) ) { + this.cursor++; // move cursor even for single element list + return this.toTree(this.singleElement); + } + // must have more than one in list, pull from elements + var o = this.toTree(this.elements[this.cursor]); + this.cursor++; + return o; + }, + + /** Ensure stream emits trees; tokens must be converted to AST nodes. + * AST nodes can be passed through unmolested. + */ + toTree: function(el) { + if (el && el.getTree) { + return el.getTree(); + } + return el; + }, + + hasNext: function() { + return (org.antlr.lang.isValue(this.singleElement) && this.cursor < 1) || + (this.elements && this.cursor < this.elements.length); + }, + + size: function() { + var n = 0; + if ( org.antlr.lang.isValue(this.singleElement) ) { + n = 1; + } + if ( this.elements ) { + return this.elements.length; + } + return n; + }, + + getDescription: function() { + return this.elementDescription; + } +}; +/** Queues up nodes matched on left side of -> in a tree parser. This is + * the analog of RewriteRuleTokenStream for normal parsers. + */ +org.antlr.runtime.tree.RewriteRuleNodeStream = function(adaptor, elementDescription, el) { + org.antlr.runtime.tree.RewriteRuleNodeStream.superclass.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleNodeStream, + org.antlr.runtime.tree.RewriteRuleElementStream, +{ + nextNode: function() { + return this._next(); + }, + + toTree: function(el) { + return this.adaptor.dupNode(el); + }, + + dup: function() { + // we dup every node, so don't have to worry about calling dup; short- + // circuited next() so it doesn't call. + throw new Error("dup can't be called for a node stream."); + } +}); +org.antlr.runtime.tree.RewriteRuleTokenStream = function(adaptor, elementDescription, el) { + var sup = org.antlr.runtime.tree.RewriteRuleTokenStream.superclass; + sup.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleTokenStream, + org.antlr.runtime.tree.RewriteRuleElementStream, { + /** Get next token from stream and make a node for it */ + nextNode: function() { + var t = this._next(); + return this.adaptor.create(t); + }, + + nextToken: function() { + return this._next(); + }, + + /** Don't convert to a tree unless they explicitly call nextTree. + * This way we can do hetero tree nodes in rewrite. + */ + toTree: function(el) { + return el; + }, + + dup: function(el) { + throw new Error("dup can't be called for a token stream."); + } +}); +org.antlr.runtime.tree.RewriteRuleSubtreeStream = function() { + var sup = org.antlr.runtime.tree.RewriteRuleSubtreeStream.superclass; + sup.constructor.apply(this, arguments); +}; + +org.antlr.lang.extend(org.antlr.runtime.tree.RewriteRuleSubtreeStream, + org.antlr.runtime.tree.RewriteRuleElementStream, { + /** Treat next element as a single node even if it's a subtree. + * This is used instead of next() when the result has to be a + * tree root node. Also prevents us from duplicating recently-added + * children; e.g., ^(type ID)+ adds ID to type and then 2nd iteration + * must dup the type node, but ID has been added. + * + * Referencing a rule result twice is ok; dup entire tree as + * we can't be adding trees as root; e.g., expr expr. + * + * Hideous code duplication here with super.next(). Can't think of + * a proper way to refactor. This needs to always call dup node + * and super.next() doesn't know which to call: dup node or dup tree. + */ + nextNode: function() { + var n = this.size(), + el; + if ( this.dirty || (this.cursor>=n && n===1) ) { + // if out of elements and size is 1, dup (at most a single node + // since this is for making root nodes). + el = this._next(); + return this.adaptor.dupNode(el); + } + // test size above then fetch + el = this._next(); + return el; + }, + + dup: function(el) { + return this.adaptor.dupTree(el); + } +});/** A generic recognizer that can handle recognizers generated from + * lexer, parser, and tree grammars. This is all the parsing + * support code essentially; most of it is error recovery stuff and + * backtracking. + * + *

This class should not be instantiated directly. Instead, use one of its + * subclasses.

+ * + * @class + * @param {org.antlr.runtime.RecognizerSharedState} [state] optional state object + * with which to initialize this recognizer. + */ +org.antlr.runtime.BaseRecognizer = function(state) { + /** State of a lexer, parser, or tree parser are collected into a state + * object so the state can be shared. This sharing is needed to + * have one grammar import others and share same error variables + * and other state variables. It's a kind of explicit multiple + * inheritance via delegation of methods and shared state. + */ + this.state = state || new org.antlr.runtime.RecognizerSharedState(); +}; + +/* static vars, methods */ +org.antlr.lang.augmentObject(org.antlr.runtime.BaseRecognizer, { + MEMO_RULE_FAILED: -2, + MEMO_RULE_UNKNOWN: -1, + INITIAL_FOLLOW_STACK_SIZE: 100, + MEMO_RULE_FAILED_I: -2, + DEFAULT_TOKEN_CHANNEL: org.antlr.runtime.Token.DEFAULT_CHANNEL, + HIDDEN: org.antlr.runtime.Token.HIDDEN_CHANNEL, + NEXT_TOKEN_RULE_NAME: "nextToken" +}); + +org.antlr.runtime.BaseRecognizer.prototype = { + /** Reset the parser's state. Subclasses must rewinds the input stream */ + reset: function() { + var i, len; + + // wack everything related to error recovery + if (!this.state) { + return; // no shared state work to do + } + this.state._fsp = -1; + this.state.errorRecovery = false; + this.state.lastErrorIndex = -1; + this.state.failed = false; + this.state.syntaxErrors = 0; + // wack everything related to backtracking and memoization + this.state.backtracking = 0; + // wipe cache + if (this.state.ruleMemo) { + for (i=0, len=this.state.ruleMemo.length; iTo turn off single token insertion or deletion error + * recovery, override {@link #mismatchRecover} and have it call + * plain {@link #mismatch}, which does not recover. Then any error + * in a rule will cause an exception and immediate exit from + * rule. Rule would recover by resynchronizing to the set of + * symbols that can follow rule ref.

+ * + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype input type to match. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + * @returns {Object} the matched symbol + */ + match: function(input, ttype, follow) { + var matchedSymbol = this.getCurrentInputSymbol(input); + if ( input.LA(1)===ttype ) { + input.consume(); + this.state.errorRecovery = false; + this.state.failed = false; + return matchedSymbol; + } + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return matchedSymbol; + } + matchedSymbol = this.recoverFromMismatchedToken(input, ttype, follow); + return matchedSymbol; + }, + + /** + * Match any token. + * @param {org.antlr.runtime.IntStream} input input stream to match against. + */ + matchAny: function(input) { + this.state.errorRecovery = false; + this.state.failed = false; + input.consume(); + }, + + /** + * Is the following token (LA(2)) the unwanted type (ttype)? + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype the undesired token type. + * @returns {Boolean} true if and only if the following token is the + * unwanted type. + */ + mismatchIsUnwantedToken: function(input, ttype) { + return input.LA(2)===ttype; + }, + + /** + * Does the stream appear to be missing a single token? + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + * @returns {Boolean} true if and only if it appears that the stream is + * missing a single token. + */ + mismatchIsMissingToken: function(input, follow) { + if ( !follow ) { + // we have no information about the follow; we can only consume + // a single token and hope for the best + return false; + } + // compute what can follow this grammar element reference + if ( follow.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) { + if ( this.state._fsp>=0 ) { // remove EOR if we're not the start symbol + follow.remove(org.antlr.runtime.Token.EOR_TOKEN_TYPE); + } + var viableTokensFollowingThisRule = this.computeContextSensitiveRuleFOLLOW(); + follow = follow.or(this.viableTokensFollowingThisRule); + } + // if current token is consistent with what could come after set + // then we know we're missing a token; error recovery is free to + // "insert" the missing token + + // BitSet cannot handle negative numbers like -1 (EOF) so I leave EOR + // in follow set to indicate that the fall of the start symbol is + // in the set (EOF can follow). + if ( follow.member(input.LA(1)) || + follow.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) + { + return true; + } + return false; + }, + + /** Factor out what to do upon token mismatch so tree parsers can behave + * differently. Override and call {@link #mismatchRecover} + * to get single token insertion and deletion. + * + * @param {org.antlr.runtime.IntStream} input input stream to match against. + * @param {Number} ttype input type to match. + * @param {org.antlr.runtime.BitSet} [follow] set of tokens that can follow the + * matched token. + */ + mismatch: function(input, ttype, follow) { + if ( this.mismatchIsUnwantedToken(input, ttype) ) { + throw new org.antlr.runtime.UnwantedTokenException(ttype, input); + } else if ( this.mismatchIsMissingToken(input, follow) ) { + throw new org.antlr.runtime.MissingTokenException(ttype, input, null); + } + throw new org.antlr.runtime.MismatchedTokenException(ttype, input); + }, + + /** Report a recognition problem. + * + *

This method sets errorRecovery to indicate the parser is recovering + * not parsing. Once in recovery mode, no errors are generated. + * To get out of recovery mode, the parser must successfully match + * a token (after a resync). So it will go:

+ *
    + *
  1. error occurs
  2. + *
  3. enter recovery mode, report error
  4. + *
  5. consume until token found in resynch set
  6. + *
  7. try to resume parsing
  8. + *
  9. next match() will reset errorRecovery mode
  10. + *
+ * + *

If you override, make sure to update this.state.syntaxErrors if you + * care about that.

+ * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + */ + reportError: function(e) { + if(this.input.size() != 0) { + var token = this.input.get(e.index); + var errorMessage = ""; + var column = 0; + var line = 0; + if(token.getType() == -1) { + token = this.input.get(this.input.size() - 1); + } + errorMessage = this.getErrorMessage(e, this.getTokenNames()); + column = token.getStartIndex(); + line = token.getLine() - 1; + + var error = { + line: line, + message: errorMessage, + column: column + }; + this.addError(error); + } + // if we've already reported an error and have not matched a token + // yet successfully, don't report any errors. + if ( this.state.errorRecovery ) { + return; + } + this.state.syntaxErrors++; + this.state.errorRecovery = true; + + this.displayRecognitionError(this.getTokenNames(), e); + }, + + /** + * Assemble recognition error message. + * @param {Array} tokenNames array of token names (strings). + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + */ + displayRecognitionError: function(tokenNames, e) { + var hdr = this.getErrorHeader(e), + msg = this.getErrorMessage(e, tokenNames); + this.emitErrorMessage(hdr+" "+msg); + }, + + /** + * Create error header message. Format is line + * lineNumber:positionInLine. + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + * @returns {String} The error header. + */ + getErrorHeader: function(e) { + /* handle null input */ + if (!org.antlr.lang.isNumber(e.line)) { + e.line = 0; + } + return "line "+e.line+":"+e.charPositionInLine; + }, + + /** + * Override this method to change where error messages go. + * Defaults to "alert"-ing the error in browsers and "print"-ing the error + * in other environments (e.g. Rhino, SpiderMonkey). + * @param {String} msg the error message to be displayed. + */ + emitErrorMessage: function(msg) { + //throw msg; + console.log(msg); + }, + + /** What error message should be generated for the various + * exception types? + * + *

Not very object-oriented code, but I like having all error message + * generation within one method rather than spread among all of the + * exception classes. This also makes it much easier for the exception + * handling because the exception classes do not have to have pointers back + * to this object to access utility routines and so on. Also, changing + * the message for an exception type would be difficult because you + * would have to be subclassing exceptions, but then somehow get ANTLR + * to make those kinds of exception objects instead of the default.

+ * + *

For grammar debugging, you will want to override this to add + * more information such as the stack frame and no viable alts.

+ * + *

Override this to change the message generated for one or more + * exception types.

+ * + * @param {Array} tokenNames array of token names (strings). + * @param {org.antlr.runtime.RecognitionException} e the error to be reported. + * @returns {String} the error message to be emitted. + */ + getErrorMessage: function(e, tokenNames) { + var msg = (e && e.getMessage) ? e.getMessage() : null, + mte, + tokenName; + if ( e instanceof org.antlr.runtime.UnwantedTokenException ) { + var ute = e; + tokenName=""; + if ( ute.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } else { + tokenName = tokenNames[ute.expecting]; + } + msg = "extraneous input "+this.getTokenErrorDisplay(ute.getUnexpectedToken())+ + " expecting "+tokenName; + } + else if ( e instanceof org.antlr.runtime.MissingTokenException ) { + mte = e; + tokenName=""; + if ( mte.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } else { + tokenName = tokenNames[mte.expecting]; + } + msg = "missing "+tokenName+" at "+this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.MismatchedTokenException ) { + mte = e; + tokenName=""; + if ( mte.expecting== org.antlr.runtime.Token.EOF ) { + tokenName = "EOF"; + } + else { + tokenName = tokenNames[mte.expecting]; + } + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting "+tokenName; + } + else if ( e instanceof org.antlr.runtime.NoViableAltException ) { + msg = "no viable alternative at input "+this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.EarlyExitException ) { + msg = "required (...)+ loop did not match anything at input "+ + this.getTokenErrorDisplay(e.token); + } + else if ( e instanceof org.antlr.runtime.MismatchedSetException ) { + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedNotSetException ) { + msg = "mismatched input "+this.getTokenErrorDisplay(e.token)+ + " expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.FailedPredicateException ) { + msg = "rule "+e.ruleName+" failed predicate: {"+ + e.predicateText+"}?"; + } + return msg; + }, + + /** Get number of recognition errors (lexer, parser, tree parser). Each + * recognizer tracks its own number. So parser and lexer each have + * separate count. Does not count the spurious errors found between + * an error and next valid token match + * + * See also reportError() + */ + getNumberOfSyntaxErrors: function() { + return this.state.syntaxErrors; + }, + + /** How should a token be displayed in an error message? The default + * is to display just the text, but during development you might + * want to have a lot of information spit out. Override in that case + * to use t.toString() (which, for CommonToken, dumps everything about + * the token). This is better than forcing you to override a method in + * your token objects because you don't have to go modify your lexer + * so that it creates a new Java type. + */ + getTokenErrorDisplay: function(t) { + var s = t.getText(); + if ( !org.antlr.lang.isValue(s) ) { + if ( t.getType()==org.antlr.runtime.Token.EOF ) { + s = ""; + } + else { + s = "<"+t.getType()+">"; + } + } + s = s.replace(/\n/g,"\\n"); + s = s.replace(/\r/g,"\\r"); + s = s.replace(/\t/g,"\\t"); + return "'"+s+"'"; + }, + + /** Recover from an error found on the input stream. This is + * for NoViableAlt and mismatched symbol exceptions. If you enable + * single token insertion and deletion, this will usually not + * handle mismatched symbol exceptions but there could be a mismatched + * token that the match() routine could not recover from. + */ + recover: function(input, re) { + if ( this.state.lastErrorIndex==input.index() ) { + // uh oh, another error at same token index; must be a case + // where LT(1) is in the recovery token set so nothing is + // consumed; consume a single token so at least to prevent + // an infinite loop; this is a failsafe. + input.consume(); + } + this.state.lastErrorIndex = input.index(); + var followSet = this.computeErrorRecoverySet(); + this.beginResync(); + this.consumeUntil(input, followSet); + this.endResync(); + }, + + /** A hook to listen in on the token consumption during error recovery. + * The DebugParser subclasses this to fire events to the listenter. + */ + beginResync: function() { + }, + + endResync: function() { + }, + + /* Compute the error recovery set for the current rule. During + * rule invocation, the parser pushes the set of tokens that can + * follow that rule reference on the stack; this amounts to + * computing FIRST of what follows the rule reference in the + * enclosing rule. This local follow set only includes tokens + * from within the rule; i.e., the FIRST computation done by + * ANTLR stops at the end of a rule. + * + * EXAMPLE + * + * When you find a "no viable alt exception", the input is not + * consistent with any of the alternatives for rule r. The best + * thing to do is to consume tokens until you see something that + * can legally follow a call to r *or* any rule that called r. + * You don't want the exact set of viable next tokens because the + * input might just be missing a token--you might consume the + * rest of the input looking for one of the missing tokens. + * + * Consider grammar: + * + * a : '[' b ']' + * | '(' b ')' + * ; + * b : c '^' INT ; + * c : ID + * | INT + * ; + * + * At each rule invocation, the set of tokens that could follow + * that rule is pushed on a stack. Here are the various "local" + * follow sets: + * + * FOLLOW(b1_in_a) = FIRST(']') = ']' + * FOLLOW(b2_in_a) = FIRST(')') = ')' + * FOLLOW(c_in_b) = FIRST('^') = '^' + * + * Upon erroneous input "[]", the call chain is + * + * a -> b -> c + * + * and, hence, the follow context stack is: + * + * depth local follow set after call to rule + * 0 a (from main()) + * 1 ']' b + * 3 '^' c + * + * Notice that ')' is not included, because b would have to have + * been called from a different context in rule a for ')' to be + * included. + * + * For error recovery, we cannot consider FOLLOW(c) + * (context-sensitive or otherwise). We need the combined set of + * all context-sensitive FOLLOW sets--the set of all tokens that + * could follow any reference in the call chain. We need to + * resync to one of those tokens. Note that FOLLOW(c)='^' and if + * we resync'd to that token, we'd consume until EOF. We need to + * sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}. + * In this case, for input "[]", LA(1) is in this set so we would + * not consume anything and after printing an error rule c would + * return normally. It would not find the required '^' though. + * At this point, it gets a mismatched token error and throws an + * exception (since LA(1) is not in the viable following token + * set). The rule exception handler tries to recover, but finds + * the same recovery set and doesn't consume anything. Rule b + * exits normally returning to rule a. Now it finds the ']' (and + * with the successful match exits errorRecovery mode). + * + * So, you cna see that the parser walks up call chain looking + * for the token that was a member of the recovery set. + * + * Errors are not generated in errorRecovery mode. + * + * ANTLR's error recovery mechanism is based upon original ideas: + * + * "Algorithms + Data Structures = Programs" by Niklaus Wirth + * + * and + * + * "A note on error recovery in recursive descent parsers": + * http://portal.acm.org/citation.cfm?id=947902.947905 + * + * Later, Josef Grosch had some good ideas: + * + * "Efficient and Comfortable Error Recovery in Recursive Descent + * Parsers": + * ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip + * + * Like Grosch I implemented local FOLLOW sets that are combined + * at run-time upon error to avoid overhead during parsing. + */ + computeErrorRecoverySet: function() { + return this.combineFollows(false); + }, + + + /** Compute the context-sensitive FOLLOW set for current rule. + * This is set of token types that can follow a specific rule + * reference given a specific call chain. You get the set of + * viable tokens that can possibly come next (lookahead depth 1) + * given the current call chain. Contrast this with the + * definition of plain FOLLOW for rule r: + * + * FOLLOW(r)={x | S=>*alpha r beta in G and x in FIRST(beta)} + * + * where x in T* and alpha, beta in V*; T is set of terminals and + * V is the set of terminals and nonterminals. In other words, + * FOLLOW(r) is the set of all tokens that can possibly follow + * references to r in *any* sentential form (context). At + * runtime, however, we know precisely which context applies as + * we have the call chain. We may compute the exact (rather + * than covering superset) set of following tokens. + * + * For example, consider grammar: + * + * stat : ID '=' expr ';' // FOLLOW(stat)=={EOF} + * | "return" expr '.' + * ; + * expr : atom ('+' atom)* ; // FOLLOW(expr)=={';','.',')'} + * atom : INT // FOLLOW(atom)=={'+',')',';','.'} + * | '(' expr ')' + * ; + * + * The FOLLOW sets are all inclusive whereas context-sensitive + * FOLLOW sets are precisely what could follow a rule reference. + * For input input "i=(3);", here is the derivation: + * + * stat => ID '=' expr ';' + * => ID '=' atom ('+' atom)* ';' + * => ID '=' '(' expr ')' ('+' atom)* ';' + * => ID '=' '(' atom ')' ('+' atom)* ';' + * => ID '=' '(' INT ')' ('+' atom)* ';' + * => ID '=' '(' INT ')' ';' + * + * At the "3" token, you'd have a call chain of + * + * stat -> expr -> atom -> expr -> atom + * + * What can follow that specific nested ref to atom? Exactly ')' + * as you can see by looking at the derivation of this specific + * input. Contrast this with the FOLLOW(atom)={'+',')',';','.'}. + * + * You want the exact viable token set when recovering from a + * token mismatch. Upon token mismatch, if LA(1) is member of + * the viable next token set, then you know there is most likely + * a missing token in the input stream. "Insert" one by just not + * throwing an exception. + */ + computeContextSensitiveRuleFOLLOW: function() { + return this.combineFollows(true); + }, + + combineFollows: function(exact) { + var top = this.state._fsp, + i, + localFollowSet, + followSet = new org.antlr.runtime.BitSet(); + for (i=top; i>=0; i--) { + localFollowSet = this.state.following[i]; + followSet.orInPlace(localFollowSet); + if ( exact ) { + // can we see end of rule? + if ( localFollowSet.member(org.antlr.runtime.Token.EOR_TOKEN_TYPE) ) + { + // Only leave EOR in set if at top (start rule); this lets + // us know if have to include follow(start rule); i.e., EOF + if ( i>0 ) { + followSet.remove(org.antlr.runtime.Token.EOR_TOKEN_TYPE); + } + } + else { // can't see end of rule, quit + break; + } + } + } + return followSet; + }, + + /** Attempt to recover from a single missing or extra token. + * + * EXTRA TOKEN + * + * LA(1) is not what we are looking for. If LA(2) has the right token, + * however, then assume LA(1) is some extra spurious token. Delete it + * and LA(2) as if we were doing a normal match(), which advances the + * input. + * + * MISSING TOKEN + * + * If current token is consistent with what could come after + * ttype then it is ok to "insert" the missing token, else throw + * exception For example, Input "i=(3;" is clearly missing the + * ')'. When the parser returns from the nested call to expr, it + * will have call chain: + * + * stat -> expr -> atom + * + * and it will be trying to match the ')' at this point in the + * derivation: + * + * => ID '=' '(' INT ')' ('+' atom)* ';' + * ^ + * match() will see that ';' doesn't match ')' and report a + * mismatched token error. To recover, it sees that LA(1)==';' + * is in the set of tokens that can follow the ')' token + * reference in rule atom. It can assume that you forgot the ')'. + */ + recoverFromMismatchedToken: function(input, + ttype, + follow) + { + var e = null; + // if next token is what we are looking for then "delete" this token + if ( this.mismatchIsUnwantedToken(input, ttype) ) { + e = new org.antlr.runtime.UnwantedTokenException(ttype, input); + this.beginResync(); + input.consume(); // simply delete extra token + this.endResync(); + this.reportError(e); // report after consuming so AW sees the token in the exception + // we want to return the token we're actually matching + var matchedSymbol = this.getCurrentInputSymbol(input); + input.consume(); // move past ttype token as if all were ok + return matchedSymbol; + } + // can't recover with single token deletion, try insertion + if ( this.mismatchIsMissingToken(input, follow) ) { + var inserted = this.getMissingSymbol(input, e, ttype, follow); + e = new org.antlr.runtime.MissingTokenException(ttype, input, inserted); + this.reportError(e); // report after inserting so AW sees the token in the exception + return inserted; + } + // even that didn't work; must throw the exception + e = new org.antlr.runtime.MismatchedTokenException(ttype, input); + throw e; + }, + + recoverFromMismatchedSet: function(input, + e, + follow) + { + if ( this.mismatchIsMissingToken(input, follow) ) { + // System.out.println("missing token"); + this.reportError(e); + // we don't know how to conjure up a token for sets yet + return this.getMissingSymbol(input, e, org.antlr.runtime.Token.INVALID_TOKEN_TYPE, follow); + } + throw e; + }, + + /** Match needs to return the current input symbol, which gets put + * into the label for the associated token ref; e.g., x=ID. Token + * and tree parsers need to return different objects. Rather than test + * for input stream type or change the IntStream interface, I use + * a simple method to ask the recognizer to tell me what the current + * input symbol is. + * + * This is ignored for lexers. + */ + getCurrentInputSymbol: function(input) { return null; }, + + /** Conjure up a missing token during error recovery. + * + * The recognizer attempts to recover from single missing + * symbols. But, actions might refer to that missing symbol. + * For example, x=ID {f($x);}. The action clearly assumes + * that there has been an identifier matched previously and that + * $x points at that token. If that token is missing, but + * the next token in the stream is what we want we assume that + * this token is missing and we keep going. Because we + * have to return some token to replace the missing token, + * we have to conjure one up. This method gives the user control + * over the tokens returned for missing tokens. Mostly, + * you will want to create something special for identifier + * tokens. For literals such as '{' and ',', the default + * action in the parser or tree parser works. It simply creates + * a CommonToken of the appropriate type. The text will be the token. + * If you change what tokens must be created by the lexer, + * override this method to create the appropriate tokens. + */ + getMissingSymbol: function(input, + e, + expectedTokenType, + follow) + { + return null; + }, + + + /** Consume tokens until one matches the given token set */ + consumeUntil: function(input, set) { + var ttype = input.LA(1); + while (ttype != org.antlr.runtime.Token.EOF && !set.member(ttype) ) { + input.consume(); + ttype = input.LA(1); + } + }, + + /** Push a rule's follow set using our own hardcoded stack */ + pushFollow: function(fset) { + if ( (this.state._fsp +1)>=this.state.following.length ) { + var f = []; + var i; + for (i=this.state.following.length-1; i>=0; i--) { + f[i] = this.state.following[i]; + } + this.state.following = f; + } + this.state._fsp++; + this.state.following[this.state._fsp] = fset; + }, + + /** Return List of the rules in your parser instance + * leading up to a call to this method. You could override if + * you want more details such as the file/line info of where + * in the parser java code a rule is invoked. + * + * This is very useful for error messages and for context-sensitive + * error recovery. + * + * A more general version of getRuleInvocationStack where you can + * pass in, for example, a RecognitionException to get it's rule + * stack trace. This routine is shared with all recognizers, hence, + * static. + * + * TODO: move to a utility class or something; weird having lexer call this + * + * Most JS interpreters can't do real stack reflection. See this + * spidermonkey bug, for example: + * https://bugzilla.mozilla.org/show_bug.cgi?id=332104 + * + * JS is supposed to get real stack traces in v4, at which time it would + * be easy to implement this function. + * + * Until then I'll leave this unimplemented. If there is enough clamor + * it would be possible to keep track of the invocation stack using an + * auxillary array, but that will definitely be a performance hit. + */ + getRuleInvocationStack: function(e, recognizerClassName) + { + throw new Error("Not implemented."); + }, + + getBacktrackingLevel: function() { + return this.state.backtracking; + }, + + /** Used to print out token names like ID during debugging and + * error reporting. The generated parsers implement a method + * that overrides this to point to their String[] tokenNames. + */ + getTokenNames: function() { + return null; + }, + + /** For debugging and other purposes, might want the grammar name. + * Have ANTLR generate an implementation for this method. + */ + getGrammarFileName: function() { + return null; + }, + + /** A convenience method for use most often with template rewrites. + * Convert a List to List + */ + toStrings: function(tokens) { + if ( !tokens ) { + return null; + } + var strings = []; + var i; + for (i=0; i= this.state.ruleMemo.length ) { + throw new Error("!!!!!!!!! memo size is "+this.state.ruleMemo.length+", but rule index is "+ruleIndex); + } + if ( org.antlr.lang.isValue(this.state.ruleMemo[ruleIndex]) ) { + this.state.ruleMemo[ruleIndex][ruleStartIndex] = stopTokenIndex; + } + }, + + /** return how many rule/input-index pairs there are in total. + * TODO: this includes synpreds. + */ + getRuleMemoizationCacheSize: function() { + var n = 0, i; + for (i = 0; this.state.ruleMemo && i < this.state.ruleMemo.length; i++) { + var ruleMap = this.state.ruleMemo[i]; + if ( ruleMap ) { + // @todo need to get size of rulemap? + n += ruleMap.length; // how many input indexes are recorded? + } + } + return n; + }, + + traceIn: function(ruleName, ruleIndex, inputSymbol) { + this.emitErrorMessage("enter "+ruleName+" "+inputSymbol); + if ( this.state.failed ) { + this.emitErrorMessage(" failed="+this.failed); + } + if ( this.state.backtracking>0 ) { + this.emitErrorMessage(" backtracking="+this.state.backtracking); + } + // System.out.println(); + }, + + traceOut: function(ruleName, ruleIndex, inputSymbol) { + this.emitErrorMessage("exit "+ruleName+" "+inputSymbol); + if ( this.state.failed ) { + this.emitErrorMessage(" failed="+this.state.failed); + } + if ( this.state.backtracking>0 ) { + this.emitErrorMessage(" backtracking="+this.state.backtracking); + } + } +}; +/** A lexer is recognizer that draws input symbols from a character stream. + * lexer grammars result in a subclass of this object. A Lexer object + * uses simplified match() and error recovery mechanisms in the interest + * of speed. + */ +org.antlr.runtime.Lexer = function(input, state) { + if (state) { + org.antlr.runtime.Lexer.superclass.constructor.call(this, state); + } + if (input) { + this.input = input; + } +}; + +org.antlr.lang.extend(org.antlr.runtime.Lexer, org.antlr.runtime.BaseRecognizer, { + reset: function() { + // reset all recognizer state variables + org.antlr.runtime.Lexer.superclass.reset.call(this); + if ( org.antlr.lang.isValue(this.input) ) { + this.input.seek(0); // rewind the input + } + if ( !org.antlr.lang.isValue(this.state) ) { + return; // no shared state work to do + } + this.state.token = null; + this.state.type = org.antlr.runtime.Token.INVALID_TOKEN_TYPE; + this.state.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + this.state.tokenStartCharIndex = -1; + this.state.tokenStartCharPositionInLine = -1; + this.state.tokenStartLine = -1; + this.state.text = null; + }, + + /** Return a token from this source; i.e., match a token on the char + * stream. + */ + nextToken: function() { + while (true) { + this.state.token = null; + this.state.channel = org.antlr.runtime.Token.DEFAULT_CHANNEL; + this.state.tokenStartCharIndex = this.input.index(); + this.state.tokenStartCharPositionInLine = this.input.getCharPositionInLine(); + this.state.tokenStartLine = this.input.getLine(); + this.state.text = null; + if ( this.input.LA(1)===org.antlr.runtime.CharStream.EOF ) { + return org.antlr.runtime.Token.EOF_TOKEN; + } + try { + this.mTokens(); + if ( !org.antlr.lang.isValue(this.state.token) ) { + this.emit(); + } + else if ( this.state.token==org.antlr.runtime.Token.SKIP_TOKEN ) { + continue; + } + return this.state.token; + } + catch (re) { + if (re instanceof org.antlr.runtime.NoViableAltException) { + this.reportError(re); + this.recover(re); + } else if ( re instanceof org.antlr.runtime.RecognitionException ) { + this.reportError(re); + } else { + throw re; + } + } + } + }, + + /** Instruct the lexer to skip creating a token for current lexer rule + * and look for another token. nextToken() knows to keep looking when + * a lexer rule finishes with token set to SKIP_TOKEN. Recall that + * if token==null at end of any token rule, it creates one for you + * and emits it. + */ + skip: function() { + this.state.token = org.antlr.runtime.Token.SKIP_TOKEN; + }, + + /** Set the char stream and reset the lexer */ + setCharStream: function(input) { + this.input = null; + this.reset(); + this.input = input; + }, + + getCharStream: function() { + return this.input; + }, + + getSourceName: function() { + return this.input.getSourceName(); + }, + + /** Currently does not support multiple emits per nextToken invocation + * for efficiency reasons. Subclass and override this method and + * nextToken (to push tokens into a list and pull from that list rather + * than a single variable as this implementation does). + * + * The standard method called to automatically emit a token at the + * outermost lexical rule. The token object should point into the + * char buffer start..stop. If there is a text override in 'text', + * use that to set the token's text. Override this method to emit + * custom Token objects. + * + * If you are building trees, then you should also override + * Parser or TreeParser.getMissingSymbol(). + */ + emit: function() { + if (arguments.length===0) { + var t = new org.antlr.runtime.CommonToken(this.input, this.state.type, this.state.channel, this.state.tokenStartCharIndex, this.getCharIndex()-1); + t.setLine(this.state.tokenStartLine); + t.setText(this.state.text); + t.setCharPositionInLine(this.state.tokenStartCharPositionInLine); + this.state.token = t; + return t; + } else { + this.state.token = arguments[0]; + } + }, + + match: function(s) { + var i = 0, + mte; + + if (org.antlr.lang.isString(s)) { + while ( i0 ) { + this.state.failed = true; + return; + } + mte = new org.antlr.runtime.MismatchedTokenException(s.charAt(i), this.input); + this.recover(mte); + throw mte; + } + i++; + this.input.consume(); + this.state.failed = false; + } + } else if (org.antlr.lang.isNumber(s)) { + if ( this.input.LA(1)!=s ) { + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return; + } + mte = new org.antlr.runtime.MismatchedTokenException(s, this.input); + this.recover(mte); + throw mte; + } + this.input.consume(); + this.state.failed = false; + } + }, + + matchAny: function() { + this.input.consume(); + }, + + matchRange: function(a, b) { + if ( this.input.LA(1)
b ) { + if ( this.state.backtracking>0 ) { + this.state.failed = true; + return; + } + mre = new org.antlr.runtime.MismatchedRangeException(a,b,this.input); + this.recover(mre); + throw mre; + } + this.input.consume(); + this.state.failed = false; + }, + + getLine: function() { + return this.input.getLine(); + }, + + getCharPositionInLine: function() { + return this.input.getCharPositionInLine(); + }, + + /** What is the index of the current character of lookahead? */ + getCharIndex: function() { + return this.input.index(); + }, + + /** Return the text matched so far for the current token or any + * text override. + */ + getText: function() { + if ( org.antlr.lang.isString(this.state.text) ) { + return this.state.text; + } + return this.input.substring(this.state.tokenStartCharIndex,this.getCharIndex()-1); + }, + + /** Set the complete text of this token; it wipes any previous + * changes to the text. + */ + setText: function(text) { + this.state.text = text; + }, + + reportError: function(e) { + /** TODO: not thought about recovery in lexer yet. + * + // if we've already reported an error and have not matched a token + // yet successfully, don't report any errors. + if ( errorRecovery ) { + //System.err.print("[SPURIOUS] "); + return; + } + errorRecovery = true; + */ + + this.displayRecognitionError(this.getTokenNames(), e); + }, + + getErrorMessage: function(e, tokenNames) { + var msg = null; + if ( e instanceof org.antlr.runtime.MismatchedTokenException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting "+this.getCharErrorDisplay(e.expecting); + } + else if ( e instanceof org.antlr.runtime.NoViableAltException ) { + msg = "no viable alternative at character "+this.getCharErrorDisplay(e.c); + } + else if ( e instanceof org.antlr.runtime.EarlyExitException ) { + msg = "required (...)+ loop did not match anything at character "+this.getCharErrorDisplay(e.c); + } + else if ( e instanceof org.antlr.runtime.MismatchedNotSetException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedSetException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+e.expecting; + } + else if ( e instanceof org.antlr.runtime.MismatchedRangeException ) { + msg = "mismatched character "+this.getCharErrorDisplay(e.c)+" expecting set "+ + this.getCharErrorDisplay(e.a)+".."+this.getCharErrorDisplay(e.b); + } + else { + msg = org.antlr.runtime.Lexer.superclass.getErrorMessage.call(this, e, tokenNames); + } + return msg; + }, + + getCharErrorDisplay: function(c) { + var s = c; //String.fromCharCode(c); + switch ( s ) { + case org.antlr.runtime.Token.EOF : + s = ""; + break; + case "\n" : + s = "\\n"; + break; + case "\t" : + s = "\\t"; + break; + case "\r" : + s = "\\r"; + break; + } + return "'"+s+"'"; + }, + + /** Lexers can normally match any char in it's vocabulary after matching + * a token, so do the easy thing and just kill a character and hope + * it all works out. You can instead use the rule invocation stack + * to do sophisticated error recovery if you are in a fragment rule. + */ + recover: function(re) { + this.input.consume(); + }, + + traceIn: function(ruleName, ruleIndex) { + var inputSymbol = String.fromCharCode(this.input.LT(1))+" line="+this.getLine()+":"+this.getCharPositionInLine(); + org.antlr.runtime.Lexer.superclass.traceIn.call(this, ruleName, ruleIndex, inputSymbol); + }, + + traceOut: function(ruleName, ruleIndex) { + var inputSymbol = String.fromCharCode(this.input.LT(1))+" line="+this.getLine()+":"+this.getCharPositionInLine(); + org.antlr.runtime.Lexer.superclass.traceOut.call(this, ruleName, ruleIndex, inputSymbol); + } +}); +/** Rules that return more than a single value must return an object + * containing all the values. Besides the properties defined in + * RuleLabelScope.predefinedRulePropertiesScope there may be user-defined + * return values. This class simply defines the minimum properties that + * are always defined and methods to access the others that might be + * available depending on output option such as template and tree. + * + * Note text is not an actual property of the return value, it is computed + * from start and stop using the input stream's toString() method. I + * could add a ctor to this so that we can pass in and store the input + * stream, but I'm not sure we want to do that. It would seem to be undefined + * to get the .text property anyway if the rule matches tokens from multiple + * input streams. + * + * I do not use getters for fields of objects that are used simply to + * group values such as this aggregate. The getters/setters are there to + * satisfy the superclass interface. + */ +org.antlr.runtime.ParserRuleReturnScope = function() {}; + +org.antlr.runtime.ParserRuleReturnScope.prototype = { + getStart: function() { return this.start; }, + getStop: function() { return this.stop; } +}; +/** This is identical to the ParserRuleReturnScope except that + * the start property is a tree nodes not Token object + * when you are parsing trees. To be generic the tree node types + * have to be Object. + */ +org.antlr.runtime.tree.TreeRuleReturnScope = function(){}; + +org.antlr.runtime.tree.TreeRuleReturnScope.prototype = { + getStart: function() { return this.start; } +}; +/** A parser for TokenStreams. "parser grammars" result in a subclass + * of this. + */ +org.antlr.runtime.Parser = function(input, state) { + org.antlr.runtime.Parser.superclass.constructor.call(this, state); + this.setTokenStream(input); +}; + +org.antlr.lang.extend(org.antlr.runtime.Parser, org.antlr.runtime.BaseRecognizer, { + reset: function() { + // reset all recognizer state variables + org.antlr.runtime.Parser.superclass.reset.call(this); + if ( org.antlr.lang.isValue(this.input) ) { + this.input.seek(0); // rewind the input + } + }, + + getCurrentInputSymbol: function(input) { + return input.LT(1); + }, + + getMissingSymbol: function(input, + e, + expectedTokenType, + follow) + { + var tokenText = + ""; + var t = new org.antlr.runtime.CommonToken(expectedTokenType, tokenText); + var current = input.LT(1); + var old_current; + if ( current.getType() === org.antlr.runtime.Token.EOF ) { + old_current = current; + current = input.LT(-1); + // handle edge case where there are no good tokens in the stream + if (!current) { + current = old_current; + } + } + t.line = current.getLine(); + t.charPositionInLine = current.getCharPositionInLine(); + t.channel = org.antlr.runtime.BaseRecognizer.DEFAULT_TOKEN_CHANNEL; + return t; + }, + + + /** Set the token stream and reset the parser */ + setTokenStream: function(input) { + this.input = null; + this.reset(); + this.input = input; + }, + + getTokenStream: function() { + return this.input; + }, + + getSourceName: function() { + return this.input.getSourceName(); + }, + + traceIn: function(ruleName, ruleIndex) { + org.antlr.runtime.Parser.superclass.traceIn.call( + this, ruleName, ruleIndex, this.input.LT(1)); + }, + + traceOut: function(ruleName, ruleIndex) { + org.antlr.runtime.Parser.superclass.traceOut.call( + this, ruleName, ruleIndex, this.input.LT(1)); + } +}); +/** A DFA implemented as a set of transition tables. + * + * Any state that has a semantic predicate edge is special; those states + * are generated with if-then-else structures in a specialStateTransition() + * which is generated by cyclicDFA template. + * + * There are at most 32767 states (16-bit signed short). + * Could get away with byte sometimes but would have to generate different + * types and the simulation code too. For a point of reference, the Java + * lexer's Tokens rule DFA has 326 states roughly. + */ +org.antlr.runtime.DFA = function() {}; + +org.antlr.runtime.DFA.prototype = { + /** From the input stream, predict what alternative will succeed + * using this DFA (representing the covering regular approximation + * to the underlying CFL). Return an alternative number 1..n. Throw + * an exception upon error. + */ + predict: function(input) { + var mark = input.mark(), // remember where decision started in input + s = 0, // we always start at s0 + specialState, + c, + snext; + + try { + while ( true ) { + specialState = this.special[s]; + if ( specialState>=0 ) { + s = this.specialStateTransition(specialState,input); + if (s===-1) { + this.noViableAlt(s, input); + return 0; + } + input.consume(); + continue; + } + if ( this.accept[s] >= 1 ) { + return this.accept[s]; + } + // look for a normal char transition + c = input.LA(1); // -1 == \uFFFF, all tokens fit in 65000 space + + if (c===org.antlr.runtime.Token.EOF) { + c = -1; + } else if (org.antlr.lang.isString(c)) { + c = c.charCodeAt(0); + } + + if (c>=this.min[s] && c<=this.max[s]) { + snext = this.transition[s][c-this.min[s]]; // move to next state + if ( snext < 0 ) { + // was in range but not a normal transition + // must check EOT, which is like the else clause. + // eot[s]>=0 indicates that an EOT edge goes to another + // state. + if ( this.eot[s]>=0 ) { // EOT Transition to accept state? + s = this.eot[s]; + input.consume(); + // TODO: I had this as return accept[eot[s]] + // which assumed here that the EOT edge always + // went to an accept...faster to do this, but + // what about predicated edges coming from EOT + // target? + continue; + } + this.noViableAlt(s,input); + return 0; + } + s = snext; + input.consume(); + continue; + } + if ( this.eot[s]>=0 ) { // EOT Transition? + s = this.eot[s]; + input.consume(); + continue; + } + if ( c==org.antlr.runtime.Token.EOF && this.eof[s]>=0 ) { // EOF Transition to accept state? + return this.accept[this.eof[s]]; + } + // not in range and not EOF/EOT, must be invalid symbol + this.noViableAlt(s,input); + return 0; + } + } + finally { + input.rewind(mark); + } + }, + + noViableAlt: function(s, input) { + if (this.recognizer.state.backtracking>0) { + this.recognizer.state.failed=true; + return; + } + var nvae = + new org.antlr.runtime.NoViableAltException(this.getDescription(), + this.decisionNumber, + s, + input); + this.error(nvae); + throw nvae; + }, + + /** A hook for debugging interface */ + error: function(nvae) { }, + + specialStateTransition: function(s, input) { + return -1; + }, + + getDescription: function() { + return "n/a"; + } +}; + +org.antlr.lang.augmentObject(org.antlr.runtime.DFA, { + /** Given a String that has a run-length-encoding of some unsigned shorts + * like "\1\2\3\9", convert to short[] {2,9,9,9}. + */ + unpackEncodedString: function(encodedString) { + // walk first to find how big it is. + var i, + data = [], + di = 0, + n, + v, + j; + for (i=0; i"; + return new org.antlr.runtime.tree.CommonTree(new org.antlr.runtime.CommonToken(expectedTokenType, tokenText)); + }, + + /** Match '.' in tree parser has special meaning. Skip node or + * entire tree if node has children. If children, scan until + * corresponding UP node. + */ + matchAny: function(ignore) { // ignore stream, copy of this.input + this.state.errorRecovery = false; + this.state.failed = false; + var look = this.input.LT(1); + if ( this.input.getTreeAdaptor().getChildCount(look)===0 ) { + this.input.consume(); // not subtree, consume 1 node and return + return; + } + // current node is a subtree, skip to corresponding UP. + // must count nesting level to get right UP + var level=0, + tokenType = this.input.getTreeAdaptor().getType(look); + while ( tokenType!==org.antlr.runtime.Token.EOF && + !(tokenType===TP.UP && level===0) ) + { + this.input.consume(); + look = this.input.LT(1); + tokenType = this.input.getTreeAdaptor().getType(look); + if ( tokenType === TP.DOWN ) { + level++; + } + else if ( tokenType === TP.UP ) { + level--; + } + } + this.input.consume(); // consume UP + }, + + /** We have DOWN/UP nodes in the stream that have no line info; override. + * plus we want to alter the exception type. Don't try to recover + * * from tree parser errors inline... + */ + mismatch: function(input, ttype, follow) { + throw new org.antlr.runtime.MismatchedTreeNodeException(ttype, input); + }, + + /** Prefix error message with the grammar name because message is + * always intended for the programmer because the parser built + * the input tree not the user. + */ + getErrorHeader: function(e) { + return this.getGrammarFileName()+": node from "+ + (e.approximateLineInfo?"after ":"")+"line "+e.line+":"+e.charPositionInLine; + }, + + /** Tree parsers parse nodes they usually have a token object as + * payload. Set the exception token and do the default behavior. + */ + getErrorMessage: function(e, tokenNames) { + var adaptor; + if ( this instanceof TP ) { + adaptor = e.input.getTreeAdaptor(); + e.token = adaptor.getToken(e.node); + if ( !org.antlr.lang.isValue(e.token) ) { // could be an UP/DOWN node + e.token = new org.antlr.runtime.CommonToken( + adaptor.getType(e.node), + adaptor.getText(e.node)); + } + } + return TP.superclass.getErrorMessage.call(this, e, tokenNames); + }, + + traceIn: function(ruleName, ruleIndex) { + TP.superclass.traceIn.call(this, ruleName, ruleIndex, this.input.LT(1)); + }, + + traceOut: function(ruleName, ruleIndex) { + TP.superclass.traceOut.call(this, ruleName, ruleIndex, this.input.LT(1)); + } +}); + +})(); + +exports.org = org; + +}); diff --git a/lib/ace/mode/xquery/xquery.js b/lib/ace/mode/xquery/xquery.js new file mode 100644 index 00000000..c6998928 --- /dev/null +++ b/lib/ace/mode/xquery/xquery.js @@ -0,0 +1,55 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define(function(require, exports, module) { + + var antlr = require("./antlr3-all"); + var org = antlr.org; + var NewLazyTokenStream = antlr.NewLazyTokenStream; + var XQueryLexer = require("./XQueryLexer").XQueryLexer; + var XQueryParser = require("./XQueryParser").XQueryParser; + + exports.getParser = function(code) { + var cstream = new org.antlr.runtime.ANTLRStringStream(code); + var lexer = new XQueryLexer(cstream); + var tstream = new NewLazyTokenStream(lexer); + tstream.jumpToFirstValidToken(); + var parser = new XQueryParser(tstream); + parser.setSource(cstream); + return parser; + }; +}); diff --git a/lib/ace/mode/xquery_highlight_rules.js b/lib/ace/mode/xquery_highlight_rules.js index ff3c0507..fc14c2c5 100644 --- a/lib/ace/mode/xquery_highlight_rules.js +++ b/lib/ace/mode/xquery_highlight_rules.js @@ -1,21 +1,39 @@ -/* - * eXide - web-based XQuery IDE - * - * Copyright (C) 2011 Wolfgang Meier +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ define(function(require, exports, module) { "use strict"; @@ -26,14 +44,9 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; var XQueryHighlightRules = function() { var keywords = lang.arrayToMap( - ("return|for|let|where|order|by|declare|function|variable|xquery|version|option|namespace|import|module|when|encoding|" + - "switch|default|try|catch|group|tumbling|sliding|window|start|end|at|only|" + - "using|stemming|" + - "while|" + - "external|" + - "if|then|else|as|and|or|typeswitch|case|ascending|descending|empty|in|count|updating|insert|delete|replace|value|node|attribute|text|element|into|of|with|contains").split("|") + ("after|ancestor|ancestor-or-self|and|as|ascending|attribute|before|case|cast|castable|child|collation|comment|copy|count|declare|default|delete|descendant|descendant-or-self|descending|div|document|document-node|element|else|empty|empty-sequence|end|eq|every|except|first|following|following-sibling|for|function|ge|group|gt|idiv|if|import|insert|instance|intersect|into|is|item|last|le|let|lt|mod|modify|module|namespace|namespace-node|ne|node|only|or|order|ordered|parent|preceding|preceding-sibling|processing-instruction|rename|replace|return|satisfies|schema-attribute|schema-element|self|some|stable|start|switch|text|to|treat|try|typeswitch|union|unordered|validate|where|with|xquery|contains|paragraphs|sentences|times|words|by|collectionreturn|variable|version|option|when|encoding|toswitch|catch|tumbling|sliding|window|at|using|stemming|collection|schema|while|on|nodes|index|external|then|in|updating|value|of|containsbreak|loop|continue|exit|returning").split("|") ); - + // regexp must not have capturing parentheses // regexps are ordered -> the first match is used @@ -85,7 +98,7 @@ var XQueryHighlightRules = function() { regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" }, { token: "keyword.operator", - regex: "\\*|=|<|>|\\-|\\+|and|or|eq|ne|lt|gt" + regex: "\\*|=|<|>|\\-|\\+" }, { token: "lparen", regex: "[[({]" @@ -113,14 +126,14 @@ var XQueryHighlightRules = function() { } ], cdata : [ { - token : "text", + token : "comment", regex : "\\]\\]>", next : "start" }, { - token : "text", + token : "comment", regex : "\\s+" }, { - token : "text", + token : "comment", regex : "(?:[^\\]]|\\](?!\\]>))+" } ], diff --git a/lib/ace/mode/xquery_worker.js b/lib/ace/mode/xquery_worker.js new file mode 100644 index 00000000..fb437dd7 --- /dev/null +++ b/lib/ace/mode/xquery_worker.js @@ -0,0 +1,86 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Ajax.org Code Editor (ACE). + * + * The Initial Developer of the Original Code is + * Ajax.org B.V. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * William Candillon + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +define(function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var Mirror = require("../worker/mirror").Mirror; +var xquery = require("../mode/xquery/xquery"); +var Tokenizer = require("../tokenizer").Tokenizer; +var XQueryHighlightRules = require("./xquery_highlight_rules").XQueryHighlightRules; + +window.addEventListener = function() {}; + + +var XQueryWorker = exports.XQueryWorker = function(sender) { + Mirror.call(this, sender); + this.setTimeout(200); +}; + +oop.inherits(XQueryWorker, Mirror); + +(function() { + + this.onUpdate = function() { + this.sender.emit("start"); + var value = this.doc.getValue(); + var parser = xquery.getParser(value); + var ast = parser.p_Module(); + if(parser.hasErrors()) { + var errors = parser.getErrors(); + var i = 0; + for(i in errors) { + var error = errors[i]; + this.sender.emit("error", { + row: error.line, + column: error.column, + text: error.message, + type: "error" + }); + } + } else { + this.sender.emit("ok"); + } + parser.highlighter.tokenizer = new Tokenizer(new XQueryHighlightRules().getRules()); + var tokens = parser.highlighter.getTokens(); + this.sender.emit("highlight", tokens); + }; + +}).call(XQueryWorker.prototype); + +}); diff --git a/lib/ace/theme/textmate.js b/lib/ace/theme/textmate.js index cca31e29..a7d028c9 100644 --- a/lib/ace/theme/textmate.js +++ b/lib/ace/theme/textmate.js @@ -199,7 +199,7 @@ exports.cssText = ".ace-tm .ace_editor {\ }\ \ .ace-tm .ace_meta.ace_tag {\ - color:rgb(28, 2, 255);\ + color:rgb(0, 50, 198);\ }\ \ .ace-tm .ace_string.ace_regex {\