@inventreedb/ui 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +18 -7
  3. package/dist/.vite/manifest.json +125 -0
  4. package/dist/_virtual/errors.js +5 -0
  5. package/dist/_virtual/errors.js.map +1 -0
  6. package/dist/_virtual/index.js +6 -0
  7. package/dist/_virtual/index.js.map +1 -0
  8. package/dist/_virtual/index2.js +5 -0
  9. package/dist/_virtual/index2.js.map +1 -0
  10. package/dist/_virtual/lexer.js +5 -0
  11. package/dist/_virtual/lexer.js.map +1 -0
  12. package/dist/_virtual/moo.js +5 -0
  13. package/dist/_virtual/moo.js.map +1 -0
  14. package/dist/_virtual/parser.js +6 -0
  15. package/dist/_virtual/parser.js.map +1 -0
  16. package/dist/_virtual/parser2.js +5 -0
  17. package/dist/_virtual/parser2.js.map +1 -0
  18. package/dist/enums/ModelInformation.d.ts +20 -0
  19. package/dist/enums/ModelInformation.js +590 -0
  20. package/dist/enums/ModelInformation.js.map +1 -0
  21. package/dist/functions/Events.d.ts +1 -0
  22. package/dist/functions/Events.js +10 -0
  23. package/dist/functions/Events.js.map +1 -0
  24. package/dist/functions/Navigation.d.ts +8 -0
  25. package/dist/functions/Navigation.js +38 -0
  26. package/dist/functions/Navigation.js.map +1 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.js +5 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/node_modules/@lingui/core/dist/index.js +405 -0
  31. package/dist/node_modules/@lingui/core/dist/index.js.map +1 -0
  32. package/dist/node_modules/@lingui/message-utils/dist/compileMessage.js +326 -0
  33. package/dist/node_modules/@lingui/message-utils/dist/compileMessage.js.map +1 -0
  34. package/dist/node_modules/@messageformat/parser/lib/lexer.js +74 -0
  35. package/dist/node_modules/@messageformat/parser/lib/lexer.js.map +1 -0
  36. package/dist/node_modules/@messageformat/parser/lib/parser.js +223 -0
  37. package/dist/node_modules/@messageformat/parser/lib/parser.js.map +1 -0
  38. package/dist/node_modules/moo/moo.js +539 -0
  39. package/dist/node_modules/moo/moo.js.map +1 -0
  40. package/dist/node_modules/unraw/dist/errors.js +39 -0
  41. package/dist/node_modules/unraw/dist/errors.js.map +1 -0
  42. package/dist/node_modules/unraw/dist/index.js +112 -0
  43. package/dist/node_modules/unraw/dist/index.js.map +1 -0
  44. package/dist/types/Icons.d.ts +5 -0
  45. package/dist/types/Plugins.js +1 -1
  46. package/lib/enums/ModelInformation.tsx +279 -0
  47. package/lib/functions/Events.tsx +6 -0
  48. package/lib/functions/Navigation.tsx +58 -0
  49. package/lib/index.ts +6 -0
  50. package/lib/types/Icons.tsx +9 -0
  51. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sources":["../../../../../node_modules/@messageformat/parser/lib/parser.js"],"sourcesContent":["\"use strict\";\n/**\n * An AST parser for ICU MessageFormat strings\n *\n * @packageDocumentation\n * @example\n * ```\n * import { parse } from '@messageformat/parser\n *\n * parse('So {wow}.')\n * [ { type: 'content', value: 'So ' },\n * { type: 'argument', arg: 'wow' },\n * { type: 'content', value: '.' } ]\n *\n *\n * parse('Such { thing }. { count, selectordinal, one {First} two {Second}' +\n * ' few {Third} other {#th} } word.')\n * [ { type: 'content', value: 'Such ' },\n * { type: 'argument', arg: 'thing' },\n * { type: 'content', value: '. ' },\n * { type: 'selectordinal',\n * arg: 'count',\n * cases: [\n * { key: 'one', tokens: [ { type: 'content', value: 'First' } ] },\n * { key: 'two', tokens: [ { type: 'content', value: 'Second' } ] },\n * { key: 'few', tokens: [ { type: 'content', value: 'Third' } ] },\n * { key: 'other',\n * tokens: [ { type: 'octothorpe' }, { type: 'content', value: 'th' } ] }\n * ] },\n * { type: 'content', value: ' word.' } ]\n *\n *\n * parse('Many{type,select,plural{ numbers}selectordinal{ counting}' +\n * 'select{ choices}other{ some {type}}}.')\n * [ { type: 'content', value: 'Many' },\n * { type: 'select',\n * arg: 'type',\n * cases: [\n * { key: 'plural', tokens: [ { type: 'content', value: 'numbers' } ] },\n * { key: 'selectordinal', tokens: [ { type: 'content', value: 'counting' } ] },\n * { key: 'select', tokens: [ { type: 'content', value: 'choices' } ] },\n * { key: 'other',\n * tokens: [ { type: 'content', value: 'some ' }, { type: 'argument', arg: 'type' } ] }\n * ] },\n * { type: 'content', value: '.' } ]\n *\n *\n * parse('{Such compliance')\n * // ParseError: invalid syntax at line 1 col 7:\n * //\n * // {Such compliance\n * // ^\n *\n *\n * const msg = '{words, plural, zero{No words} one{One word} other{# words}}'\n * parse(msg)\n * [ { type: 'plural',\n * arg: 'words',\n * cases: [\n * { key: 'zero', tokens: [ { type: 'content', value: 'No words' } ] },\n * { key: 'one', tokens: [ { type: 'content', value: 'One word' } ] },\n * { key: 'other',\n * tokens: [ { type: 'octothorpe' }, { type: 'content', value: ' words' } ] }\n * ] } ]\n *\n *\n * parse(msg, { cardinal: [ 'one', 'other' ], ordinal: [ 'one', 'two', 'few', 'other' ] })\n * // ParseError: The plural case zero is not valid in this locale at line 1 col 17:\n * //\n * // {words, plural, zero{\n * // ^\n * ```\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = exports.ParseError = void 0;\nconst lexer_js_1 = require(\"./lexer.js\");\nconst getContext = (lt) => ({\n offset: lt.offset,\n line: lt.line,\n col: lt.col,\n text: lt.text,\n lineBreaks: lt.lineBreaks\n});\nconst isSelectType = (type) => type === 'plural' || type === 'select' || type === 'selectordinal';\nfunction strictArgStyleParam(lt, param) {\n let value = '';\n let text = '';\n for (const p of param) {\n const pText = p.ctx.text;\n text += pText;\n switch (p.type) {\n case 'content':\n value += p.value;\n break;\n case 'argument':\n case 'function':\n case 'octothorpe':\n value += pText;\n break;\n default:\n throw new ParseError(lt, `Unsupported part in strict mode function arg style: ${pText}`);\n }\n }\n const c = {\n type: 'content',\n value: value.trim(),\n ctx: Object.assign({}, param[0].ctx, { text })\n };\n return [c];\n}\nconst strictArgTypes = [\n 'number',\n 'date',\n 'time',\n 'spellout',\n 'ordinal',\n 'duration'\n];\nconst defaultPluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other'];\n/**\n * Thrown by {@link parse} on error\n *\n * @public\n */\nclass ParseError extends Error {\n /** @internal */\n constructor(lt, msg) {\n super(lexer_js_1.lexer.formatError(lt, msg));\n }\n}\nexports.ParseError = ParseError;\nclass Parser {\n constructor(src, opt) {\n var _a, _b, _c, _d;\n this.lexer = lexer_js_1.lexer.reset(src);\n this.cardinalKeys = (_a = opt === null || opt === void 0 ? void 0 : opt.cardinal) !== null && _a !== void 0 ? _a : defaultPluralKeys;\n this.ordinalKeys = (_b = opt === null || opt === void 0 ? void 0 : opt.ordinal) !== null && _b !== void 0 ? _b : defaultPluralKeys;\n this.strict = (_c = opt === null || opt === void 0 ? void 0 : opt.strict) !== null && _c !== void 0 ? _c : false;\n this.strictPluralKeys = (_d = opt === null || opt === void 0 ? void 0 : opt.strictPluralKeys) !== null && _d !== void 0 ? _d : true;\n }\n parse() {\n return this.parseBody(false, true);\n }\n checkSelectKey(lt, type, key) {\n if (key[0] === '=') {\n if (type === 'select')\n throw new ParseError(lt, `The case ${key} is not valid with select`);\n }\n else if (type !== 'select') {\n const keys = type === 'plural' ? this.cardinalKeys : this.ordinalKeys;\n if (this.strictPluralKeys && keys.length > 0 && !keys.includes(key)) {\n const msg = `The ${type} case ${key} is not valid in this locale`;\n throw new ParseError(lt, msg);\n }\n }\n }\n parseSelect({ value: arg }, inPlural, ctx, type) {\n const sel = { type, arg, cases: [], ctx };\n if (type === 'plural' || type === 'selectordinal')\n inPlural = true;\n else if (this.strict)\n inPlural = false;\n for (const lt of this.lexer) {\n switch (lt.type) {\n case 'offset':\n if (type === 'select')\n throw new ParseError(lt, 'Unexpected plural offset for select');\n if (sel.cases.length > 0)\n throw new ParseError(lt, 'Plural offset must be set before cases');\n sel.pluralOffset = Number(lt.value);\n ctx.text += lt.text;\n ctx.lineBreaks += lt.lineBreaks;\n break;\n case 'case': {\n this.checkSelectKey(lt, type, lt.value);\n sel.cases.push({\n key: lt.value,\n tokens: this.parseBody(inPlural),\n ctx: getContext(lt)\n });\n break;\n }\n case 'end':\n return sel;\n /* istanbul ignore next: never happens */\n default:\n throw new ParseError(lt, `Unexpected lexer token: ${lt.type}`);\n }\n }\n throw new ParseError(null, 'Unexpected message end');\n }\n parseArgToken(lt, inPlural) {\n const ctx = getContext(lt);\n const argType = this.lexer.next();\n if (!argType)\n throw new ParseError(null, 'Unexpected message end');\n ctx.text += argType.text;\n ctx.lineBreaks += argType.lineBreaks;\n if (this.strict &&\n (argType.type === 'func-simple' || argType.type === 'func-args') &&\n !strictArgTypes.includes(argType.value)) {\n const msg = `Invalid strict mode function arg type: ${argType.value}`;\n throw new ParseError(lt, msg);\n }\n switch (argType.type) {\n case 'end':\n return { type: 'argument', arg: lt.value, ctx };\n case 'func-simple': {\n const end = this.lexer.next();\n if (!end)\n throw new ParseError(null, 'Unexpected message end');\n /* istanbul ignore if: never happens */\n if (end.type !== 'end')\n throw new ParseError(end, `Unexpected lexer token: ${end.type}`);\n ctx.text += end.text;\n if (isSelectType(argType.value.toLowerCase()))\n throw new ParseError(argType, `Invalid type identifier: ${argType.value}`);\n return {\n type: 'function',\n arg: lt.value,\n key: argType.value,\n ctx\n };\n }\n case 'func-args': {\n if (isSelectType(argType.value.toLowerCase())) {\n const msg = `Invalid type identifier: ${argType.value}`;\n throw new ParseError(argType, msg);\n }\n let param = this.parseBody(this.strict ? false : inPlural);\n if (this.strict && param.length > 0)\n param = strictArgStyleParam(lt, param);\n return {\n type: 'function',\n arg: lt.value,\n key: argType.value,\n param,\n ctx\n };\n }\n case 'select':\n /* istanbul ignore else: never happens */\n if (isSelectType(argType.value))\n return this.parseSelect(lt, inPlural, ctx, argType.value);\n else\n throw new ParseError(argType, `Unexpected select type ${argType.value}`);\n /* istanbul ignore next: never happens */\n default:\n throw new ParseError(argType, `Unexpected lexer token: ${argType.type}`);\n }\n }\n parseBody(inPlural, atRoot) {\n const tokens = [];\n let content = null;\n for (const lt of this.lexer) {\n if (lt.type === 'argument') {\n if (content)\n content = null;\n tokens.push(this.parseArgToken(lt, inPlural));\n }\n else if (lt.type === 'octothorpe' && inPlural) {\n if (content)\n content = null;\n tokens.push({ type: 'octothorpe', ctx: getContext(lt) });\n }\n else if (lt.type === 'end' && !atRoot) {\n return tokens;\n }\n else {\n let value = lt.value;\n if (!inPlural && lt.type === 'quoted' && value[0] === '#') {\n if (value.includes('{')) {\n const errMsg = `Unsupported escape pattern: ${value}`;\n throw new ParseError(lt, errMsg);\n }\n value = lt.text;\n }\n if (content) {\n content.value += value;\n content.ctx.text += lt.text;\n content.ctx.lineBreaks += lt.lineBreaks;\n }\n else {\n content = { type: 'content', value, ctx: getContext(lt) };\n tokens.push(content);\n }\n }\n }\n if (atRoot)\n return tokens;\n throw new ParseError(null, 'Unexpected message end');\n }\n}\n/**\n * Parse an input string into an array of tokens\n *\n * @public\n * @remarks\n * The parser only supports the default `DOUBLE_OPTIONAL`\n * {@link http://www.icu-project.org/apiref/icu4c/messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b | apostrophe mode}.\n */\nfunction parse(src, options = {}) {\n const parser = new Parser(src, options);\n return parser.parse();\n}\nexports.parse = parse;\n"],"names":["require$$0","parser"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,539 @@
1
+ import { __module as moo$1 } from "../../_virtual/moo.js";
2
+ var moo = moo$1.exports;
3
+ var hasRequiredMoo;
4
+ function requireMoo() {
5
+ if (hasRequiredMoo) return moo$1.exports;
6
+ hasRequiredMoo = 1;
7
+ (function(module) {
8
+ (function(root, factory) {
9
+ if (module.exports) {
10
+ module.exports = factory();
11
+ } else {
12
+ root.moo = factory();
13
+ }
14
+ })(moo, function() {
15
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
16
+ var toString = Object.prototype.toString;
17
+ var hasSticky = typeof new RegExp().sticky === "boolean";
18
+ function isRegExp(o) {
19
+ return o && toString.call(o) === "[object RegExp]";
20
+ }
21
+ function isObject(o) {
22
+ return o && typeof o === "object" && !isRegExp(o) && !Array.isArray(o);
23
+ }
24
+ function reEscape(s) {
25
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&");
26
+ }
27
+ function reGroups(s) {
28
+ var re = new RegExp("|" + s);
29
+ return re.exec("").length - 1;
30
+ }
31
+ function reCapture(s) {
32
+ return "(" + s + ")";
33
+ }
34
+ function reUnion(regexps) {
35
+ if (!regexps.length) return "(?!)";
36
+ var source = regexps.map(function(s) {
37
+ return "(?:" + s + ")";
38
+ }).join("|");
39
+ return "(?:" + source + ")";
40
+ }
41
+ function regexpOrLiteral(obj) {
42
+ if (typeof obj === "string") {
43
+ return "(?:" + reEscape(obj) + ")";
44
+ } else if (isRegExp(obj)) {
45
+ if (obj.ignoreCase) throw new Error("RegExp /i flag not allowed");
46
+ if (obj.global) throw new Error("RegExp /g flag is implied");
47
+ if (obj.sticky) throw new Error("RegExp /y flag is implied");
48
+ if (obj.multiline) throw new Error("RegExp /m flag is implied");
49
+ return obj.source;
50
+ } else {
51
+ throw new Error("Not a pattern: " + obj);
52
+ }
53
+ }
54
+ function pad(s, length) {
55
+ if (s.length > length) {
56
+ return s;
57
+ }
58
+ return Array(length - s.length + 1).join(" ") + s;
59
+ }
60
+ function lastNLines(string, numLines) {
61
+ var position = string.length;
62
+ var lineBreaks = 0;
63
+ while (true) {
64
+ var idx = string.lastIndexOf("\n", position - 1);
65
+ if (idx === -1) {
66
+ break;
67
+ } else {
68
+ lineBreaks++;
69
+ }
70
+ position = idx;
71
+ if (lineBreaks === numLines) {
72
+ break;
73
+ }
74
+ if (position === 0) {
75
+ break;
76
+ }
77
+ }
78
+ var startPosition = lineBreaks < numLines ? 0 : position + 1;
79
+ return string.substring(startPosition).split("\n");
80
+ }
81
+ function objectToRules(object) {
82
+ var keys = Object.getOwnPropertyNames(object);
83
+ var result = [];
84
+ for (var i = 0; i < keys.length; i++) {
85
+ var key = keys[i];
86
+ var thing = object[key];
87
+ var rules = [].concat(thing);
88
+ if (key === "include") {
89
+ for (var j = 0; j < rules.length; j++) {
90
+ result.push({ include: rules[j] });
91
+ }
92
+ continue;
93
+ }
94
+ var match = [];
95
+ rules.forEach(function(rule) {
96
+ if (isObject(rule)) {
97
+ if (match.length) result.push(ruleOptions(key, match));
98
+ result.push(ruleOptions(key, rule));
99
+ match = [];
100
+ } else {
101
+ match.push(rule);
102
+ }
103
+ });
104
+ if (match.length) result.push(ruleOptions(key, match));
105
+ }
106
+ return result;
107
+ }
108
+ function arrayToRules(array) {
109
+ var result = [];
110
+ for (var i = 0; i < array.length; i++) {
111
+ var obj = array[i];
112
+ if (obj.include) {
113
+ var include = [].concat(obj.include);
114
+ for (var j = 0; j < include.length; j++) {
115
+ result.push({ include: include[j] });
116
+ }
117
+ continue;
118
+ }
119
+ if (!obj.type) {
120
+ throw new Error("Rule has no type: " + JSON.stringify(obj));
121
+ }
122
+ result.push(ruleOptions(obj.type, obj));
123
+ }
124
+ return result;
125
+ }
126
+ function ruleOptions(type, obj) {
127
+ if (!isObject(obj)) {
128
+ obj = { match: obj };
129
+ }
130
+ if (obj.include) {
131
+ throw new Error("Matching rules cannot also include states");
132
+ }
133
+ var options = {
134
+ defaultType: type,
135
+ lineBreaks: !!obj.error || !!obj.fallback,
136
+ pop: false,
137
+ next: null,
138
+ push: null,
139
+ error: false,
140
+ fallback: false,
141
+ value: null,
142
+ type: null,
143
+ shouldThrow: false
144
+ };
145
+ for (var key in obj) {
146
+ if (hasOwnProperty.call(obj, key)) {
147
+ options[key] = obj[key];
148
+ }
149
+ }
150
+ if (typeof options.type === "string" && type !== options.type) {
151
+ throw new Error("Type transform cannot be a string (type '" + options.type + "' for token '" + type + "')");
152
+ }
153
+ var match = options.match;
154
+ options.match = Array.isArray(match) ? match : match ? [match] : [];
155
+ options.match.sort(function(a, b) {
156
+ return isRegExp(a) && isRegExp(b) ? 0 : isRegExp(b) ? -1 : isRegExp(a) ? 1 : b.length - a.length;
157
+ });
158
+ return options;
159
+ }
160
+ function toRules(spec) {
161
+ return Array.isArray(spec) ? arrayToRules(spec) : objectToRules(spec);
162
+ }
163
+ var defaultErrorRule = ruleOptions("error", { lineBreaks: true, shouldThrow: true });
164
+ function compileRules(rules, hasStates) {
165
+ var errorRule = null;
166
+ var fast = /* @__PURE__ */ Object.create(null);
167
+ var fastAllowed = true;
168
+ var unicodeFlag = null;
169
+ var groups = [];
170
+ var parts = [];
171
+ for (var i = 0; i < rules.length; i++) {
172
+ if (rules[i].fallback) {
173
+ fastAllowed = false;
174
+ }
175
+ }
176
+ for (var i = 0; i < rules.length; i++) {
177
+ var options = rules[i];
178
+ if (options.include) {
179
+ throw new Error("Inheritance is not allowed in stateless lexers");
180
+ }
181
+ if (options.error || options.fallback) {
182
+ if (errorRule) {
183
+ if (!options.fallback === !errorRule.fallback) {
184
+ throw new Error("Multiple " + (options.fallback ? "fallback" : "error") + " rules not allowed (for token '" + options.defaultType + "')");
185
+ } else {
186
+ throw new Error("fallback and error are mutually exclusive (for token '" + options.defaultType + "')");
187
+ }
188
+ }
189
+ errorRule = options;
190
+ }
191
+ var match = options.match.slice();
192
+ if (fastAllowed) {
193
+ while (match.length && typeof match[0] === "string" && match[0].length === 1) {
194
+ var word = match.shift();
195
+ fast[word.charCodeAt(0)] = options;
196
+ }
197
+ }
198
+ if (options.pop || options.push || options.next) {
199
+ if (!hasStates) {
200
+ throw new Error("State-switching options are not allowed in stateless lexers (for token '" + options.defaultType + "')");
201
+ }
202
+ if (options.fallback) {
203
+ throw new Error("State-switching options are not allowed on fallback tokens (for token '" + options.defaultType + "')");
204
+ }
205
+ }
206
+ if (match.length === 0) {
207
+ continue;
208
+ }
209
+ fastAllowed = false;
210
+ groups.push(options);
211
+ for (var j = 0; j < match.length; j++) {
212
+ var obj = match[j];
213
+ if (!isRegExp(obj)) {
214
+ continue;
215
+ }
216
+ if (unicodeFlag === null) {
217
+ unicodeFlag = obj.unicode;
218
+ } else if (unicodeFlag !== obj.unicode && options.fallback === false) {
219
+ throw new Error("If one rule is /u then all must be");
220
+ }
221
+ }
222
+ var pat = reUnion(match.map(regexpOrLiteral));
223
+ var regexp = new RegExp(pat);
224
+ if (regexp.test("")) {
225
+ throw new Error("RegExp matches empty string: " + regexp);
226
+ }
227
+ var groupCount = reGroups(pat);
228
+ if (groupCount > 0) {
229
+ throw new Error("RegExp has capture groups: " + regexp + "\nUse (?: … ) instead");
230
+ }
231
+ if (!options.lineBreaks && regexp.test("\n")) {
232
+ throw new Error("Rule should declare lineBreaks: " + regexp);
233
+ }
234
+ parts.push(reCapture(pat));
235
+ }
236
+ var fallbackRule = errorRule && errorRule.fallback;
237
+ var flags = hasSticky && !fallbackRule ? "ym" : "gm";
238
+ var suffix = hasSticky || fallbackRule ? "" : "|";
239
+ if (unicodeFlag === true) flags += "u";
240
+ var combined = new RegExp(reUnion(parts) + suffix, flags);
241
+ return { regexp: combined, groups, fast, error: errorRule || defaultErrorRule };
242
+ }
243
+ function compile(rules) {
244
+ var result = compileRules(toRules(rules));
245
+ return new Lexer({ start: result }, "start");
246
+ }
247
+ function checkStateGroup(g, name, map) {
248
+ var state = g && (g.push || g.next);
249
+ if (state && !map[state]) {
250
+ throw new Error("Missing state '" + state + "' (in token '" + g.defaultType + "' of state '" + name + "')");
251
+ }
252
+ if (g && g.pop && +g.pop !== 1) {
253
+ throw new Error("pop must be 1 (in token '" + g.defaultType + "' of state '" + name + "')");
254
+ }
255
+ }
256
+ function compileStates(states, start) {
257
+ var all = states.$all ? toRules(states.$all) : [];
258
+ delete states.$all;
259
+ var keys = Object.getOwnPropertyNames(states);
260
+ if (!start) start = keys[0];
261
+ var ruleMap = /* @__PURE__ */ Object.create(null);
262
+ for (var i = 0; i < keys.length; i++) {
263
+ var key = keys[i];
264
+ ruleMap[key] = toRules(states[key]).concat(all);
265
+ }
266
+ for (var i = 0; i < keys.length; i++) {
267
+ var key = keys[i];
268
+ var rules = ruleMap[key];
269
+ var included = /* @__PURE__ */ Object.create(null);
270
+ for (var j = 0; j < rules.length; j++) {
271
+ var rule = rules[j];
272
+ if (!rule.include) continue;
273
+ var splice = [j, 1];
274
+ if (rule.include !== key && !included[rule.include]) {
275
+ included[rule.include] = true;
276
+ var newRules = ruleMap[rule.include];
277
+ if (!newRules) {
278
+ throw new Error("Cannot include nonexistent state '" + rule.include + "' (in state '" + key + "')");
279
+ }
280
+ for (var k = 0; k < newRules.length; k++) {
281
+ var newRule = newRules[k];
282
+ if (rules.indexOf(newRule) !== -1) continue;
283
+ splice.push(newRule);
284
+ }
285
+ }
286
+ rules.splice.apply(rules, splice);
287
+ j--;
288
+ }
289
+ }
290
+ var map = /* @__PURE__ */ Object.create(null);
291
+ for (var i = 0; i < keys.length; i++) {
292
+ var key = keys[i];
293
+ map[key] = compileRules(ruleMap[key], true);
294
+ }
295
+ for (var i = 0; i < keys.length; i++) {
296
+ var name = keys[i];
297
+ var state = map[name];
298
+ var groups = state.groups;
299
+ for (var j = 0; j < groups.length; j++) {
300
+ checkStateGroup(groups[j], name, map);
301
+ }
302
+ var fastKeys = Object.getOwnPropertyNames(state.fast);
303
+ for (var j = 0; j < fastKeys.length; j++) {
304
+ checkStateGroup(state.fast[fastKeys[j]], name, map);
305
+ }
306
+ }
307
+ return new Lexer(map, start);
308
+ }
309
+ function keywordTransform(map) {
310
+ var isMap = typeof Map !== "undefined";
311
+ var reverseMap = isMap ? /* @__PURE__ */ new Map() : /* @__PURE__ */ Object.create(null);
312
+ var types = Object.getOwnPropertyNames(map);
313
+ for (var i = 0; i < types.length; i++) {
314
+ var tokenType = types[i];
315
+ var item = map[tokenType];
316
+ var keywordList = Array.isArray(item) ? item : [item];
317
+ keywordList.forEach(function(keyword) {
318
+ if (typeof keyword !== "string") {
319
+ throw new Error("keyword must be string (in keyword '" + tokenType + "')");
320
+ }
321
+ if (isMap) {
322
+ reverseMap.set(keyword, tokenType);
323
+ } else {
324
+ reverseMap[keyword] = tokenType;
325
+ }
326
+ });
327
+ }
328
+ return function(k) {
329
+ return isMap ? reverseMap.get(k) : reverseMap[k];
330
+ };
331
+ }
332
+ var Lexer = function(states, state) {
333
+ this.startState = state;
334
+ this.states = states;
335
+ this.buffer = "";
336
+ this.stack = [];
337
+ this.reset();
338
+ };
339
+ Lexer.prototype.reset = function(data, info) {
340
+ this.buffer = data || "";
341
+ this.index = 0;
342
+ this.line = info ? info.line : 1;
343
+ this.col = info ? info.col : 1;
344
+ this.queuedToken = info ? info.queuedToken : null;
345
+ this.queuedText = info ? info.queuedText : "";
346
+ this.queuedThrow = info ? info.queuedThrow : null;
347
+ this.setState(info ? info.state : this.startState);
348
+ this.stack = info && info.stack ? info.stack.slice() : [];
349
+ return this;
350
+ };
351
+ Lexer.prototype.save = function() {
352
+ return {
353
+ line: this.line,
354
+ col: this.col,
355
+ state: this.state,
356
+ stack: this.stack.slice(),
357
+ queuedToken: this.queuedToken,
358
+ queuedText: this.queuedText,
359
+ queuedThrow: this.queuedThrow
360
+ };
361
+ };
362
+ Lexer.prototype.setState = function(state) {
363
+ if (!state || this.state === state) return;
364
+ this.state = state;
365
+ var info = this.states[state];
366
+ this.groups = info.groups;
367
+ this.error = info.error;
368
+ this.re = info.regexp;
369
+ this.fast = info.fast;
370
+ };
371
+ Lexer.prototype.popState = function() {
372
+ this.setState(this.stack.pop());
373
+ };
374
+ Lexer.prototype.pushState = function(state) {
375
+ this.stack.push(this.state);
376
+ this.setState(state);
377
+ };
378
+ var eat = hasSticky ? function(re, buffer) {
379
+ return re.exec(buffer);
380
+ } : function(re, buffer) {
381
+ var match = re.exec(buffer);
382
+ if (match[0].length === 0) {
383
+ return null;
384
+ }
385
+ return match;
386
+ };
387
+ Lexer.prototype._getGroup = function(match) {
388
+ var groupCount = this.groups.length;
389
+ for (var i = 0; i < groupCount; i++) {
390
+ if (match[i + 1] !== void 0) {
391
+ return this.groups[i];
392
+ }
393
+ }
394
+ throw new Error("Cannot find token type for matched text");
395
+ };
396
+ function tokenToString() {
397
+ return this.value;
398
+ }
399
+ Lexer.prototype.next = function() {
400
+ var index = this.index;
401
+ if (this.queuedGroup) {
402
+ var token = this._token(this.queuedGroup, this.queuedText, index);
403
+ this.queuedGroup = null;
404
+ this.queuedText = "";
405
+ return token;
406
+ }
407
+ var buffer = this.buffer;
408
+ if (index === buffer.length) {
409
+ return;
410
+ }
411
+ var group = this.fast[buffer.charCodeAt(index)];
412
+ if (group) {
413
+ return this._token(group, buffer.charAt(index), index);
414
+ }
415
+ var re = this.re;
416
+ re.lastIndex = index;
417
+ var match = eat(re, buffer);
418
+ var error = this.error;
419
+ if (match == null) {
420
+ return this._token(error, buffer.slice(index, buffer.length), index);
421
+ }
422
+ var group = this._getGroup(match);
423
+ var text = match[0];
424
+ if (error.fallback && match.index !== index) {
425
+ this.queuedGroup = group;
426
+ this.queuedText = text;
427
+ return this._token(error, buffer.slice(index, match.index), index);
428
+ }
429
+ return this._token(group, text, index);
430
+ };
431
+ Lexer.prototype._token = function(group, text, offset) {
432
+ var lineBreaks = 0;
433
+ if (group.lineBreaks) {
434
+ var matchNL = /\n/g;
435
+ var nl = 1;
436
+ if (text === "\n") {
437
+ lineBreaks = 1;
438
+ } else {
439
+ while (matchNL.exec(text)) {
440
+ lineBreaks++;
441
+ nl = matchNL.lastIndex;
442
+ }
443
+ }
444
+ }
445
+ var token = {
446
+ type: typeof group.type === "function" && group.type(text) || group.defaultType,
447
+ value: typeof group.value === "function" ? group.value(text) : text,
448
+ text,
449
+ toString: tokenToString,
450
+ offset,
451
+ lineBreaks,
452
+ line: this.line,
453
+ col: this.col
454
+ };
455
+ var size = text.length;
456
+ this.index += size;
457
+ this.line += lineBreaks;
458
+ if (lineBreaks !== 0) {
459
+ this.col = size - nl + 1;
460
+ } else {
461
+ this.col += size;
462
+ }
463
+ if (group.shouldThrow) {
464
+ var err = new Error(this.formatError(token, "invalid syntax"));
465
+ throw err;
466
+ }
467
+ if (group.pop) this.popState();
468
+ else if (group.push) this.pushState(group.push);
469
+ else if (group.next) this.setState(group.next);
470
+ return token;
471
+ };
472
+ if (typeof Symbol !== "undefined" && Symbol.iterator) {
473
+ var LexerIterator = function(lexer) {
474
+ this.lexer = lexer;
475
+ };
476
+ LexerIterator.prototype.next = function() {
477
+ var token = this.lexer.next();
478
+ return { value: token, done: !token };
479
+ };
480
+ LexerIterator.prototype[Symbol.iterator] = function() {
481
+ return this;
482
+ };
483
+ Lexer.prototype[Symbol.iterator] = function() {
484
+ return new LexerIterator(this);
485
+ };
486
+ }
487
+ Lexer.prototype.formatError = function(token, message) {
488
+ if (token == null) {
489
+ var text = this.buffer.slice(this.index);
490
+ var token = {
491
+ text,
492
+ offset: this.index,
493
+ lineBreaks: text.indexOf("\n") === -1 ? 0 : 1,
494
+ line: this.line,
495
+ col: this.col
496
+ };
497
+ }
498
+ var numLinesAround = 2;
499
+ var firstDisplayedLine = Math.max(token.line - numLinesAround, 1);
500
+ var lastDisplayedLine = token.line + numLinesAround;
501
+ var lastLineDigits = String(lastDisplayedLine).length;
502
+ var displayedLines = lastNLines(
503
+ this.buffer,
504
+ this.line - token.line + numLinesAround + 1
505
+ ).slice(0, 5);
506
+ var errorLines = [];
507
+ errorLines.push(message + " at line " + token.line + " col " + token.col + ":");
508
+ errorLines.push("");
509
+ for (var i = 0; i < displayedLines.length; i++) {
510
+ var line = displayedLines[i];
511
+ var lineNo = firstDisplayedLine + i;
512
+ errorLines.push(pad(String(lineNo), lastLineDigits) + " " + line);
513
+ if (lineNo === token.line) {
514
+ errorLines.push(pad("", lastLineDigits + token.col + 1) + "^");
515
+ }
516
+ }
517
+ return errorLines.join("\n");
518
+ };
519
+ Lexer.prototype.clone = function() {
520
+ return new Lexer(this.states, this.state);
521
+ };
522
+ Lexer.prototype.has = function(tokenType) {
523
+ return true;
524
+ };
525
+ return {
526
+ compile,
527
+ states: compileStates,
528
+ error: Object.freeze({ error: true }),
529
+ fallback: Object.freeze({ fallback: true }),
530
+ keywords: keywordTransform
531
+ };
532
+ });
533
+ })(moo$1);
534
+ return moo$1.exports;
535
+ }
536
+ export {
537
+ requireMoo as __require
538
+ };
539
+ //# sourceMappingURL=moo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moo.js","sources":["../../../node_modules/moo/moo.js"],"sourcesContent":["(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory) /* global define */\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory()\n } else {\n root.moo = factory()\n }\n}(this, function() {\n 'use strict';\n\n var hasOwnProperty = Object.prototype.hasOwnProperty\n var toString = Object.prototype.toString\n var hasSticky = typeof new RegExp().sticky === 'boolean'\n\n /***************************************************************************/\n\n function isRegExp(o) { return o && toString.call(o) === '[object RegExp]' }\n function isObject(o) { return o && typeof o === 'object' && !isRegExp(o) && !Array.isArray(o) }\n\n function reEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n }\n function reGroups(s) {\n var re = new RegExp('|' + s)\n return re.exec('').length - 1\n }\n function reCapture(s) {\n return '(' + s + ')'\n }\n function reUnion(regexps) {\n if (!regexps.length) return '(?!)'\n var source = regexps.map(function(s) {\n return \"(?:\" + s + \")\"\n }).join('|')\n return \"(?:\" + source + \")\"\n }\n\n function regexpOrLiteral(obj) {\n if (typeof obj === 'string') {\n return '(?:' + reEscape(obj) + ')'\n\n } else if (isRegExp(obj)) {\n // TODO: consider /u support\n if (obj.ignoreCase) throw new Error('RegExp /i flag not allowed')\n if (obj.global) throw new Error('RegExp /g flag is implied')\n if (obj.sticky) throw new Error('RegExp /y flag is implied')\n if (obj.multiline) throw new Error('RegExp /m flag is implied')\n return obj.source\n\n } else {\n throw new Error('Not a pattern: ' + obj)\n }\n }\n\n function pad(s, length) {\n if (s.length > length) {\n return s\n }\n return Array(length - s.length + 1).join(\" \") + s\n }\n\n function lastNLines(string, numLines) {\n var position = string.length\n var lineBreaks = 0;\n while (true) {\n var idx = string.lastIndexOf(\"\\n\", position - 1)\n if (idx === -1) {\n break;\n } else {\n lineBreaks++\n }\n position = idx\n if (lineBreaks === numLines) {\n break;\n }\n if (position === 0) {\n break;\n }\n }\n var startPosition = \n lineBreaks < numLines ?\n 0 : \n position + 1\n return string.substring(startPosition).split(\"\\n\")\n }\n\n function objectToRules(object) {\n var keys = Object.getOwnPropertyNames(object)\n var result = []\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i]\n var thing = object[key]\n var rules = [].concat(thing)\n if (key === 'include') {\n for (var j = 0; j < rules.length; j++) {\n result.push({include: rules[j]})\n }\n continue\n }\n var match = []\n rules.forEach(function(rule) {\n if (isObject(rule)) {\n if (match.length) result.push(ruleOptions(key, match))\n result.push(ruleOptions(key, rule))\n match = []\n } else {\n match.push(rule)\n }\n })\n if (match.length) result.push(ruleOptions(key, match))\n }\n return result\n }\n\n function arrayToRules(array) {\n var result = []\n for (var i = 0; i < array.length; i++) {\n var obj = array[i]\n if (obj.include) {\n var include = [].concat(obj.include)\n for (var j = 0; j < include.length; j++) {\n result.push({include: include[j]})\n }\n continue\n }\n if (!obj.type) {\n throw new Error('Rule has no type: ' + JSON.stringify(obj))\n }\n result.push(ruleOptions(obj.type, obj))\n }\n return result\n }\n\n function ruleOptions(type, obj) {\n if (!isObject(obj)) {\n obj = { match: obj }\n }\n if (obj.include) {\n throw new Error('Matching rules cannot also include states')\n }\n\n // nb. error and fallback imply lineBreaks\n var options = {\n defaultType: type,\n lineBreaks: !!obj.error || !!obj.fallback,\n pop: false,\n next: null,\n push: null,\n error: false,\n fallback: false,\n value: null,\n type: null,\n shouldThrow: false,\n }\n\n // Avoid Object.assign(), so we support IE9+\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n options[key] = obj[key]\n }\n }\n\n // type transform cannot be a string\n if (typeof options.type === 'string' && type !== options.type) {\n throw new Error(\"Type transform cannot be a string (type '\" + options.type + \"' for token '\" + type + \"')\")\n }\n\n // convert to array\n var match = options.match\n options.match = Array.isArray(match) ? match : match ? [match] : []\n options.match.sort(function(a, b) {\n return isRegExp(a) && isRegExp(b) ? 0\n : isRegExp(b) ? -1 : isRegExp(a) ? +1 : b.length - a.length\n })\n return options\n }\n\n function toRules(spec) {\n return Array.isArray(spec) ? arrayToRules(spec) : objectToRules(spec)\n }\n\n var defaultErrorRule = ruleOptions('error', {lineBreaks: true, shouldThrow: true})\n function compileRules(rules, hasStates) {\n var errorRule = null\n var fast = Object.create(null)\n var fastAllowed = true\n var unicodeFlag = null\n var groups = []\n var parts = []\n\n // If there is a fallback rule, then disable fast matching\n for (var i = 0; i < rules.length; i++) {\n if (rules[i].fallback) {\n fastAllowed = false\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var options = rules[i]\n\n if (options.include) {\n // all valid inclusions are removed by states() preprocessor\n throw new Error('Inheritance is not allowed in stateless lexers')\n }\n\n if (options.error || options.fallback) {\n // errorRule can only be set once\n if (errorRule) {\n if (!options.fallback === !errorRule.fallback) {\n throw new Error(\"Multiple \" + (options.fallback ? \"fallback\" : \"error\") + \" rules not allowed (for token '\" + options.defaultType + \"')\")\n } else {\n throw new Error(\"fallback and error are mutually exclusive (for token '\" + options.defaultType + \"')\")\n }\n }\n errorRule = options\n }\n\n var match = options.match.slice()\n if (fastAllowed) {\n while (match.length && typeof match[0] === 'string' && match[0].length === 1) {\n var word = match.shift()\n fast[word.charCodeAt(0)] = options\n }\n }\n\n // Warn about inappropriate state-switching options\n if (options.pop || options.push || options.next) {\n if (!hasStates) {\n throw new Error(\"State-switching options are not allowed in stateless lexers (for token '\" + options.defaultType + \"')\")\n }\n if (options.fallback) {\n throw new Error(\"State-switching options are not allowed on fallback tokens (for token '\" + options.defaultType + \"')\")\n }\n }\n\n // Only rules with a .match are included in the RegExp\n if (match.length === 0) {\n continue\n }\n fastAllowed = false\n\n groups.push(options)\n\n // Check unicode flag is used everywhere or nowhere\n for (var j = 0; j < match.length; j++) {\n var obj = match[j]\n if (!isRegExp(obj)) {\n continue\n }\n\n if (unicodeFlag === null) {\n unicodeFlag = obj.unicode\n } else if (unicodeFlag !== obj.unicode && options.fallback === false) {\n throw new Error('If one rule is /u then all must be')\n }\n }\n\n // convert to RegExp\n var pat = reUnion(match.map(regexpOrLiteral))\n\n // validate\n var regexp = new RegExp(pat)\n if (regexp.test(\"\")) {\n throw new Error(\"RegExp matches empty string: \" + regexp)\n }\n var groupCount = reGroups(pat)\n if (groupCount > 0) {\n throw new Error(\"RegExp has capture groups: \" + regexp + \"\\nUse (?: … ) instead\")\n }\n\n // try and detect rules matching newlines\n if (!options.lineBreaks && regexp.test('\\n')) {\n throw new Error('Rule should declare lineBreaks: ' + regexp)\n }\n\n // store regex\n parts.push(reCapture(pat))\n }\n\n\n // If there's no fallback rule, use the sticky flag so we only look for\n // matches at the current index.\n //\n // If we don't support the sticky flag, then fake it using an irrefutable\n // match (i.e. an empty pattern).\n var fallbackRule = errorRule && errorRule.fallback\n var flags = hasSticky && !fallbackRule ? 'ym' : 'gm'\n var suffix = hasSticky || fallbackRule ? '' : '|'\n\n if (unicodeFlag === true) flags += \"u\"\n var combined = new RegExp(reUnion(parts) + suffix, flags)\n return {regexp: combined, groups: groups, fast: fast, error: errorRule || defaultErrorRule}\n }\n\n function compile(rules) {\n var result = compileRules(toRules(rules))\n return new Lexer({start: result}, 'start')\n }\n\n function checkStateGroup(g, name, map) {\n var state = g && (g.push || g.next)\n if (state && !map[state]) {\n throw new Error(\"Missing state '\" + state + \"' (in token '\" + g.defaultType + \"' of state '\" + name + \"')\")\n }\n if (g && g.pop && +g.pop !== 1) {\n throw new Error(\"pop must be 1 (in token '\" + g.defaultType + \"' of state '\" + name + \"')\")\n }\n }\n function compileStates(states, start) {\n var all = states.$all ? toRules(states.$all) : []\n delete states.$all\n\n var keys = Object.getOwnPropertyNames(states)\n if (!start) start = keys[0]\n\n var ruleMap = Object.create(null)\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i]\n ruleMap[key] = toRules(states[key]).concat(all)\n }\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i]\n var rules = ruleMap[key]\n var included = Object.create(null)\n for (var j = 0; j < rules.length; j++) {\n var rule = rules[j]\n if (!rule.include) continue\n var splice = [j, 1]\n if (rule.include !== key && !included[rule.include]) {\n included[rule.include] = true\n var newRules = ruleMap[rule.include]\n if (!newRules) {\n throw new Error(\"Cannot include nonexistent state '\" + rule.include + \"' (in state '\" + key + \"')\")\n }\n for (var k = 0; k < newRules.length; k++) {\n var newRule = newRules[k]\n if (rules.indexOf(newRule) !== -1) continue\n splice.push(newRule)\n }\n }\n rules.splice.apply(rules, splice)\n j--\n }\n }\n\n var map = Object.create(null)\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i]\n map[key] = compileRules(ruleMap[key], true)\n }\n\n for (var i = 0; i < keys.length; i++) {\n var name = keys[i]\n var state = map[name]\n var groups = state.groups\n for (var j = 0; j < groups.length; j++) {\n checkStateGroup(groups[j], name, map)\n }\n var fastKeys = Object.getOwnPropertyNames(state.fast)\n for (var j = 0; j < fastKeys.length; j++) {\n checkStateGroup(state.fast[fastKeys[j]], name, map)\n }\n }\n\n return new Lexer(map, start)\n }\n\n function keywordTransform(map) {\n\n // Use a JavaScript Map to map keywords to their corresponding token type\n // unless Map is unsupported, then fall back to using an Object:\n var isMap = typeof Map !== 'undefined'\n var reverseMap = isMap ? new Map : Object.create(null)\n\n var types = Object.getOwnPropertyNames(map)\n for (var i = 0; i < types.length; i++) {\n var tokenType = types[i]\n var item = map[tokenType]\n var keywordList = Array.isArray(item) ? item : [item]\n keywordList.forEach(function(keyword) {\n if (typeof keyword !== 'string') {\n throw new Error(\"keyword must be string (in keyword '\" + tokenType + \"')\")\n }\n if (isMap) {\n reverseMap.set(keyword, tokenType)\n } else {\n reverseMap[keyword] = tokenType\n }\n })\n }\n return function(k) {\n return isMap ? reverseMap.get(k) : reverseMap[k]\n }\n }\n\n /***************************************************************************/\n\n var Lexer = function(states, state) {\n this.startState = state\n this.states = states\n this.buffer = ''\n this.stack = []\n this.reset()\n }\n\n Lexer.prototype.reset = function(data, info) {\n this.buffer = data || ''\n this.index = 0\n this.line = info ? info.line : 1\n this.col = info ? info.col : 1\n this.queuedToken = info ? info.queuedToken : null\n this.queuedText = info ? info.queuedText: \"\";\n this.queuedThrow = info ? info.queuedThrow : null\n this.setState(info ? info.state : this.startState)\n this.stack = info && info.stack ? info.stack.slice() : []\n return this\n }\n\n Lexer.prototype.save = function() {\n return {\n line: this.line,\n col: this.col,\n state: this.state,\n stack: this.stack.slice(),\n queuedToken: this.queuedToken,\n queuedText: this.queuedText,\n queuedThrow: this.queuedThrow,\n }\n }\n\n Lexer.prototype.setState = function(state) {\n if (!state || this.state === state) return\n this.state = state\n var info = this.states[state]\n this.groups = info.groups\n this.error = info.error\n this.re = info.regexp\n this.fast = info.fast\n }\n\n Lexer.prototype.popState = function() {\n this.setState(this.stack.pop())\n }\n\n Lexer.prototype.pushState = function(state) {\n this.stack.push(this.state)\n this.setState(state)\n }\n\n var eat = hasSticky ? function(re, buffer) { // assume re is /y\n return re.exec(buffer)\n } : function(re, buffer) { // assume re is /g\n var match = re.exec(buffer)\n // will always match, since we used the |(?:) trick\n if (match[0].length === 0) {\n return null\n }\n return match\n }\n\n Lexer.prototype._getGroup = function(match) {\n var groupCount = this.groups.length\n for (var i = 0; i < groupCount; i++) {\n if (match[i + 1] !== undefined) {\n return this.groups[i]\n }\n }\n throw new Error('Cannot find token type for matched text')\n }\n\n function tokenToString() {\n return this.value\n }\n\n Lexer.prototype.next = function() {\n var index = this.index\n\n // If a fallback token matched, we don't need to re-run the RegExp\n if (this.queuedGroup) {\n var token = this._token(this.queuedGroup, this.queuedText, index)\n this.queuedGroup = null\n this.queuedText = \"\"\n return token\n }\n\n var buffer = this.buffer\n if (index === buffer.length) {\n return // EOF\n }\n\n // Fast matching for single characters\n var group = this.fast[buffer.charCodeAt(index)]\n if (group) {\n return this._token(group, buffer.charAt(index), index)\n }\n\n // Execute RegExp\n var re = this.re\n re.lastIndex = index\n var match = eat(re, buffer)\n\n // Error tokens match the remaining buffer\n var error = this.error\n if (match == null) {\n return this._token(error, buffer.slice(index, buffer.length), index)\n }\n\n var group = this._getGroup(match)\n var text = match[0]\n\n if (error.fallback && match.index !== index) {\n this.queuedGroup = group\n this.queuedText = text\n\n // Fallback tokens contain the unmatched portion of the buffer\n return this._token(error, buffer.slice(index, match.index), index)\n }\n\n return this._token(group, text, index)\n }\n\n Lexer.prototype._token = function(group, text, offset) {\n // count line breaks\n var lineBreaks = 0\n if (group.lineBreaks) {\n var matchNL = /\\n/g\n var nl = 1\n if (text === '\\n') {\n lineBreaks = 1\n } else {\n while (matchNL.exec(text)) { lineBreaks++; nl = matchNL.lastIndex }\n }\n }\n\n var token = {\n type: (typeof group.type === 'function' && group.type(text)) || group.defaultType,\n value: typeof group.value === 'function' ? group.value(text) : text,\n text: text,\n toString: tokenToString,\n offset: offset,\n lineBreaks: lineBreaks,\n line: this.line,\n col: this.col,\n }\n // nb. adding more props to token object will make V8 sad!\n\n var size = text.length\n this.index += size\n this.line += lineBreaks\n if (lineBreaks !== 0) {\n this.col = size - nl + 1\n } else {\n this.col += size\n }\n\n // throw, if no rule with {error: true}\n if (group.shouldThrow) {\n var err = new Error(this.formatError(token, \"invalid syntax\"))\n throw err;\n }\n\n if (group.pop) this.popState()\n else if (group.push) this.pushState(group.push)\n else if (group.next) this.setState(group.next)\n\n return token\n }\n\n if (typeof Symbol !== 'undefined' && Symbol.iterator) {\n var LexerIterator = function(lexer) {\n this.lexer = lexer\n }\n\n LexerIterator.prototype.next = function() {\n var token = this.lexer.next()\n return {value: token, done: !token}\n }\n\n LexerIterator.prototype[Symbol.iterator] = function() {\n return this\n }\n\n Lexer.prototype[Symbol.iterator] = function() {\n return new LexerIterator(this)\n }\n }\n\n Lexer.prototype.formatError = function(token, message) {\n if (token == null) {\n // An undefined token indicates EOF\n var text = this.buffer.slice(this.index)\n var token = {\n text: text,\n offset: this.index,\n lineBreaks: text.indexOf('\\n') === -1 ? 0 : 1,\n line: this.line,\n col: this.col,\n }\n }\n \n var numLinesAround = 2\n var firstDisplayedLine = Math.max(token.line - numLinesAround, 1)\n var lastDisplayedLine = token.line + numLinesAround\n var lastLineDigits = String(lastDisplayedLine).length\n var displayedLines = lastNLines(\n this.buffer, \n (this.line - token.line) + numLinesAround + 1\n )\n .slice(0, 5)\n var errorLines = []\n errorLines.push(message + \" at line \" + token.line + \" col \" + token.col + \":\")\n errorLines.push(\"\")\n for (var i = 0; i < displayedLines.length; i++) {\n var line = displayedLines[i]\n var lineNo = firstDisplayedLine + i\n errorLines.push(pad(String(lineNo), lastLineDigits) + \" \" + line);\n if (lineNo === token.line) {\n errorLines.push(pad(\"\", lastLineDigits + token.col + 1) + \"^\")\n }\n }\n return errorLines.join(\"\\n\")\n }\n\n Lexer.prototype.clone = function() {\n return new Lexer(this.states, this.state)\n }\n\n Lexer.prototype.has = function(tokenType) {\n return true\n }\n\n\n return {\n compile: compile,\n states: compileStates,\n error: Object.freeze({error: true}),\n fallback: Object.freeze({fallback: true}),\n keywords: keywordTransform,\n }\n\n}));\n"],"names":["this"],"mappings":"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","x_google_ignoreList":[0]}