solve-engine 1.0.0-beta.7 → 1.0.0
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.
- package/dist/{BytecodeBuilder-3egMyuDi.d.cts → BytecodeBuilder-B0xskcv5.d.cts} +2 -1
- package/dist/{BytecodeBuilder-3egMyuDi.d.ts → BytecodeBuilder-B0xskcv5.d.ts} +2 -1
- package/dist/{Configuration-fVpd-HC-.d.cts → Configuration-B-G5gTRn.d.cts} +107 -29
- package/dist/{Configuration-fVpd-HC-.d.ts → Configuration-B-G5gTRn.d.ts} +107 -29
- package/dist/{EngineError-DvPSnhZi.d.cts → EngineError-LU7W7AgI.d.cts} +96 -16
- package/dist/{EngineError-DvPSnhZi.d.ts → EngineError-LU7W7AgI.d.ts} +96 -16
- package/dist/{Lexer-W9MBOP0V.d.ts → Lexer-BN5mt30n.d.ts} +16 -0
- package/dist/{Lexer-Cfm79Dak.d.cts → Lexer-D78E2yDW.d.cts} +16 -0
- package/dist/{PackageRegistry-CjDt-Jy_.d.ts → PackageRegistry-DFeINv2O.d.ts} +54 -13
- package/dist/{PackageRegistry-pHtKythi.d.cts → PackageRegistry-u2zdfFaj.d.cts} +54 -13
- package/dist/{Parselet-DEdF9I7n.d.ts → Parselet-BaySkMV3.d.ts} +37 -5
- package/dist/{Parselet-Cu0bLSis.d.cts → Parselet-DuI1Pjiq.d.cts} +37 -5
- package/dist/{ScopeManager-CKfQtl7l.d.cts → ScopeManager-B6GzdhVG.d.cts} +75 -6
- package/dist/{ScopeManager-B5k0nk05.d.ts → ScopeManager-udv4Twwq.d.ts} +75 -6
- package/dist/{VMCheckpoints-BmDwIXgK.d.ts → VMCheckpoints-BiaIlOOY.d.ts} +4 -4
- package/dist/{VMCheckpoints-CqFuLwrT.d.cts → VMCheckpoints-DwLjivM7.d.cts} +4 -4
- package/dist/{Value-KtAQNHur.d.cts → Value-CXJqDH9J.d.cts} +5 -2
- package/dist/{Value-KtAQNHur.d.ts → Value-CXJqDH9J.d.ts} +5 -2
- package/dist/{chunk-CSG5XVNJ.cjs → chunk-3AFRJYP4.cjs} +556 -414
- package/dist/chunk-3AFRJYP4.cjs.map +1 -0
- package/dist/chunk-3BOK2LDK.js +17 -0
- package/dist/chunk-3BOK2LDK.js.map +1 -0
- package/dist/{chunk-6RDSQURE.js → chunk-3D7V24DG.js} +57 -6
- package/dist/chunk-3D7V24DG.js.map +1 -0
- package/dist/{chunk-MEOHSQEH.js → chunk-3LAEG75D.js} +47 -15
- package/dist/chunk-3LAEG75D.js.map +1 -0
- package/dist/{chunk-P75775WC.js → chunk-3VNGREMU.js} +118 -41
- package/dist/chunk-3VNGREMU.js.map +1 -0
- package/dist/{chunk-4AVD7NZW.cjs → chunk-4B2CNWQU.cjs} +13 -7
- package/dist/chunk-4B2CNWQU.cjs.map +1 -0
- package/dist/{chunk-6GCKCWLB.js → chunk-526PMQOA.js} +126 -69
- package/dist/chunk-526PMQOA.js.map +1 -0
- package/dist/{chunk-2CS6OMZK.js → chunk-5F4C26RU.js} +8 -5
- package/dist/chunk-5F4C26RU.js.map +1 -0
- package/dist/{chunk-M4N5GA5Z.cjs → chunk-5KMIY374.cjs} +57 -6
- package/dist/chunk-5KMIY374.cjs.map +1 -0
- package/dist/{chunk-R24DI24X.cjs → chunk-5LI5EPGJ.cjs} +6 -5
- package/dist/chunk-5LI5EPGJ.cjs.map +1 -0
- package/dist/{chunk-BAMZT3GL.js → chunk-5WVP4YHP.js} +939 -134
- package/dist/chunk-5WVP4YHP.js.map +1 -0
- package/dist/{chunk-MZOVP3WI.cjs → chunk-6KFYJ6TD.cjs} +3 -2
- package/dist/chunk-6KFYJ6TD.cjs.map +1 -0
- package/dist/{chunk-BXKJLM5R.cjs → chunk-6WFMPTGB.cjs} +972 -636
- package/dist/chunk-6WFMPTGB.cjs.map +1 -0
- package/dist/{chunk-2MV4HBKC.cjs → chunk-A2N2GFCG.cjs} +10 -10
- package/dist/{chunk-2MV4HBKC.cjs.map → chunk-A2N2GFCG.cjs.map} +1 -1
- package/dist/chunk-ADBA3XBE.cjs +20 -0
- package/dist/chunk-ADBA3XBE.cjs.map +1 -0
- package/dist/{chunk-MBNQVDVC.cjs → chunk-AMOJYLG2.cjs} +16 -10
- package/dist/chunk-AMOJYLG2.cjs.map +1 -0
- package/dist/{chunk-CLVQBF5C.cjs → chunk-AQNHHJMJ.cjs} +5 -5
- package/dist/{chunk-CLVQBF5C.cjs.map → chunk-AQNHHJMJ.cjs.map} +1 -1
- package/dist/{chunk-AHCLWAM5.cjs → chunk-BHTNFEGZ.cjs} +13 -13
- package/dist/chunk-BHTNFEGZ.cjs.map +1 -0
- package/dist/{chunk-35IWNZPJ.cjs → chunk-E4NUZXVK.cjs} +58 -27
- package/dist/chunk-E4NUZXVK.cjs.map +1 -0
- package/dist/{chunk-P33SBYGG.js → chunk-GLG5ZMX7.js} +54 -23
- package/dist/chunk-GLG5ZMX7.js.map +1 -0
- package/dist/{chunk-BVAR5J2F.js → chunk-GQCOSXMG.js} +117 -6
- package/dist/chunk-GQCOSXMG.js.map +1 -0
- package/dist/{chunk-QDMPOAI7.cjs → chunk-HDP7VK3C.cjs} +1118 -313
- package/dist/chunk-HDP7VK3C.cjs.map +1 -0
- package/dist/{chunk-GVWHCL2N.js → chunk-HMOISHXR.js} +217 -75
- package/dist/chunk-HMOISHXR.js.map +1 -0
- package/dist/{chunk-MTX2KVU7.cjs → chunk-HVQFNJKE.cjs} +122 -90
- package/dist/chunk-HVQFNJKE.cjs.map +1 -0
- package/dist/{chunk-OC6LTXYS.cjs → chunk-JMXUNXQS.cjs} +126 -7
- package/dist/chunk-JMXUNXQS.cjs.map +1 -0
- package/dist/{chunk-WWOLFXTX.cjs → chunk-KBSXGXPM.cjs} +10 -7
- package/dist/chunk-KBSXGXPM.cjs.map +1 -0
- package/dist/{chunk-YU2CUNFO.js → chunk-KV7UW6T6.js} +11 -5
- package/dist/chunk-KV7UW6T6.js.map +1 -0
- package/dist/{chunk-CCJPSHGI.cjs → chunk-N7FNVFXW.cjs} +4 -12
- package/dist/chunk-N7FNVFXW.cjs.map +1 -0
- package/dist/{chunk-CYFK5SY2.js → chunk-O3ANBHSA.js} +169 -39
- package/dist/chunk-O3ANBHSA.js.map +1 -0
- package/dist/{chunk-NZFKROS7.cjs → chunk-PA4VC73I.cjs} +130 -72
- package/dist/chunk-PA4VC73I.cjs.map +1 -0
- package/dist/{chunk-NJTXJ5AG.cjs → chunk-PFUESQTW.cjs} +18 -18
- package/dist/{chunk-NJTXJ5AG.cjs.map → chunk-PFUESQTW.cjs.map} +1 -1
- package/dist/{chunk-SFQWJMKT.js → chunk-QY25VWBF.js} +51 -12
- package/dist/chunk-QY25VWBF.js.map +1 -0
- package/dist/{chunk-WC5FFSHB.js → chunk-R3PY4G7J.js} +3 -3
- package/dist/{chunk-WC5FFSHB.js.map → chunk-R3PY4G7J.js.map} +1 -1
- package/dist/{chunk-M5E34VG5.js → chunk-SBUFNJVE.js} +3 -3
- package/dist/{chunk-M5E34VG5.js.map → chunk-SBUFNJVE.js.map} +1 -1
- package/dist/{chunk-UKPGSAZW.js → chunk-TMA4RCEN.js} +3 -3
- package/dist/{chunk-UKPGSAZW.js.map → chunk-TMA4RCEN.js.map} +1 -1
- package/dist/{chunk-V6HA6JJZ.cjs → chunk-U5VAY32K.cjs} +215 -138
- package/dist/chunk-U5VAY32K.cjs.map +1 -0
- package/dist/{chunk-DUEZFTK2.js → chunk-UKQHXPGW.js} +4 -12
- package/dist/chunk-UKQHXPGW.js.map +1 -0
- package/dist/{chunk-4CVLFLOB.cjs → chunk-UM6BVY2S.cjs} +201 -69
- package/dist/chunk-UM6BVY2S.cjs.map +1 -0
- package/dist/{chunk-75JP4BZX.js → chunk-UQ3UIZJC.js} +3 -2
- package/dist/chunk-UQ3UIZJC.js.map +1 -0
- package/dist/{chunk-PCPX42KL.js → chunk-V4XG5QF6.js} +16 -10
- package/dist/chunk-V4XG5QF6.js.map +1 -0
- package/dist/{chunk-GPPLSM2Z.js → chunk-VB37OC6I.js} +6 -5
- package/dist/chunk-VB37OC6I.js.map +1 -0
- package/dist/{chunk-MVBEL57Q.js → chunk-Y7FT4IQT.js} +500 -170
- package/dist/chunk-Y7FT4IQT.js.map +1 -0
- package/dist/{chunk-OFXOTECC.js → chunk-YPPPYLSR.js} +7 -7
- package/dist/chunk-YPPPYLSR.js.map +1 -0
- package/dist/{chunk-M4F66R4O.cjs → chunk-YWQ6V4ZN.cjs} +121 -82
- package/dist/chunk-YWQ6V4ZN.cjs.map +1 -0
- package/dist/constants.cjs +5 -5
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +2 -2
- package/dist/engine.cjs +31 -31
- package/dist/engine.d.cts +11 -11
- package/dist/engine.d.ts +11 -11
- package/dist/engine.js +21 -21
- package/dist/errors.cjs +19 -19
- package/dist/errors.d.cts +2 -2
- package/dist/errors.d.ts +2 -2
- package/dist/errors.js +1 -1
- package/dist/format.cjs +29 -22
- package/dist/format.cjs.map +1 -1
- package/dist/format.d.cts +1 -2
- package/dist/format.d.ts +1 -2
- package/dist/format.js +23 -16
- package/dist/format.js.map +1 -1
- package/dist/index.cjs +31 -31
- package/dist/index.d.cts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +22 -22
- package/dist/language.cjs +8 -8
- package/dist/language.cjs.map +1 -1
- package/dist/language.d.cts +10 -10
- package/dist/language.d.ts +10 -10
- package/dist/language.js +6 -6
- package/dist/language.js.map +1 -1
- package/dist/lexer.cjs +18 -18
- package/dist/lexer.d.cts +2 -2
- package/dist/lexer.d.ts +2 -2
- package/dist/lexer.js +6 -6
- package/dist/normalizer.cjs +12 -12
- package/dist/normalizer.js +6 -6
- package/dist/packages.cjs +39 -39
- package/dist/packages.d.cts +9 -9
- package/dist/packages.d.ts +9 -9
- package/dist/packages.js +16 -16
- package/dist/parser.cjs +15 -15
- package/dist/parser.d.cts +23 -9
- package/dist/parser.d.ts +23 -9
- package/dist/parser.js +5 -5
- package/dist/{pipeline-CrsRPmsv.d.ts → pipeline-B6k5lCB7.d.ts} +1 -1
- package/dist/{pipeline-DPUQt7yL.d.cts → pipeline-BEb3hujr.d.cts} +1 -1
- package/dist/resolvers.d.cts +2 -2
- package/dist/resolvers.d.ts +2 -2
- package/dist/uom.cjs +17 -17
- package/dist/uom.d.cts +2 -2
- package/dist/uom.d.ts +2 -2
- package/dist/uom.js +7 -7
- package/dist/utilities.cjs +8 -4
- package/dist/utilities.d.cts +19 -3
- package/dist/utilities.d.ts +19 -3
- package/dist/utilities.js +2 -2
- package/dist/vm.cjs +43 -31
- package/dist/vm.d.cts +105 -9
- package/dist/vm.d.ts +105 -9
- package/dist/vm.js +9 -9
- package/package.json +1 -1
- package/dist/chunk-2CS6OMZK.js.map +0 -1
- package/dist/chunk-35IWNZPJ.cjs.map +0 -1
- package/dist/chunk-4AVD7NZW.cjs.map +0 -1
- package/dist/chunk-4CVLFLOB.cjs.map +0 -1
- package/dist/chunk-6GCKCWLB.js.map +0 -1
- package/dist/chunk-6RDSQURE.js.map +0 -1
- package/dist/chunk-75JP4BZX.js.map +0 -1
- package/dist/chunk-AHCLWAM5.cjs.map +0 -1
- package/dist/chunk-BAMZT3GL.js.map +0 -1
- package/dist/chunk-BVAR5J2F.js.map +0 -1
- package/dist/chunk-BXKJLM5R.cjs.map +0 -1
- package/dist/chunk-CCJPSHGI.cjs.map +0 -1
- package/dist/chunk-CSG5XVNJ.cjs.map +0 -1
- package/dist/chunk-CYFK5SY2.js.map +0 -1
- package/dist/chunk-DUEZFTK2.js.map +0 -1
- package/dist/chunk-GPPLSM2Z.js.map +0 -1
- package/dist/chunk-GVWHCL2N.js.map +0 -1
- package/dist/chunk-M4F66R4O.cjs.map +0 -1
- package/dist/chunk-M4N5GA5Z.cjs.map +0 -1
- package/dist/chunk-MBNQVDVC.cjs.map +0 -1
- package/dist/chunk-MEOHSQEH.js.map +0 -1
- package/dist/chunk-MTX2KVU7.cjs.map +0 -1
- package/dist/chunk-MVBEL57Q.js.map +0 -1
- package/dist/chunk-MZOVP3WI.cjs.map +0 -1
- package/dist/chunk-N5YFR4UP.cjs +0 -10
- package/dist/chunk-N5YFR4UP.cjs.map +0 -1
- package/dist/chunk-NZFKROS7.cjs.map +0 -1
- package/dist/chunk-OC6LTXYS.cjs.map +0 -1
- package/dist/chunk-OFXOTECC.js.map +0 -1
- package/dist/chunk-P33SBYGG.js.map +0 -1
- package/dist/chunk-P75775WC.js.map +0 -1
- package/dist/chunk-PCPX42KL.js.map +0 -1
- package/dist/chunk-PFSDGGYL.js +0 -8
- package/dist/chunk-PFSDGGYL.js.map +0 -1
- package/dist/chunk-QDMPOAI7.cjs.map +0 -1
- package/dist/chunk-R24DI24X.cjs.map +0 -1
- package/dist/chunk-SFQWJMKT.js.map +0 -1
- package/dist/chunk-V6HA6JJZ.cjs.map +0 -1
- package/dist/chunk-WWOLFXTX.cjs.map +0 -1
- package/dist/chunk-YU2CUNFO.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk5LI5EPGJ_cjs = require('./chunk-5LI5EPGJ.cjs');
|
|
4
4
|
var chunkOUHT5Z36_cjs = require('./chunk-OUHT5Z36.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var chunkAQNHHJMJ_cjs = require('./chunk-AQNHHJMJ.cjs');
|
|
6
|
+
var chunk5KMIY374_cjs = require('./chunk-5KMIY374.cjs');
|
|
7
7
|
|
|
8
8
|
// src/lexer/ExpressionLexer.ts
|
|
9
|
-
|
|
9
|
+
chunk5LI5EPGJ_cjs.registerAllTokenTypes();
|
|
10
10
|
function buildCharClassTable() {
|
|
11
11
|
const table = new Uint8Array(128);
|
|
12
12
|
for (let i = 48; i <= 57; i++) table[i] = 2 /* DIGIT */;
|
|
@@ -48,6 +48,19 @@ function buildCharClassTable() {
|
|
|
48
48
|
table[96] = 11 /* BACKTICK */;
|
|
49
49
|
return table;
|
|
50
50
|
}
|
|
51
|
+
function isUnicodeSpace(cc) {
|
|
52
|
+
return cc === 133 || // NEL, next line
|
|
53
|
+
cc === 160 || // no-break space
|
|
54
|
+
cc === 5760 || // ogham space mark
|
|
55
|
+
cc >= 8192 && cc <= 8202 || // en quad through hair space, incl. figure/thin space
|
|
56
|
+
cc === 8203 || // zero-width space
|
|
57
|
+
cc === 8232 || // line separator
|
|
58
|
+
cc === 8233 || // paragraph separator
|
|
59
|
+
cc === 8239 || // narrow no-break space
|
|
60
|
+
cc === 8287 || // medium mathematical space
|
|
61
|
+
cc === 12288 || // ideographic space
|
|
62
|
+
cc === 65279;
|
|
63
|
+
}
|
|
51
64
|
var LexerToken = class {
|
|
52
65
|
constructor(type, typeId, value, text, offset, lineBreaks, line, col, sourceEnd) {
|
|
53
66
|
this.type = type;
|
|
@@ -205,7 +218,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
205
218
|
this.keywordMap.set(k.toLowerCase(), v);
|
|
206
219
|
}
|
|
207
220
|
this.mergedKeywords = new Map(this.keywordMap);
|
|
208
|
-
this.mergedUnits = new Set(
|
|
221
|
+
this.mergedUnits = new Set(chunkAQNHHJMJ_cjs.knownUnits);
|
|
209
222
|
}
|
|
210
223
|
/**
|
|
211
224
|
* Test `text` against every registered `rawLinePatterns` rule, in
|
|
@@ -220,7 +233,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
220
233
|
if (m && typeof m[1] === "string") {
|
|
221
234
|
const value = m[1].trim();
|
|
222
235
|
if (value.length > 0) {
|
|
223
|
-
return new LexerToken(rule.tokenType,
|
|
236
|
+
return new LexerToken(rule.tokenType, chunk5LI5EPGJ_cjs.tokenTypeId(rule.tokenType), value, value, 0, 0, this.line, 1);
|
|
224
237
|
}
|
|
225
238
|
}
|
|
226
239
|
}
|
|
@@ -229,7 +242,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
229
242
|
/** Rebuild merged keyword and unit collections after plugin registration. */
|
|
230
243
|
rebuildMergedCollections() {
|
|
231
244
|
this.mergedKeywords = new Map([...this.keywordMap, ...this.pluginKeywordMap]);
|
|
232
|
-
this.mergedUnits = /* @__PURE__ */ new Set([...
|
|
245
|
+
this.mergedUnits = /* @__PURE__ */ new Set([...chunkAQNHHJMJ_cjs.knownUnits, ...this.pluginUnits]);
|
|
233
246
|
}
|
|
234
247
|
/**
|
|
235
248
|
* Register a plugin to extend the lexer with custom tokens.
|
|
@@ -250,7 +263,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
250
263
|
for (const [keyword, tokenType] of Object.entries(plugin.keywords)) {
|
|
251
264
|
const lower = keyword.toLowerCase();
|
|
252
265
|
if (this.keywordMap.has(lower)) {
|
|
253
|
-
throw
|
|
266
|
+
throw chunk5KMIY374_cjs.ErrorFactory.config(
|
|
254
267
|
"PLUGIN_KEYWORD_COLLISION",
|
|
255
268
|
`Plugin keyword "${keyword}" conflicts with built-in keyword (type: ${this.keywordMap.get(lower)}). Built-in keywords cannot be overridden.`,
|
|
256
269
|
{ keyword, builtinType: this.keywordMap.get(lower) }
|
|
@@ -268,28 +281,28 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
268
281
|
const second = chars.charCodeAt(1);
|
|
269
282
|
const builtInSecondMap = TWO_CHAR_OPS[first];
|
|
270
283
|
if (builtInSecondMap && builtInSecondMap[second] !== void 0) {
|
|
271
|
-
throw
|
|
284
|
+
throw chunk5KMIY374_cjs.ErrorFactory.config(
|
|
272
285
|
"PLUGIN_OPERATOR_COLLISION",
|
|
273
286
|
`Plugin operator "${chars}" conflicts with built-in operator (type: ${builtInSecondMap[second]}). Built-in operators cannot be overridden.`,
|
|
274
287
|
{ operator: chars, builtinType: builtInSecondMap[second] }
|
|
275
288
|
);
|
|
276
289
|
}
|
|
277
290
|
if (first === 60 && second === 60) {
|
|
278
|
-
throw
|
|
291
|
+
throw chunk5KMIY374_cjs.ErrorFactory.config(
|
|
279
292
|
"PLUGIN_OPERATOR_COLLISION",
|
|
280
293
|
`Plugin operator "${chars}" conflicts with built-in operator (type: LSHIFT). Built-in operators cannot be overridden.`,
|
|
281
294
|
{ operator: chars, builtinType: "LSHIFT" }
|
|
282
295
|
);
|
|
283
296
|
}
|
|
284
297
|
if (first === 62 && second === 62) {
|
|
285
|
-
throw
|
|
298
|
+
throw chunk5KMIY374_cjs.ErrorFactory.config(
|
|
286
299
|
"PLUGIN_OPERATOR_COLLISION",
|
|
287
300
|
`Plugin operator "${chars}" conflicts with built-in operator (type: RSHIFT). Built-in operators cannot be overridden.`,
|
|
288
301
|
{ operator: chars, builtinType: "RSHIFT" }
|
|
289
302
|
);
|
|
290
303
|
}
|
|
291
304
|
if (first === 47 && second === 47) {
|
|
292
|
-
throw
|
|
305
|
+
throw chunk5KMIY374_cjs.ErrorFactory.config(
|
|
293
306
|
"PLUGIN_OPERATOR_COLLISION",
|
|
294
307
|
`Plugin operator "${chars}" conflicts with built-in comment sequence. Comment sequences cannot be overridden.`,
|
|
295
308
|
{ operator: chars, builtinType: "COMMENT" }
|
|
@@ -306,8 +319,8 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
306
319
|
}
|
|
307
320
|
if (plugin.units) {
|
|
308
321
|
for (const unit of plugin.units) {
|
|
309
|
-
if (
|
|
310
|
-
throw
|
|
322
|
+
if (chunkAQNHHJMJ_cjs.knownUnits.has(unit)) {
|
|
323
|
+
throw chunk5KMIY374_cjs.ErrorFactory.config(
|
|
311
324
|
"PLUGIN_UNIT_COLLISION",
|
|
312
325
|
`Plugin unit "${unit}" conflicts with a built-in unit. Built-in units cannot be overridden.`,
|
|
313
326
|
{ unit }
|
|
@@ -527,20 +540,20 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
527
540
|
switch (cc) {
|
|
528
541
|
case 2 /* DIGIT */:
|
|
529
542
|
case 4 /* DOT */:
|
|
530
|
-
yield new LexerToken("NUMBER",
|
|
543
|
+
yield new LexerToken("NUMBER", chunk5LI5EPGJ_cjs.tokenTypeId("NUMBER"), this.input, this.input, 0, 0, 1, 1);
|
|
531
544
|
tokenIndex++;
|
|
532
545
|
break;
|
|
533
546
|
case 3 /* ALPHA */: {
|
|
534
547
|
const input2 = this.input;
|
|
535
548
|
const identLower = input2.toLowerCase();
|
|
536
549
|
if (this.mergedUnits.has(input2)) {
|
|
537
|
-
yield new LexerToken("UNIT",
|
|
550
|
+
yield new LexerToken("UNIT", chunk5LI5EPGJ_cjs.tokenTypeId("UNIT"), input2, input2, 0, 0, 1, 1);
|
|
538
551
|
} else {
|
|
539
552
|
const kwType = this.mergedKeywords.get(identLower);
|
|
540
553
|
if (kwType) {
|
|
541
|
-
yield new LexerToken(kwType,
|
|
554
|
+
yield new LexerToken(kwType, chunk5LI5EPGJ_cjs.tokenTypeId(kwType), input2, input2, 0, 0, 1, 1);
|
|
542
555
|
} else {
|
|
543
|
-
yield new LexerToken("IDENT",
|
|
556
|
+
yield new LexerToken("IDENT", chunk5LI5EPGJ_cjs.tokenTypeId("IDENT"), input2, input2, 0, 0, 1, 1);
|
|
544
557
|
}
|
|
545
558
|
}
|
|
546
559
|
tokenIndex++;
|
|
@@ -549,7 +562,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
549
562
|
case 5 /* OPERATOR */: {
|
|
550
563
|
const opType = OP_MAP[c0];
|
|
551
564
|
if (opType) {
|
|
552
|
-
yield new LexerToken(opType,
|
|
565
|
+
yield new LexerToken(opType, chunk5LI5EPGJ_cjs.tokenTypeId(opType), this.input, this.input, 0, 0, 1, 1);
|
|
553
566
|
tokenIndex++;
|
|
554
567
|
}
|
|
555
568
|
break;
|
|
@@ -565,61 +578,61 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
565
578
|
tokenIndex++;
|
|
566
579
|
break;
|
|
567
580
|
case 8 /* DOLLAR */:
|
|
568
|
-
yield new LexerToken("DOLLAR",
|
|
581
|
+
yield new LexerToken("DOLLAR", chunk5LI5EPGJ_cjs.tokenTypeId("DOLLAR"), "$", "$", 0, 0, 1, 1);
|
|
569
582
|
tokenIndex++;
|
|
570
583
|
break;
|
|
571
584
|
case 11 /* BACKTICK */:
|
|
572
|
-
yield new LexerToken("BACKTICK_OPEN",
|
|
585
|
+
yield new LexerToken("BACKTICK_OPEN", chunk5LI5EPGJ_cjs.tokenTypeId("BACKTICK_OPEN"), "`", "`", 0, 0, 1, 1);
|
|
573
586
|
tokenIndex++;
|
|
574
587
|
break;
|
|
575
588
|
default: {
|
|
576
|
-
if (c0 === 215) {
|
|
577
|
-
yield new LexerToken("STAR",
|
|
589
|
+
if (isUnicodeSpace(c0)) ; else if (c0 === 215) {
|
|
590
|
+
yield new LexerToken("STAR", chunk5LI5EPGJ_cjs.tokenTypeId("STAR"), "\xD7", "\xD7", 0, 0, 1, 1);
|
|
578
591
|
tokenIndex++;
|
|
579
592
|
} else if (c0 === 247) {
|
|
580
|
-
yield new LexerToken("SLASH",
|
|
593
|
+
yield new LexerToken("SLASH", chunk5LI5EPGJ_cjs.tokenTypeId("SLASH"), "\xF7", "\xF7", 0, 0, 1, 1);
|
|
581
594
|
tokenIndex++;
|
|
582
595
|
} else if (c0 === 8800) {
|
|
583
|
-
yield new LexerToken("NEQ",
|
|
596
|
+
yield new LexerToken("NEQ", chunk5LI5EPGJ_cjs.tokenTypeId("NEQ"), "\u2260", "\u2260", 0, 0, 1, 1);
|
|
584
597
|
tokenIndex++;
|
|
585
598
|
} else if (c0 === 163) {
|
|
586
|
-
yield new LexerToken("POUND",
|
|
599
|
+
yield new LexerToken("POUND", chunk5LI5EPGJ_cjs.tokenTypeId("POUND"), "\xA3", "\xA3", 0, 0, 1, 1);
|
|
587
600
|
tokenIndex++;
|
|
588
601
|
} else if (c0 === 8364) {
|
|
589
|
-
yield new LexerToken("EURO",
|
|
602
|
+
yield new LexerToken("EURO", chunk5LI5EPGJ_cjs.tokenTypeId("EURO"), "\u20AC", "\u20AC", 0, 0, 1, 1);
|
|
590
603
|
tokenIndex++;
|
|
591
604
|
} else if (c0 === 165) {
|
|
592
|
-
yield new LexerToken("YEN",
|
|
605
|
+
yield new LexerToken("YEN", chunk5LI5EPGJ_cjs.tokenTypeId("YEN"), "\xA5", "\xA5", 0, 0, 1, 1);
|
|
593
606
|
tokenIndex++;
|
|
594
607
|
} else if (c0 === 8381) {
|
|
595
|
-
yield new LexerToken("RUBLE",
|
|
608
|
+
yield new LexerToken("RUBLE", chunk5LI5EPGJ_cjs.tokenTypeId("RUBLE"), "\u20BD", "\u20BD", 0, 0, 1, 1);
|
|
596
609
|
tokenIndex++;
|
|
597
610
|
} else if (c0 === 8361) {
|
|
598
|
-
yield new LexerToken("WON",
|
|
611
|
+
yield new LexerToken("WON", chunk5LI5EPGJ_cjs.tokenTypeId("WON"), "\u20A9", "\u20A9", 0, 0, 1, 1);
|
|
599
612
|
tokenIndex++;
|
|
600
613
|
} else if (c0 === 8377) {
|
|
601
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
614
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20B9", "\u20B9", 0, 0, 1, 1);
|
|
602
615
|
tokenIndex++;
|
|
603
616
|
} else if (c0 === 8378) {
|
|
604
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
617
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20BA", "\u20BA", 0, 0, 1, 1);
|
|
605
618
|
tokenIndex++;
|
|
606
619
|
} else if (c0 === 8372) {
|
|
607
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
620
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20B4", "\u20B4", 0, 0, 1, 1);
|
|
608
621
|
tokenIndex++;
|
|
609
622
|
} else if (c0 === 8362) {
|
|
610
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
623
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20AA", "\u20AA", 0, 0, 1, 1);
|
|
611
624
|
tokenIndex++;
|
|
612
625
|
} else if (c0 === 8363) {
|
|
613
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
626
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20AB", "\u20AB", 0, 0, 1, 1);
|
|
614
627
|
tokenIndex++;
|
|
615
628
|
} else if (c0 === 8358) {
|
|
616
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
629
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20A6", "\u20A6", 0, 0, 1, 1);
|
|
617
630
|
tokenIndex++;
|
|
618
631
|
} else if (c0 === 8369) {
|
|
619
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
632
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20B1", "\u20B1", 0, 0, 1, 1);
|
|
620
633
|
tokenIndex++;
|
|
621
634
|
} else if (c0 >= 128) {
|
|
622
|
-
yield new LexerToken("IDENT",
|
|
635
|
+
yield new LexerToken("IDENT", chunk5LI5EPGJ_cjs.tokenTypeId("IDENT"), this.input, this.input, 0, 0, 1, 1);
|
|
623
636
|
tokenIndex++;
|
|
624
637
|
}
|
|
625
638
|
break;
|
|
@@ -674,12 +687,12 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
674
687
|
yield this.tokenizeNumber();
|
|
675
688
|
} else {
|
|
676
689
|
const col = this.pos - this.lineStartPos + 1;
|
|
677
|
-
yield new LexerToken("DOT",
|
|
690
|
+
yield new LexerToken("DOT", chunk5LI5EPGJ_cjs.tokenTypeId("DOT"), ".", ".", this.pos, 0, this.line, col);
|
|
678
691
|
this.pos++;
|
|
679
692
|
}
|
|
680
693
|
} else {
|
|
681
694
|
const col = this.pos - this.lineStartPos + 1;
|
|
682
|
-
yield new LexerToken("DOT",
|
|
695
|
+
yield new LexerToken("DOT", chunk5LI5EPGJ_cjs.tokenTypeId("DOT"), ".", ".", this.pos, 0, this.line, col);
|
|
683
696
|
this.pos++;
|
|
684
697
|
}
|
|
685
698
|
tokenIndex++;
|
|
@@ -702,7 +715,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
702
715
|
// ── Dollar sign $ ─────────────────────────────────────────────
|
|
703
716
|
case 8 /* DOLLAR */: {
|
|
704
717
|
const col = this.pos - this.lineStartPos + 1;
|
|
705
|
-
yield new LexerToken("DOLLAR",
|
|
718
|
+
yield new LexerToken("DOLLAR", chunk5LI5EPGJ_cjs.tokenTypeId("DOLLAR"), "$", "$", this.pos, 0, this.line, col);
|
|
706
719
|
this.pos++;
|
|
707
720
|
tokenIndex++;
|
|
708
721
|
break;
|
|
@@ -710,7 +723,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
710
723
|
// ── Backtick ` ───────────────────────────────────────────────
|
|
711
724
|
case 11 /* BACKTICK */: {
|
|
712
725
|
const col = this.pos - this.lineStartPos + 1;
|
|
713
|
-
yield new LexerToken("BACKTICK_OPEN",
|
|
726
|
+
yield new LexerToken("BACKTICK_OPEN", chunk5LI5EPGJ_cjs.tokenTypeId("BACKTICK_OPEN"), "`", "`", this.pos, 0, this.line, col);
|
|
714
727
|
this.pos++;
|
|
715
728
|
if (openSpan) {
|
|
716
729
|
const span = openSpan;
|
|
@@ -730,64 +743,70 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
730
743
|
// ── Non-ASCII characters ─────────────────────────────────────
|
|
731
744
|
default: {
|
|
732
745
|
const col = this.pos - this.lineStartPos + 1;
|
|
733
|
-
if (c0
|
|
734
|
-
|
|
746
|
+
if (isUnicodeSpace(c0)) {
|
|
747
|
+
this.pos++;
|
|
748
|
+
if (c0 === 8232 || c0 === 8233 || c0 === 133) {
|
|
749
|
+
this.line++;
|
|
750
|
+
this.lineStartPos = this.pos;
|
|
751
|
+
}
|
|
752
|
+
} else if (c0 === 215) {
|
|
753
|
+
yield new LexerToken("STAR", chunk5LI5EPGJ_cjs.tokenTypeId("STAR"), "\xD7", "\xD7", this.pos, 0, this.line, col);
|
|
735
754
|
this.pos++;
|
|
736
755
|
tokenIndex++;
|
|
737
756
|
} else if (c0 === 247) {
|
|
738
|
-
yield new LexerToken("SLASH",
|
|
757
|
+
yield new LexerToken("SLASH", chunk5LI5EPGJ_cjs.tokenTypeId("SLASH"), "\xF7", "\xF7", this.pos, 0, this.line, col);
|
|
739
758
|
this.pos++;
|
|
740
759
|
tokenIndex++;
|
|
741
760
|
} else if (c0 === 8800) {
|
|
742
|
-
yield new LexerToken("NEQ",
|
|
761
|
+
yield new LexerToken("NEQ", chunk5LI5EPGJ_cjs.tokenTypeId("NEQ"), "\u2260", "\u2260", this.pos, 0, this.line, col);
|
|
743
762
|
this.pos++;
|
|
744
763
|
tokenIndex++;
|
|
745
764
|
} else if (c0 === 163) {
|
|
746
|
-
yield new LexerToken("POUND",
|
|
765
|
+
yield new LexerToken("POUND", chunk5LI5EPGJ_cjs.tokenTypeId("POUND"), "\xA3", "\xA3", this.pos, 0, this.line, col);
|
|
747
766
|
this.pos++;
|
|
748
767
|
tokenIndex++;
|
|
749
768
|
} else if (c0 === 8364) {
|
|
750
|
-
yield new LexerToken("EURO",
|
|
769
|
+
yield new LexerToken("EURO", chunk5LI5EPGJ_cjs.tokenTypeId("EURO"), "\u20AC", "\u20AC", this.pos, 0, this.line, col);
|
|
751
770
|
this.pos++;
|
|
752
771
|
tokenIndex++;
|
|
753
772
|
} else if (c0 === 165) {
|
|
754
|
-
yield new LexerToken("YEN",
|
|
773
|
+
yield new LexerToken("YEN", chunk5LI5EPGJ_cjs.tokenTypeId("YEN"), "\xA5", "\xA5", this.pos, 0, this.line, col);
|
|
755
774
|
this.pos++;
|
|
756
775
|
tokenIndex++;
|
|
757
776
|
} else if (c0 === 8381) {
|
|
758
|
-
yield new LexerToken("RUBLE",
|
|
777
|
+
yield new LexerToken("RUBLE", chunk5LI5EPGJ_cjs.tokenTypeId("RUBLE"), "\u20BD", "\u20BD", this.pos, 0, this.line, col);
|
|
759
778
|
this.pos++;
|
|
760
779
|
tokenIndex++;
|
|
761
780
|
} else if (c0 === 8361) {
|
|
762
|
-
yield new LexerToken("WON",
|
|
781
|
+
yield new LexerToken("WON", chunk5LI5EPGJ_cjs.tokenTypeId("WON"), "\u20A9", "\u20A9", this.pos, 0, this.line, col);
|
|
763
782
|
this.pos++;
|
|
764
783
|
tokenIndex++;
|
|
765
784
|
} else if (c0 === 8377) {
|
|
766
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
785
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20B9", "\u20B9", this.pos, 0, this.line, col);
|
|
767
786
|
this.pos++;
|
|
768
787
|
tokenIndex++;
|
|
769
788
|
} else if (c0 === 8378) {
|
|
770
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
789
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20BA", "\u20BA", this.pos, 0, this.line, col);
|
|
771
790
|
this.pos++;
|
|
772
791
|
tokenIndex++;
|
|
773
792
|
} else if (c0 === 8372) {
|
|
774
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
793
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20B4", "\u20B4", this.pos, 0, this.line, col);
|
|
775
794
|
this.pos++;
|
|
776
795
|
tokenIndex++;
|
|
777
796
|
} else if (c0 === 8362) {
|
|
778
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
797
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20AA", "\u20AA", this.pos, 0, this.line, col);
|
|
779
798
|
this.pos++;
|
|
780
799
|
tokenIndex++;
|
|
781
800
|
} else if (c0 === 8363) {
|
|
782
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
801
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20AB", "\u20AB", this.pos, 0, this.line, col);
|
|
783
802
|
this.pos++;
|
|
784
803
|
tokenIndex++;
|
|
785
804
|
} else if (c0 === 8358) {
|
|
786
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
805
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20A6", "\u20A6", this.pos, 0, this.line, col);
|
|
787
806
|
this.pos++;
|
|
788
807
|
tokenIndex++;
|
|
789
808
|
} else if (c0 === 8369) {
|
|
790
|
-
yield new LexerToken("CURRENCY_SYMBOL",
|
|
809
|
+
yield new LexerToken("CURRENCY_SYMBOL", chunk5LI5EPGJ_cjs.tokenTypeId("CURRENCY_SYMBOL"), "\u20B1", "\u20B1", this.pos, 0, this.line, col);
|
|
791
810
|
this.pos++;
|
|
792
811
|
tokenIndex++;
|
|
793
812
|
} else if (c0 >= 128) {
|
|
@@ -828,7 +847,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
828
847
|
}
|
|
829
848
|
const text2 = input.slice(start, pos);
|
|
830
849
|
this.pos = pos;
|
|
831
|
-
return new LexerToken("NUMBER",
|
|
850
|
+
return new LexerToken("NUMBER", chunk5LI5EPGJ_cjs.tokenTypeId("NUMBER"), text2, text2, start, 0, this.line, startCol);
|
|
832
851
|
}
|
|
833
852
|
if (next === 98 || next === 66) {
|
|
834
853
|
pos += 2;
|
|
@@ -837,7 +856,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
837
856
|
}
|
|
838
857
|
const text2 = input.slice(start, pos);
|
|
839
858
|
this.pos = pos;
|
|
840
|
-
return new LexerToken("NUMBER",
|
|
859
|
+
return new LexerToken("NUMBER", chunk5LI5EPGJ_cjs.tokenTypeId("NUMBER"), text2, text2, start, 0, this.line, startCol);
|
|
841
860
|
}
|
|
842
861
|
if (next === 111 || next === 79) {
|
|
843
862
|
pos += 2;
|
|
@@ -846,7 +865,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
846
865
|
}
|
|
847
866
|
const text2 = input.slice(start, pos);
|
|
848
867
|
this.pos = pos;
|
|
849
|
-
return new LexerToken("NUMBER",
|
|
868
|
+
return new LexerToken("NUMBER", chunk5LI5EPGJ_cjs.tokenTypeId("NUMBER"), text2, text2, start, 0, this.line, startCol);
|
|
850
869
|
}
|
|
851
870
|
}
|
|
852
871
|
let hasIntPart = false;
|
|
@@ -904,12 +923,12 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
904
923
|
pos++;
|
|
905
924
|
const text2 = input.slice(start, pos);
|
|
906
925
|
this.pos = pos;
|
|
907
|
-
return new LexerToken("BIGINT",
|
|
926
|
+
return new LexerToken("BIGINT", chunk5LI5EPGJ_cjs.tokenTypeId("BIGINT"), text2, text2, start, 0, this.line, startCol);
|
|
908
927
|
}
|
|
909
928
|
}
|
|
910
929
|
const text = input.slice(start, pos);
|
|
911
930
|
this.pos = pos;
|
|
912
|
-
return new LexerToken("NUMBER",
|
|
931
|
+
return new LexerToken("NUMBER", chunk5LI5EPGJ_cjs.tokenTypeId("NUMBER"), text, text, start, 0, this.line, startCol);
|
|
913
932
|
}
|
|
914
933
|
// ── Inline identifier / keyword tokenizer ──────────────────────────────
|
|
915
934
|
/**
|
|
@@ -932,7 +951,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
932
951
|
cc >= 65 && cc <= 90 || // A-Z
|
|
933
952
|
cc >= 97 && cc <= 122 || // a-z
|
|
934
953
|
cc === 95 || // _
|
|
935
|
-
cc >= 128)) {
|
|
954
|
+
cc >= 128 && !isUnicodeSpace(cc))) {
|
|
936
955
|
pos++;
|
|
937
956
|
}
|
|
938
957
|
const identText = input.slice(start, pos);
|
|
@@ -941,22 +960,22 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
941
960
|
pos++;
|
|
942
961
|
this.pos = pos;
|
|
943
962
|
const fullText = input.slice(start, pos);
|
|
944
|
-
return new LexerToken("INLINE_SOLVE_START",
|
|
963
|
+
return new LexerToken("INLINE_SOLVE_START", chunk5LI5EPGJ_cjs.tokenTypeId("INLINE_SOLVE_START"), fullText, fullText, start, 0, this.line, startCol);
|
|
945
964
|
}
|
|
946
965
|
const isKnownUnit = this.mergedUnits.has(identText);
|
|
947
966
|
if (isKnownUnit) {
|
|
948
967
|
if (!this.isFollowedByLParen(pos)) {
|
|
949
968
|
this.pos = pos;
|
|
950
|
-
return new LexerToken("UNIT",
|
|
969
|
+
return new LexerToken("UNIT", chunk5LI5EPGJ_cjs.tokenTypeId("UNIT"), identText, identText, start, 0, this.line, startCol);
|
|
951
970
|
}
|
|
952
971
|
}
|
|
953
972
|
const localeKwType = this.mergedKeywords.get(identLower);
|
|
954
973
|
if (localeKwType) {
|
|
955
974
|
this.pos = pos;
|
|
956
|
-
return new LexerToken(localeKwType,
|
|
975
|
+
return new LexerToken(localeKwType, chunk5LI5EPGJ_cjs.tokenTypeId(localeKwType), identText, identText, start, 0, this.line, startCol);
|
|
957
976
|
}
|
|
958
977
|
this.pos = pos;
|
|
959
|
-
return new LexerToken("IDENT",
|
|
978
|
+
return new LexerToken("IDENT", chunk5LI5EPGJ_cjs.tokenTypeId("IDENT"), identText, identText, start, 0, this.line, startCol);
|
|
960
979
|
}
|
|
961
980
|
/**
|
|
962
981
|
* Peek past in-expression whitespace (space, tab) from `pos` to check
|
|
@@ -993,7 +1012,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
993
1012
|
if (twoCharType) {
|
|
994
1013
|
const text2 = input.slice(pos, pos + 2);
|
|
995
1014
|
this.pos = pos + 2;
|
|
996
|
-
return new LexerToken(twoCharType,
|
|
1015
|
+
return new LexerToken(twoCharType, chunk5LI5EPGJ_cjs.tokenTypeId(twoCharType), text2, text2, pos, 0, this.line, col);
|
|
997
1016
|
}
|
|
998
1017
|
}
|
|
999
1018
|
if (c0 === 47 && c1 === 47) {
|
|
@@ -1005,19 +1024,19 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
1005
1024
|
}
|
|
1006
1025
|
const text2 = input.slice(pos, commentPos);
|
|
1007
1026
|
this.pos = commentPos;
|
|
1008
|
-
return new LexerToken("COMMENT",
|
|
1027
|
+
return new LexerToken("COMMENT", chunk5LI5EPGJ_cjs.tokenTypeId("COMMENT"), text2, text2, pos, 0, this.line, col);
|
|
1009
1028
|
}
|
|
1010
1029
|
if (c0 === 60 && c1 === 60) {
|
|
1011
1030
|
this.pos = pos + 2;
|
|
1012
|
-
return new LexerToken("LSHIFT",
|
|
1031
|
+
return new LexerToken("LSHIFT", chunk5LI5EPGJ_cjs.tokenTypeId("LSHIFT"), "<<", "<<", pos, 0, this.line, col);
|
|
1013
1032
|
}
|
|
1014
1033
|
if (c0 === 62 && c1 === 62) {
|
|
1015
1034
|
if (input.charCodeAt(pos + 2) === 62) {
|
|
1016
1035
|
this.pos = pos + 3;
|
|
1017
|
-
return new LexerToken("URSHIFT",
|
|
1036
|
+
return new LexerToken("URSHIFT", chunk5LI5EPGJ_cjs.tokenTypeId("URSHIFT"), ">>>", ">>>", pos, 0, this.line, col);
|
|
1018
1037
|
}
|
|
1019
1038
|
this.pos = pos + 2;
|
|
1020
|
-
return new LexerToken("RSHIFT",
|
|
1039
|
+
return new LexerToken("RSHIFT", chunk5LI5EPGJ_cjs.tokenTypeId("RSHIFT"), ">>", ">>", pos, 0, this.line, col);
|
|
1021
1040
|
}
|
|
1022
1041
|
if (this.hasPluginOps) {
|
|
1023
1042
|
const pluginInner = this.pluginOperators.get(c0);
|
|
@@ -1026,7 +1045,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
1026
1045
|
if (pluginType) {
|
|
1027
1046
|
const text2 = input.slice(pos, pos + 2);
|
|
1028
1047
|
this.pos = pos + 2;
|
|
1029
|
-
return new LexerToken(pluginType,
|
|
1048
|
+
return new LexerToken(pluginType, chunk5LI5EPGJ_cjs.tokenTypeId(pluginType), text2, text2, pos, 0, this.line, col);
|
|
1030
1049
|
}
|
|
1031
1050
|
}
|
|
1032
1051
|
}
|
|
@@ -1034,11 +1053,27 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
1034
1053
|
this.pos = pos + 1;
|
|
1035
1054
|
const opType = OP_MAP[c0];
|
|
1036
1055
|
const text = input.charAt(pos);
|
|
1037
|
-
return new LexerToken(opType || "ERROR",
|
|
1056
|
+
return new LexerToken(opType || "ERROR", chunk5LI5EPGJ_cjs.tokenTypeId(opType || "ERROR"), text, text, pos, 0, this.line, col);
|
|
1038
1057
|
}
|
|
1039
1058
|
// ── String literal tokenizer ──────────────────────────────────────────
|
|
1040
1059
|
/**
|
|
1041
1060
|
* Reads a double-quoted string literal. Supports backslash escapes.
|
|
1061
|
+
*
|
|
1062
|
+
* `text` is the raw source slice, quotes included, because that is what
|
|
1063
|
+
* `offset` + `text.length` has to span for a host to underline the literal.
|
|
1064
|
+
* `value` is the PAYLOAD, quotes excluded, because that is what
|
|
1065
|
+
* `PUSH_STRING` puts into the Value.
|
|
1066
|
+
*
|
|
1067
|
+
* The two used to be the same string. `"abc"` carried the five characters
|
|
1068
|
+
* `"abc"` as its value, which was invisible on screen (the formatter prints
|
|
1069
|
+
* the payload raw and the retained quotes landed where a display would have
|
|
1070
|
+
* put them back) and not invisible anywhere else: `parseFloat('"5"')` is NaN
|
|
1071
|
+
* whatever the digits say, so `"5" + 5` answered 5.
|
|
1072
|
+
*
|
|
1073
|
+
* An unterminated literal is an error rather than a string that happens to
|
|
1074
|
+
* reach the end of the line. It used to return what it had, so `"abc` and
|
|
1075
|
+
* `"abc"` were indistinguishable by payload once the quotes were stripped,
|
|
1076
|
+
* which is the other half of why they are stripped here rather than later.
|
|
1042
1077
|
*/
|
|
1043
1078
|
tokenizeString() {
|
|
1044
1079
|
const input = this.input;
|
|
@@ -1051,9 +1086,10 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
1051
1086
|
const c0 = input.charCodeAt(pos);
|
|
1052
1087
|
if (c0 === 34) {
|
|
1053
1088
|
pos++;
|
|
1054
|
-
const
|
|
1089
|
+
const text = input.slice(start, pos);
|
|
1090
|
+
const value = input.slice(start + 1, pos - 1);
|
|
1055
1091
|
this.pos = pos;
|
|
1056
|
-
return new LexerToken("STRING",
|
|
1092
|
+
return new LexerToken("STRING", chunk5LI5EPGJ_cjs.tokenTypeId("STRING"), value, text, start, lineBreaks, this.line, startCol);
|
|
1057
1093
|
}
|
|
1058
1094
|
if (c0 === 92 && pos + 1 < len) {
|
|
1059
1095
|
pos += 2;
|
|
@@ -1066,9 +1102,12 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
1066
1102
|
}
|
|
1067
1103
|
pos++;
|
|
1068
1104
|
}
|
|
1069
|
-
const text = input.slice(start, pos);
|
|
1070
1105
|
this.pos = pos;
|
|
1071
|
-
|
|
1106
|
+
throw chunk5KMIY374_cjs.ErrorFactory.parsing(
|
|
1107
|
+
"UNTERMINATED_STRING",
|
|
1108
|
+
`Unterminated string literal: ${input.slice(start, pos)}`,
|
|
1109
|
+
{ literal: input.slice(start, pos), offset: start }
|
|
1110
|
+
);
|
|
1072
1111
|
}
|
|
1073
1112
|
// ── Markdown line scanner (Phase B) ───────────────────────────────────
|
|
1074
1113
|
/**
|
|
@@ -1316,7 +1355,7 @@ var _ExpressionLexer = class _ExpressionLexer {
|
|
|
1316
1355
|
}
|
|
1317
1356
|
const text = input.slice(start, pos);
|
|
1318
1357
|
this.pos = pos;
|
|
1319
|
-
return new LexerToken("COMMENT",
|
|
1358
|
+
return new LexerToken("COMMENT", chunk5LI5EPGJ_cjs.tokenTypeId("COMMENT"), text, text, start, 0, this.line, startCol);
|
|
1320
1359
|
}
|
|
1321
1360
|
};
|
|
1322
1361
|
_ExpressionLexer.CHAR_CLASS = buildCharClassTable();
|
|
@@ -1324,5 +1363,5 @@ var ExpressionLexer = _ExpressionLexer;
|
|
|
1324
1363
|
|
|
1325
1364
|
exports.ExpressionLexer = ExpressionLexer;
|
|
1326
1365
|
exports.LexerToken = LexerToken;
|
|
1327
|
-
//# sourceMappingURL=chunk-
|
|
1328
|
-
//# sourceMappingURL=chunk-
|
|
1366
|
+
//# sourceMappingURL=chunk-YWQ6V4ZN.cjs.map
|
|
1367
|
+
//# sourceMappingURL=chunk-YWQ6V4ZN.cjs.map
|