@bablr/language-en-regex-vm-pattern 0.12.1 → 0.12.2
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/lib/grammar.js +7 -7
- package/package.json +6 -7
package/lib/grammar.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { re, spam as m } from '@bablr/boot';
|
|
2
|
-
import objectEntries from 'iter-tools-es/methods/object-entries';
|
|
3
2
|
import {
|
|
4
3
|
eat,
|
|
5
4
|
eatMatch,
|
|
@@ -24,7 +23,7 @@ export const dependencies = {};
|
|
|
24
23
|
export const defaultMatcher = m`<Pattern />`;
|
|
25
24
|
|
|
26
25
|
const escapables = new Map(
|
|
27
|
-
|
|
26
|
+
Object.entries({
|
|
28
27
|
n: '\n',
|
|
29
28
|
r: '\r',
|
|
30
29
|
t: '\t',
|
|
@@ -302,8 +301,9 @@ export const grammar = class RegexGrammar {
|
|
|
302
301
|
yield eat(re`/[\da-fA-F]+/`);
|
|
303
302
|
}
|
|
304
303
|
|
|
305
|
-
*EscapeSequence({ s }) {
|
|
306
|
-
|
|
304
|
+
*EscapeSequence({ ctx, s }) {
|
|
305
|
+
let { getGapNode } = ctx;
|
|
306
|
+
let parentSpan = s().span;
|
|
307
307
|
|
|
308
308
|
yield startSpan('Escape');
|
|
309
309
|
|
|
@@ -313,7 +313,7 @@ export const grammar = class RegexGrammar {
|
|
|
313
313
|
let cooked;
|
|
314
314
|
|
|
315
315
|
if ((m_ = yield match(re`/[\\/nrt0]/`))) {
|
|
316
|
-
|
|
316
|
+
let match_ = printSource(m_);
|
|
317
317
|
yield eat(m`code*: <*Keyword ${buildString(match_)} />`);
|
|
318
318
|
|
|
319
319
|
cooked = escapables.get(match_) || match_;
|
|
@@ -323,9 +323,9 @@ export const grammar = class RegexGrammar {
|
|
|
323
323
|
} else if (yield match(re`/[ux]/`)) {
|
|
324
324
|
let code = yield eat(m`code*: <EscapeCode />`);
|
|
325
325
|
|
|
326
|
-
let value = get('value', code.node);
|
|
326
|
+
let value = getGapNode(get('value', code.node));
|
|
327
327
|
|
|
328
|
-
cooked = String.fromCodePoint(parseInt(printSource(value), 16));
|
|
328
|
+
cooked = String.fromCodePoint(parseInt(printSource(value, { getGapNode }), 16));
|
|
329
329
|
} else {
|
|
330
330
|
yield fail();
|
|
331
331
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bablr/language-en-regex-vm-pattern",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.2",
|
|
4
4
|
"description": "A BABLR language for nonbacktracking JS-style regexes",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=12.0.0"
|
|
@@ -18,16 +18,15 @@
|
|
|
18
18
|
"test": "mocha"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@bablr/boot": "0.11.
|
|
22
|
-
"@bablr/helpers": "0.25.
|
|
23
|
-
"@bablr/agast-helpers": "0.10.
|
|
24
|
-
"@bablr/agast-vm-helpers": "0.10.
|
|
25
|
-
"iter-tools-es": "7.5.3"
|
|
21
|
+
"@bablr/boot": "0.11.1",
|
|
22
|
+
"@bablr/helpers": "0.25.1",
|
|
23
|
+
"@bablr/agast-helpers": "0.10.2",
|
|
24
|
+
"@bablr/agast-vm-helpers": "0.10.2"
|
|
26
25
|
},
|
|
27
26
|
"devDependencies": {
|
|
28
27
|
"@bablr/eslint-config-base": "github:bablr-lang/eslint-config-base#c97bfa4b3663f8378e9b3e42bb5a41e685406cf9",
|
|
29
28
|
"@qnighy/dedent": "0.1.1",
|
|
30
|
-
"bablr": "^0.11.
|
|
29
|
+
"bablr": "^0.11.2",
|
|
31
30
|
"enhanced-resolve": "^5.12.0",
|
|
32
31
|
"eslint": "^8.47.0",
|
|
33
32
|
"eslint-import-resolver-enhanced-resolve": "^1.0.5",
|