@literal-jsx/parser
Version:
An example parser implementation for Literal JSX using nearley.js + moo
2 lines • 42.3 kB
JavaScript
!function(u,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.LJSX=e():u.LJSX=e()}(this,function(){return function(u){var e={};function t(r){if(e[r])return e[r].exports;var D=e[r]={i:r,l:!1,exports:{}};return u[r].call(D.exports,D,D.exports,t),D.l=!0,D.exports}return t.m=u,t.c=e,t.d=function(u,e,r){t.o(u,e)||Object.defineProperty(u,e,{enumerable:!0,get:r})},t.r=function(u){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})},t.t=function(u,e){if(1&e&&(u=t(u)),8&e)return u;if(4&e&&"object"==typeof u&&u&&u.__esModule)return u;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:u}),2&e&&"string"!=typeof u)for(var D in u)t.d(r,D,function(e){return u[e]}.bind(null,D));return r},t.n=function(u){var e=u&&u.__esModule?function(){return u.default}:function(){return u};return t.d(e,"a",e),e},t.o=function(u,e){return Object.prototype.hasOwnProperty.call(u,e)},t.p="",t(t.s=1)}([function(u,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r,D=(r=t(4))&&r.__esModule?r:{default:r};var n=t(5),o={match:/\s+/,lineBreaks:!0},s=/"(?:\\["bfnrt\/\\]|\\u[a-fA-F0-9]{4}|[^"\\])*"/;e.default=function(){return D.default.states({jsonValue:{space:o,string:s,number:/-?(?:[0-9]|[1-9][0-9]+)(?:\.[0-9]+)?(?:[eE][-+]?[0-9]+)?\b/,"{":{match:"{",push:"jsonValue"},"}":{match:"}",pop:1},"[":"[","]":"]",",":",",":":":",true:"true",false:"false",null:"null",codeblock_backticks:{match:"```",push:"mdCodeBlock"},inlinecode_backtick:{match:"`",push:"mdInlineCode"},plaintext:{match:/(?:(?!(?:\`|\{|\}|<))[^])+/,lineBreaks:!0},"<":{match:"<",push:"jsxTag"}},mdInlineCode:{inlinecode_backtick:{match:"`",pop:1},plaintext:{match:/(?:(?!(?:`))[^])+/,lineBreaks:!0}},mdCodeBlock:{codeblock_backticks:{match:"```",pop:1},plaintext:{match:/(?:(?!(?:```))[^])+/,lineBreaks:!0}},jsxTag:{space:o,string:s,"=":"=",".":".",":":":",identifier:n,selfclose:{match:/\/\s*>/,pop:1,lineBreaks:!0},"/":"/",">":{match:">",next:"jsxChild"},"{":{match:"{",push:"jsonValue"}},jsxClosingTag:{space:o,".":".",":":":",identifier:n,">":{match:">",pop:1}},jsxChild:{"{":{match:"{",push:"jsonValue"},startclose:{match:/<\s*\//,next:"jsxClosingTag",lineBreaks:!0},"<":{match:"<",push:"jsxTag"},codeblock_backticks:{match:"```",push:"mdCodeBlock"},inlinecode_backtick:{match:"`",push:"mdInlineCode"},plaintext:{match:/(?:(?!(?:\`|\{|<))[^])+/,lineBreaks:!0}}})},u.exports=e.default},function(u,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=o(t(2)),D=o(t(0)),n=o(t(6));function o(u){return u&&u.__esModule?u:{default:u}}function s(u){return function(u){if(Array.isArray(u)){for(var e=0,t=new Array(u.length);e<u.length;e++)t[e]=u[e];return t}}(u)||function(u){if(Symbol.iterator in Object(u)||"[object Arguments]"===Object.prototype.toString.call(u))return Array.from(u)}(u)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function i(u){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(u){return Object.getOwnPropertyDescriptor(t,u).enumerable}))),r.forEach(function(e){a(u,e,t[e])})}return u}function a(u,e,t){return e in u?Object.defineProperty(u,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):u[e]=t,u}function l(u){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(u){return typeof u}:function(u){return u&&"function"==typeof Symbol&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u})(u)}function F(u,e){return!e||"object"!==l(e)&&"function"!=typeof e?function(u){if(void 0===u)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return u}(u):e}function A(u){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(u){return u.__proto__||Object.getPrototypeOf(u)})(u)}function c(u,e){return(c=Object.setPrototypeOf||function(u,e){return u.__proto__=e,u})(u,e)}var E=function(u){function e(){return function(u,e){if(!(u instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),F(this,A(e).call(this,r.default.Grammar.fromCompiled(n.default)))}return function(u,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");u.prototype=Object.create(e&&e.prototype,{constructor:{value:u,writable:!0,configurable:!0}}),e&&c(u,e)}(e,r["default"].Parser),e}();function C(u){var e=new E;if(e.feed(u),e.results[0])return e.results[0];throw new Error("could not parse")}var p={makeLexer:D.default,grammar:n.default,Parser:E,parseAST:C,parseValue:function(u){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f;return function u(e,t){switch(e.type){case"Literal":return e.value;case"Array":return e.children.map(function(e){return u(e,t)});case"Object":return e.children.reduce(function(e,r){var D=r.key,n=r.value;return i({},e,a({},D.value,u(n,t)))},{});case"Name":return e.name;case"Expression":return u(e.expression,t);case"Element":return t.apply(void 0,[u(e.name,t),e.attributes.reduce(function(e,r){var D=r.name,n=r.value;return i({},e,a({},D.name,void 0===n||u(n,t)))},{})].concat(s(e.children.map(function(e){return u(e,t)}))));default:return e}}(C(u),e)}};function f(u,e){for(var t=arguments.length,r=new Array(t>2?t-2:0),D=2;D<t;D++)r[D-2]=arguments[D];return{_JSXElement:!0,name:u,attributes:e,children:r}}e.default=p,u.exports=e.default},function(u,e,t){"use strict";(function(u){function e(u){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(u){return typeof u}:function(u){return u&&"function"==typeof Symbol&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u})(u)}var t;t=function(){function u(e,t,r){return this.id=++u.highestId,this.name=e,this.symbols=t,this.postprocess=r,this}function e(u,e,t,r){this.rule=u,this.dot=e,this.reference=t,this.data=[],this.wantedBy=r,this.isComplete=this.dot===u.symbols.length}function t(u,e){this.grammar=u,this.index=e,this.states=[],this.wants={},this.scannable=[],this.completed={}}function r(u,e){this.rules=u,this.start=e||this.rules[0].name;var t=this.byName={};this.rules.forEach(function(u){t.hasOwnProperty(u.name)||(t[u.name]=[]),t[u.name].push(u)})}function D(){this.reset("")}function n(u,e,n){if(u instanceof r){var o=u;n=e}else o=r.fromCompiled(u,e);for(var s in this.grammar=o,this.options={keepHistory:!1,lexer:o.lexer||new D},n||{})this.options[s]=n[s];this.lexer=this.options.lexer,this.lexerState=void 0;var i=new t(o,0);this.table=[i];i.wants[o.start]=[],i.predict(o.start),i.process(),this.current=0}return u.highestId=0,u.prototype.toString=function(u){function e(u){return u.literal?JSON.stringify(u.literal):u.type?"%"+u.type:u.toString()}var t=void 0===u?this.symbols.map(e).join(" "):this.symbols.slice(0,u).map(e).join(" ")+" ● "+this.symbols.slice(u).map(e).join(" ");return this.name+" → "+t},e.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},e.prototype.nextState=function(u){var t=new e(this.rule,this.dot+1,this.reference,this.wantedBy);return t.left=this,t.right=u,t.isComplete&&(t.data=t.build()),t},e.prototype.build=function(){var u=[],e=this;do{u.push(e.right.data),e=e.left}while(e.left);return u.reverse(),u},e.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,n.fail))},t.prototype.process=function(u){for(var e=this.states,t=this.wants,r=this.completed,D=0;D<e.length;D++){var o=e[D];if(o.isComplete){if(o.finish(),o.data!==n.fail){for(var s=o.wantedBy,i=s.length;i--;){var a=s[i];this.complete(a,o)}if(o.reference===this.index){var l=o.rule.name;(this.completed[l]=this.completed[l]||[]).push(o)}}}else{if("string"!=typeof(l=o.rule.symbols[o.dot])){this.scannable.push(o);continue}if(t[l]){if(t[l].push(o),r.hasOwnProperty(l)){var F=r[l];for(i=0;i<F.length;i++){var A=F[i];this.complete(o,A)}}}else t[l]=[o],this.predict(l)}}},t.prototype.predict=function(u){for(var t=this.grammar.byName[u]||[],r=0;r<t.length;r++){var D=t[r],n=this.wants[u],o=new e(D,0,this.index,n);this.states.push(o)}},t.prototype.complete=function(u,e){var t=u.nextState(e);this.states.push(t)},r.fromCompiled=function(e,t){var D=e.Lexer;e.ParserStart&&(t=e.ParserStart,e=e.ParserRules);var n=new r(e=e.map(function(e){return new u(e.name,e.symbols,e.postprocess)}),t);return n.lexer=D,n},D.prototype.reset=function(u,e){this.buffer=u,this.index=0,this.line=e?e.line:1,this.lastLineBreak=e?-e.col:0},D.prototype.next=function(){if(this.index<this.buffer.length){var u=this.buffer[this.index++];return"\n"===u&&(this.line+=1,this.lastLineBreak=this.index),{value:u}}},D.prototype.save=function(){return{line:this.line,col:this.index-this.lastLineBreak}},D.prototype.formatError=function(u,e){var t=this.buffer;if("string"==typeof t){var r=t.indexOf("\n",this.index);-1===r&&(r=t.length);var D=t.substring(this.lastLineBreak,r),n=this.index-this.lastLineBreak;return e+=" at line "+this.line+" col "+n+":\n\n",e+=" "+D+"\n",e+=" "+Array(n).join(" ")+"^"}return e+" at index "+(this.index-1)},n.fail={},n.prototype.feed=function(u){var e,r=this.lexer;for(r.reset(u,this.lexerState);e=r.next();){var n=this.table[this.current];this.options.keepHistory||delete this.table[this.current-1];var o=this.current+1,s=new t(this.grammar,o);this.table.push(s);for(var i=void 0!==e.text?e.text:e.value,a=r.constructor===D?e.value:e,l=n.scannable,F=l.length;F--;){var A=l[F],c=A.rule.symbols[A.dot];if(c.test?c.test(a):c.type?c.type===e.type:c.literal===i){var E=A.nextState({data:a,token:e,isToken:!0,reference:o-1});s.states.push(E)}}if(s.process(),0===s.states.length){var C=this.lexer.formatError(e,"invalid syntax")+"\n";C+="Unexpected "+(e.type?e.type+" token: ":""),C+=JSON.stringify(void 0!==e.value?e.value:e)+"\n";var p=new Error(C);throw p.offset=this.current,p.token=e,p}this.options.keepHistory&&(n.lexerState=r.save()),this.current++}return n&&(this.lexerState=r.save()),this.results=this.finish(),this},n.prototype.save=function(){var u=this.table[this.current];return u.lexerState=this.lexerState,u},n.prototype.restore=function(u){var e=u.index;this.current=e,this.table[e]=u,this.table.splice(e+1),this.lexerState=u.lexerState,this.results=this.finish()},n.prototype.rewind=function(u){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[u])},n.prototype.finish=function(){var u=[],e=this.grammar.start;return this.table[this.table.length-1].states.forEach(function(t){t.rule.name===e&&t.dot===t.rule.symbols.length&&0===t.reference&&t.data!==n.fail&&u.push(t)}),u.map(function(u){return u.data})},{Parser:n,Grammar:r,Rule:u}},"object"===e(u)&&u.exports?u.exports=t():(void 0).nearley=t()}).call(this,t(3)(u))},function(u,e){u.exports=function(u){return u.webpackPolyfill||(u.deprecate=function(){},u.paths=[],u.children||(u.children=[]),Object.defineProperty(u,"loaded",{enumerable:!0,get:function(){return u.l}}),Object.defineProperty(u,"id",{enumerable:!0,get:function(){return u.i}}),u.webpackPolyfill=1),u}},function(module,exports,__webpack_require__){"use strict";var __WEBPACK_AMD_DEFINE_FACTORY__,__WEBPACK_AMD_DEFINE_ARRAY__,__WEBPACK_AMD_DEFINE_RESULT__,factory;function _typeof(u){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(u){return typeof u}:function(u){return u&&"function"==typeof Symbol&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u})(u)}factory=function(){var hasOwnProperty=Object.prototype.hasOwnProperty,assign="function"==typeof Object.assign?Object.assign:function(u,e){if(null==u)throw new TypeError("Target cannot be null or undefined");u=Object(u);for(var t=1;t<arguments.length;t++){var r=arguments[t];if(null!=r)for(var D in r)hasOwnProperty.call(r,D)&&(u[D]=r[D])}return u},hasSticky="boolean"==typeof(new RegExp).sticky;function isRegExp(u){return u&&u.constructor===RegExp}function isObject(u){return u&&"object"===_typeof(u)&&u.constructor!==RegExp&&!Array.isArray(u)}function reEscape(u){return u.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function reGroups(u){return new RegExp("|"+u).exec("").length-1}function reCapture(u){return"("+u+")"}function reUnion(u){return"(?:"+u.map(function(u){return"(?:"+u+")"}).join("|")+")"}function regexpOrLiteral(u){if("string"==typeof u)return"(?:"+reEscape(u)+")";if(isRegExp(u)){if(u.ignoreCase)throw new Error("RegExp /i flag not allowed");if(u.global)throw new Error("RegExp /g flag is implied");if(u.sticky)throw new Error("RegExp /y flag is implied");if(u.multiline)throw new Error("RegExp /m flag is implied");return u.source}throw new Error("not a pattern: "+u)}function objectToRules(u){for(var e=Object.getOwnPropertyNames(u),t=[],r=0;r<e.length;r++){var D=e[r],n=u[D],o=Array.isArray(n)?n:[n],s=[];o.forEach(function(u){isObject(u)?(s.length&&t.push(ruleOptions(D,s)),t.push(ruleOptions(D,u)),s=[]):s.push(u)}),s.length&&t.push(ruleOptions(D,s))}return t}function arrayToRules(u){for(var e=[],t=0;t<u.length;t++){var r=u[t];if(!r.name)throw new Error("Rule has no name: "+JSON.stringify(r));e.push(ruleOptions(r.name,r))}return e}function ruleOptions(u,e){("object"!==_typeof(e)||Array.isArray(e)||isRegExp(e))&&(e={match:e});var t=assign({tokenType:u,lineBreaks:!!e.error,pop:!1,next:null,push:null,error:!1,value:null,getType:null},e),r=t.match;return t.match=Array.isArray(r)?r:r?[r]:[],t.match.sort(function(u,e){return isRegExp(u)&&isRegExp(e)?0:isRegExp(e)?-1:isRegExp(u)?1:e.length-u.length}),t.keywords&&(t.getType=keywordTransform(t.keywords)),t}function compileRules(u,e){u=Array.isArray(u)?arrayToRules(u):objectToRules(u);for(var t=null,r=[],D=[],n=0;n<u.length;n++){var o=u[n];if(o.error){if(t)throw new Error("Multiple error rules not allowed: (for token '"+o.tokenType+"')");t=o}if(0!==o.match.length){r.push(o);var s=reUnion(o.match.map(regexpOrLiteral)),i=new RegExp(s);if(i.test(""))throw new Error("RegExp matches empty string: "+i);if(reGroups(s)>0)throw new Error("RegExp has capture groups: "+i+"\nUse (?: … ) instead");if(!e&&(o.pop||o.push||o.next))throw new Error("State-switching options are not allowed in stateless lexers (for token '"+o.tokenType+"')");if(!o.lineBreaks&&i.test("\n"))throw new Error("Rule should declare lineBreaks: "+i);D.push(reCapture(s))}}var a=hasSticky?"":"|(?:)",l=hasSticky?"ym":"gm";return{regexp:new RegExp(reUnion(D)+a,l),groups:r,error:t}}function compile(u){var e=compileRules(u);return new Lexer({start:e},"start")}function compileStates(u,e){var t=Object.getOwnPropertyNames(u);e||(e=t[0]);for(var r=Object.create(null),D=0;D<t.length;D++){var n=t[D];r[n]=compileRules(u[n],!0)}for(D=0;D<t.length;D++)for(var o=r[t[D]].groups,s=0;s<o.length;s++){var i=o[s],a=i&&(i.push||i.next);if(a&&!r[a])throw new Error("Missing state '"+a+"' (in token '"+i.tokenType+"' of state '"+t[D]+"')");if(i&&i.pop&&1!=+i.pop)throw new Error("pop must be 1 (in token '"+i.tokenType+"' of state '"+t[D]+"')")}return new Lexer(r,e)}function keywordTransform(map){for(var reverseMap=Object.create(null),byLength=Object.create(null),types=Object.getOwnPropertyNames(map),i=0;i<types.length;i++){var tokenType=types[i],item=map[tokenType],keywordList=Array.isArray(item)?item:[item];keywordList.forEach(function(u){if((byLength[u.length]=byLength[u.length]||[]).push(u),"string"!=typeof u)throw new Error("keyword must be string (in keyword '"+tokenType+"')");reverseMap[u]=tokenType})}function str(u){return JSON.stringify(u)}var source="";for(var length in source+="(function(value) {\n",source+="switch (value.length) {\n",byLength){var keywords=byLength[length];source+="case "+length+":\n",source+="switch (value) {\n",keywords.forEach(function(u){var e=reverseMap[u];source+="case "+str(u)+": return "+str(e)+"\n"}),source+="}\n"}return source+="}\n",source+="})",eval(source)}var Lexer=function(u,e){this.startState=e,this.states=u,this.buffer="",this.stack=[],this.reset()};function tokenToString(){return this.value}if(Lexer.prototype.reset=function(u,e){return this.buffer=u||"",this.index=0,this.line=e?e.line:1,this.col=e?e.col:1,this.setState(e?e.state:this.startState),this},Lexer.prototype.save=function(){return{line:this.line,col:this.col,state:this.state}},Lexer.prototype.setState=function(u){if(u&&this.state!==u){this.state=u;var e=this.states[u];this.groups=e.groups,this.error=e.error||{lineBreaks:!0,shouldThrow:!0},this.re=e.regexp}},Lexer.prototype.popState=function(){this.setState(this.stack.pop())},Lexer.prototype.pushState=function(u){this.stack.push(this.state),this.setState(u)},Lexer.prototype._eat=hasSticky?function(u){return u.exec(this.buffer)}:function(u){var e=u.exec(this.buffer);return 0===e[0].length?null:e},Lexer.prototype._getGroup=function(u){if(null===u)return-1;for(var e=this.groups.length,t=0;t<e;t++)if(void 0!==u[t+1])return t;throw new Error("oops")},Lexer.prototype.next=function(){var u=this.re,e=this.buffer,t=u.lastIndex=this.index;if(t!==e.length){var r,D,n=this._eat(u),o=this._getGroup(n);-1===o?(r=this.error,D=e.slice(t)):(D=n[0],r=this.groups[o]);var s=0;if(r.lineBreaks){var i=/\n/g,a=1;if("\n"===D)s=1;else for(;i.exec(D);)s++,a=i.lastIndex}var l={type:r.getType&&r.getType(D)||r.tokenType,value:r.value?r.value(D):D,text:D,toString:tokenToString,offset:t,lineBreaks:s,line:this.line,col:this.col},F=D.length;if(this.index+=F,this.line+=s,0!==s?this.col=F-a+1:this.col+=F,r.shouldThrow)throw new Error(this.formatError(l,"invalid syntax"));return r.pop?this.popState():r.push?this.pushState(r.push):r.next&&this.setState(r.next),l}},"undefined"!=typeof Symbol&&Symbol.iterator){var LexerIterator=function(u){this.lexer=u};LexerIterator.prototype.next=function(){var u=this.lexer.next();return{value:u,done:!u}},LexerIterator.prototype[Symbol.iterator]=function(){return this},Lexer.prototype[Symbol.iterator]=function(){return new LexerIterator(this)}}return Lexer.prototype.formatError=function(u,e){var t=u.value,r=u.offset,D=u.lineBreaks?t.indexOf("\n"):t.length,n=Math.max(0,r-u.col+1),o=this.buffer.substring(n,r+D);return e+=" at line "+u.line+" col "+u.col+":\n\n",e+=" "+o+"\n",e+=" "+Array(u.col).join(" ")+"^"},Lexer.prototype.clone=function(){return new Lexer(this.states,this.state)},Lexer.prototype.has=function(u){for(var e in this.states)for(var t=this.states[e].groups,r=0;r<t.length;r++){var D=t[r];if(D.tokenType===u)return!0;if(D.keywords&&hasOwnProperty.call(D.keywords,u))return!0}return!1},{compile:compile,states:compileStates,error:Object.freeze({error:!0})}},__WEBPACK_AMD_DEFINE_ARRAY__=[],void 0===(__WEBPACK_AMD_DEFINE_RESULT__="function"==typeof(__WEBPACK_AMD_DEFINE_FACTORY__=factory)?__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports,__WEBPACK_AMD_DEFINE_ARRAY__):__WEBPACK_AMD_DEFINE_FACTORY__)||(module.exports=__WEBPACK_AMD_DEFINE_RESULT__)},function(u,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default=/(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|null|this|true|void|with|await|break|catch|class|const|false|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)(?:[$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D])(?:[$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF])*/,u.exports=e.default},function(u,e,t){!function(){function e(u){return u[0]}const r=t(7),D=t(0)(),n=()=>{throw new Error("should not happen")};function o(u){return function([e,,t]){return{type:u,children:[],loc:{start:F(e),end:F(t,!0)}}}}function s(u){return function([e,,t,r,,D]){return{type:u,children:[t,...r.map(([,,,u])=>u)],loc:{start:F(e),end:F(D,!0)}}}}function i(u="Literal"){return function([e]){return{type:u,value:JSON.parse(e.value),raw:e.text,loc:{start:F(e),end:F(e,!0)}}}}function a([u]){return{type:"Literal",value:u.text,raw:u.text,loc:{start:F(u),end:F(u,!0)}}}function l(...u){const e=[];return u.forEach(u=>{"space"===u.type?e[0]&&"Literal"===e[0].type?(e[0].value+=u.value,e[0].raw+=u.raw,e[0].loc.end=F(u,!0)):e.unshift(a([u])):e[0]&&"Literal"===e[0].type&&"Literal"===u.type?(e[0].value+=u.value,e[0].raw+=u.raw,e[0].loc.end=u.loc.end):u.type&&e.unshift(u)}),e.reverse()}function F({line:u,col:e,offset:t,text:r},D=!1){const n={line:u,column:e,offset:t};if(D){n.offset+=r.length;const[u,...e]=r.split(/\r?\n/);n.line+=e.length,e.length>0?n.column=e[e.length-1].length+1:n.column+=u.length}return n}var A={Lexer:D,ParserRules:[{name:"json",symbols:["_","value","_"],postprocess:([,u])=>u},{name:"nsName",symbols:[D.has("identifier")?{type:"identifier"}:n,"_",{literal:":"},"_",D.has("identifier")?{type:"identifier"}:n],postprocess:function([u,,,,e]){return{type:"Name",loc:{start:F(u),end:F(e,!0)},name:u.value+":"+e.value}}},{name:"memberName$ebnf$1$subexpression$1",symbols:["_",{literal:"."},"_",D.has("identifier")?{type:"identifier"}:n]},{name:"memberName$ebnf$1",symbols:["memberName$ebnf$1$subexpression$1"]},{name:"memberName$ebnf$1$subexpression$2",symbols:["_",{literal:"."},"_",D.has("identifier")?{type:"identifier"}:n]},{name:"memberName$ebnf$1",symbols:["memberName$ebnf$1","memberName$ebnf$1$subexpression$2"],postprocess:function(u){return u[0].concat([u[1]])}},{name:"memberName",symbols:[D.has("identifier")?{type:"identifier"}:n,"memberName$ebnf$1"],postprocess:function([u,e]){const t=e[e.length-1][3];return{type:"Name",loc:{start:F(u),end:F(t,!0)},name:u.value+e.map(([,,,u])=>"."+u.value).join("")}}},{name:"idName",symbols:[D.has("identifier")?{type:"identifier"}:n],postprocess:function([u]){return{type:"Name",loc:{start:F(u),end:F(u,!0)},name:u.value}}},{name:"elementName",symbols:["nsName"],postprocess:e},{name:"elementName",symbols:["memberName"],postprocess:e},{name:"elementName",symbols:["idName"],postprocess:e},{name:"closingTag",symbols:[D.has("startclose")?{type:"startclose"}:startclose,"_","elementName","_",{literal:">"}],postprocess:function([u,,e,,t]){const r=F(u),D=F(t,!0);return{closingTagName:e.name,loc:{start:r,end:D}}}},{name:"furtherElement",symbols:[D.has("selfclose")?{type:"selfclose"}:selfclose],postprocess:function([u]){return{further:{loc:{end:F(u,!0)},children:[]}}}},{name:"furtherElement$ebnf$1",symbols:[]},{name:"furtherElement$ebnf$1$subexpression$1",symbols:["_","child"]},{name:"furtherElement$ebnf$1",symbols:["furtherElement$ebnf$1","furtherElement$ebnf$1$subexpression$1"],postprocess:function(u){return u[0].concat([u[1]])}},{name:"furtherElement",symbols:[{literal:">"},"furtherElement$ebnf$1","_","closingTag"],postprocess:function([,u,e,{closingTagName:t,loc:r}]){return{closingTagName:t,further:{loc:{end:r.end},children:l(...u.flat(),e)}}}},{name:"child",symbols:[D.has("plaintext")?{type:"plaintext"}:()=>{throw new Error("should not happen")}],postprocess:a},{name:"child",symbols:[D.has("codeblock_backticks")?{type:"codeblock_backticks"}:codeblock_backticks],postprocess:a},{name:"child",symbols:[D.has("inlinecode_backtick")?{type:"inlinecode_backtick"}:inlinecode_backtick],postprocess:a},{name:"child",symbols:["element"],postprocess:e},{name:"child",symbols:["expression"],postprocess:e},{name:"element$ebnf$1",symbols:[]},{name:"element$ebnf$1$subexpression$1",symbols:["_","attr"]},{name:"element$ebnf$1",symbols:["element$ebnf$1","element$ebnf$1$subexpression$1"],postprocess:function(u){return u[0].concat([u[1]])}},{name:"element",symbols:[{literal:"<"},"_","elementName","element$ebnf$1","_","furtherElement"],postprocess:function([u,,e,t,,{closingTagName:D,further:n}]){if(D&&e.name!==D)throw new Error("closing tag must match opening tag name!");return r({type:"Element",loc:{start:F(u)},name:e,attributes:t.map(([,u])=>u)},n)}},{name:"attrname",symbols:["nsName"],postprocess:e},{name:"attrname",symbols:["idName"],postprocess:e},{name:"attr$ebnf$1$subexpression$1",symbols:["_",{literal:"="},"_","attrval"]},{name:"attr$ebnf$1",symbols:["attr$ebnf$1$subexpression$1"],postprocess:e},{name:"attr$ebnf$1",symbols:[],postprocess:function(u){return null}},{name:"attr",symbols:["attrname","attr$ebnf$1"],postprocess:function([u,e]){return{type:"Attribute",loc:{start:u.loc.start,end:e?e[3].loc.end:u.loc.end},name:u,...e?{value:e[3]}:{}}}},{name:"expression",symbols:[{literal:"{"},"_","value","_",{literal:"}"}],postprocess:function([u,,e,,t]){return{type:"Expression",loc:{start:F(u),end:F(t,!0)},expression:e}}},{name:"attrval",symbols:[D.has("string")?{type:"string"}:string],postprocess:i()},{name:"attrval",symbols:["expression"],postprocess:e},{name:"object",symbols:[{literal:"{"},"_",{literal:"}"}],postprocess:o("Object")},{name:"object$ebnf$1",symbols:[]},{name:"object$ebnf$1$subexpression$1",symbols:["_",{literal:","},"_","property"]},{name:"object$ebnf$1",symbols:["object$ebnf$1","object$ebnf$1$subexpression$1"],postprocess:function(u){return u[0].concat([u[1]])}},{name:"object",symbols:[{literal:"{"},"_","property","object$ebnf$1","_",{literal:"}"}],postprocess:s("Object")},{name:"array",symbols:[{literal:"["},"_",{literal:"]"}],postprocess:o("Array")},{name:"array$ebnf$1",symbols:[]},{name:"array$ebnf$1$subexpression$1",symbols:["_",{literal:","},"_","value"]},{name:"array$ebnf$1",symbols:["array$ebnf$1","array$ebnf$1$subexpression$1"],postprocess:function(u){return u[0].concat([u[1]])}},{name:"array",symbols:[{literal:"["},"_","value","array$ebnf$1","_",{literal:"]"}],postprocess:s("Array")},{name:"value",symbols:["object"],postprocess:e},{name:"value",symbols:["array"],postprocess:e},{name:"value",symbols:[{literal:"true"}],postprocess:i()},{name:"value",symbols:[{literal:"false"}],postprocess:i()},{name:"value",symbols:[{literal:"null"}],postprocess:i()},{name:"value",symbols:[D.has("number")?{type:"number"}:number],postprocess:i()},{name:"value",symbols:[D.has("string")?{type:"string"}:string],postprocess:i()},{name:"value",symbols:["element"],postprocess:e},{name:"property",symbols:["key","_",{literal:":"},"_","value"],postprocess:function([u,,,,e]){return{type:"Property",key:u,value:e,loc:{start:u.loc.start,end:e.loc.end}}}},{name:"key",symbols:[D.has("string")?{type:"string"}:string],postprocess:i("Identifier")},{name:"_",symbols:[]},{name:"_",symbols:[D.has("space")?{type:"space"}:space],postprocess:e}],ParserStart:"json"};void 0!==u.exports?u.exports=A:window.grammar=A}()},function(u,e,t){u.exports=function(){"use strict";var u=function(u){return function(u){return!!u&&"object"==typeof u}(u)&&!function(u){var t=Object.prototype.toString.call(u);return"[object RegExp]"===t||"[object Date]"===t||function(u){return u.$$typeof===e}(u)}(u)},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function t(u,e){return!1!==e.clone&&e.isMergeableObject(u)?n((t=u,Array.isArray(t)?[]:{}),u,e):u;var t}function r(u,e,r){return u.concat(e).map(function(u){return t(u,r)})}function D(u,e,r){var D={};return r.isMergeableObject(u)&&Object.keys(u).forEach(function(e){D[e]=t(u[e],r)}),Object.keys(e).forEach(function(o){r.isMergeableObject(e[o])&&u[o]?D[o]=function(u,e){if(!e.customMerge)return n;var t=e.customMerge(u);return"function"==typeof t?t:n}(o,r)(u[o],e[o],r):D[o]=t(e[o],r)}),D}function n(e,n,o){(o=o||{}).arrayMerge=o.arrayMerge||r,o.isMergeableObject=o.isMergeableObject||u;var s=Array.isArray(n),i=Array.isArray(e),a=s===i;return a?s?o.arrayMerge(e,n,o):D(e,n,o):t(n,o)}return n.all=function(u,e){if(!Array.isArray(u))throw new Error("first argument should be an array");return u.reduce(function(u,t){return n(u,t,e)},{})},n}()}])});
//# sourceMappingURL=literal-jsx-parser.js.map