mirror of
				https://github.com/usmannasir/cyberpanel.git
				synced 2025-10-27 00:06:35 +01:00 
			
		
		
		
	
		
			
	
	
		
			2620 lines
		
	
	
		
			320 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			2620 lines
		
	
	
		
			320 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | ace.define("ace/mode/xquery/jsoniq_lexer",["require","exports","module"], function(require, exports, module) { | ||
|  | module.exports = (function outer (modules, cache, entry) { | ||
|  |     var previousRequire = typeof require == "function" && require; | ||
|  |     function newRequire(name, jumped){ | ||
|  |         if(!cache[name]) { | ||
|  |             if(!modules[name]) { | ||
|  |                 var currentRequire = typeof require == "function" && require; | ||
|  |                 if (!jumped && currentRequire) return currentRequire(name, true); | ||
|  |                 if (previousRequire) return previousRequire(name, true); | ||
|  |                 var err = new Error('Cannot find module \'' + name + '\''); | ||
|  |                 err.code = 'MODULE_NOT_FOUND'; | ||
|  |                 throw err; | ||
|  |             } | ||
|  |             var m = cache[name] = {exports:{}}; | ||
|  |             modules[name][0].call(m.exports, function(x){ | ||
|  |                 var id = modules[name][1][x]; | ||
|  |                 return newRequire(id ? id : x); | ||
|  |             },m,m.exports,outer,modules,cache,entry); | ||
|  |         } | ||
|  |         return cache[name].exports; | ||
|  |     } | ||
|  |     for(var i=0;i<entry.length;i++) newRequire(entry[i]); | ||
|  |     return newRequire(entry[0]); | ||
|  | }) | ||
|  | ({"/node_modules/xqlint/lib/lexers/JSONiqTokenizer.js":[function(_dereq_,module,exports){ | ||
|  |                                                             var JSONiqTokenizer = exports.JSONiqTokenizer = function JSONiqTokenizer(string, parsingEventHandler) | ||
|  |                                                             { | ||
|  |                                                               init(string, parsingEventHandler); | ||
|  |   var self = this; | ||
|  | 
 | ||
|  |   this.ParseException = function(b, e, s, o, x) | ||
|  |   { | ||
|  |     var | ||
|  |       begin = b, | ||
|  |       end = e, | ||
|  |       state = s, | ||
|  |       offending = o, | ||
|  |       expected = x; | ||
|  | 
 | ||
|  |     this.getBegin = function() {return begin;}; | ||
|  |     this.getEnd = function() {return end;}; | ||
|  |     this.getState = function() {return state;}; | ||
|  |     this.getExpected = function() {return expected;}; | ||
|  |     this.getOffending = function() {return offending;}; | ||
|  | 
 | ||
|  |     this.getMessage = function() | ||
|  |     { | ||
|  |       return offending < 0 ? "lexical analysis failed" : "syntax error"; | ||
|  |     }; | ||
|  |   }; | ||
|  | 
 | ||
|  |   function init(string, parsingEventHandler) | ||
|  |   { | ||
|  |     eventHandler = parsingEventHandler; | ||
|  |     input = string; | ||
|  |     size = string.length; | ||
|  |     reset(0, 0, 0); | ||
|  |   } | ||
|  | 
 | ||
|  |   this.getInput = function() | ||
|  |   { | ||
|  |     return input; | ||
|  |   }; | ||
|  | 
 | ||
|  |   function reset(l, b, e) | ||
|  |   { | ||
|  |             b0 = b; e0 = b; | ||
|  |     l1 = l; b1 = b; e1 = e; | ||
|  |     end = e; | ||
|  |     eventHandler.reset(input); | ||
|  |   } | ||
|  | 
 | ||
|  |   this.getOffendingToken = function(e) | ||
|  |   { | ||
|  |     var o = e.getOffending(); | ||
|  |     return o >= 0 ? JSONiqTokenizer.TOKEN[o] : null; | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.getExpectedTokenSet = function(e) | ||
|  |   { | ||
|  |     var expected; | ||
|  |     if (e.getExpected() < 0) | ||
|  |     { | ||
|  |       expected = JSONiqTokenizer.getTokenSet(- e.getState()); | ||
|  |     } | ||
|  |     else | ||
|  |     { | ||
|  |       expected = [JSONiqTokenizer.TOKEN[e.getExpected()]]; | ||
|  |     } | ||
|  |     return expected; | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.getErrorMessage = function(e) | ||
|  |   { | ||
|  |     var tokenSet = this.getExpectedTokenSet(e); | ||
|  |     var found = this.getOffendingToken(e); | ||
|  |     var prefix = input.substring(0, e.getBegin()); | ||
|  |     var lines = prefix.split("\n"); | ||
|  |     var line = lines.length; | ||
|  |     var column = lines[line - 1].length + 1; | ||
|  |     var size = e.getEnd() - e.getBegin(); | ||
|  |     return e.getMessage() | ||
|  |          + (found == null ? "" : ", found " + found) | ||
|  |          + "\nwhile expecting " | ||
|  |          + (tokenSet.length == 1 ? tokenSet[0] : ("[" + tokenSet.join(", ") + "]")) | ||
|  |          + "\n" | ||
|  |          + (size == 0 || found != null ? "" : "after successfully scanning " + size + " characters beginning ") | ||
|  |          + "at line " + line + ", column " + column + ":\n..." | ||
|  |          + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64)) | ||
|  |          + "..."; | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_start = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("start", e0); | ||
|  |     lookahead1W(14);                // ModuleDecl | Annotation | OptionDecl | Operator | Variable | Tag | AttrTest |
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 58:                        // '<![CDATA['
 | ||
|  |       shift(58);                    // '<![CDATA['
 | ||
|  |       break; | ||
|  |     case 57:                        // '<!--'
 | ||
|  |       shift(57);                    // '<!--'
 | ||
|  |       break; | ||
|  |     case 59:                        // '<?'
 | ||
|  |       shift(59);                    // '<?'
 | ||
|  |       break; | ||
|  |     case 43:                        // '(#'
 | ||
|  |       shift(43);                    // '(#'
 | ||
|  |       break; | ||
|  |     case 45:                        // '(:~'
 | ||
|  |       shift(45);                    // '(:~'
 | ||
|  |       break; | ||
|  |     case 44:                        // '(:'
 | ||
|  |       shift(44);                    // '(:'
 | ||
|  |       break; | ||
|  |     case 37:                        // '"'
 | ||
|  |       shift(37);                    // '"'
 | ||
|  |       break; | ||
|  |     case 41:                        // "'"
 | ||
|  |       shift(41);                    // "'"
 | ||
|  |       break; | ||
|  |     case 277:                       // '}'
 | ||
|  |       shift(277);                   // '}'
 | ||
|  |       break; | ||
|  |     case 274:                       // '{'
 | ||
|  |       shift(274);                   // '{'
 | ||
|  |       break; | ||
|  |     case 42:                        // '('
 | ||
|  |       shift(42);                    // '('
 | ||
|  |       break; | ||
|  |     case 46:                        // ')'
 | ||
|  |       shift(46);                    // ')'
 | ||
|  |       break; | ||
|  |     case 52:                        // '/'
 | ||
|  |       shift(52);                    // '/'
 | ||
|  |       break; | ||
|  |     case 65:                        // '['
 | ||
|  |       shift(65);                    // '['
 | ||
|  |       break; | ||
|  |     case 66:                        // ']'
 | ||
|  |       shift(66);                    // ']'
 | ||
|  |       break; | ||
|  |     case 49:                        // ','
 | ||
|  |       shift(49);                    // ','
 | ||
|  |       break; | ||
|  |     case 51:                        // '.'
 | ||
|  |       shift(51);                    // '.'
 | ||
|  |       break; | ||
|  |     case 56:                        // ';'
 | ||
|  |       shift(56);                    // ';'
 | ||
|  |       break; | ||
|  |     case 54:                        // ':'
 | ||
|  |       shift(54);                    // ':'
 | ||
|  |       break; | ||
|  |     case 36:                        // '!'
 | ||
|  |       shift(36);                    // '!'
 | ||
|  |       break; | ||
|  |     case 276:                       // '|'
 | ||
|  |       shift(276);                   // '|'
 | ||
|  |       break; | ||
|  |     case 40:                        // '$$'
 | ||
|  |       shift(40);                    // '$$'
 | ||
|  |       break; | ||
|  |     case 5:                         // Annotation
 | ||
|  |       shift(5);                     // Annotation
 | ||
|  |       break; | ||
|  |     case 4:                         // ModuleDecl
 | ||
|  |       shift(4);                     // ModuleDecl
 | ||
|  |       break; | ||
|  |     case 6:                         // OptionDecl
 | ||
|  |       shift(6);                     // OptionDecl
 | ||
|  |       break; | ||
|  |     case 15:                        // AttrTest
 | ||
|  |       shift(15);                    // AttrTest
 | ||
|  |       break; | ||
|  |     case 16:                        // Wildcard
 | ||
|  |       shift(16);                    // Wildcard
 | ||
|  |       break; | ||
|  |     case 18:                        // IntegerLiteral
 | ||
|  |       shift(18);                    // IntegerLiteral
 | ||
|  |       break; | ||
|  |     case 19:                        // DecimalLiteral
 | ||
|  |       shift(19);                    // DecimalLiteral
 | ||
|  |       break; | ||
|  |     case 20:                        // DoubleLiteral
 | ||
|  |       shift(20);                    // DoubleLiteral
 | ||
|  |       break; | ||
|  |     case 8:                         // Variable
 | ||
|  |       shift(8);                     // Variable
 | ||
|  |       break; | ||
|  |     case 9:                         // Tag
 | ||
|  |       shift(9);                     // Tag
 | ||
|  |       break; | ||
|  |     case 7:                         // Operator
 | ||
|  |       shift(7);                     // Operator
 | ||
|  |       break; | ||
|  |     case 35:                        // EOF
 | ||
|  |       shift(35);                    // EOF
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       parse_EQName(); | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("start", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_StartTag = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("StartTag", e0); | ||
|  |     lookahead1W(8);                 // QName | S^WS | EOF | '"' | "'" | '/>' | '=' | '>'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 61:                        // '>'
 | ||
|  |       shift(61);                    // '>'
 | ||
|  |       break; | ||
|  |     case 53:                        // '/>'
 | ||
|  |       shift(53);                    // '/>'
 | ||
|  |       break; | ||
|  |     case 29:                        // QName
 | ||
|  |       shift(29);                    // QName
 | ||
|  |       break; | ||
|  |     case 60:                        // '='
 | ||
|  |       shift(60);                    // '='
 | ||
|  |       break; | ||
|  |     case 37:                        // '"'
 | ||
|  |       shift(37);                    // '"'
 | ||
|  |       break; | ||
|  |     case 41:                        // "'"
 | ||
|  |       shift(41);                    // "'"
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("StartTag", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_TagContent = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("TagContent", e0); | ||
|  |     lookahead1(11);                 // Tag | EndTag | PredefinedEntityRef | ElementContentChar | CharRef | EOF |
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 25:                        // ElementContentChar
 | ||
|  |       shift(25);                    // ElementContentChar
 | ||
|  |       break; | ||
|  |     case 9:                         // Tag
 | ||
|  |       shift(9);                     // Tag
 | ||
|  |       break; | ||
|  |     case 10:                        // EndTag
 | ||
|  |       shift(10);                    // EndTag
 | ||
|  |       break; | ||
|  |     case 58:                        // '<![CDATA['
 | ||
|  |       shift(58);                    // '<![CDATA['
 | ||
|  |       break; | ||
|  |     case 57:                        // '<!--'
 | ||
|  |       shift(57);                    // '<!--'
 | ||
|  |       break; | ||
|  |     case 21:                        // PredefinedEntityRef
 | ||
|  |       shift(21);                    // PredefinedEntityRef
 | ||
|  |       break; | ||
|  |     case 31:                        // CharRef
 | ||
|  |       shift(31);                    // CharRef
 | ||
|  |       break; | ||
|  |     case 275:                       // '{{'
 | ||
|  |       shift(275);                   // '{{'
 | ||
|  |       break; | ||
|  |     case 278:                       // '}}'
 | ||
|  |       shift(278);                   // '}}'
 | ||
|  |       break; | ||
|  |     case 274:                       // '{'
 | ||
|  |       shift(274);                   // '{'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("TagContent", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_AposAttr = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("AposAttr", e0); | ||
|  |     lookahead1(10);                 // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | EOF | "'" |
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 23:                        // EscapeApos
 | ||
|  |       shift(23);                    // EscapeApos
 | ||
|  |       break; | ||
|  |     case 27:                        // AposAttrContentChar
 | ||
|  |       shift(27);                    // AposAttrContentChar
 | ||
|  |       break; | ||
|  |     case 21:                        // PredefinedEntityRef
 | ||
|  |       shift(21);                    // PredefinedEntityRef
 | ||
|  |       break; | ||
|  |     case 31:                        // CharRef
 | ||
|  |       shift(31);                    // CharRef
 | ||
|  |       break; | ||
|  |     case 275:                       // '{{'
 | ||
|  |       shift(275);                   // '{{'
 | ||
|  |       break; | ||
|  |     case 278:                       // '}}'
 | ||
|  |       shift(278);                   // '}}'
 | ||
|  |       break; | ||
|  |     case 274:                       // '{'
 | ||
|  |       shift(274);                   // '{'
 | ||
|  |       break; | ||
|  |     case 41:                        // "'"
 | ||
|  |       shift(41);                    // "'"
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("AposAttr", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_QuotAttr = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("QuotAttr", e0); | ||
|  |     lookahead1(9);                  // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | EOF | '"' |
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 22:                        // EscapeQuot
 | ||
|  |       shift(22);                    // EscapeQuot
 | ||
|  |       break; | ||
|  |     case 26:                        // QuotAttrContentChar
 | ||
|  |       shift(26);                    // QuotAttrContentChar
 | ||
|  |       break; | ||
|  |     case 21:                        // PredefinedEntityRef
 | ||
|  |       shift(21);                    // PredefinedEntityRef
 | ||
|  |       break; | ||
|  |     case 31:                        // CharRef
 | ||
|  |       shift(31);                    // CharRef
 | ||
|  |       break; | ||
|  |     case 275:                       // '{{'
 | ||
|  |       shift(275);                   // '{{'
 | ||
|  |       break; | ||
|  |     case 278:                       // '}}'
 | ||
|  |       shift(278);                   // '}}'
 | ||
|  |       break; | ||
|  |     case 274:                       // '{'
 | ||
|  |       shift(274);                   // '{'
 | ||
|  |       break; | ||
|  |     case 37:                        // '"'
 | ||
|  |       shift(37);                    // '"'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("QuotAttr", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_CData = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("CData", e0); | ||
|  |     lookahead1(1);                  // CDataSectionContents | EOF | ']]>'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 14:                        // CDataSectionContents
 | ||
|  |       shift(14);                    // CDataSectionContents
 | ||
|  |       break; | ||
|  |     case 67:                        // ']]>'
 | ||
|  |       shift(67);                    // ']]>'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("CData", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_XMLComment = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("XMLComment", e0); | ||
|  |     lookahead1(0);                  // DirCommentContents | EOF | '-->'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 12:                        // DirCommentContents
 | ||
|  |       shift(12);                    // DirCommentContents
 | ||
|  |       break; | ||
|  |     case 50:                        // '-->'
 | ||
|  |       shift(50);                    // '-->'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("XMLComment", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_PI = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("PI", e0); | ||
|  |     lookahead1(3);                  // DirPIContents | EOF | '?' | '?>'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 13:                        // DirPIContents
 | ||
|  |       shift(13);                    // DirPIContents
 | ||
|  |       break; | ||
|  |     case 62:                        // '?'
 | ||
|  |       shift(62);                    // '?'
 | ||
|  |       break; | ||
|  |     case 63:                        // '?>'
 | ||
|  |       shift(63);                    // '?>'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("PI", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_Pragma = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("Pragma", e0); | ||
|  |     lookahead1(2);                  // PragmaContents | EOF | '#' | '#)'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 11:                        // PragmaContents
 | ||
|  |       shift(11);                    // PragmaContents
 | ||
|  |       break; | ||
|  |     case 38:                        // '#'
 | ||
|  |       shift(38);                    // '#'
 | ||
|  |       break; | ||
|  |     case 39:                        // '#)'
 | ||
|  |       shift(39);                    // '#)'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("Pragma", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_Comment = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("Comment", e0); | ||
|  |     lookahead1(4);                  // CommentContents | EOF | '(:' | ':)'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 55:                        // ':)'
 | ||
|  |       shift(55);                    // ':)'
 | ||
|  |       break; | ||
|  |     case 44:                        // '(:'
 | ||
|  |       shift(44);                    // '(:'
 | ||
|  |       break; | ||
|  |     case 32:                        // CommentContents
 | ||
|  |       shift(32);                    // CommentContents
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("Comment", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_CommentDoc = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("CommentDoc", e0); | ||
|  |     lookahead1(6);                  // DocTag | DocCommentContents | EOF | '(:' | ':)'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 33:                        // DocTag
 | ||
|  |       shift(33);                    // DocTag
 | ||
|  |       break; | ||
|  |     case 34:                        // DocCommentContents
 | ||
|  |       shift(34);                    // DocCommentContents
 | ||
|  |       break; | ||
|  |     case 55:                        // ':)'
 | ||
|  |       shift(55);                    // ':)'
 | ||
|  |       break; | ||
|  |     case 44:                        // '(:'
 | ||
|  |       shift(44);                    // '(:'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("CommentDoc", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_QuotString = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("QuotString", e0); | ||
|  |     lookahead1(5);                  // JSONChar | JSONCharRef | JSONPredefinedCharRef | EOF | '"'
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 3:                         // JSONPredefinedCharRef
 | ||
|  |       shift(3);                     // JSONPredefinedCharRef
 | ||
|  |       break; | ||
|  |     case 2:                         // JSONCharRef
 | ||
|  |       shift(2);                     // JSONCharRef
 | ||
|  |       break; | ||
|  |     case 1:                         // JSONChar
 | ||
|  |       shift(1);                     // JSONChar
 | ||
|  |       break; | ||
|  |     case 37:                        // '"'
 | ||
|  |       shift(37);                    // '"'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("QuotString", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_AposString = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("AposString", e0); | ||
|  |     lookahead1(7);                  // PredefinedEntityRef | EscapeApos | AposChar | CharRef | EOF | "'"
 | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 21:                        // PredefinedEntityRef
 | ||
|  |       shift(21);                    // PredefinedEntityRef
 | ||
|  |       break; | ||
|  |     case 31:                        // CharRef
 | ||
|  |       shift(31);                    // CharRef
 | ||
|  |       break; | ||
|  |     case 23:                        // EscapeApos
 | ||
|  |       shift(23);                    // EscapeApos
 | ||
|  |       break; | ||
|  |     case 24:                        // AposChar
 | ||
|  |       shift(24);                    // AposChar
 | ||
|  |       break; | ||
|  |     case 41:                        // "'"
 | ||
|  |       shift(41);                    // "'"
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(35);                    // EOF
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("AposString", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse_Prefix = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("Prefix", e0); | ||
|  |     lookahead1W(13);                // NCName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
 | ||
|  |     whitespace(); | ||
|  |     parse_NCName(); | ||
|  |     eventHandler.endNonterminal("Prefix", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   this.parse__EQName = function() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("_EQName", e0); | ||
|  |     lookahead1W(12);                // EQName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
 | ||
|  |     whitespace(); | ||
|  |     parse_EQName(); | ||
|  |     eventHandler.endNonterminal("_EQName", e0); | ||
|  |   }; | ||
|  | 
 | ||
|  |   function parse_EQName() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("EQName", e0); | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 80:                        // 'attribute'
 | ||
|  |       shift(80);                    // 'attribute'
 | ||
|  |       break; | ||
|  |     case 94:                        // 'comment'
 | ||
|  |       shift(94);                    // 'comment'
 | ||
|  |       break; | ||
|  |     case 118:                       // 'document-node'
 | ||
|  |       shift(118);                   // 'document-node'
 | ||
|  |       break; | ||
|  |     case 119:                       // 'element'
 | ||
|  |       shift(119);                   // 'element'
 | ||
|  |       break; | ||
|  |     case 122:                       // 'empty-sequence'
 | ||
|  |       shift(122);                   // 'empty-sequence'
 | ||
|  |       break; | ||
|  |     case 143:                       // 'function'
 | ||
|  |       shift(143);                   // 'function'
 | ||
|  |       break; | ||
|  |     case 150:                       // 'if'
 | ||
|  |       shift(150);                   // 'if'
 | ||
|  |       break; | ||
|  |     case 163:                       // 'item'
 | ||
|  |       shift(163);                   // 'item'
 | ||
|  |       break; | ||
|  |     case 183:                       // 'namespace-node'
 | ||
|  |       shift(183);                   // 'namespace-node'
 | ||
|  |       break; | ||
|  |     case 189:                       // 'node'
 | ||
|  |       shift(189);                   // 'node'
 | ||
|  |       break; | ||
|  |     case 214:                       // 'processing-instruction'
 | ||
|  |       shift(214);                   // 'processing-instruction'
 | ||
|  |       break; | ||
|  |     case 224:                       // 'schema-attribute'
 | ||
|  |       shift(224);                   // 'schema-attribute'
 | ||
|  |       break; | ||
|  |     case 225:                       // 'schema-element'
 | ||
|  |       shift(225);                   // 'schema-element'
 | ||
|  |       break; | ||
|  |     case 241:                       // 'switch'
 | ||
|  |       shift(241);                   // 'switch'
 | ||
|  |       break; | ||
|  |     case 242:                       // 'text'
 | ||
|  |       shift(242);                   // 'text'
 | ||
|  |       break; | ||
|  |     case 251:                       // 'typeswitch'
 | ||
|  |       shift(251);                   // 'typeswitch'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       parse_FunctionName(); | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("EQName", e0); | ||
|  |   } | ||
|  | 
 | ||
|  |   function parse_FunctionName() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("FunctionName", e0); | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 17:                        // EQName^Token
 | ||
|  |       shift(17);                    // EQName^Token
 | ||
|  |       break; | ||
|  |     case 68:                        // 'after'
 | ||
|  |       shift(68);                    // 'after'
 | ||
|  |       break; | ||
|  |     case 71:                        // 'ancestor'
 | ||
|  |       shift(71);                    // 'ancestor'
 | ||
|  |       break; | ||
|  |     case 72:                        // 'ancestor-or-self'
 | ||
|  |       shift(72);                    // 'ancestor-or-self'
 | ||
|  |       break; | ||
|  |     case 73:                        // 'and'
 | ||
|  |       shift(73);                    // 'and'
 | ||
|  |       break; | ||
|  |     case 77:                        // 'as'
 | ||
|  |       shift(77);                    // 'as'
 | ||
|  |       break; | ||
|  |     case 78:                        // 'ascending'
 | ||
|  |       shift(78);                    // 'ascending'
 | ||
|  |       break; | ||
|  |     case 82:                        // 'before'
 | ||
|  |       shift(82);                    // 'before'
 | ||
|  |       break; | ||
|  |     case 86:                        // 'case'
 | ||
|  |       shift(86);                    // 'case'
 | ||
|  |       break; | ||
|  |     case 87:                        // 'cast'
 | ||
|  |       shift(87);                    // 'cast'
 | ||
|  |       break; | ||
|  |     case 88:                        // 'castable'
 | ||
|  |       shift(88);                    // 'castable'
 | ||
|  |       break; | ||
|  |     case 91:                        // 'child'
 | ||
|  |       shift(91);                    // 'child'
 | ||
|  |       break; | ||
|  |     case 92:                        // 'collation'
 | ||
|  |       shift(92);                    // 'collation'
 | ||
|  |       break; | ||
|  |     case 101:                       // 'copy'
 | ||
|  |       shift(101);                   // 'copy'
 | ||
|  |       break; | ||
|  |     case 103:                       // 'count'
 | ||
|  |       shift(103);                   // 'count'
 | ||
|  |       break; | ||
|  |     case 106:                       // 'declare'
 | ||
|  |       shift(106);                   // 'declare'
 | ||
|  |       break; | ||
|  |     case 107:                       // 'default'
 | ||
|  |       shift(107);                   // 'default'
 | ||
|  |       break; | ||
|  |     case 108:                       // 'delete'
 | ||
|  |       shift(108);                   // 'delete'
 | ||
|  |       break; | ||
|  |     case 109:                       // 'descendant'
 | ||
|  |       shift(109);                   // 'descendant'
 | ||
|  |       break; | ||
|  |     case 110:                       // 'descendant-or-self'
 | ||
|  |       shift(110);                   // 'descendant-or-self'
 | ||
|  |       break; | ||
|  |     case 111:                       // 'descending'
 | ||
|  |       shift(111);                   // 'descending'
 | ||
|  |       break; | ||
|  |     case 116:                       // 'div'
 | ||
|  |       shift(116);                   // 'div'
 | ||
|  |       break; | ||
|  |     case 117:                       // 'document'
 | ||
|  |       shift(117);                   // 'document'
 | ||
|  |       break; | ||
|  |     case 120:                       // 'else'
 | ||
|  |       shift(120);                   // 'else'
 | ||
|  |       break; | ||
|  |     case 121:                       // 'empty'
 | ||
|  |       shift(121);                   // 'empty'
 | ||
|  |       break; | ||
|  |     case 124:                       // 'end'
 | ||
|  |       shift(124);                   // 'end'
 | ||
|  |       break; | ||
|  |     case 126:                       // 'eq'
 | ||
|  |       shift(126);                   // 'eq'
 | ||
|  |       break; | ||
|  |     case 127:                       // 'every'
 | ||
|  |       shift(127);                   // 'every'
 | ||
|  |       break; | ||
|  |     case 129:                       // 'except'
 | ||
|  |       shift(129);                   // 'except'
 | ||
|  |       break; | ||
|  |     case 132:                       // 'first'
 | ||
|  |       shift(132);                   // 'first'
 | ||
|  |       break; | ||
|  |     case 133:                       // 'following'
 | ||
|  |       shift(133);                   // 'following'
 | ||
|  |       break; | ||
|  |     case 134:                       // 'following-sibling'
 | ||
|  |       shift(134);                   // 'following-sibling'
 | ||
|  |       break; | ||
|  |     case 135:                       // 'for'
 | ||
|  |       shift(135);                   // 'for'
 | ||
|  |       break; | ||
|  |     case 144:                       // 'ge'
 | ||
|  |       shift(144);                   // 'ge'
 | ||
|  |       break; | ||
|  |     case 146:                       // 'group'
 | ||
|  |       shift(146);                   // 'group'
 | ||
|  |       break; | ||
|  |     case 148:                       // 'gt'
 | ||
|  |       shift(148);                   // 'gt'
 | ||
|  |       break; | ||
|  |     case 149:                       // 'idiv'
 | ||
|  |       shift(149);                   // 'idiv'
 | ||
|  |       break; | ||
|  |     case 151:                       // 'import'
 | ||
|  |       shift(151);                   // 'import'
 | ||
|  |       break; | ||
|  |     case 157:                       // 'insert'
 | ||
|  |       shift(157);                   // 'insert'
 | ||
|  |       break; | ||
|  |     case 158:                       // 'instance'
 | ||
|  |       shift(158);                   // 'instance'
 | ||
|  |       break; | ||
|  |     case 160:                       // 'intersect'
 | ||
|  |       shift(160);                   // 'intersect'
 | ||
|  |       break; | ||
|  |     case 161:                       // 'into'
 | ||
|  |       shift(161);                   // 'into'
 | ||
|  |       break; | ||
|  |     case 162:                       // 'is'
 | ||
|  |       shift(162);                   // 'is'
 | ||
|  |       break; | ||
|  |     case 168:                       // 'last'
 | ||
|  |       shift(168);                   // 'last'
 | ||
|  |       break; | ||
|  |     case 170:                       // 'le'
 | ||
|  |       shift(170);                   // 'le'
 | ||
|  |       break; | ||
|  |     case 172:                       // 'let'
 | ||
|  |       shift(172);                   // 'let'
 | ||
|  |       break; | ||
|  |     case 176:                       // 'lt'
 | ||
|  |       shift(176);                   // 'lt'
 | ||
|  |       break; | ||
|  |     case 178:                       // 'mod'
 | ||
|  |       shift(178);                   // 'mod'
 | ||
|  |       break; | ||
|  |     case 179:                       // 'modify'
 | ||
|  |       shift(179);                   // 'modify'
 | ||
|  |       break; | ||
|  |     case 180:                       // 'module'
 | ||
|  |       shift(180);                   // 'module'
 | ||
|  |       break; | ||
|  |     case 182:                       // 'namespace'
 | ||
|  |       shift(182);                   // 'namespace'
 | ||
|  |       break; | ||
|  |     case 184:                       // 'ne'
 | ||
|  |       shift(184);                   // 'ne'
 | ||
|  |       break; | ||
|  |     case 196:                       // 'only'
 | ||
|  |       shift(196);                   // 'only'
 | ||
|  |       break; | ||
|  |     case 198:                       // 'or'
 | ||
|  |       shift(198);                   // 'or'
 | ||
|  |       break; | ||
|  |     case 199:                       // 'order'
 | ||
|  |       shift(199);                   // 'order'
 | ||
|  |       break; | ||
|  |     case 200:                       // 'ordered'
 | ||
|  |       shift(200);                   // 'ordered'
 | ||
|  |       break; | ||
|  |     case 204:                       // 'parent'
 | ||
|  |       shift(204);                   // 'parent'
 | ||
|  |       break; | ||
|  |     case 210:                       // 'preceding'
 | ||
|  |       shift(210);                   // 'preceding'
 | ||
|  |       break; | ||
|  |     case 211:                       // 'preceding-sibling'
 | ||
|  |       shift(211);                   // 'preceding-sibling'
 | ||
|  |       break; | ||
|  |     case 216:                       // 'rename'
 | ||
|  |       shift(216);                   // 'rename'
 | ||
|  |       break; | ||
|  |     case 217:                       // 'replace'
 | ||
|  |       shift(217);                   // 'replace'
 | ||
|  |       break; | ||
|  |     case 218:                       // 'return'
 | ||
|  |       shift(218);                   // 'return'
 | ||
|  |       break; | ||
|  |     case 222:                       // 'satisfies'
 | ||
|  |       shift(222);                   // 'satisfies'
 | ||
|  |       break; | ||
|  |     case 227:                       // 'self'
 | ||
|  |       shift(227);                   // 'self'
 | ||
|  |       break; | ||
|  |     case 233:                       // 'some'
 | ||
|  |       shift(233);                   // 'some'
 | ||
|  |       break; | ||
|  |     case 234:                       // 'stable'
 | ||
|  |       shift(234);                   // 'stable'
 | ||
|  |       break; | ||
|  |     case 235:                       // 'start'
 | ||
|  |       shift(235);                   // 'start'
 | ||
|  |       break; | ||
|  |     case 246:                       // 'to'
 | ||
|  |       shift(246);                   // 'to'
 | ||
|  |       break; | ||
|  |     case 247:                       // 'treat'
 | ||
|  |       shift(247);                   // 'treat'
 | ||
|  |       break; | ||
|  |     case 248:                       // 'try'
 | ||
|  |       shift(248);                   // 'try'
 | ||
|  |       break; | ||
|  |     case 252:                       // 'union'
 | ||
|  |       shift(252);                   // 'union'
 | ||
|  |       break; | ||
|  |     case 254:                       // 'unordered'
 | ||
|  |       shift(254);                   // 'unordered'
 | ||
|  |       break; | ||
|  |     case 258:                       // 'validate'
 | ||
|  |       shift(258);                   // 'validate'
 | ||
|  |       break; | ||
|  |     case 264:                       // 'where'
 | ||
|  |       shift(264);                   // 'where'
 | ||
|  |       break; | ||
|  |     case 268:                       // 'with'
 | ||
|  |       shift(268);                   // 'with'
 | ||
|  |       break; | ||
|  |     case 272:                       // 'xquery'
 | ||
|  |       shift(272);                   // 'xquery'
 | ||
|  |       break; | ||
|  |     case 70:                        // 'allowing'
 | ||
|  |       shift(70);                    // 'allowing'
 | ||
|  |       break; | ||
|  |     case 79:                        // 'at'
 | ||
|  |       shift(79);                    // 'at'
 | ||
|  |       break; | ||
|  |     case 81:                        // 'base-uri'
 | ||
|  |       shift(81);                    // 'base-uri'
 | ||
|  |       break; | ||
|  |     case 83:                        // 'boundary-space'
 | ||
|  |       shift(83);                    // 'boundary-space'
 | ||
|  |       break; | ||
|  |     case 84:                        // 'break'
 | ||
|  |       shift(84);                    // 'break'
 | ||
|  |       break; | ||
|  |     case 89:                        // 'catch'
 | ||
|  |       shift(89);                    // 'catch'
 | ||
|  |       break; | ||
|  |     case 96:                        // 'construction'
 | ||
|  |       shift(96);                    // 'construction'
 | ||
|  |       break; | ||
|  |     case 99:                        // 'context'
 | ||
|  |       shift(99);                    // 'context'
 | ||
|  |       break; | ||
|  |     case 100:                       // 'continue'
 | ||
|  |       shift(100);                   // 'continue'
 | ||
|  |       break; | ||
|  |     case 102:                       // 'copy-namespaces'
 | ||
|  |       shift(102);                   // 'copy-namespaces'
 | ||
|  |       break; | ||
|  |     case 104:                       // 'decimal-format'
 | ||
|  |       shift(104);                   // 'decimal-format'
 | ||
|  |       break; | ||
|  |     case 123:                       // 'encoding'
 | ||
|  |       shift(123);                   // 'encoding'
 | ||
|  |       break; | ||
|  |     case 130:                       // 'exit'
 | ||
|  |       shift(130);                   // 'exit'
 | ||
|  |       break; | ||
|  |     case 131:                       // 'external'
 | ||
|  |       shift(131);                   // 'external'
 | ||
|  |       break; | ||
|  |     case 139:                       // 'ft-option'
 | ||
|  |       shift(139);                   // 'ft-option'
 | ||
|  |       break; | ||
|  |     case 152:                       // 'in'
 | ||
|  |       shift(152);                   // 'in'
 | ||
|  |       break; | ||
|  |     case 153:                       // 'index'
 | ||
|  |       shift(153);                   // 'index'
 | ||
|  |       break; | ||
|  |     case 159:                       // 'integrity'
 | ||
|  |       shift(159);                   // 'integrity'
 | ||
|  |       break; | ||
|  |     case 169:                       // 'lax'
 | ||
|  |       shift(169);                   // 'lax'
 | ||
|  |       break; | ||
|  |     case 190:                       // 'nodes'
 | ||
|  |       shift(190);                   // 'nodes'
 | ||
|  |       break; | ||
|  |     case 197:                       // 'option'
 | ||
|  |       shift(197);                   // 'option'
 | ||
|  |       break; | ||
|  |     case 201:                       // 'ordering'
 | ||
|  |       shift(201);                   // 'ordering'
 | ||
|  |       break; | ||
|  |     case 220:                       // 'revalidation'
 | ||
|  |       shift(220);                   // 'revalidation'
 | ||
|  |       break; | ||
|  |     case 223:                       // 'schema'
 | ||
|  |       shift(223);                   // 'schema'
 | ||
|  |       break; | ||
|  |     case 226:                       // 'score'
 | ||
|  |       shift(226);                   // 'score'
 | ||
|  |       break; | ||
|  |     case 232:                       // 'sliding'
 | ||
|  |       shift(232);                   // 'sliding'
 | ||
|  |       break; | ||
|  |     case 238:                       // 'strict'
 | ||
|  |       shift(238);                   // 'strict'
 | ||
|  |       break; | ||
|  |     case 249:                       // 'tumbling'
 | ||
|  |       shift(249);                   // 'tumbling'
 | ||
|  |       break; | ||
|  |     case 250:                       // 'type'
 | ||
|  |       shift(250);                   // 'type'
 | ||
|  |       break; | ||
|  |     case 255:                       // 'updating'
 | ||
|  |       shift(255);                   // 'updating'
 | ||
|  |       break; | ||
|  |     case 259:                       // 'value'
 | ||
|  |       shift(259);                   // 'value'
 | ||
|  |       break; | ||
|  |     case 260:                       // 'variable'
 | ||
|  |       shift(260);                   // 'variable'
 | ||
|  |       break; | ||
|  |     case 261:                       // 'version'
 | ||
|  |       shift(261);                   // 'version'
 | ||
|  |       break; | ||
|  |     case 265:                       // 'while'
 | ||
|  |       shift(265);                   // 'while'
 | ||
|  |       break; | ||
|  |     case 95:                        // 'constraint'
 | ||
|  |       shift(95);                    // 'constraint'
 | ||
|  |       break; | ||
|  |     case 174:                       // 'loop'
 | ||
|  |       shift(174);                   // 'loop'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(219);                   // 'returning'
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("FunctionName", e0); | ||
|  |   } | ||
|  | 
 | ||
|  |   function parse_NCName() | ||
|  |   { | ||
|  |     eventHandler.startNonterminal("NCName", e0); | ||
|  |     switch (l1) | ||
|  |     { | ||
|  |     case 28:                        // NCName^Token
 | ||
|  |       shift(28);                    // NCName^Token
 | ||
|  |       break; | ||
|  |     case 68:                        // 'after'
 | ||
|  |       shift(68);                    // 'after'
 | ||
|  |       break; | ||
|  |     case 73:                        // 'and'
 | ||
|  |       shift(73);                    // 'and'
 | ||
|  |       break; | ||
|  |     case 77:                        // 'as'
 | ||
|  |       shift(77);                    // 'as'
 | ||
|  |       break; | ||
|  |     case 78:                        // 'ascending'
 | ||
|  |       shift(78);                    // 'ascending'
 | ||
|  |       break; | ||
|  |     case 82:                        // 'before'
 | ||
|  |       shift(82);                    // 'before'
 | ||
|  |       break; | ||
|  |     case 86:                        // 'case'
 | ||
|  |       shift(86);                    // 'case'
 | ||
|  |       break; | ||
|  |     case 87:                        // 'cast'
 | ||
|  |       shift(87);                    // 'cast'
 | ||
|  |       break; | ||
|  |     case 88:                        // 'castable'
 | ||
|  |       shift(88);                    // 'castable'
 | ||
|  |       break; | ||
|  |     case 92:                        // 'collation'
 | ||
|  |       shift(92);                    // 'collation'
 | ||
|  |       break; | ||
|  |     case 103:                       // 'count'
 | ||
|  |       shift(103);                   // 'count'
 | ||
|  |       break; | ||
|  |     case 107:                       // 'default'
 | ||
|  |       shift(107);                   // 'default'
 | ||
|  |       break; | ||
|  |     case 111:                       // 'descending'
 | ||
|  |       shift(111);                   // 'descending'
 | ||
|  |       break; | ||
|  |     case 116:                       // 'div'
 | ||
|  |       shift(116);                   // 'div'
 | ||
|  |       break; | ||
|  |     case 120:                       // 'else'
 | ||
|  |       shift(120);                   // 'else'
 | ||
|  |       break; | ||
|  |     case 121:                       // 'empty'
 | ||
|  |       shift(121);                   // 'empty'
 | ||
|  |       break; | ||
|  |     case 124:                       // 'end'
 | ||
|  |       shift(124);                   // 'end'
 | ||
|  |       break; | ||
|  |     case 126:                       // 'eq'
 | ||
|  |       shift(126);                   // 'eq'
 | ||
|  |       break; | ||
|  |     case 129:                       // 'except'
 | ||
|  |       shift(129);                   // 'except'
 | ||
|  |       break; | ||
|  |     case 135:                       // 'for'
 | ||
|  |       shift(135);                   // 'for'
 | ||
|  |       break; | ||
|  |     case 144:                       // 'ge'
 | ||
|  |       shift(144);                   // 'ge'
 | ||
|  |       break; | ||
|  |     case 146:                       // 'group'
 | ||
|  |       shift(146);                   // 'group'
 | ||
|  |       break; | ||
|  |     case 148:                       // 'gt'
 | ||
|  |       shift(148);                   // 'gt'
 | ||
|  |       break; | ||
|  |     case 149:                       // 'idiv'
 | ||
|  |       shift(149);                   // 'idiv'
 | ||
|  |       break; | ||
|  |     case 158:                       // 'instance'
 | ||
|  |       shift(158);                   // 'instance'
 | ||
|  |       break; | ||
|  |     case 160:                       // 'intersect'
 | ||
|  |       shift(160);                   // 'intersect'
 | ||
|  |       break; | ||
|  |     case 161:                       // 'into'
 | ||
|  |       shift(161);                   // 'into'
 | ||
|  |       break; | ||
|  |     case 162:                       // 'is'
 | ||
|  |       shift(162);                   // 'is'
 | ||
|  |       break; | ||
|  |     case 170:                       // 'le'
 | ||
|  |       shift(170);                   // 'le'
 | ||
|  |       break; | ||
|  |     case 172:                       // 'let'
 | ||
|  |       shift(172);                   // 'let'
 | ||
|  |       break; | ||
|  |     case 176:                       // 'lt'
 | ||
|  |       shift(176);                   // 'lt'
 | ||
|  |       break; | ||
|  |     case 178:                       // 'mod'
 | ||
|  |       shift(178);                   // 'mod'
 | ||
|  |       break; | ||
|  |     case 179:                       // 'modify'
 | ||
|  |       shift(179);                   // 'modify'
 | ||
|  |       break; | ||
|  |     case 184:                       // 'ne'
 | ||
|  |       shift(184);                   // 'ne'
 | ||
|  |       break; | ||
|  |     case 196:                       // 'only'
 | ||
|  |       shift(196);                   // 'only'
 | ||
|  |       break; | ||
|  |     case 198:                       // 'or'
 | ||
|  |       shift(198);                   // 'or'
 | ||
|  |       break; | ||
|  |     case 199:                       // 'order'
 | ||
|  |       shift(199);                   // 'order'
 | ||
|  |       break; | ||
|  |     case 218:                       // 'return'
 | ||
|  |       shift(218);                   // 'return'
 | ||
|  |       break; | ||
|  |     case 222:                       // 'satisfies'
 | ||
|  |       shift(222);                   // 'satisfies'
 | ||
|  |       break; | ||
|  |     case 234:                       // 'stable'
 | ||
|  |       shift(234);                   // 'stable'
 | ||
|  |       break; | ||
|  |     case 235:                       // 'start'
 | ||
|  |       shift(235);                   // 'start'
 | ||
|  |       break; | ||
|  |     case 246:                       // 'to'
 | ||
|  |       shift(246);                   // 'to'
 | ||
|  |       break; | ||
|  |     case 247:                       // 'treat'
 | ||
|  |       shift(247);                   // 'treat'
 | ||
|  |       break; | ||
|  |     case 252:                       // 'union'
 | ||
|  |       shift(252);                   // 'union'
 | ||
|  |       break; | ||
|  |     case 264:                       // 'where'
 | ||
|  |       shift(264);                   // 'where'
 | ||
|  |       break; | ||
|  |     case 268:                       // 'with'
 | ||
|  |       shift(268);                   // 'with'
 | ||
|  |       break; | ||
|  |     case 71:                        // 'ancestor'
 | ||
|  |       shift(71);                    // 'ancestor'
 | ||
|  |       break; | ||
|  |     case 72:                        // 'ancestor-or-self'
 | ||
|  |       shift(72);                    // 'ancestor-or-self'
 | ||
|  |       break; | ||
|  |     case 80:                        // 'attribute'
 | ||
|  |       shift(80);                    // 'attribute'
 | ||
|  |       break; | ||
|  |     case 91:                        // 'child'
 | ||
|  |       shift(91);                    // 'child'
 | ||
|  |       break; | ||
|  |     case 94:                        // 'comment'
 | ||
|  |       shift(94);                    // 'comment'
 | ||
|  |       break; | ||
|  |     case 101:                       // 'copy'
 | ||
|  |       shift(101);                   // 'copy'
 | ||
|  |       break; | ||
|  |     case 106:                       // 'declare'
 | ||
|  |       shift(106);                   // 'declare'
 | ||
|  |       break; | ||
|  |     case 108:                       // 'delete'
 | ||
|  |       shift(108);                   // 'delete'
 | ||
|  |       break; | ||
|  |     case 109:                       // 'descendant'
 | ||
|  |       shift(109);                   // 'descendant'
 | ||
|  |       break; | ||
|  |     case 110:                       // 'descendant-or-self'
 | ||
|  |       shift(110);                   // 'descendant-or-self'
 | ||
|  |       break; | ||
|  |     case 117:                       // 'document'
 | ||
|  |       shift(117);                   // 'document'
 | ||
|  |       break; | ||
|  |     case 118:                       // 'document-node'
 | ||
|  |       shift(118);                   // 'document-node'
 | ||
|  |       break; | ||
|  |     case 119:                       // 'element'
 | ||
|  |       shift(119);                   // 'element'
 | ||
|  |       break; | ||
|  |     case 122:                       // 'empty-sequence'
 | ||
|  |       shift(122);                   // 'empty-sequence'
 | ||
|  |       break; | ||
|  |     case 127:                       // 'every'
 | ||
|  |       shift(127);                   // 'every'
 | ||
|  |       break; | ||
|  |     case 132:                       // 'first'
 | ||
|  |       shift(132);                   // 'first'
 | ||
|  |       break; | ||
|  |     case 133:                       // 'following'
 | ||
|  |       shift(133);                   // 'following'
 | ||
|  |       break; | ||
|  |     case 134:                       // 'following-sibling'
 | ||
|  |       shift(134);                   // 'following-sibling'
 | ||
|  |       break; | ||
|  |     case 143:                       // 'function'
 | ||
|  |       shift(143);                   // 'function'
 | ||
|  |       break; | ||
|  |     case 150:                       // 'if'
 | ||
|  |       shift(150);                   // 'if'
 | ||
|  |       break; | ||
|  |     case 151:                       // 'import'
 | ||
|  |       shift(151);                   // 'import'
 | ||
|  |       break; | ||
|  |     case 157:                       // 'insert'
 | ||
|  |       shift(157);                   // 'insert'
 | ||
|  |       break; | ||
|  |     case 163:                       // 'item'
 | ||
|  |       shift(163);                   // 'item'
 | ||
|  |       break; | ||
|  |     case 168:                       // 'last'
 | ||
|  |       shift(168);                   // 'last'
 | ||
|  |       break; | ||
|  |     case 180:                       // 'module'
 | ||
|  |       shift(180);                   // 'module'
 | ||
|  |       break; | ||
|  |     case 182:                       // 'namespace'
 | ||
|  |       shift(182);                   // 'namespace'
 | ||
|  |       break; | ||
|  |     case 183:                       // 'namespace-node'
 | ||
|  |       shift(183);                   // 'namespace-node'
 | ||
|  |       break; | ||
|  |     case 189:                       // 'node'
 | ||
|  |       shift(189);                   // 'node'
 | ||
|  |       break; | ||
|  |     case 200:                       // 'ordered'
 | ||
|  |       shift(200);                   // 'ordered'
 | ||
|  |       break; | ||
|  |     case 204:                       // 'parent'
 | ||
|  |       shift(204);                   // 'parent'
 | ||
|  |       break; | ||
|  |     case 210:                       // 'preceding'
 | ||
|  |       shift(210);                   // 'preceding'
 | ||
|  |       break; | ||
|  |     case 211:                       // 'preceding-sibling'
 | ||
|  |       shift(211);                   // 'preceding-sibling'
 | ||
|  |       break; | ||
|  |     case 214:                       // 'processing-instruction'
 | ||
|  |       shift(214);                   // 'processing-instruction'
 | ||
|  |       break; | ||
|  |     case 216:                       // 'rename'
 | ||
|  |       shift(216);                   // 'rename'
 | ||
|  |       break; | ||
|  |     case 217:                       // 'replace'
 | ||
|  |       shift(217);                   // 'replace'
 | ||
|  |       break; | ||
|  |     case 224:                       // 'schema-attribute'
 | ||
|  |       shift(224);                   // 'schema-attribute'
 | ||
|  |       break; | ||
|  |     case 225:                       // 'schema-element'
 | ||
|  |       shift(225);                   // 'schema-element'
 | ||
|  |       break; | ||
|  |     case 227:                       // 'self'
 | ||
|  |       shift(227);                   // 'self'
 | ||
|  |       break; | ||
|  |     case 233:                       // 'some'
 | ||
|  |       shift(233);                   // 'some'
 | ||
|  |       break; | ||
|  |     case 241:                       // 'switch'
 | ||
|  |       shift(241);                   // 'switch'
 | ||
|  |       break; | ||
|  |     case 242:                       // 'text'
 | ||
|  |       shift(242);                   // 'text'
 | ||
|  |       break; | ||
|  |     case 248:                       // 'try'
 | ||
|  |       shift(248);                   // 'try'
 | ||
|  |       break; | ||
|  |     case 251:                       // 'typeswitch'
 | ||
|  |       shift(251);                   // 'typeswitch'
 | ||
|  |       break; | ||
|  |     case 254:                       // 'unordered'
 | ||
|  |       shift(254);                   // 'unordered'
 | ||
|  |       break; | ||
|  |     case 258:                       // 'validate'
 | ||
|  |       shift(258);                   // 'validate'
 | ||
|  |       break; | ||
|  |     case 260:                       // 'variable'
 | ||
|  |       shift(260);                   // 'variable'
 | ||
|  |       break; | ||
|  |     case 272:                       // 'xquery'
 | ||
|  |       shift(272);                   // 'xquery'
 | ||
|  |       break; | ||
|  |     case 70:                        // 'allowing'
 | ||
|  |       shift(70);                    // 'allowing'
 | ||
|  |       break; | ||
|  |     case 79:                        // 'at'
 | ||
|  |       shift(79);                    // 'at'
 | ||
|  |       break; | ||
|  |     case 81:                        // 'base-uri'
 | ||
|  |       shift(81);                    // 'base-uri'
 | ||
|  |       break; | ||
|  |     case 83:                        // 'boundary-space'
 | ||
|  |       shift(83);                    // 'boundary-space'
 | ||
|  |       break; | ||
|  |     case 84:                        // 'break'
 | ||
|  |       shift(84);                    // 'break'
 | ||
|  |       break; | ||
|  |     case 89:                        // 'catch'
 | ||
|  |       shift(89);                    // 'catch'
 | ||
|  |       break; | ||
|  |     case 96:                        // 'construction'
 | ||
|  |       shift(96);                    // 'construction'
 | ||
|  |       break; | ||
|  |     case 99:                        // 'context'
 | ||
|  |       shift(99);                    // 'context'
 | ||
|  |       break; | ||
|  |     case 100:                       // 'continue'
 | ||
|  |       shift(100);                   // 'continue'
 | ||
|  |       break; | ||
|  |     case 102:                       // 'copy-namespaces'
 | ||
|  |       shift(102);                   // 'copy-namespaces'
 | ||
|  |       break; | ||
|  |     case 104:                       // 'decimal-format'
 | ||
|  |       shift(104);                   // 'decimal-format'
 | ||
|  |       break; | ||
|  |     case 123:                       // 'encoding'
 | ||
|  |       shift(123);                   // 'encoding'
 | ||
|  |       break; | ||
|  |     case 130:                       // 'exit'
 | ||
|  |       shift(130);                   // 'exit'
 | ||
|  |       break; | ||
|  |     case 131:                       // 'external'
 | ||
|  |       shift(131);                   // 'external'
 | ||
|  |       break; | ||
|  |     case 139:                       // 'ft-option'
 | ||
|  |       shift(139);                   // 'ft-option'
 | ||
|  |       break; | ||
|  |     case 152:                       // 'in'
 | ||
|  |       shift(152);                   // 'in'
 | ||
|  |       break; | ||
|  |     case 153:                       // 'index'
 | ||
|  |       shift(153);                   // 'index'
 | ||
|  |       break; | ||
|  |     case 159:                       // 'integrity'
 | ||
|  |       shift(159);                   // 'integrity'
 | ||
|  |       break; | ||
|  |     case 169:                       // 'lax'
 | ||
|  |       shift(169);                   // 'lax'
 | ||
|  |       break; | ||
|  |     case 190:                       // 'nodes'
 | ||
|  |       shift(190);                   // 'nodes'
 | ||
|  |       break; | ||
|  |     case 197:                       // 'option'
 | ||
|  |       shift(197);                   // 'option'
 | ||
|  |       break; | ||
|  |     case 201:                       // 'ordering'
 | ||
|  |       shift(201);                   // 'ordering'
 | ||
|  |       break; | ||
|  |     case 220:                       // 'revalidation'
 | ||
|  |       shift(220);                   // 'revalidation'
 | ||
|  |       break; | ||
|  |     case 223:                       // 'schema'
 | ||
|  |       shift(223);                   // 'schema'
 | ||
|  |       break; | ||
|  |     case 226:                       // 'score'
 | ||
|  |       shift(226);                   // 'score'
 | ||
|  |       break; | ||
|  |     case 232:                       // 'sliding'
 | ||
|  |       shift(232);                   // 'sliding'
 | ||
|  |       break; | ||
|  |     case 238:                       // 'strict'
 | ||
|  |       shift(238);                   // 'strict'
 | ||
|  |       break; | ||
|  |     case 249:                       // 'tumbling'
 | ||
|  |       shift(249);                   // 'tumbling'
 | ||
|  |       break; | ||
|  |     case 250:                       // 'type'
 | ||
|  |       shift(250);                   // 'type'
 | ||
|  |       break; | ||
|  |     case 255:                       // 'updating'
 | ||
|  |       shift(255);                   // 'updating'
 | ||
|  |       break; | ||
|  |     case 259:                       // 'value'
 | ||
|  |       shift(259);                   // 'value'
 | ||
|  |       break; | ||
|  |     case 261:                       // 'version'
 | ||
|  |       shift(261);                   // 'version'
 | ||
|  |       break; | ||
|  |     case 265:                       // 'while'
 | ||
|  |       shift(265);                   // 'while'
 | ||
|  |       break; | ||
|  |     case 95:                        // 'constraint'
 | ||
|  |       shift(95);                    // 'constraint'
 | ||
|  |       break; | ||
|  |     case 174:                       // 'loop'
 | ||
|  |       shift(174);                   // 'loop'
 | ||
|  |       break; | ||
|  |     default: | ||
|  |       shift(219);                   // 'returning'
 | ||
|  |     } | ||
|  |     eventHandler.endNonterminal("NCName", e0); | ||
|  |   } | ||
|  | 
 | ||
|  |   function shift(t) | ||
|  |   { | ||
|  |     if (l1 == t) | ||
|  |     { | ||
|  |       whitespace(); | ||
|  |       eventHandler.terminal(JSONiqTokenizer.TOKEN[l1], b1, e1 > size ? size : e1); | ||
|  |       b0 = b1; e0 = e1; l1 = 0; | ||
|  |     } | ||
|  |     else | ||
|  |     { | ||
|  |       error(b1, e1, 0, l1, t); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   function whitespace() | ||
|  |   { | ||
|  |     if (e0 != b1) | ||
|  |     { | ||
|  |       b0 = e0; | ||
|  |       e0 = b1; | ||
|  |       eventHandler.whitespace(b0, e0); | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   function matchW(set) | ||
|  |   { | ||
|  |     var code; | ||
|  |     for (;;) | ||
|  |     { | ||
|  |       code = match(set); | ||
|  |       if (code != 30)               // S^WS
 | ||
|  |       { | ||
|  |         break; | ||
|  |       } | ||
|  |     } | ||
|  |     return code; | ||
|  |   } | ||
|  | 
 | ||
|  |   function lookahead1W(set) | ||
|  |   { | ||
|  |     if (l1 == 0) | ||
|  |     { | ||
|  |       l1 = matchW(set); | ||
|  |       b1 = begin; | ||
|  |       e1 = end; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   function lookahead1(set) | ||
|  |   { | ||
|  |     if (l1 == 0) | ||
|  |     { | ||
|  |       l1 = match(set); | ||
|  |       b1 = begin; | ||
|  |       e1 = end; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   function error(b, e, s, l, t) | ||
|  |   { | ||
|  |     throw new self.ParseException(b, e, s, l, t); | ||
|  |   } | ||
|  | 
 | ||
|  |   var lk, b0, e0; | ||
|  |   var l1, b1, e1; | ||
|  |   var eventHandler; | ||
|  | 
 | ||
|  |   var input; | ||
|  |   var size; | ||
|  |   var begin; | ||
|  |   var end; | ||
|  | 
 | ||
|  |   function match(tokenSetId) | ||
|  |   { | ||
|  |     var nonbmp = false; | ||
|  |     begin = end; | ||
|  |     var current = end; | ||
|  |     var result = JSONiqTokenizer.INITIAL[tokenSetId]; | ||
|  |     var state = 0; | ||
|  | 
 | ||
|  |     for (var code = result & 4095; code != 0; ) | ||
|  |     { | ||
|  |       var charclass; | ||
|  |       var c0 = current < size ? input.charCodeAt(current) : 0; | ||
|  |       ++current; | ||
|  |       if (c0 < 0x80) | ||
|  |       { | ||
|  |         charclass = JSONiqTokenizer.MAP0[c0]; | ||
|  |       } | ||
|  |       else if (c0 < 0xd800) | ||
|  |       { | ||
|  |         var c1 = c0 >> 4; | ||
|  |         charclass = JSONiqTokenizer.MAP1[(c0 & 15) + JSONiqTokenizer.MAP1[(c1 & 31) + JSONiqTokenizer.MAP1[c1 >> 5]]]; | ||
|  |       } | ||
|  |       else | ||
|  |       { | ||
|  |         if (c0 < 0xdc00) | ||
|  |         { | ||
|  |           var c1 = current < size ? input.charCodeAt(current) : 0; | ||
|  |           if (c1 >= 0xdc00 && c1 < 0xe000) | ||
|  |           { | ||
|  |             ++current; | ||
|  |             c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000; | ||
|  |             nonbmp = true; | ||
|  |           } | ||
|  |         } | ||
|  |         var lo = 0, hi = 5; | ||
|  |         for (var m = 3; ; m = (hi + lo) >> 1) | ||
|  |         { | ||
|  |           if (JSONiqTokenizer.MAP2[m] > c0) hi = m - 1; | ||
|  |           else if (JSONiqTokenizer.MAP2[6 + m] < c0) lo = m + 1; | ||
|  |           else {charclass = JSONiqTokenizer.MAP2[12 + m]; break;} | ||
|  |           if (lo > hi) {charclass = 0; break;} | ||
|  |         } | ||
|  |       } | ||
|  | 
 | ||
|  |       state = code; | ||
|  |       var i0 = (charclass << 12) + code - 1; | ||
|  |       code = JSONiqTokenizer.TRANSITION[(i0 & 15) + JSONiqTokenizer.TRANSITION[i0 >> 4]]; | ||
|  | 
 | ||
|  |       if (code > 4095) | ||
|  |       { | ||
|  |         result = code; | ||
|  |         code &= 4095; | ||
|  |         end = current; | ||
|  |       } | ||
|  |     } | ||
|  | 
 | ||
|  |     result >>= 12; | ||
|  |     if (result == 0) | ||
|  |     { | ||
|  |       end = current - 1; | ||
|  |       var c1 = end < size ? input.charCodeAt(end) : 0; | ||
|  |       if (c1 >= 0xdc00 && c1 < 0xe000) --end; | ||
|  |       return error(begin, end, state, -1, -1); | ||
|  |     } | ||
|  | 
 | ||
|  |     if (nonbmp) | ||
|  |     { | ||
|  |       for (var i = result >> 9; i > 0; --i) | ||
|  |       { | ||
|  |         --end; | ||
|  |         var c1 = end < size ? input.charCodeAt(end) : 0; | ||
|  |         if (c1 >= 0xdc00 && c1 < 0xe000) --end; | ||
|  |       } | ||
|  |     } | ||
|  |     else | ||
|  |     { | ||
|  |       end -= result >> 9; | ||
|  |     } | ||
|  | 
 | ||
|  |     return (result & 511) - 1; | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | JSONiqTokenizer.getTokenSet = function(tokenSetId) | ||
|  | { | ||
|  |   var set = []; | ||
|  |   var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095; | ||
|  |   for (var i = 0; i < 279; i += 32) | ||
|  |   { | ||
|  |     var j = i; | ||
|  |     var i0 = (i >> 5) * 2066 + s - 1; | ||
|  |     var i1 = i0 >> 2; | ||
|  |     var i2 = i1 >> 2; | ||
|  |     var f = JSONiqTokenizer.EXPECTED[(i0 & 3) + JSONiqTokenizer.EXPECTED[(i1 & 3) + JSONiqTokenizer.EXPECTED[(i2 & 3) + JSONiqTokenizer.EXPECTED[i2 >> 2]]]]; | ||
|  |     for ( ; f != 0; f >>>= 1, ++j) | ||
|  |     { | ||
|  |       if ((f & 1) != 0) | ||
|  |       { | ||
|  |         set.push(JSONiqTokenizer.TOKEN[j]); | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  |   return set; | ||
|  | }; | ||
|  | 
 | ||
|  | JSONiqTokenizer.MAP0 = | ||
|  | [ 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 37, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 31, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 31, 62, 63, 64, 65, 37 | ||
|  | ]; | ||
|  | 
 | ||
|  | JSONiqTokenizer.MAP1 = | ||
|  | [ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 347, 363, 379, 416, 416, 416, 408, 331, 323, 331, 323, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 433, 433, 433, 433, 433, 433, 433, 316, 331, 331, 331, 331, 331, 331, 331, 331, 394, 416, 416, 417, 415, 416, 416, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 37, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 37, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 31, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 31, 62, 63, 64, 65, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 31, 31, 37, 37, 37, 37, 37, 37, 37, 66, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66 | ||
|  | ]; | ||
|  | 
 | ||
|  | JSONiqTokenizer.MAP2 = | ||
|  | [ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 37, 31, 37, 31, 31, 37 | ||
|  | ]; | ||
|  | 
 | ||
|  | JSONiqTokenizer.INITIAL = | ||
|  | [ 1, 2, 49155, 57348, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 | ||
|  | ]; | ||
|  | 
 | ||
|  | JSONiqTokenizer.TRANSITION = | ||
|  | [ 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 17408, 19288, 17439, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22126, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17672, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19469, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 36919, 18234, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18419, 18432, 18304, 18448, 18485, 18523, 18553, 18583, 18599, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 18825, 18841, 18871, 18906, 18944, 18960, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19074, 36169, 17439, 36866, 17466, 36890, 36866, 22314, 19105, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22126, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17672, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19469, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928 | ||
|  | ]; | ||
|  | 
 | ||
|  | JSONiqTokenizer.EXPECTED = | ||
|  | [ 291, 300, 304, 341, 315, 309, 305, 295, 319, 323, 327, 329, 296, 333, 337, 339, 342, 346, 350, 294, 356, 360, 312, 367, 352, 371, 363, 375, 379, 383, 387, 391, 395, 726, 399, 405, 518, 684, 405, 405, 405, 405, 808, 405, 405, 405, 512, 405, 405, 405, 431, 405, 405, 406, 405, 405, 404, 405, 405, 405, 405, 405, 405, 405, 908, 631, 410, 415, 405, 414, 419, 608, 405, 429, 602, 405, 435, 443, 405, 441, 641, 478, 405, 447, 451, 450, 456, 643, 461, 460, 762, 679, 465, 469, 741, 473, 477, 482, 486, 492, 932, 931, 523, 498, 504, 720, 405, 510, 596, 405, 516, 941, 580, 522, 929, 527, 590, 589, 897, 939, 534, 538, 547, 551, 555, 559, 563, 567, 571, 969, 575, 708, 690, 689, 579, 584, 634, 405, 594, 731, 405, 600, 882, 405, 606, 895, 786, 452, 612, 405, 615, 620, 876, 624, 628, 638, 647, 651, 655, 659, 663, 667, 676, 683, 688, 695, 694, 791, 405, 699, 437, 405, 706, 714, 405, 712, 825, 870, 405, 718, 724, 769, 768, 823, 730, 735, 745, 751, 422, 755, 759, 425, 766, 902, 810, 587, 775, 888, 887, 405, 773, 992, 405, 779, 962, 405, 785, 781, 986, 790, 795, 797, 506, 500, 499, 801, 805, 814, 820, 829, 833, 837, 841, 845, 849, 853, 857, 861, 616, 865, 869, 868, 488, 405, 874, 816, 405, 880, 738, 405, 886, 892, 543, 405, 901, 906, 913, 912, 918, 494, 541, 922, 926, 936, 945, 949, 953, 957, 530, 966, 973, 960, 702, 701, 405, 979, 981, 405, 985, 747, 405, 990, 998, 914, 405, 996, 1004, 672, 975, 974, 1014, 1002, 1008, 670, 1012, 405, 405, 405, 405, 405, 401, 1018, 1022, 1026, 1106, 1071, 1111, 1111, 1111, 1082, 1145, 1030, 1101, 1034, 1038, 1106, 1106, 1106, 1106, 1046, 1206, 1052, 1106, 1072, 1111, 1111, 1042, 1134, 1065, 1111, 1112, 1056, 1160, 1207, 1062, 1204, 1208, 1069, 1106, 1106, 1106, 1076, 1111, 1207, 1161, 1122, 1205, 1064, 1094, 1106, 1106, 1107, 1111, 1111, 1111, 1078, 1086, 1207, 1092, 1098, 1046, 1058, 1106, 1106, 1110, 1111, 1111, 1116, 1120, 1161, 1126, 1202, 1104, 1106, 1145, 1146, 1129, 1138, 1088, 1151, 1048, 1157, 1153, 1132, 1141, 1165, 1107, 1111, 1172, 1179, 1109, 1183, 1175, 1143, 1147, 1187, 1108, 1191, 1195, 1144, 1199, 1168, 1212, 1216, 1220, 1224, 1228, 1232, 1236, 1557, 1247, 1241, 1241, 1038, 1434, 1241, 1241, 1241, 1241, 1254, 1275, 1617, 1241, 1280, 1287, 1241, 1241, 1241, 1287, 1241, 2114, 1291, 1241, 1243, 1241, 2049, 1824, 2094, 2095, 1520, 1309, 1241, 1241, 1302, 1241, 1321, 1311, 1241, 1241, 1313, 1778, 1325, 1336, 1241, 1241, 1325, 1330, 1353, 1241, 1241, 1695, 1354, 1241, 1241, 1241, 1294, 1686, 1331, 1241, 1696, 1368, 1241, 1338, 1370, 1241, 1392, 1399, 1364, 2017, 1406, 2016, 1405, 1716, 1406, 1407, 1422, 1417, 1421, 1241, 1241, 1241, 1349, 1426, 1241, 1774, 1756, 1241, 1773, 1241, 1241, 1345, 1964, 1812, 1432, 1241, 1241, 1345, 1993, 1459, 1241, 1241, 1241, 1395, 1848, 1767, 1465, 1241, 1241, 1394, 1847, 1242, 1477, 1241, 1241, 1428, 1241, 1445, 1492, 1241, 1241, 1438, 1241, 1499, 1241, 1241, 1241, 1455, 1241, 1818, 1448, 1241, 1250, 1241, 2026, 1623, 1449, 1241, 1612, 1616, 1241, 1614, 1241, 1257, 1241, 1241, 1985, 1292, 1586, 1512, 1241, 1517, 2050, 1526, 1674, 1519, 1524, 1647, 2051, 1532, 1537, 1551, 1544, 1550, 1555, 1561, 1571, 1578, 1584, 1590, 1591, 1653, 1595, 1602, 1606, 1610, 1634, 1628, 1640, 1633, 1645, 1241, 1241, 1241, 1469, 1241, 1970, 1651, 1241, 1270, 1241, 1241, 1819, 1449, 1241, 1293, 1664, 1241, 1241, 1481, 1485, 1574, 1672, 1241, 1241, 1513, 1317, 1487, 1684, 1241, 1241, 1533, 1299, 1694, 1241, 1241, 1295, 1241, 1241, 1241, 1546, 1700, 1241, 1241, 1707, 1241, 1713, 1241, 1849, 1715, 1241, 1720, 1241, 1276, 1267, 1241, 1241, 2107, 1657, 1864, 1241, 1881, 1241, 1326, 1292, 1241, 1685, 1358, 1724, 1338, 1241, 1363, 1362, 1342, 1340, 1361, 1339, 1833, 1372, 1360, 1833, 1833, 1342, 1343, 1835, 1341, 1731, 1738, 1344, 1241, 1745, 1241, 1379, 1241, 1241, 2092, 1241, 1388, 1761, 1754, 1241, 1386, 1241, 1400, 1760, 1241, 1241, 1241, 1598, 1734, 1241, 1241, 1241, 1635, 1645, 1241, 1780, 1766, 1241, 1241, 1332, 1771, 1241, 1241, 1629, 2079, 1241, 1242, 1784, 1241, 1241, 1680, 1639, 2063, 1790, 1241, 1241, 1741, 1241, 1241, 1800, 1241, 1241, 1762, 1473, 1241, 1806, 1241, 1241, 1786, 1240, | ||
|  | ]; | ||
|  | 
 | ||
|  | JSONiqTokenizer.TOKEN = | ||
|  | [ | ||
|  |   "(0)", | ||
|  |   "JSONChar", | ||
|  |   "JSONCharRef", | ||
|  |   "JSONPredefinedCharRef", | ||
|  |   "ModuleDecl", | ||
|  |   "Annotation", | ||
|  |   "OptionDecl", | ||
|  |   "Operator", | ||
|  |   "Variable", | ||
|  |   "Tag", | ||
|  |   "EndTag", | ||
|  |   "PragmaContents", | ||
|  |   "DirCommentContents", | ||
|  |   "DirPIContents", | ||
|  |   "CDataSectionContents", | ||
|  |   "AttrTest", | ||
|  |   "Wildcard", | ||
|  |   "EQName", | ||
|  |   "IntegerLiteral", | ||
|  |   "DecimalLiteral", | ||
|  |   "DoubleLiteral", | ||
|  |   "PredefinedEntityRef", | ||
|  |   "'\"\"'", | ||
|  |   "EscapeApos", | ||
|  |   "AposChar", | ||
|  |   "ElementContentChar", | ||
|  |   "QuotAttrContentChar", | ||
|  |   "AposAttrContentChar", | ||
|  |   "NCName", | ||
|  |   "QName", | ||
|  |   "S", | ||
|  |   "CharRef", | ||
|  |   "CommentContents", | ||
|  |   "DocTag", | ||
|  |   "DocCommentContents", | ||
|  |   "EOF", | ||
|  |   "'!'", | ||
|  |   "'\"'", | ||
|  |   "'#'", | ||
|  |   "'#)'", | ||
|  |   "'$$'", | ||
|  |   "''''", | ||
|  |   "'('", | ||
|  |   "'(#'", | ||
|  |   "'(:'", | ||
|  |   "'(:~'", | ||
|  |   "')'", | ||
|  |   "'*'", | ||
|  |   "'*'", | ||
|  |   "','", | ||
|  |   "'-->'", | ||
|  |   "'.'", | ||
|  |   "'/'", | ||
|  |   "'/>'", | ||
|  |   "':'", | ||
|  |   "':)'", | ||
|  |   "';'", | ||
|  |   "'<!--'", | ||
|  |   "'<![CDATA['", | ||
|  |   "'<?'", | ||
|  |   "'='", | ||
|  |   "'>'", | ||
|  |   "'?'", | ||
|  |   "'?>'", | ||
|  |   "'NaN'", | ||
|  |   "'['", | ||
|  |   "']'", | ||
|  |   "']]>'", | ||
|  |   "'after'", | ||
|  |   "'all'", | ||
|  |   "'allowing'", | ||
|  |   "'ancestor'", | ||
|  |   "'ancestor-or-self'", | ||
|  |   "'and'", | ||
|  |   "'any'", | ||
|  |   "'append'", | ||
|  |   "'array'", | ||
|  |   "'as'", | ||
|  |   "'ascending'", | ||
|  |   "'at'", | ||
|  |   "'attribute'", | ||
|  |   "'base-uri'", | ||
|  |   "'before'", | ||
|  |   "'boundary-space'", | ||
|  |   "'break'", | ||
|  |   "'by'", | ||
|  |   "'case'", | ||
|  |   "'cast'", | ||
|  |   "'castable'", | ||
|  |   "'catch'", | ||
|  |   "'check'", | ||
|  |   "'child'", | ||
|  |   "'collation'", | ||
|  |   "'collection'", | ||
|  |   "'comment'", | ||
|  |   "'constraint'", | ||
|  |   "'construction'", | ||
|  |   "'contains'", | ||
|  |   "'content'", | ||
|  |   "'context'", | ||
|  |   "'continue'", | ||
|  |   "'copy'", | ||
|  |   "'copy-namespaces'", | ||
|  |   "'count'", | ||
|  |   "'decimal-format'", | ||
|  |   "'decimal-separator'", | ||
|  |   "'declare'", | ||
|  |   "'default'", | ||
|  |   "'delete'", | ||
|  |   "'descendant'", | ||
|  |   "'descendant-or-self'", | ||
|  |   "'descending'", | ||
|  |   "'diacritics'", | ||
|  |   "'different'", | ||
|  |   "'digit'", | ||
|  |   "'distance'", | ||
|  |   "'div'", | ||
|  |   "'document'", | ||
|  |   "'document-node'", | ||
|  |   "'element'", | ||
|  |   "'else'", | ||
|  |   "'empty'", | ||
|  |   "'empty-sequence'", | ||
|  |   "'encoding'", | ||
|  |   "'end'", | ||
|  |   "'entire'", | ||
|  |   "'eq'", | ||
|  |   "'every'", | ||
|  |   "'exactly'", | ||
|  |   "'except'", | ||
|  |   "'exit'", | ||
|  |   "'external'", | ||
|  |   "'first'", | ||
|  |   "'following'", | ||
|  |   "'following-sibling'", | ||
|  |   "'for'", | ||
|  |   "'foreach'", | ||
|  |   "'foreign'", | ||
|  |   "'from'", | ||
|  |   "'ft-option'", | ||
|  |   "'ftand'", | ||
|  |   "'ftnot'", | ||
|  |   "'ftor'", | ||
|  |   "'function'", | ||
|  |   "'ge'", | ||
|  |   "'greatest'", | ||
|  |   "'group'", | ||
|  |   "'grouping-separator'", | ||
|  |   "'gt'", | ||
|  |   "'idiv'", | ||
|  |   "'if'", | ||
|  |   "'import'", | ||
|  |   "'in'", | ||
|  |   "'index'", | ||
|  |   "'infinity'", | ||
|  |   "'inherit'", | ||
|  |   "'insensitive'", | ||
|  |   "'insert'", | ||
|  |   "'instance'", | ||
|  |   "'integrity'", | ||
|  |   "'intersect'", | ||
|  |   "'into'", | ||
|  |   "'is'", | ||
|  |   "'item'", | ||
|  |   "'json'", | ||
|  |   "'json-item'", | ||
|  |   "'key'", | ||
|  |   "'language'", | ||
|  |   "'last'", | ||
|  |   "'lax'", | ||
|  |   "'le'", | ||
|  |   "'least'", | ||
|  |   "'let'", | ||
|  |   "'levels'", | ||
|  |   "'loop'", | ||
|  |   "'lowercase'", | ||
|  |   "'lt'", | ||
|  |   "'minus-sign'", | ||
|  |   "'mod'", | ||
|  |   "'modify'", | ||
|  |   "'module'", | ||
|  |   "'most'", | ||
|  |   "'namespace'", | ||
|  |   "'namespace-node'", | ||
|  |   "'ne'", | ||
|  |   "'next'", | ||
|  |   "'no'", | ||
|  |   "'no-inherit'", | ||
|  |   "'no-preserve'", | ||
|  |   "'node'", | ||
|  |   "'nodes'", | ||
|  |   "'not'", | ||
|  |   "'object'", | ||
|  |   "'occurs'", | ||
|  |   "'of'", | ||
|  |   "'on'", | ||
|  |   "'only'", | ||
|  |   "'option'", | ||
|  |   "'or'", | ||
|  |   "'order'", | ||
|  |   "'ordered'", | ||
|  |   "'ordering'", | ||
|  |   "'paragraph'", | ||
|  |   "'paragraphs'", | ||
|  |   "'parent'", | ||
|  |   "'pattern-separator'", | ||
|  |   "'per-mille'", | ||
|  |   "'percent'", | ||
|  |   "'phrase'", | ||
|  |   "'position'", | ||
|  |   "'preceding'", | ||
|  |   "'preceding-sibling'", | ||
|  |   "'preserve'", | ||
|  |   "'previous'", | ||
|  |   "'processing-instruction'", | ||
|  |   "'relationship'", | ||
|  |   "'rename'", | ||
|  |   "'replace'", | ||
|  |   "'return'", | ||
|  |   "'returning'", | ||
|  |   "'revalidation'", | ||
|  |   "'same'", | ||
|  |   "'satisfies'", | ||
|  |   "'schema'", | ||
|  |   "'schema-attribute'", | ||
|  |   "'schema-element'", | ||
|  |   "'score'", | ||
|  |   "'self'", | ||
|  |   "'sensitive'", | ||
|  |   "'sentence'", | ||
|  |   "'sentences'", | ||
|  |   "'skip'", | ||
|  |   "'sliding'", | ||
|  |   "'some'", | ||
|  |   "'stable'", | ||
|  |   "'start'", | ||
|  |   "'stemming'", | ||
|  |   "'stop'", | ||
|  |   "'strict'", | ||
|  |   "'strip'", | ||
|  |   "'structured-item'", | ||
|  |   "'switch'", | ||
|  |   "'text'", | ||
|  |   "'then'", | ||
|  |   "'thesaurus'", | ||
|  |   "'times'", | ||
|  |   "'to'", | ||
|  |   "'treat'", | ||
|  |   "'try'", | ||
|  |   "'tumbling'", | ||
|  |   "'type'", | ||
|  |   "'typeswitch'", | ||
|  |   "'union'", | ||
|  |   "'unique'", | ||
|  |   "'unordered'", | ||
|  |   "'updating'", | ||
|  |   "'uppercase'", | ||
|  |   "'using'", | ||
|  |   "'validate'", | ||
|  |   "'value'", | ||
|  |   "'variable'", | ||
|  |   "'version'", | ||
|  |   "'weight'", | ||
|  |   "'when'", | ||
|  |   "'where'", | ||
|  |   "'while'", | ||
|  |   "'wildcards'", | ||
|  |   "'window'", | ||
|  |   "'with'", | ||
|  |   "'without'", | ||
|  |   "'word'", | ||
|  |   "'words'", | ||
|  |   "'xquery'", | ||
|  |   "'zero-digit'", | ||
|  |   "'{'", | ||
|  |   "'{{'", | ||
|  |   "'|'", | ||
|  |   "'}'", | ||
|  |   "'}}'" | ||
|  | ]; | ||
|  | 
 | ||
|  | },{}],"/node_modules/xqlint/lib/lexers/jsoniq_lexer.js":[function(_dereq_,module,exports){ | ||
|  | 'use strict'; | ||
|  | 
 | ||
|  | var JSONiqTokenizer = _dereq_('./JSONiqTokenizer').JSONiqTokenizer; | ||
|  | var Lexer = _dereq_('./lexer').Lexer; | ||
|  | 
 | ||
|  | var keys = 'NaN|after|allowing|ancestor|ancestor-or-self|and|append|array|as|ascending|at|attribute|base-uri|before|boundary-space|break|by|case|cast|castable|catch|child|collation|comment|constraint|construction|contains|context|continue|copy|copy-namespaces|count|decimal-format|decimal-separator|declare|default|delete|descendant|descendant-or-self|descending|digit|div|document|document-node|element|else|empty|empty-sequence|encoding|end|eq|every|except|exit|external|false|first|following|following-sibling|for|from|ft-option|function|ge|greatest|group|grouping-separator|gt|idiv|if|import|in|index|infinity|insert|instance|integrity|intersect|into|is|item|json|json-item|jsoniq|last|lax|le|least|let|loop|lt|minus-sign|mod|modify|module|namespace|namespace-node|ne|next|node|nodes|not|null|object|of|only|option|or|order|ordered|ordering|paragraphs|parent|pattern-separator|per-mille|percent|preceding|preceding-sibling|previous|processing-instruction|rename|replace|return|returning|revalidation|satisfies|schema|schema-attribute|schema-element|score|select|self|sentences|sliding|some|stable|start|strict|switch|text|then|times|to|treat|true|try|tumbling|type|typeswitch|union|unordered|updating|validate|value|variable|version|when|where|while|window|with|words|xquery|zero-digit'.split('|'); | ||
|  | var keywords = keys.map(function(val) { return { name: '\'' + val + '\'', token: 'keyword' }; }); | ||
|  | var ncnames = keys.map(function(val) { return { name: '\'' + val + '\'', token: 'text', next: function(stack){ stack.pop(); } }; }); | ||
|  | 
 | ||
|  | var cdata = 'constant.language'; | ||
|  | var number = 'constant'; | ||
|  | var xmlcomment = 'comment'; | ||
|  | var pi = 'xml-pe'; | ||
|  | var pragma = 'constant.buildin'; | ||
|  | var n = function(name){ | ||
|  |     return '\'' + name + '\''; | ||
|  | }; | ||
|  | var Rules = { | ||
|  |     start: [ | ||
|  |         { name: n('(#'), token: pragma, next: function(stack){ stack.push('Pragma'); } }, | ||
|  |         { name: n('(:'), token: 'comment', next: function(stack){ stack.push('Comment'); } }, | ||
|  |         { name: n('(:~'), token: 'comment.doc', next: function(stack){ stack.push('CommentDoc'); } }, | ||
|  |         { name: n('<!--'), token: xmlcomment, next: function(stack){ stack.push('XMLComment'); } }, | ||
|  |         { name: n('<?'), token: pi, next: function(stack) { stack.push('PI'); } }, | ||
|  |         { name: n('\'\''), token: 'string', next: function(stack){ stack.push('AposString'); } }, | ||
|  |         { name: n('"'), token: 'string', next: function(stack){ stack.push('QuotString'); } }, | ||
|  |         { name: 'Annotation', token: 'support.function' }, | ||
|  |         { name: 'ModuleDecl', token: 'keyword', next: function(stack){ stack.push('Prefix'); } }, | ||
|  |         { name: 'OptionDecl', token: 'keyword', next: function(stack){ stack.push('_EQName'); } }, | ||
|  |         { name: 'AttrTest', token: 'support.type' }, | ||
|  |         { name: 'Variable', token: 'variable' }, | ||
|  |         { name: n('<![CDATA['), token: cdata, next: function(stack){ stack.push('CData'); } }, | ||
|  |         { name: 'IntegerLiteral', token: number }, | ||
|  |         { name: 'DecimalLiteral', token: number }, | ||
|  |         { name: 'DoubleLiteral', token: number }, | ||
|  |         { name: 'Operator', token: 'keyword.operator' }, | ||
|  |         { name: 'EQName', token: function(val) { return keys.indexOf(val) !== -1 ? 'keyword' : 'support.function'; } }, | ||
|  |         { name: n('('), token: 'lparen' }, | ||
|  |         { name: n(')'), token: 'rparen' }, | ||
|  |         { name: 'Tag', token: 'meta.tag', next: function(stack){ stack.push('StartTag'); } }, | ||
|  |         { name: n('}'), token: 'text', next: function(stack){ if(stack.length > 1) { stack.pop(); } } }, | ||
|  |         { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } } //, next: function(stack){ if(stack.length > 1) { stack.pop(); } } }
 | ||
|  |     ].concat(keywords), | ||
|  |     _EQName: [ | ||
|  |         { name: 'EQName', token: 'text', next: function(stack) { stack.pop(); } } | ||
|  |     ].concat(ncnames), | ||
|  |     Prefix: [ | ||
|  |         { name: 'NCName', token: 'text', next: function(stack) { stack.pop(); } } | ||
|  |     ].concat(ncnames), | ||
|  |     StartTag: [ | ||
|  |         { name: n('>'), token: 'meta.tag', next: function(stack){ stack.push('TagContent'); } }, | ||
|  |         { name: 'QName', token: 'entity.other.attribute-name' }, | ||
|  |         { name: n('='), token: 'text' }, | ||
|  |         { name: n('\'\''), token: 'string', next: function(stack){ stack.push('AposAttr'); } }, | ||
|  |         { name: n('"'), token: 'string', next: function(stack){ stack.push('QuotAttr'); } }, | ||
|  |         { name: n('/>'), token: 'meta.tag.r', next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     TagContent: [ | ||
|  |         { name: 'ElementContentChar', token: 'text' }, | ||
|  |         { name: n('<![CDATA['), token: cdata, next: function(stack){ stack.push('CData'); } }, | ||
|  |         { name: n('<!--'), token: xmlcomment, next: function(stack){ stack.push('XMLComment'); } }, | ||
|  |         { name: 'Tag', token: 'meta.tag', next: function(stack){ stack.push('StartTag'); } }, | ||
|  |         { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'CharRef', token: 'constant.language.escape' }, | ||
|  |         { name: n('{{'), token: 'text' }, | ||
|  |         { name: n('}}'), token: 'text' }, | ||
|  |         { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } }, | ||
|  |         { name: 'EndTag', token: 'meta.tag', next: function(stack){ stack.pop(); stack.pop(); } } | ||
|  |     ], | ||
|  |     AposAttr: [ | ||
|  |         { name: n('\'\''), token: 'string', next: function(stack){ stack.pop(); } }, | ||
|  |         { name: 'EscapeApos', token: 'constant.language.escape' }, | ||
|  |         { name: 'AposAttrContentChar', token: 'string' }, | ||
|  |         { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'CharRef', token: 'constant.language.escape' }, | ||
|  |         { name: n('{{'), token: 'string' }, | ||
|  |         { name: n('}}'), token: 'string' }, | ||
|  |         { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } } | ||
|  |     ], | ||
|  |     QuotAttr: [ | ||
|  |         { name: n('\"'), token: 'string', next: function(stack){ stack.pop(); } }, | ||
|  |         { name: 'EscapeQuot', token: 'constant.language.escape' }, | ||
|  |         { name: 'QuotAttrContentChar', token: 'string' }, | ||
|  |         { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'CharRef', token: 'constant.language.escape' }, | ||
|  |         { name: n('{{'), token: 'string' }, | ||
|  |         { name: n('}}'), token: 'string' }, | ||
|  |         { name: n('{'), token: 'text', next: function(stack){ stack.push('start'); } } | ||
|  |     ], | ||
|  |     Pragma: [ | ||
|  |         { name: 'PragmaContents', token: pragma }, | ||
|  |         { name: n('#'), token: pragma }, | ||
|  |         { name: n('#)'), token: pragma, next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     Comment: [ | ||
|  |         { name: 'CommentContents', token: 'comment' }, | ||
|  |         { name: n('(:'), token: 'comment', next: function(stack){ stack.push('Comment'); } }, | ||
|  |         { name: n(':)'), token: 'comment', next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     CommentDoc: [ | ||
|  |         { name: 'DocCommentContents', token: 'comment.doc' }, | ||
|  |         { name: 'DocTag', token: 'comment.doc.tag' }, | ||
|  |         { name: n('(:'), token: 'comment.doc', next: function(stack){ stack.push('CommentDoc'); } }, | ||
|  |         { name: n(':)'), token: 'comment.doc', next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     XMLComment: [ | ||
|  |         { name: 'DirCommentContents', token: xmlcomment }, | ||
|  |         { name: n('-->'), token: xmlcomment, next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     CData: [ | ||
|  |         { name: 'CDataSectionContents', token: cdata }, | ||
|  |         { name: n(']]>'), token: cdata, next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     PI: [ | ||
|  |         { name: 'DirPIContents', token: pi }, | ||
|  |         { name: n('?'), token: pi }, | ||
|  |         { name: n('?>'), token: pi, next: function(stack){ stack.pop(); } } | ||
|  |     ], | ||
|  |     AposString: [ | ||
|  |         { name: n('\'\''), token: 'string', next: function(stack){ stack.pop(); } }, | ||
|  |         { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'CharRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'EscapeApos', token: 'constant.language.escape' }, | ||
|  |         { name: 'AposChar', token: 'string' } | ||
|  |     ], | ||
|  |     QuotString: [ | ||
|  |         { name: n('"'), token: 'string', next: function(stack){ stack.pop(); } }, | ||
|  |         { name: 'JSONPredefinedCharRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'JSONCharRef', token: 'constant.language.escape' }, | ||
|  |         { name: 'JSONChar', token: 'string' } | ||
|  |     ] | ||
|  | }; | ||
|  |      | ||
|  | exports.JSONiqLexer = function(){ return new Lexer(JSONiqTokenizer, Rules); }; | ||
|  | },{"./JSONiqTokenizer":"/node_modules/xqlint/lib/lexers/JSONiqTokenizer.js","./lexer":"/node_modules/xqlint/lib/lexers/lexer.js"}],"/node_modules/xqlint/lib/lexers/lexer.js":[function(_dereq_,module,exports){ | ||
|  | 'use strict'; | ||
|  | 
 | ||
|  | var TokenHandler = function(code) { | ||
|  |     var input = code; | ||
|  |     this.tokens = []; | ||
|  |   | ||
|  |     this.reset = function() { | ||
|  |         input = input; | ||
|  |         this.tokens = []; | ||
|  |     }; | ||
|  |      | ||
|  |     this.startNonterminal = function() {}; | ||
|  |     this.endNonterminal = function() {}; | ||
|  | 
 | ||
|  |     this.terminal = function(name, begin, end) { | ||
|  |         this.tokens.push({ | ||
|  |             name: name, | ||
|  |             value: input.substring(begin, end) | ||
|  |         }); | ||
|  |     }; | ||
|  | 
 | ||
|  |     this.whitespace = function(begin, end) { | ||
|  |         this.tokens.push({ | ||
|  |             name: 'WS', | ||
|  |             value: input.substring(begin, end) | ||
|  |         }); | ||
|  |     }; | ||
|  | }; | ||
|  | 
 | ||
|  | exports.Lexer = function(Tokenizer, Rules) { | ||
|  | 
 | ||
|  |     this.tokens = []; | ||
|  |    | ||
|  |     this.getLineTokens = function(line, state) { | ||
|  |         state = (state === 'start' || !state) ? '["start"]' : state; | ||
|  |         var stack = JSON.parse(state); | ||
|  |         var h = new TokenHandler(line); | ||
|  |         var tokenizer = new Tokenizer(line, h); | ||
|  |         var tokens = []; | ||
|  |      | ||
|  |         while(true) { | ||
|  |             var currentState = stack[stack.length - 1]; | ||
|  |             try { | ||
|  |                 h.tokens = []; | ||
|  |                 tokenizer['parse_' + currentState](); | ||
|  |                 var info = null; | ||
|  |          | ||
|  |                 if(h.tokens.length > 1 && h.tokens[0].name === 'WS') { | ||
|  |                     tokens.push({ | ||
|  |                         type: 'text', | ||
|  |                         value: h.tokens[0].value | ||
|  |                     }); | ||
|  |                     h.tokens.splice(0, 1); | ||
|  |                 } | ||
|  |          | ||
|  |                 var token = h.tokens[0]; | ||
|  |                 var rules  = Rules[currentState]; | ||
|  |                 for(var k = 0; k < rules.length; k++) { | ||
|  |                     var rule = Rules[currentState][k]; | ||
|  |                     if((typeof(rule.name) === 'function' && rule.name(token)) || rule.name === token.name) { | ||
|  |                         info = rule; | ||
|  |                         break; | ||
|  |                     } | ||
|  |                 } | ||
|  |          | ||
|  |                 if(token.name === 'EOF') { break; } | ||
|  |                 if(token.value === '') { throw 'Encountered empty string lexical rule.'; } | ||
|  |          | ||
|  |                 tokens.push({ | ||
|  |                     type: info === null ? 'text' : (typeof(info.token) === 'function' ? info.token(token.value) : info.token), | ||
|  |                     value: token.value | ||
|  |                 }); | ||
|  |          | ||
|  |                 if(info && info.next) { | ||
|  |                     info.next(stack); | ||
|  |                 } | ||
|  |        | ||
|  |             } catch(e) { | ||
|  |                 if(e instanceof tokenizer.ParseException) { | ||
|  |                     var index = 0; | ||
|  |                     for(var i=0; i < tokens.length; i++) { | ||
|  |                         index += tokens[i].value.length; | ||
|  |                     } | ||
|  |                     tokens.push({ type: 'text', value: line.substring(index) }); | ||
|  |                     return { | ||
|  |                         tokens: tokens, | ||
|  |                         state: JSON.stringify(['start']) | ||
|  |                     }; | ||
|  |                 } else { | ||
|  |                     throw e; | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         return { | ||
|  |             tokens: tokens, | ||
|  |             state: JSON.stringify(stack) | ||
|  |         }; | ||
|  |     }; | ||
|  | }; | ||
|  | },{}]},{},["/node_modules/xqlint/lib/lexers/jsoniq_lexer.js"]); | ||
|  | 
 | ||
|  | }); | ||
|  | 
 | ||
|  | ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | var oop = require("../../lib/oop"); | ||
|  | var Behaviour = require("../behaviour").Behaviour; | ||
|  | var TokenIterator = require("../../token_iterator").TokenIterator; | ||
|  | var lang = require("../../lib/lang"); | ||
|  | 
 | ||
|  | function is(token, type) { | ||
|  |     return token.type.lastIndexOf(type + ".xml") > -1; | ||
|  | } | ||
|  | 
 | ||
|  | var XmlBehaviour = function () { | ||
|  | 
 | ||
|  |     this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { | ||
|  |         if (text == '"' || text == "'") { | ||
|  |             var quote = text; | ||
|  |             var selected = session.doc.getTextRange(editor.getSelectionRange()); | ||
|  |             if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { | ||
|  |                 return { | ||
|  |                     text: quote + selected + quote, | ||
|  |                     selection: false | ||
|  |                 }; | ||
|  |             } | ||
|  | 
 | ||
|  |             var cursor = editor.getCursorPosition(); | ||
|  |             var line = session.doc.getLine(cursor.row); | ||
|  |             var rightChar = line.substring(cursor.column, cursor.column + 1); | ||
|  |             var iterator = new TokenIterator(session, cursor.row, cursor.column); | ||
|  |             var token = iterator.getCurrentToken(); | ||
|  | 
 | ||
|  |             if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { | ||
|  |                 return { | ||
|  |                     text: "", | ||
|  |                     selection: [1, 1] | ||
|  |                 }; | ||
|  |             } | ||
|  | 
 | ||
|  |             if (!token) | ||
|  |                 token = iterator.stepBackward(); | ||
|  | 
 | ||
|  |             if (!token) | ||
|  |                 return; | ||
|  | 
 | ||
|  |             while (is(token, "tag-whitespace") || is(token, "whitespace")) { | ||
|  |                 token = iterator.stepBackward(); | ||
|  |             } | ||
|  |             var rightSpace = !rightChar || rightChar.match(/\s/); | ||
|  |             if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { | ||
|  |                 return { | ||
|  |                     text: quote + quote, | ||
|  |                     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 == selected) { | ||
|  |                 range.end.column++; | ||
|  |                 return range; | ||
|  |             } | ||
|  |         } | ||
|  |     }); | ||
|  | 
 | ||
|  |     this.add("autoclosing", "insertion", function (state, action, editor, session, text) { | ||
|  |         if (text == '>') { | ||
|  |             var position = editor.getSelectionRange().start; | ||
|  |             var iterator = new TokenIterator(session, position.row, position.column); | ||
|  |             var token = iterator.getCurrentToken() || iterator.stepBackward(); | ||
|  |             if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) | ||
|  |                 return; | ||
|  |             if (is(token, "reference.attribute-value")) | ||
|  |                 return; | ||
|  |             if (is(token, "attribute-value")) { | ||
|  |                 var firstChar = token.value.charAt(0); | ||
|  |                 if (firstChar == '"' || firstChar == "'") { | ||
|  |                     var lastChar = token.value.charAt(token.value.length - 1); | ||
|  |                     var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; | ||
|  |                     if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) | ||
|  |                         return; | ||
|  |                 } | ||
|  |             } | ||
|  |             while (!is(token, "tag-name")) { | ||
|  |                 token = iterator.stepBackward(); | ||
|  |                 if (token.value == "<") { | ||
|  |                     token = iterator.stepForward(); | ||
|  |                     break; | ||
|  |                 } | ||
|  |             } | ||
|  | 
 | ||
|  |             var tokenRow = iterator.getCurrentTokenRow(); | ||
|  |             var tokenColumn = iterator.getCurrentTokenColumn(); | ||
|  |             if (is(iterator.stepBackward(), "end-tag-open")) | ||
|  |                 return; | ||
|  | 
 | ||
|  |             var element = token.value; | ||
|  |             if (tokenRow == position.row) | ||
|  |                 element = element.substring(0, position.column - tokenColumn); | ||
|  | 
 | ||
|  |             if (this.voidElements.hasOwnProperty(element.toLowerCase())) | ||
|  |                  return; | ||
|  | 
 | ||
|  |             return { | ||
|  |                text: ">" + "</" + element + ">", | ||
|  |                selection: [1, 1] | ||
|  |             }; | ||
|  |         } | ||
|  |     }); | ||
|  | 
 | ||
|  |     this.add("autoindent", "insertion", function (state, action, editor, session, text) { | ||
|  |         if (text == "\n") { | ||
|  |             var cursor = editor.getCursorPosition(); | ||
|  |             var line = session.getLine(cursor.row); | ||
|  |             var iterator = new TokenIterator(session, cursor.row, cursor.column); | ||
|  |             var token = iterator.getCurrentToken(); | ||
|  | 
 | ||
|  |             if (token && token.type.indexOf("tag-close") !== -1) { | ||
|  |                 if (token.value == "/>") | ||
|  |                     return; | ||
|  |                 while (token && token.type.indexOf("tag-name") === -1) { | ||
|  |                     token = iterator.stepBackward(); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 if (!token) { | ||
|  |                     return; | ||
|  |                 } | ||
|  | 
 | ||
|  |                 var tag = token.value; | ||
|  |                 var row = iterator.getCurrentTokenRow(); | ||
|  |                 token = iterator.stepBackward(); | ||
|  |                 if (!token || token.type.indexOf("end-tag") !== -1) { | ||
|  |                     return; | ||
|  |                 } | ||
|  | 
 | ||
|  |                 if (this.voidElements && !this.voidElements[tag]) { | ||
|  |                     var nextToken = session.getTokenAt(cursor.row, cursor.column+1); | ||
|  |                     var line = session.getLine(row); | ||
|  |                     var nextIndent = this.$getIndent(line); | ||
|  |                     var indent = nextIndent + session.getTabString(); | ||
|  | 
 | ||
|  |                     if (nextToken && nextToken.value === "</") { | ||
|  |                         return { | ||
|  |                             text: "\n" + indent + "\n" + nextIndent, | ||
|  |                             selection: [1, indent.length, 1, indent.length] | ||
|  |                         }; | ||
|  |                     } else { | ||
|  |                         return { | ||
|  |                             text: "\n" + indent | ||
|  |                         }; | ||
|  |                     } | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |     }); | ||
|  | 
 | ||
|  | }; | ||
|  | 
 | ||
|  | oop.inherits(XmlBehaviour, Behaviour); | ||
|  | 
 | ||
|  | exports.XmlBehaviour = XmlBehaviour; | ||
|  | }); | ||
|  | 
 | ||
|  | ace.define("ace/mode/behaviour/xquery",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml","ace/token_iterator"], function(require, exports, module) { | ||
|  | "use strict"; | ||
|  | 
 | ||
|  |   var oop = require("../../lib/oop"); | ||
|  |   var Behaviour = require('../behaviour').Behaviour; | ||
|  |   var CstyleBehaviour = require('./cstyle').CstyleBehaviour; | ||
|  |   var XmlBehaviour = require("../behaviour/xml").XmlBehaviour; | ||
|  |   var TokenIterator = require("../../token_iterator").TokenIterator; | ||
|  | 
 | ||
|  | function hasType(token, type) { | ||
|  |     var hasType = true; | ||
|  |     var typeList = token.type.split('.'); | ||
|  |     var needleList = type.split('.'); | ||
|  |     needleList.forEach(function(needle){ | ||
|  |         if (typeList.indexOf(needle) == -1) { | ||
|  |             hasType = false; | ||
|  |             return false; | ||
|  |         } | ||
|  |     }); | ||
|  |     return hasType; | ||
|  | } | ||
|  |   | ||
|  |   var XQueryBehaviour = function () { | ||
|  |        | ||
|  |       this.inherit(CstyleBehaviour, ["braces", "parens", "string_dquotes"]); // Get string behaviour
 | ||
|  |       this.inherit(XmlBehaviour); // Get xml behaviour
 | ||
|  |        | ||
|  |       this.add("autoclosing", "insertion", function (state, action, editor, session, text) { | ||
|  |         if (text == '>') { | ||
|  |             var position = editor.getCursorPosition(); | ||
|  |             var iterator = new TokenIterator(session, position.row, position.column); | ||
|  |             var token = iterator.getCurrentToken(); | ||
|  |             var atCursor = false; | ||
|  |             var state = JSON.parse(state).pop(); | ||
|  |             if ((token && token.value === '>') || state !== "StartTag") return; | ||
|  |             if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){ | ||
|  |                 do { | ||
|  |                     token = iterator.stepBackward(); | ||
|  |                 } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text'))); | ||
|  |             } else { | ||
|  |                 atCursor = true; | ||
|  |             } | ||
|  |             var previous = iterator.stepBackward(); | ||
|  |             if (!token || !hasType(token, 'meta.tag') || (previous !== null && previous.value.match('/'))) { | ||
|  |                 return; | ||
|  |             } | ||
|  |             var tag = token.value.substring(1); | ||
|  |             if (atCursor){ | ||
|  |                 var tag = tag.substring(0, position.column - token.start); | ||
|  |             } | ||
|  | 
 | ||
|  |             return { | ||
|  |                text: '>' + '</' + tag + '>', | ||
|  |                selection: [1, 1] | ||
|  |             }; | ||
|  |         } | ||
|  |     }); | ||
|  | 
 | ||
|  |   }; | ||
|  |   oop.inherits(XQueryBehaviour, Behaviour); | ||
|  | 
 | ||
|  |   exports.XQueryBehaviour = XQueryBehaviour; | ||
|  | }); | ||
|  | 
 | ||
|  | ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | var oop = require("../../lib/oop"); | ||
|  | var Range = require("../../range").Range; | ||
|  | var BaseFoldMode = require("./fold_mode").FoldMode; | ||
|  | 
 | ||
|  | var FoldMode = exports.FoldMode = function(commentRegex) { | ||
|  |     if (commentRegex) { | ||
|  |         this.foldingStartMarker = new RegExp( | ||
|  |             this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) | ||
|  |         ); | ||
|  |         this.foldingStopMarker = new RegExp( | ||
|  |             this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) | ||
|  |         ); | ||
|  |     } | ||
|  | }; | ||
|  | oop.inherits(FoldMode, BaseFoldMode); | ||
|  | 
 | ||
|  | (function() { | ||
|  |      | ||
|  |     this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/; | ||
|  |     this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/; | ||
|  |     this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; | ||
|  |     this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; | ||
|  |     this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; | ||
|  |     this._getFoldWidgetBase = this.getFoldWidget; | ||
|  |     this.getFoldWidget = function(session, foldStyle, row) { | ||
|  |         var line = session.getLine(row); | ||
|  |      | ||
|  |         if (this.singleLineBlockCommentRe.test(line)) { | ||
|  |             if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) | ||
|  |                 return ""; | ||
|  |         } | ||
|  |      | ||
|  |         var fw = this._getFoldWidgetBase(session, foldStyle, row); | ||
|  |      | ||
|  |         if (!fw && this.startRegionRe.test(line)) | ||
|  |             return "start"; // lineCommentRegionStart
 | ||
|  |      | ||
|  |         return fw; | ||
|  |     }; | ||
|  | 
 | ||
|  |     this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { | ||
|  |         var line = session.getLine(row); | ||
|  |          | ||
|  |         if (this.startRegionRe.test(line)) | ||
|  |             return this.getCommentRegionBlock(session, line, 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, 1); | ||
|  |              | ||
|  |             if (range && !range.isMultiLine()) { | ||
|  |                 if (forceMultiline) { | ||
|  |                     range = this.getSectionRange(session, row); | ||
|  |                 } else if (foldStyle != "all") | ||
|  |                     range = null; | ||
|  |             } | ||
|  |              | ||
|  |             return range; | ||
|  |         } | ||
|  | 
 | ||
|  |         if (foldStyle === "markbegin") | ||
|  |             return; | ||
|  | 
 | ||
|  |         var match = line.match(this.foldingStopMarker); | ||
|  |         if (match) { | ||
|  |             var i = match.index + match[0].length; | ||
|  | 
 | ||
|  |             if (match[1]) | ||
|  |                 return this.closingBracketBlock(session, match[1], row, i); | ||
|  | 
 | ||
|  |             return session.getCommentFoldRange(row, i, -1); | ||
|  |         } | ||
|  |     }; | ||
|  |      | ||
|  |     this.getSectionRange = function(session, row) { | ||
|  |         var line = session.getLine(row); | ||
|  |         var startIndent = line.search(/\S/); | ||
|  |         var startRow = row; | ||
|  |         var startColumn = line.length; | ||
|  |         row = row + 1; | ||
|  |         var endRow = row; | ||
|  |         var maxRow = session.getLength(); | ||
|  |         while (++row < maxRow) { | ||
|  |             line = session.getLine(row); | ||
|  |             var indent = line.search(/\S/); | ||
|  |             if (indent === -1) | ||
|  |                 continue; | ||
|  |             if  (startIndent > indent) | ||
|  |                 break; | ||
|  |             var subRange = this.getFoldWidgetRange(session, "all", row); | ||
|  |              | ||
|  |             if (subRange) { | ||
|  |                 if (subRange.start.row <= startRow) { | ||
|  |                     break; | ||
|  |                 } else if (subRange.isMultiLine()) { | ||
|  |                     row = subRange.end.row; | ||
|  |                 } else if (startIndent == indent) { | ||
|  |                     break; | ||
|  |                 } | ||
|  |             } | ||
|  |             endRow = row; | ||
|  |         } | ||
|  |          | ||
|  |         return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); | ||
|  |     }; | ||
|  |     this.getCommentRegionBlock = function(session, line, row) { | ||
|  |         var startColumn = line.search(/\s*$/); | ||
|  |         var maxRow = session.getLength(); | ||
|  |         var startRow = row; | ||
|  |          | ||
|  |         var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; | ||
|  |         var depth = 1; | ||
|  |         while (++row < maxRow) { | ||
|  |             line = session.getLine(row); | ||
|  |             var m = re.exec(line); | ||
|  |             if (!m) continue; | ||
|  |             if (m[1]) depth--; | ||
|  |             else depth++; | ||
|  | 
 | ||
|  |             if (!depth) break; | ||
|  |         } | ||
|  | 
 | ||
|  |         var endRow = row; | ||
|  |         if (endRow > startRow) { | ||
|  |             return new Range(startRow, startColumn, endRow, line.length); | ||
|  |         } | ||
|  |     }; | ||
|  | 
 | ||
|  | }).call(FoldMode.prototype); | ||
|  | 
 | ||
|  | }); | ||
|  | 
 | ||
|  | ace.define("ace/mode/jsoniq",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/xquery/jsoniq_lexer","ace/range","ace/mode/behaviour/xquery","ace/mode/folding/cstyle","ace/anchor"], function(require, exports, module) { | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | var WorkerClient = require("../worker/worker_client").WorkerClient; | ||
|  | var oop = require("../lib/oop"); | ||
|  | var TextMode = require("./text").Mode; | ||
|  | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; | ||
|  | var JSONiqLexer = require("./xquery/jsoniq_lexer").JSONiqLexer; | ||
|  | var Range = require("../range").Range; | ||
|  | var XQueryBehaviour = require("./behaviour/xquery").XQueryBehaviour; | ||
|  | var CStyleFoldMode = require("./folding/cstyle").FoldMode; | ||
|  | var Anchor = require("../anchor").Anchor; | ||
|  | 
 | ||
|  | var Mode = function() { | ||
|  |     this.$tokenizer   = new JSONiqLexer(); | ||
|  |     this.$behaviour   = new XQueryBehaviour(); | ||
|  |     this.foldingRules = new CStyleFoldMode(); | ||
|  |     this.$highlightRules = new TextHighlightRules(); | ||
|  | }; | ||
|  | 
 | ||
|  | oop.inherits(Mode, TextMode); | ||
|  | 
 | ||
|  | (function() { | ||
|  | 
 | ||
|  |     this.completer = { | ||
|  |         getCompletions: function(editor, session, pos, prefix, callback) { | ||
|  |             if (!session.$worker) | ||
|  |                 return callback(); | ||
|  |             session.$worker.emit("complete", { data: { pos: pos, prefix: prefix } }); | ||
|  |             session.$worker.on("complete", function(e){ | ||
|  |                 callback(null, e.data); | ||
|  |             }); | ||
|  |         } | ||
|  |     }; | ||
|  | 
 | ||
|  |     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.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) { | ||
|  |          | ||
|  |       var worker = new WorkerClient(["ace"], "ace/mode/xquery_worker", "XQueryWorker"); | ||
|  |         var that = this; | ||
|  | 
 | ||
|  |         worker.attachToDocument(session.getDocument()); | ||
|  |          | ||
|  |         worker.on("ok", function(e) { | ||
|  |           session.clearAnnotations(); | ||
|  |         }); | ||
|  |          | ||
|  |         worker.on("markers", function(e) { | ||
|  |           session.clearAnnotations(); | ||
|  |           that.addMarkers(e.data, session); | ||
|  |         }); | ||
|  |   | ||
|  |         return worker; | ||
|  |     }; | ||
|  |   | ||
|  |     this.removeMarkers = function(session) { | ||
|  |         var markers = session.getMarkers(false); | ||
|  |         for (var id in markers) { | ||
|  |             if (markers[id].clazz.indexOf('language_highlight_') === 0) { | ||
|  |                 session.removeMarker(id); | ||
|  |             } | ||
|  |         } | ||
|  |         for (var i = 0; i < session.markerAnchors.length; i++) { | ||
|  |             session.markerAnchors[i].detach(); | ||
|  |         } | ||
|  |         session.markerAnchors = []; | ||
|  |     }; | ||
|  | 
 | ||
|  |     this.addMarkers = function(annos, mySession) { | ||
|  |         var _self = this; | ||
|  |          | ||
|  |         if (!mySession.markerAnchors) mySession.markerAnchors = []; | ||
|  |         this.removeMarkers(mySession); | ||
|  |         mySession.languageAnnos = []; | ||
|  |         annos.forEach(function(anno) { | ||
|  |             var anchor = new Anchor(mySession.getDocument(), anno.pos.sl, anno.pos.sc || 0); | ||
|  |             mySession.markerAnchors.push(anchor); | ||
|  |             var markerId; | ||
|  |             var colDiff = anno.pos.ec - anno.pos.sc; | ||
|  |             var rowDiff = anno.pos.el - anno.pos.sl; | ||
|  |             var gutterAnno = { | ||
|  |                 guttertext: anno.message, | ||
|  |                 type: anno.level || "warning", | ||
|  |                 text: anno.message | ||
|  |             }; | ||
|  | 
 | ||
|  |             function updateFloat(single) { | ||
|  |                 if (markerId) | ||
|  |                     mySession.removeMarker(markerId); | ||
|  |                 gutterAnno.row = anchor.row; | ||
|  |                 if (anno.pos.sc !== undefined && anno.pos.ec !== undefined) { | ||
|  |                     var range = new Range(anno.pos.sl, anno.pos.sc, anno.pos.el, anno.pos.ec); | ||
|  |                     markerId = mySession.addMarker(range, "language_highlight_" + (anno.type ? anno.type : "default")); | ||
|  |                 } | ||
|  |                 if (single) mySession.setAnnotations(mySession.languageAnnos); | ||
|  |             } | ||
|  |             updateFloat(); | ||
|  |             anchor.on("change", function() { | ||
|  |                 updateFloat(true); | ||
|  |             }); | ||
|  |             if (anno.message) mySession.languageAnnos.push(gutterAnno); | ||
|  |         }); | ||
|  |         mySession.setAnnotations(mySession.languageAnnos); | ||
|  |     };  | ||
|  | 
 | ||
|  |     this.$id = "ace/mode/jsoniq"; | ||
|  | }).call(Mode.prototype); | ||
|  | 
 | ||
|  | exports.Mode = Mode; | ||
|  | }); |