|
|
ace.define("ace/mode/xquery/jsoniq_lexer",["require","exports","module"], function(acequire, exports, module) { module.exports = (function outer (modules, cache, entry) { var previousRequire = typeof acequire == "function" && acequire; function newRequire(name, jumped){ if(!cache[name]) { if(!modules[name]) { var currentRequire = typeof acequire == "function" && acequire; 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(acequire, exports, module) { "use strict";
var oop = acequire("../../lib/oop"); var Behaviour = acequire("../behaviour").Behaviour; var TokenIterator = acequire("../../token_iterator").TokenIterator; var lang = acequire("../../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(acequire, exports, module) { "use strict";
var oop = acequire("../../lib/oop"); var Behaviour = acequire('../behaviour').Behaviour; var CstyleBehaviour = acequire('./cstyle').CstyleBehaviour; var XmlBehaviour = acequire("../behaviour/xml").XmlBehaviour; var TokenIterator = acequire("../../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(acequire, exports, module) { "use strict";
var oop = acequire("../../lib/oop"); var Range = acequire("../../range").Range; var BaseFoldMode = acequire("./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(acequire, exports, module) { "use strict";
var WorkerClient = acequire("../worker/worker_client").WorkerClient; var oop = acequire("../lib/oop"); var TextMode = acequire("./text").Mode; var TextHighlightRules = acequire("./text_highlight_rules").TextHighlightRules; var JSONiqLexer = acequire("./xquery/jsoniq_lexer").JSONiqLexer; var Range = acequire("../range").Range; var XQueryBehaviour = acequire("./behaviour/xquery").XQueryBehaviour; var CStyleFoldMode = acequire("./folding/cstyle").FoldMode; var Anchor = acequire("../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; });
|