extra-parser 0.7.0 → 0.7.1
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/consume-node.js +1 -2
- package/lib/consume-node.js.map +1 -1
- package/lib/create-token-pattern-from-regexp.js +10 -10
- package/lib/create-token-pattern-from-regexp.js.map +1 -1
- package/lib/parse.js +1 -2
- package/lib/parse.js.map +1 -1
- package/lib/tokenize.js +1 -2
- package/lib/tokenize.js.map +1 -1
- package/package.json +1 -1
- package/src/consume-node.ts +2 -2
- package/src/create-token-pattern-from-regexp.ts +10 -7
- package/src/parse.ts +1 -2
- package/src/tokenize.ts +1 -2
package/lib/consume-node.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.consumeNode = void 0;
|
|
4
|
-
const prelude_1 = require("@blackglory/prelude");
|
|
5
4
|
function consumeNode(nodePattern, tokens) {
|
|
6
5
|
const match = nodePattern(tokens);
|
|
7
|
-
if (
|
|
6
|
+
if (match) {
|
|
8
7
|
tokens.splice(0, match.consumed);
|
|
9
8
|
return match;
|
|
10
9
|
}
|
package/lib/consume-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consume-node.js","sourceRoot":"","sources":["../src/consume-node.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"consume-node.js","sourceRoot":"","sources":["../src/consume-node.ts"],"names":[],"mappings":";;;AAQA,SAAgB,WAAW,CAIzB,WAAsC,EACtC,MAAe;IAEf,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAEjC,IAAI,KAAK,EAAE;QACT,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;QAChC,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAbD,kCAaC"}
|
|
@@ -8,17 +8,17 @@ function createTokenPatternFromRegExp(tokenType, regExp) {
|
|
|
8
8
|
const result = startsWithRegExp.exec(text);
|
|
9
9
|
if ((0, prelude_1.isntNull)(result)) {
|
|
10
10
|
const [matchedText] = result;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return false;
|
|
11
|
+
if (matchedText) {
|
|
12
|
+
return {
|
|
13
|
+
consumed: matchedText.length,
|
|
14
|
+
token: {
|
|
15
|
+
tokenType: tokenType,
|
|
16
|
+
value: matchedText
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
21
20
|
}
|
|
21
|
+
return false;
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
exports.createTokenPatternFromRegExp = createTokenPatternFromRegExp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-token-pattern-from-regexp.js","sourceRoot":"","sources":["../src/create-token-pattern-from-regexp.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAGrD,SAAgB,4BAA4B,CAC1C,SAA6B,EAC7B,MAAc;IAEd,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAY,EAAsC,EAAE;QAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,IAAA,kBAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"create-token-pattern-from-regexp.js","sourceRoot":"","sources":["../src/create-token-pattern-from-regexp.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAGrD,SAAgB,4BAA4B,CAC1C,SAA6B,EAC7B,MAAc;IAEd,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAY,EAAsC,EAAE;QAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,IAAA,kBAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;YAE5B,IAAI,WAAW,EAAE;gBACf,OAAO;oBACL,QAAQ,EAAE,WAAW,CAAC,MAAM;oBAC5B,KAAK,EAAE;wBACL,SAAS,EAAE,SAAS;wBACpB,KAAK,EAAE,WAAW;qBACnB;iBACF,CAAA;aACF;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAxBD,oEAwBC;AAED,SAAS,yBAAyB,CAAC,EAAU;IAC3C,OAAO,IAAI,MAAM,CACf,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EACvD,EAAE,CAAC,KAAK,CACT,CAAA;AACH,CAAC"}
|
package/lib/parse.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parse = void 0;
|
|
4
|
-
const prelude_1 = require("@blackglory/prelude");
|
|
5
4
|
function* parse(patterns, tokens) {
|
|
6
5
|
let i = 0;
|
|
7
6
|
loop: while (i < tokens.length) {
|
|
8
7
|
const remainingTokens = tokens.slice(i);
|
|
9
8
|
for (const pattern of patterns) {
|
|
10
9
|
const result = pattern(remainingTokens);
|
|
11
|
-
if (
|
|
10
|
+
if (result) {
|
|
12
11
|
yield result.node;
|
|
13
12
|
i += result.consumed;
|
|
14
13
|
continue loop;
|
package/lib/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;AAEA,QAAe,CAAC,CAAC,KAAK,CAIpB,QAA0C,EAC1C,MAAe;IAEf,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;QAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;YACvC,IAAI,MAAM,EAAE;gBACV,MAAM,MAAM,CAAC,IAAI,CAAA;gBACjB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;gBACpB,SAAS,IAAI,CAAA;aACd;SACF;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;KAC1E;AACH,CAAC;AAtBD,sBAsBC"}
|
package/lib/tokenize.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.tokenize = void 0;
|
|
4
|
-
const prelude_1 = require("@blackglory/prelude");
|
|
5
4
|
function* tokenize(patterns, text) {
|
|
6
5
|
let i = 0;
|
|
7
6
|
loop: while (i < text.length) {
|
|
8
7
|
const remainingText = text.slice(i);
|
|
9
8
|
for (const pattern of patterns) {
|
|
10
9
|
const result = pattern(remainingText);
|
|
11
|
-
if (
|
|
10
|
+
if (result) {
|
|
12
11
|
yield result.token;
|
|
13
12
|
i += result.consumed;
|
|
14
13
|
continue loop;
|
package/lib/tokenize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../src/tokenize.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../src/tokenize.ts"],"names":[],"mappings":";;;AAEA,QAAe,CAAC,CAAC,QAAQ,CACvB,QAAqC,EACrC,IAAY;IAEZ,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;YACrC,IAAI,MAAM,EAAE;gBACV,MAAM,MAAM,CAAC,KAAK,CAAA;gBAClB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;gBACpB,SAAS,IAAI,CAAA;aACd;SACF;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;KAClE;AACH,CAAC;AAnBD,4BAmBC"}
|
package/package.json
CHANGED
package/src/consume-node.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Falsy
|
|
1
|
+
import { Falsy } from '@blackglory/prelude'
|
|
2
2
|
import { IToken, INode, INodePattern, INodePatternMatch } from './types'
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -15,7 +15,7 @@ export function consumeNode<
|
|
|
15
15
|
): INodePatternMatch<Node> | Falsy {
|
|
16
16
|
const match = nodePattern(tokens)
|
|
17
17
|
|
|
18
|
-
if (
|
|
18
|
+
if (match) {
|
|
19
19
|
tokens.splice(0, match.consumed)
|
|
20
20
|
return match
|
|
21
21
|
}
|
|
@@ -11,16 +11,19 @@ export function createTokenPatternFromRegExp<Token extends IToken>(
|
|
|
11
11
|
const result = startsWithRegExp.exec(text)
|
|
12
12
|
if (isntNull(result)) {
|
|
13
13
|
const [matchedText] = result
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
,
|
|
14
|
+
|
|
15
|
+
if (matchedText) {
|
|
16
|
+
return {
|
|
17
|
+
consumed: matchedText.length
|
|
18
|
+
, token: {
|
|
19
|
+
tokenType: tokenType
|
|
20
|
+
, value: matchedText
|
|
21
|
+
}
|
|
19
22
|
}
|
|
20
23
|
}
|
|
21
|
-
} else {
|
|
22
|
-
return false
|
|
23
24
|
}
|
|
25
|
+
|
|
26
|
+
return false
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
|
package/src/parse.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isntFalsy } from '@blackglory/prelude'
|
|
2
1
|
import { IToken, INodePattern, INode } from './types'
|
|
3
2
|
|
|
4
3
|
export function* parse<
|
|
@@ -14,7 +13,7 @@ export function* parse<
|
|
|
14
13
|
|
|
15
14
|
for (const pattern of patterns) {
|
|
16
15
|
const result = pattern(remainingTokens)
|
|
17
|
-
if (
|
|
16
|
+
if (result) {
|
|
18
17
|
yield result.node
|
|
19
18
|
i += result.consumed
|
|
20
19
|
continue loop
|
package/src/tokenize.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isntFalsy } from '@blackglory/prelude'
|
|
2
1
|
import { ITokenPattern, IToken } from './types'
|
|
3
2
|
|
|
4
3
|
export function* tokenize<Token extends IToken = IToken>(
|
|
@@ -11,7 +10,7 @@ export function* tokenize<Token extends IToken = IToken>(
|
|
|
11
10
|
|
|
12
11
|
for (const pattern of patterns) {
|
|
13
12
|
const result = pattern(remainingText)
|
|
14
|
-
if (
|
|
13
|
+
if (result) {
|
|
15
14
|
yield result.token
|
|
16
15
|
i += result.consumed
|
|
17
16
|
continue loop
|