grammar-composer 0.3.1 → 0.4.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/parser-generator/Grammar.d.ts +4 -4
- package/dist/parser-generator/Grammar.d.ts.map +1 -1
- package/dist/parser-generator/Grammar.js +51 -38
- package/dist/parser-generator/Grammar.js.map +1 -1
- package/dist/parser-generator/TopDownParser.d.ts.map +1 -1
- package/dist/parser-generator/TopDownParser.js +11 -13
- package/dist/parser-generator/TopDownParser.js.map +1 -1
- package/dist/tests/Test.js +15 -5
- package/dist/tests/Test.js.map +1 -1
- package/dist/tests/test-grammars/RegExpGrammar.d.ts +26 -20
- package/dist/tests/test-grammars/RegExpGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/RegExpGrammar.js +78 -51
- package/dist/tests/test-grammars/RegExpGrammar.js.map +1 -1
- package/dist/tests/test-grammars/SimpleTestGrammar1.d.ts +5 -0
- package/dist/tests/test-grammars/SimpleTestGrammar1.d.ts.map +1 -0
- package/dist/tests/test-grammars/SimpleTestGrammar1.js +7 -0
- package/dist/tests/test-grammars/SimpleTestGrammar1.js.map +1 -0
- package/dist/utilities/Utilities.d.ts +7 -7
- package/dist/utilities/Utilities.d.ts.map +1 -1
- package/dist/utilities/Utilities.js.map +1 -1
- package/package.json +2 -2
- package/src/parser-generator/Grammar.ts +63 -45
- package/src/parser-generator/TopDownParser.ts +12 -18
- package/src/tests/Test.ts +21 -7
- package/src/tests/test-grammars/RegExpGrammar.ts +170 -92
- package/src/tests/test-grammars/SimpleTestGrammar1.ts +10 -0
- package/src/utilities/Utilities.ts +7 -7
|
@@ -13,8 +13,8 @@ export declare function uncached<T extends Production>(content: Production): T;
|
|
|
13
13
|
export declare class Grammar<T> {
|
|
14
14
|
readonly productions: Record<keyof T, any>;
|
|
15
15
|
readonly startProductionName: keyof T;
|
|
16
|
-
readonly
|
|
17
|
-
constructor(productions: Record<keyof T, any>, startProductionName: keyof T,
|
|
16
|
+
readonly maxCacheId: number;
|
|
17
|
+
constructor(productions: Record<keyof T, any>, startProductionName: keyof T, maxCacheId: number);
|
|
18
18
|
parse(text: string): import("./TopDownParser.js").ParseTreeNode[];
|
|
19
19
|
get rootElement(): any;
|
|
20
20
|
}
|
|
@@ -23,8 +23,8 @@ export type GrammarElement = StringTerminal | PatternTerminal | Nonterminal | Se
|
|
|
23
23
|
interface GrammarElementBase {
|
|
24
24
|
type: string;
|
|
25
25
|
optional: boolean;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
cached: boolean;
|
|
27
|
+
cacheId?: number;
|
|
28
28
|
}
|
|
29
29
|
export type Terminal = StringTerminal | PatternTerminal;
|
|
30
30
|
export interface StringTerminal extends GrammarElementBase {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grammar.d.ts","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA8C,MAAM,iBAAiB,CAAA;AAQrF,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Grammar.d.ts","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,10 +24,14 @@ export function buildGrammar(obj, startProductionName) {
|
|
|
24
24
|
nonterminalLookup.set(objectProperty, newNonterminal);
|
|
25
25
|
optionalNonterminalLookup.set(objectProperty, newOptionalNonterminal);
|
|
26
26
|
}
|
|
27
|
-
let
|
|
28
|
-
const
|
|
27
|
+
let cacheIdCounter = 0;
|
|
28
|
+
const getNewCacheId = () => {
|
|
29
|
+
const newCacheId = cacheIdCounter;
|
|
30
|
+
cacheIdCounter += 1;
|
|
31
|
+
return newCacheId;
|
|
32
|
+
};
|
|
29
33
|
for (const [func, nonterminal] of nonterminalLookup) {
|
|
30
|
-
const preparedContent = prepareGrammarElement(nonterminal.content, nonterminalLookup, optionalNonterminalLookup,
|
|
34
|
+
const preparedContent = prepareGrammarElement(nonterminal.content, nonterminalLookup, optionalNonterminalLookup, getNewCacheId);
|
|
31
35
|
nonterminal.content = preparedContent;
|
|
32
36
|
const optionalNonterminal = optionalNonterminalLookup.get(func);
|
|
33
37
|
optionalNonterminal.content = preparedContent;
|
|
@@ -42,38 +46,40 @@ export function buildGrammar(obj, startProductionName) {
|
|
|
42
46
|
for (const [key, nonterminal] of nonterminalLookup) {
|
|
43
47
|
nonterminals[nameLookup.get(key)] = nonterminal;
|
|
44
48
|
}
|
|
45
|
-
return new Grammar(nonterminals, startProductionName,
|
|
49
|
+
return new Grammar(nonterminals, startProductionName, cacheIdCounter);
|
|
46
50
|
}
|
|
47
|
-
function prepareGrammarElement(rootElement, nonterminalLookup, optionalNonterminalLookup,
|
|
51
|
+
function prepareGrammarElement(rootElement, nonterminalLookup, optionalNonterminalLookup, getNewCacheId) {
|
|
48
52
|
function prepare(element) {
|
|
53
|
+
const setCacheIdIfNeeded = (element) => {
|
|
54
|
+
if (element.cached === true) {
|
|
55
|
+
element.cacheId = getNewCacheId();
|
|
56
|
+
}
|
|
57
|
+
return element;
|
|
58
|
+
};
|
|
49
59
|
switch (element.type) {
|
|
50
60
|
case 'StringTerminal':
|
|
51
61
|
case 'Nonterminal': {
|
|
52
|
-
|
|
53
|
-
element
|
|
54
|
-
}
|
|
55
|
-
return element;
|
|
62
|
+
return setCacheIdIfNeeded({
|
|
63
|
+
...element
|
|
64
|
+
});
|
|
56
65
|
}
|
|
57
66
|
case 'PatternTerminal': {
|
|
58
|
-
return {
|
|
67
|
+
return setCacheIdIfNeeded({
|
|
59
68
|
...element,
|
|
60
|
-
|
|
61
|
-
};
|
|
69
|
+
});
|
|
62
70
|
}
|
|
63
71
|
case 'Repetition': {
|
|
64
|
-
return {
|
|
72
|
+
return setCacheIdIfNeeded({
|
|
65
73
|
...element,
|
|
66
74
|
content: prepare(element.content),
|
|
67
|
-
|
|
68
|
-
};
|
|
75
|
+
});
|
|
69
76
|
}
|
|
70
77
|
case 'Sequence':
|
|
71
78
|
case 'Choice': {
|
|
72
|
-
return {
|
|
79
|
+
return setCacheIdIfNeeded({
|
|
73
80
|
...element,
|
|
74
81
|
members: element.members.map(element => prepare(element)),
|
|
75
|
-
|
|
76
|
-
};
|
|
82
|
+
});
|
|
77
83
|
}
|
|
78
84
|
case 'NonterminalReference': {
|
|
79
85
|
const reference = element.reference;
|
|
@@ -87,18 +93,16 @@ function prepareGrammarElement(rootElement, nonterminalLookup, optionalNontermin
|
|
|
87
93
|
if (!nonterminal) {
|
|
88
94
|
throw new Error(`Couldn't resolve function reference in grammar element: ${JSON.stringify(element)}`);
|
|
89
95
|
}
|
|
90
|
-
if (element.cached
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
return clonedNonterminal;
|
|
96
|
+
if (element.cached === true) {
|
|
97
|
+
return {
|
|
98
|
+
...nonterminal,
|
|
99
|
+
cached: true,
|
|
100
|
+
cacheId: getNewCacheId(),
|
|
101
|
+
};
|
|
97
102
|
}
|
|
98
|
-
|
|
99
|
-
nonterminal
|
|
103
|
+
else {
|
|
104
|
+
return nonterminal;
|
|
100
105
|
}
|
|
101
|
-
return nonterminal;
|
|
102
106
|
}
|
|
103
107
|
}
|
|
104
108
|
}
|
|
@@ -319,14 +323,16 @@ export function zeroOrMore(content) {
|
|
|
319
323
|
return {
|
|
320
324
|
type: 'Repetition',
|
|
321
325
|
content: productionToGrammarElement(content),
|
|
322
|
-
optional: true
|
|
326
|
+
optional: true,
|
|
327
|
+
cached: false,
|
|
323
328
|
};
|
|
324
329
|
}
|
|
325
330
|
export function oneOrMore(content) {
|
|
326
331
|
return {
|
|
327
332
|
type: 'Repetition',
|
|
328
333
|
content: productionToGrammarElement(content),
|
|
329
|
-
optional: false
|
|
334
|
+
optional: false,
|
|
335
|
+
cached: false,
|
|
330
336
|
};
|
|
331
337
|
}
|
|
332
338
|
export function anyOf(...members) {
|
|
@@ -338,7 +344,8 @@ export function anyOf(...members) {
|
|
|
338
344
|
type: 'Choice',
|
|
339
345
|
members: normalizedMembers,
|
|
340
346
|
optional: false,
|
|
341
|
-
exhaustive: false
|
|
347
|
+
exhaustive: false,
|
|
348
|
+
cached: false,
|
|
342
349
|
};
|
|
343
350
|
}
|
|
344
351
|
export function bestOf(...members) {
|
|
@@ -350,7 +357,8 @@ export function bestOf(...members) {
|
|
|
350
357
|
type: 'Choice',
|
|
351
358
|
members: normalizedMembers,
|
|
352
359
|
optional: false,
|
|
353
|
-
exhaustive: true
|
|
360
|
+
exhaustive: true,
|
|
361
|
+
cached: false,
|
|
354
362
|
};
|
|
355
363
|
}
|
|
356
364
|
export function possibly(content) {
|
|
@@ -370,6 +378,7 @@ export function pattern(pattern) {
|
|
|
370
378
|
pattern,
|
|
371
379
|
regExp,
|
|
372
380
|
optional,
|
|
381
|
+
cached: false,
|
|
373
382
|
};
|
|
374
383
|
}
|
|
375
384
|
export function cached(content) {
|
|
@@ -388,7 +397,8 @@ function stringTerminal(content) {
|
|
|
388
397
|
return {
|
|
389
398
|
type: 'StringTerminal',
|
|
390
399
|
content,
|
|
391
|
-
optional: false
|
|
400
|
+
optional: false,
|
|
401
|
+
cached: false,
|
|
392
402
|
};
|
|
393
403
|
}
|
|
394
404
|
function nonterminal(name, content) {
|
|
@@ -400,20 +410,23 @@ function nonterminal(name, content) {
|
|
|
400
410
|
name,
|
|
401
411
|
content,
|
|
402
412
|
optional: false,
|
|
413
|
+
cached: false,
|
|
403
414
|
};
|
|
404
415
|
}
|
|
405
416
|
function sequence(members) {
|
|
406
417
|
return {
|
|
407
418
|
type: 'Sequence',
|
|
408
419
|
members,
|
|
409
|
-
optional: false
|
|
420
|
+
optional: false,
|
|
421
|
+
cached: false,
|
|
410
422
|
};
|
|
411
423
|
}
|
|
412
424
|
function unresolvedReference(reference) {
|
|
413
425
|
return {
|
|
414
426
|
type: 'NonterminalReference',
|
|
415
427
|
reference,
|
|
416
|
-
optional: false
|
|
428
|
+
optional: false,
|
|
429
|
+
cached: false,
|
|
417
430
|
};
|
|
418
431
|
}
|
|
419
432
|
function productionToGrammarElement(production) {
|
|
@@ -437,11 +450,11 @@ function productionToGrammarElement(production) {
|
|
|
437
450
|
export class Grammar {
|
|
438
451
|
productions;
|
|
439
452
|
startProductionName;
|
|
440
|
-
|
|
441
|
-
constructor(productions, startProductionName,
|
|
453
|
+
maxCacheId;
|
|
454
|
+
constructor(productions, startProductionName, maxCacheId) {
|
|
442
455
|
this.startProductionName = startProductionName;
|
|
443
456
|
this.productions = productions;
|
|
444
|
-
this.
|
|
457
|
+
this.maxCacheId = maxCacheId;
|
|
445
458
|
}
|
|
446
459
|
parse(text) {
|
|
447
460
|
return parse(text, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopDownParser.d.ts","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TopDownParser.d.ts","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAA4B,MAAM,cAAc,CAAA;AAEhE,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAuR/D;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,aAAa,EAAE,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,CAAA;CACrC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNumber } from '../utilities/Utilities.js';
|
|
1
2
|
export function parse(inputString, grammar) {
|
|
2
3
|
const inputLength = inputString.length;
|
|
3
4
|
let bestFailedMatches = [];
|
|
@@ -14,29 +15,26 @@ export function parse(inputString, grammar) {
|
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
function tryParse(grammarElement, startOffset) {
|
|
17
|
-
if (grammarElement.
|
|
18
|
+
if (isNumber(grammarElement.cacheId)) {
|
|
18
19
|
return tryParseCached(grammarElement, startOffset);
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
22
|
return tryParseUncached(grammarElement, startOffset);
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
|
-
const
|
|
25
|
+
const offsetMultiplier = grammar.maxCacheId + 1;
|
|
26
|
+
const parseResultsCache = new Map();
|
|
25
27
|
function tryParseCached(grammarElement, startOffset) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
const cacheId = grammarElement.cacheId;
|
|
29
|
+
const cacheKey = (startOffset * offsetMultiplier) + cacheId;
|
|
30
|
+
if (parseResultsCache.has(cacheKey)) {
|
|
31
|
+
return parseResultsCache.get(cacheKey);
|
|
30
32
|
}
|
|
31
33
|
else {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
34
|
+
const parseResult = tryParseUncached(grammarElement, startOffset);
|
|
35
|
+
parseResultsCache.set(cacheKey, parseResult);
|
|
36
|
+
return parseResult;
|
|
36
37
|
}
|
|
37
|
-
const parseResult = tryParseUncached(grammarElement, startOffset);
|
|
38
|
-
slot.set(grammarElement, parseResult);
|
|
39
|
-
return parseResult;
|
|
40
38
|
}
|
|
41
39
|
function tryParseUncached(grammarElement, startOffset) {
|
|
42
40
|
switch (grammarElement.type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TopDownParser.js","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TopDownParser.js","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/Test.js
CHANGED
|
@@ -4,6 +4,8 @@ import { anyOf, buildGrammar } from '../exports/Exports.js';
|
|
|
4
4
|
import { JsonGrammar } from './test-grammars/JsonGrammar.js';
|
|
5
5
|
import { XmlGrammar } from './test-grammars/XmlGrammar.js';
|
|
6
6
|
import { RegExpGrammar } from './test-grammars/RegExpGrammar.js';
|
|
7
|
+
import { writeFile } from 'fs/promises';
|
|
8
|
+
import { SimpleTestGrammar1 } from './test-grammars/SimpleTestGrammar1.js';
|
|
7
9
|
const log = console.log;
|
|
8
10
|
function testBasic() {
|
|
9
11
|
class MyGrammar {
|
|
@@ -63,26 +65,34 @@ function testXmlParser() {
|
|
|
63
65
|
}
|
|
64
66
|
async function testRegExpParser() {
|
|
65
67
|
const regExpString = /^([+]?[1]?(1 )?[-.+]?\(?\d{1}[- .+]*\d{1}[- .+]*\d{1}\)?[- .+]*\d{1}[- .+]*\d{1}[- .+]*\d{1}[- .+]*\d{1}[- .+]*\d{1}[- .+]*\d{1}[- .+]*\d{1})$/.source;
|
|
66
|
-
//const regExpString = /^
|
|
67
|
-
const
|
|
68
|
+
//const regExpString = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.source
|
|
69
|
+
//const regExpString = /(?=.*[!@#$%^&*])^mongodb:\/\/(?<user>[a-zA-Z0-9]+):(?<pass>[a-zA-Z0-9!@#$%^&*]{8,})@(?<host>[a-z0-9.-]+):(?<port>\d{2,5})$/.source
|
|
70
|
+
//const regExpString = /(abcd)*ef+g/.source
|
|
71
|
+
const grammar = buildGrammar(RegExpGrammar, 'root');
|
|
68
72
|
const parseTree = grammar.parse(regExpString);
|
|
69
73
|
const parseTreeJson = JSON.stringify(parseTree, undefined, 4);
|
|
70
74
|
log(parseTreeJson);
|
|
71
|
-
const { writeFile } = await import('fs/promises');
|
|
72
75
|
await writeFile('out/out.json', parseTreeJson);
|
|
73
76
|
}
|
|
74
|
-
|
|
77
|
+
function testParserError1() {
|
|
75
78
|
const xmlData = `<hello> wo rld <!!! `;
|
|
76
79
|
const grammar = buildGrammar(XmlGrammar, 'document');
|
|
77
80
|
const result = grammar.parse(xmlData);
|
|
78
81
|
console.log(JSON.stringify(result, undefined, 4));
|
|
79
82
|
}
|
|
80
|
-
|
|
83
|
+
function testParserError2() {
|
|
81
84
|
const jsonData = `{ "asdf": 12.5 `;
|
|
82
85
|
const grammar = buildGrammar(JsonGrammar, 'expression');
|
|
83
86
|
const result = grammar.parse(jsonData);
|
|
84
87
|
console.log(JSON.stringify(result, undefined, 4));
|
|
85
88
|
}
|
|
89
|
+
function test1() {
|
|
90
|
+
const input = `abcdefg`;
|
|
91
|
+
const grammar = buildGrammar(SimpleTestGrammar1, 'root');
|
|
92
|
+
const result = grammar.parse(input);
|
|
93
|
+
console.log(JSON.stringify(result, undefined, 4));
|
|
94
|
+
}
|
|
86
95
|
//testJsonParser()
|
|
87
96
|
testRegExpParser();
|
|
97
|
+
//test1()
|
|
88
98
|
//# sourceMappingURL=Test.js.map
|
package/dist/tests/Test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAe,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import * as G from '../../exports/Exports.js';
|
|
2
2
|
import * as R from 'regexp-composer';
|
|
3
3
|
export declare class RegExpGrammar {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
root: () => G.Choice[];
|
|
5
|
+
disjunction: () => (G.Repetition | (() => G.Production))[];
|
|
6
|
+
sequence: () => G.Production;
|
|
7
|
+
sequenceOrDisjunction: G.Choice[];
|
|
8
|
+
starQuantifier: () => G.Production[];
|
|
9
|
+
plusQuantifier: () => G.Production[];
|
|
10
|
+
optionalQuantifier: () => G.Production[];
|
|
11
|
+
exactCountQuantifier: () => G.Production[];
|
|
12
|
+
countRangeQuantifier: () => G.Production[];
|
|
13
|
+
nongreedyQuantifier: () => string;
|
|
14
|
+
quantifier: () => G.Choice;
|
|
15
|
+
uncapturedGroup: () => (string | G.Choice[])[];
|
|
16
|
+
namedCaptureGroup: () => (string | G.Choice[] | G.PatternTerminal)[];
|
|
17
|
+
unnamedCaptureGroup: () => (string | G.Choice[])[];
|
|
18
|
+
group: G.Choice;
|
|
14
19
|
unnamedBackreference: () => G.PatternTerminal;
|
|
15
20
|
namedBackreference: () => G.PatternTerminal;
|
|
16
21
|
backReference: G.Choice;
|
|
17
|
-
positiveLookahead: () => (string |
|
|
18
|
-
negativeLookahead: () => (string |
|
|
19
|
-
positiveLookbehind: () => (string |
|
|
20
|
-
negativeLookbehind: () => (string |
|
|
22
|
+
positiveLookahead: () => (string | G.Choice[])[];
|
|
23
|
+
negativeLookahead: () => (string | G.Choice[])[];
|
|
24
|
+
positiveLookbehind: () => (string | G.Choice[])[];
|
|
25
|
+
negativeLookbehind: () => (string | G.Choice[])[];
|
|
21
26
|
lookaround: G.Choice;
|
|
22
27
|
singleCharExpression: () => G.Choice;
|
|
23
28
|
unreservedCharLiteral: () => G.PatternTerminal;
|
|
@@ -30,20 +35,21 @@ export declare class RegExpGrammar {
|
|
|
30
35
|
unicodeProperty: () => G.PatternTerminal;
|
|
31
36
|
notUnicodeProperty: () => G.PatternTerminal;
|
|
32
37
|
unicodePropertyBodyPattern: R.Pattern;
|
|
33
|
-
charClassChar: () => G.PatternTerminal;
|
|
34
38
|
charClass: () => G.Production[];
|
|
35
39
|
charcodeOrEscapedChar: G.Choice;
|
|
40
|
+
charClassLiteral: () => G.PatternTerminal;
|
|
36
41
|
charRangeElement: G.Choice;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
nongreedyQuantifier: () => string;
|
|
42
|
+
charRangeStart: () => G.Choice;
|
|
43
|
+
charRangeEnd: () => G.Choice;
|
|
44
|
+
charRange: () => (string | (() => G.Choice))[];
|
|
41
45
|
charClassNegator: () => string;
|
|
42
46
|
inputStartAnchor: () => string;
|
|
43
47
|
inputEndAnchor: () => string;
|
|
44
48
|
anyCharWildcard: () => string;
|
|
45
|
-
disjunctionSeparator: () => string;
|
|
46
49
|
anchor: G.Choice;
|
|
47
50
|
escapedCharacterClass: () => G.PatternTerminal;
|
|
51
|
+
quantifiableExpression: G.Production;
|
|
52
|
+
quantifiedExpression: () => G.Production[];
|
|
53
|
+
sequenceElement: G.Choice;
|
|
48
54
|
}
|
|
49
55
|
//# sourceMappingURL=RegExpGrammar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegExpGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,qBAAa,aAAa;IAIzB,WAAW,
|
|
1
|
+
{"version":3,"file":"RegExpGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,qBAAa,aAAa;IAIzB,IAAI,mBAAmC;IAEvC,WAAW,gDAOV;IAED,QAAQ,qBAEP;IAED,qBAAqB,aAKpB;IAKD,cAAc,uBAGb;IAED,cAAc,uBAGb;IAED,kBAAkB,uBAGjB;IAED,oBAAoB,uBASnB;IAED,oBAAoB,uBAanB;IAED,mBAAmB,eAAY;IAE/B,UAAU,iBAMT;IAKD,eAAe,gCAId;IAED,iBAAiB,oDAQhB;IAED,mBAAmB,gCAIlB;IAED,KAAK,WAIJ;IAKD,oBAAoB,0BAMjB;IAEH,kBAAkB,0BAOf;IAEH,aAAa,WAGZ;IAKD,iBAAiB,gCAIhB;IAED,iBAAiB,gCAIhB;IAED,kBAAkB,gCAIjB;IAED,kBAAkB,gCAIjB;IAED,UAAU,WAKT;IAKD,oBAAoB,iBAQnB;IAED,qBAAqB,0BAIpB;IAED,kBAAkB,0BAKhB;IAEF,WAAW,0BAMR;IAEH,eAAe,0BAKb;IAEF,YAAY,0BAAyB;IAErC,SAAS,iBAeR;IAED,cAAc,0BAWZ;IAEF,eAAe,0BAGb;IAEF,kBAAkB,0BAGhB;IAEF,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAYpC;IAED,SAAS,uBAaR;IAED,qBAAqB,WAMpB;IAED,gBAAgB,0BAIf;IAED,gBAAgB,WAGf;IAED,cAAc,iBAA8B;IAC5C,YAAY,iBAA8B;IAE1C,SAAS,sCAIR;IAKD,gBAAgB,eAAY;IAE5B,gBAAgB,eAAY;IAC5B,cAAc,eAAY;IAE1B,eAAe,eAAY;IAE3B,MAAM,WAAsD;IAE5D,qBAAqB,0BAenB;IAKF,sBAAsB,eAMrB;IAED,oBAAoB,uBAGnB;IAED,eAAe,WAKd;CACD"}
|