grammar-composer 0.4.0 → 0.6.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/README.md +144 -89
- package/dist/exports/Exports.d.ts +2 -0
- package/dist/exports/Exports.d.ts.map +1 -1
- package/dist/exports/Exports.js +2 -0
- package/dist/exports/Exports.js.map +1 -1
- package/dist/parser-generator/Grammar.d.ts +8 -1
- package/dist/parser-generator/Grammar.d.ts.map +1 -1
- package/dist/parser-generator/Grammar.js +30 -225
- package/dist/parser-generator/Grammar.js.map +1 -1
- package/dist/parser-generator/ParseError.d.ts +37 -0
- package/dist/parser-generator/ParseError.d.ts.map +1 -0
- package/dist/parser-generator/ParseError.js +226 -0
- package/dist/parser-generator/ParseError.js.map +1 -0
- package/dist/parser-generator/StaticAnalysis.d.ts +6 -0
- package/dist/parser-generator/StaticAnalysis.d.ts.map +1 -0
- package/dist/parser-generator/StaticAnalysis.js +283 -0
- package/dist/parser-generator/StaticAnalysis.js.map +1 -0
- package/dist/parser-generator/TerminalToText.d.ts +15 -0
- package/dist/parser-generator/TerminalToText.d.ts.map +1 -0
- package/dist/parser-generator/TerminalToText.js +158 -0
- package/dist/parser-generator/TerminalToText.js.map +1 -0
- package/dist/parser-generator/TopDownParser.d.ts +4 -2
- package/dist/parser-generator/TopDownParser.d.ts.map +1 -1
- package/dist/parser-generator/TopDownParser.js +44 -42
- package/dist/parser-generator/TopDownParser.js.map +1 -1
- package/dist/tests/Test.js +23 -23
- package/dist/tests/Test.js.map +1 -1
- package/dist/tests/test-grammars/JsonGrammar.d.ts +12 -11
- package/dist/tests/test-grammars/JsonGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/JsonGrammar.js +25 -10
- package/dist/tests/test-grammars/JsonGrammar.js.map +1 -1
- package/dist/tests/test-grammars/RegExpGrammar.d.ts +25 -25
- package/dist/tests/test-grammars/RegExpGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/RegExpGrammar.js +48 -31
- package/dist/tests/test-grammars/RegExpGrammar.js.map +1 -1
- package/dist/tests/test-grammars/XmlGrammar.d.ts +11 -10
- package/dist/tests/test-grammars/XmlGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/XmlGrammar.js +19 -8
- package/dist/tests/test-grammars/XmlGrammar.js.map +1 -1
- package/dist/utilities/LineAndColumn.d.ts +7 -0
- package/dist/utilities/LineAndColumn.d.ts.map +1 -0
- package/dist/utilities/LineAndColumn.js +52 -0
- package/dist/utilities/LineAndColumn.js.map +1 -0
- package/dist/utilities/Timer.d.ts +7 -3
- package/dist/utilities/Timer.d.ts.map +1 -1
- package/dist/utilities/Timer.js +41 -39
- package/dist/utilities/Timer.js.map +1 -1
- package/package.json +3 -3
- package/src/exports/Exports.ts +2 -0
- package/src/parser-generator/Grammar.ts +59 -265
- package/src/parser-generator/ParseError.ts +337 -0
- package/src/parser-generator/StaticAnalysis.ts +340 -0
- package/src/parser-generator/TerminalToText.ts +196 -0
- package/src/parser-generator/TopDownParser.ts +67 -49
- package/src/tests/Test.ts +26 -24
- package/src/tests/test-grammars/JsonGrammar.ts +28 -10
- package/src/tests/test-grammars/RegExpGrammar.ts +65 -46
- package/src/tests/test-grammars/XmlGrammar.ts +20 -8
- package/src/utilities/LineAndColumn.ts +61 -0
- package/src/utilities/Timer.ts +50 -48
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as G from '../../exports/Exports.js';
|
|
2
|
-
import * as R from 'regexp-composer';
|
|
3
2
|
export declare class RegExpGrammar {
|
|
4
|
-
root: () => G.Choice[];
|
|
3
|
+
root: () => () => G.Choice[];
|
|
4
|
+
disjunctionOrSequence: () => G.Choice[];
|
|
5
5
|
disjunction: () => (G.Repetition | (() => G.Production))[];
|
|
6
6
|
sequence: () => G.Production;
|
|
7
|
-
|
|
7
|
+
sequenceElement: () => G.Choice;
|
|
8
|
+
quantifiableExpression: () => G.Production;
|
|
9
|
+
quantifiedExpression: () => (() => G.Production)[];
|
|
8
10
|
starQuantifier: () => G.Production[];
|
|
9
11
|
plusQuantifier: () => G.Production[];
|
|
10
12
|
optionalQuantifier: () => G.Production[];
|
|
@@ -12,18 +14,18 @@ export declare class RegExpGrammar {
|
|
|
12
14
|
countRangeQuantifier: () => G.Production[];
|
|
13
15
|
nongreedyQuantifier: () => string;
|
|
14
16
|
quantifier: () => G.Choice;
|
|
15
|
-
uncapturedGroup: () => (string | G.Choice[])[];
|
|
16
|
-
namedCaptureGroup: () => (string | G.
|
|
17
|
-
unnamedCaptureGroup: () => (string | G.Choice[])[];
|
|
18
|
-
group: G.Choice;
|
|
17
|
+
uncapturedGroup: () => (string | (() => G.Choice[]))[];
|
|
18
|
+
namedCaptureGroup: () => (string | G.PatternTerminal | (() => G.Choice[]))[];
|
|
19
|
+
unnamedCaptureGroup: () => (string | (() => G.Choice[]))[];
|
|
20
|
+
group: () => G.Choice;
|
|
19
21
|
unnamedBackreference: () => G.PatternTerminal;
|
|
20
22
|
namedBackreference: () => G.PatternTerminal;
|
|
21
|
-
backReference: G.Choice;
|
|
22
|
-
positiveLookahead: () => (string | G.Choice[])[];
|
|
23
|
-
negativeLookahead: () => (string | G.Choice[])[];
|
|
24
|
-
positiveLookbehind: () => (string | G.Choice[])[];
|
|
25
|
-
negativeLookbehind: () => (string | G.Choice[])[];
|
|
26
|
-
lookaround: G.Choice;
|
|
23
|
+
backReference: () => G.Choice;
|
|
24
|
+
positiveLookahead: () => (string | (() => G.Choice[]))[];
|
|
25
|
+
negativeLookahead: () => (string | (() => G.Choice[]))[];
|
|
26
|
+
positiveLookbehind: () => (string | (() => G.Choice[]))[];
|
|
27
|
+
negativeLookbehind: () => (string | (() => G.Choice[]))[];
|
|
28
|
+
lookaround: () => G.Choice;
|
|
27
29
|
singleCharExpression: () => G.Choice;
|
|
28
30
|
unreservedCharLiteral: () => G.PatternTerminal;
|
|
29
31
|
escapedCharLiteral: () => G.PatternTerminal;
|
|
@@ -32,24 +34,22 @@ export declare class RegExpGrammar {
|
|
|
32
34
|
nullCharcode: () => G.PatternTerminal;
|
|
33
35
|
codepoint: () => G.Choice;
|
|
34
36
|
codepointRange: () => G.PatternTerminal;
|
|
35
|
-
unicodeProperty: () => G.PatternTerminal;
|
|
36
|
-
notUnicodeProperty: () => G.PatternTerminal;
|
|
37
|
-
unicodePropertyBodyPattern:
|
|
37
|
+
unicodeProperty: () => (string | (() => G.PatternTerminal))[];
|
|
38
|
+
notUnicodeProperty: () => (string | (() => G.PatternTerminal))[];
|
|
39
|
+
unicodePropertyBodyPattern: () => G.PatternTerminal;
|
|
38
40
|
charClass: () => G.Production[];
|
|
39
|
-
charcodeOrEscapedChar: G.Choice;
|
|
41
|
+
charcodeOrEscapedChar: () => G.Choice;
|
|
40
42
|
charClassLiteral: () => G.PatternTerminal;
|
|
41
|
-
charRangeElement: G.Choice;
|
|
42
|
-
charRangeStart: () => G.Choice;
|
|
43
|
-
charRangeEnd: () => G.Choice;
|
|
44
|
-
charRange: () => (string | (() => G.Choice))[];
|
|
43
|
+
charRangeElement: () => G.Choice;
|
|
44
|
+
charRangeStart: () => () => G.Choice;
|
|
45
|
+
charRangeEnd: () => () => G.Choice;
|
|
46
|
+
charRange: () => (string | (() => () => G.Choice))[];
|
|
45
47
|
charClassNegator: () => string;
|
|
46
48
|
inputStartAnchor: () => string;
|
|
47
49
|
inputEndAnchor: () => string;
|
|
48
50
|
anyCharWildcard: () => string;
|
|
49
|
-
anchor: G.Choice;
|
|
51
|
+
anchor: () => G.Choice;
|
|
50
52
|
escapedCharacterClass: () => G.PatternTerminal;
|
|
51
|
-
quantifiableExpression: G.Production;
|
|
52
|
-
quantifiedExpression: () => G.Production[];
|
|
53
|
-
sequenceElement: G.Choice;
|
|
54
53
|
}
|
|
54
|
+
export declare const regExpGrammarUnwrappedNonterminalNames: G.GrammarNonterminalNames<RegExpGrammar>;
|
|
55
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;
|
|
1
|
+
{"version":3,"file":"RegExpGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,aAAa;IAIzB,IAAI,yBAAmC;IAEvC,qBAAqB,mBAKpB;IAED,WAAW,gDAOV;IAED,QAAQ,qBAEP;IAED,eAAe,iBAKd;IAKD,sBAAsB,qBAMrB;IAED,oBAAoB,+BAGnB;IAKD,cAAc,uBAGb;IAED,cAAc,uBAGb;IAED,kBAAkB,uBAGjB;IAED,oBAAoB,uBASnB;IAED,oBAAoB,uBAanB;IAED,mBAAmB,eAAY;IAE/B,UAAU,iBAMT;IAKD,eAAe,wCAId;IAED,iBAAiB,4DAQhB;IAED,mBAAmB,wCAIlB;IAED,KAAK,iBAIJ;IAKD,oBAAoB,0BAMjB;IAEH,kBAAkB,0BAOf;IAEH,aAAa,iBAGZ;IAKD,iBAAiB,wCAIhB;IAED,iBAAiB,wCAIhB;IAED,kBAAkB,wCAIjB;IAED,kBAAkB,wCAIjB;IAED,UAAU,iBAKT;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,+CAGd;IAED,kBAAkB,+CAGjB;IAED,0BAA0B,0BAYxB;IAEF,SAAS,uBAaR;IAED,qBAAqB,iBAMpB;IAED,gBAAgB,0BAIf;IAED,gBAAgB,iBAGf;IAED,cAAc,uBAA8B;IAC5C,YAAY,uBAA8B;IAE1C,SAAS,4CAIR;IAKD,gBAAgB,eAAY;IAE5B,gBAAgB,eAAY;IAC5B,cAAc,eAAY;IAE1B,eAAe,eAAY;IAE3B,MAAM,iBAC8C;IAEpD,qBAAqB,0BAenB;CACF;AAiCD,eAAO,MAAM,sCAAsC,EAAE,CAAC,CAAC,uBAAuB,CAAC,aAAa,CAa3F,CAAA"}
|
|
@@ -4,7 +4,10 @@ export class RegExpGrammar {
|
|
|
4
4
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
5
5
|
// High-level productions
|
|
6
6
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
7
|
-
root = () => this.
|
|
7
|
+
root = () => this.disjunctionOrSequence;
|
|
8
|
+
disjunctionOrSequence = () => [
|
|
9
|
+
G.anyOf(this.disjunction, this.sequence)
|
|
10
|
+
];
|
|
8
11
|
disjunction = () => [
|
|
9
12
|
this.sequence,
|
|
10
13
|
G.oneOrMore([
|
|
@@ -13,8 +16,14 @@ export class RegExpGrammar {
|
|
|
13
16
|
])
|
|
14
17
|
];
|
|
15
18
|
sequence = () => G.cached(G.zeroOrMore(this.sequenceElement));
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
sequenceElement = () => G.anyOf(this.anchor, this.lookaround, this.quantifiedExpression, this.quantifiableExpression);
|
|
20
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
21
|
+
// Quantifiable expression
|
|
22
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
quantifiableExpression = () => G.cached(G.anyOf(this.group, this.backReference, this.singleCharExpression));
|
|
24
|
+
quantifiedExpression = () => [
|
|
25
|
+
this.quantifiableExpression,
|
|
26
|
+
this.quantifier,
|
|
18
27
|
];
|
|
19
28
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
20
29
|
// Quantifier expressions
|
|
@@ -56,22 +65,22 @@ export class RegExpGrammar {
|
|
|
56
65
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
57
66
|
uncapturedGroup = () => [
|
|
58
67
|
'(?:',
|
|
59
|
-
this.
|
|
68
|
+
this.disjunctionOrSequence,
|
|
60
69
|
')',
|
|
61
70
|
];
|
|
62
71
|
namedCaptureGroup = () => [
|
|
63
72
|
'(?<',
|
|
64
73
|
G.pattern(R.captureAs('name', R.oneOrMore(identifierChar))),
|
|
65
74
|
'>',
|
|
66
|
-
this.
|
|
75
|
+
this.disjunctionOrSequence,
|
|
67
76
|
')',
|
|
68
77
|
];
|
|
69
78
|
unnamedCaptureGroup = () => [
|
|
70
79
|
'(',
|
|
71
|
-
this.
|
|
80
|
+
this.disjunctionOrSequence,
|
|
72
81
|
')',
|
|
73
82
|
];
|
|
74
|
-
group = G.anyOf(this.uncapturedGroup, this.namedCaptureGroup, this.unnamedCaptureGroup);
|
|
83
|
+
group = () => G.anyOf(this.uncapturedGroup, this.namedCaptureGroup, this.unnamedCaptureGroup);
|
|
75
84
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
76
85
|
// Backreferences
|
|
77
86
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
@@ -84,31 +93,31 @@ export class RegExpGrammar {
|
|
|
84
93
|
R.captureAs('name', R.oneOrMore(identifierChar)),
|
|
85
94
|
'>',
|
|
86
95
|
]);
|
|
87
|
-
backReference = G.anyOf(this.unnamedBackreference, this.namedBackreference);
|
|
96
|
+
backReference = () => G.anyOf(this.unnamedBackreference, this.namedBackreference);
|
|
88
97
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
89
98
|
// Lookahead and lookbehind expressions
|
|
90
99
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
91
100
|
positiveLookahead = () => [
|
|
92
101
|
'(?=',
|
|
93
|
-
this.
|
|
102
|
+
this.disjunctionOrSequence,
|
|
94
103
|
')',
|
|
95
104
|
];
|
|
96
105
|
negativeLookahead = () => [
|
|
97
106
|
'(?!',
|
|
98
|
-
this.
|
|
107
|
+
this.disjunctionOrSequence,
|
|
99
108
|
')',
|
|
100
109
|
];
|
|
101
110
|
positiveLookbehind = () => [
|
|
102
111
|
'(?<=',
|
|
103
|
-
this.
|
|
112
|
+
this.disjunctionOrSequence,
|
|
104
113
|
')',
|
|
105
114
|
];
|
|
106
115
|
negativeLookbehind = () => [
|
|
107
116
|
'(?<!',
|
|
108
|
-
this.
|
|
117
|
+
this.disjunctionOrSequence,
|
|
109
118
|
')',
|
|
110
119
|
];
|
|
111
|
-
lookaround = G.anyOf(this.positiveLookahead, this.negativeLookahead, this.positiveLookbehind, this.negativeLookbehind);
|
|
120
|
+
lookaround = () => G.anyOf(this.positiveLookahead, this.negativeLookahead, this.positiveLookbehind, this.negativeLookbehind);
|
|
112
121
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
113
122
|
// Single character expressions
|
|
114
123
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
@@ -144,15 +153,15 @@ export class RegExpGrammar {
|
|
|
144
153
|
R.captureAs('end', R.oneOrMore(hexDigit)),
|
|
145
154
|
'}',
|
|
146
155
|
]);
|
|
147
|
-
unicodeProperty = () =>
|
|
156
|
+
unicodeProperty = () => [
|
|
148
157
|
'\\p',
|
|
149
158
|
this.unicodePropertyBodyPattern,
|
|
150
|
-
]
|
|
151
|
-
notUnicodeProperty = () =>
|
|
159
|
+
];
|
|
160
|
+
notUnicodeProperty = () => [
|
|
152
161
|
'\\P',
|
|
153
162
|
this.unicodePropertyBodyPattern,
|
|
154
|
-
]
|
|
155
|
-
unicodePropertyBodyPattern = [
|
|
163
|
+
];
|
|
164
|
+
unicodePropertyBodyPattern = () => G.pattern([
|
|
156
165
|
'{',
|
|
157
166
|
R.captureAs('property', R.oneOrMore(R.anyOf(letter, digit, '_', '-'))),
|
|
158
167
|
R.possibly([
|
|
@@ -160,16 +169,16 @@ export class RegExpGrammar {
|
|
|
160
169
|
R.captureAs('value', R.oneOrMore(R.anyOf(letter, digit, '_', '-'))),
|
|
161
170
|
]),
|
|
162
171
|
'}',
|
|
163
|
-
];
|
|
172
|
+
]);
|
|
164
173
|
charClass = () => [
|
|
165
174
|
'[',
|
|
166
175
|
G.possibly(this.charClassNegator),
|
|
167
176
|
G.oneOrMore(G.anyOf(this.charRange, this.codepointRange, this.unicodeProperty, this.notUnicodeProperty, this.escapedCharacterClass, this.charcodeOrEscapedChar, this.charClassLiteral)),
|
|
168
177
|
']',
|
|
169
178
|
];
|
|
170
|
-
charcodeOrEscapedChar = G.anyOf(this.codepoint, this.hexCharcode, this.controlCharcode, this.nullCharcode, this.escapedCharLiteral);
|
|
179
|
+
charcodeOrEscapedChar = () => G.anyOf(this.codepoint, this.hexCharcode, this.controlCharcode, this.nullCharcode, this.escapedCharLiteral);
|
|
171
180
|
charClassLiteral = () => G.pattern(R.captureAs('char', R.notAnyOfChars(']')));
|
|
172
|
-
charRangeElement = G.anyOf(this.charcodeOrEscapedChar, this.charClassLiteral);
|
|
181
|
+
charRangeElement = () => G.anyOf(this.charcodeOrEscapedChar, this.charClassLiteral);
|
|
173
182
|
charRangeStart = () => this.charRangeElement;
|
|
174
183
|
charRangeEnd = () => this.charRangeElement;
|
|
175
184
|
charRange = () => [
|
|
@@ -184,17 +193,8 @@ export class RegExpGrammar {
|
|
|
184
193
|
inputStartAnchor = () => '^';
|
|
185
194
|
inputEndAnchor = () => '$';
|
|
186
195
|
anyCharWildcard = () => '.';
|
|
187
|
-
anchor = G.anyOf(this.inputStartAnchor, this.inputEndAnchor);
|
|
196
|
+
anchor = () => G.anyOf(this.inputStartAnchor, this.inputEndAnchor);
|
|
188
197
|
escapedCharacterClass = () => G.pattern(R.anyOf(R.captureAs('whitespace', escapedChars.whitespace), R.captureAs('nonWhitespace', escapedChars.nonWhitespace), R.captureAs('digit', escapedChars.digit), R.captureAs('nonDigit', escapedChars.nonDigit), R.captureAs('word', escapedChars.word), R.captureAs('nonWord', escapedChars.nonWord), R.captureAs('wordBoundary', escapedChars.wordBoundary), R.captureAs('nonWordBoundary', escapedChars.nonWordBoundary), R.captureAs('formFeed', escapedChars.formFeed), R.captureAs('carriageReturn', escapedChars.carriageReturn), R.captureAs('lineFeed', escapedChars.lineFeed), R.captureAs('tab', escapedChars.tab), R.captureAs('verticalTab', escapedChars.verticalTab), R.captureAs('backwardSlash', escapedChars.backwardSlash)));
|
|
189
|
-
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
190
|
-
// Sequence elements (positioned here due to TypeScript class member ordering requirements)
|
|
191
|
-
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
192
|
-
quantifiableExpression = G.cached(G.anyOf(this.group, this.backReference, this.singleCharExpression));
|
|
193
|
-
quantifiedExpression = () => [
|
|
194
|
-
this.quantifiableExpression,
|
|
195
|
-
this.quantifier,
|
|
196
|
-
];
|
|
197
|
-
sequenceElement = G.anyOf(this.anchor, this.lookaround, this.quantifiedExpression, this.quantifiableExpression);
|
|
198
198
|
}
|
|
199
199
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
200
200
|
// Shared regular expressions
|
|
@@ -222,4 +222,21 @@ const escapedChars = {
|
|
|
222
222
|
verticalTab: '\\v',
|
|
223
223
|
backwardSlash: '\\\\'
|
|
224
224
|
};
|
|
225
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
226
|
+
// Wrapped nonterminal names
|
|
227
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
228
|
+
export const regExpGrammarUnwrappedNonterminalNames = [
|
|
229
|
+
'disjunctionOrSequence',
|
|
230
|
+
'group',
|
|
231
|
+
'backReference',
|
|
232
|
+
'lookaround',
|
|
233
|
+
'unicodeProperty',
|
|
234
|
+
'notUnicodeProperty',
|
|
235
|
+
'unicodePropertyBodyPattern',
|
|
236
|
+
'charcodeOrEscapedChar',
|
|
237
|
+
'charRangeElement',
|
|
238
|
+
'anchor',
|
|
239
|
+
'quantifiableExpression',
|
|
240
|
+
'sequenceElement',
|
|
241
|
+
];
|
|
225
242
|
//# sourceMappingURL=RegExpGrammar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegExpGrammar.js","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,MAAM,OAAO,aAAa;IACzB,8FAA8F;IAC9F,yBAAyB;IACzB,8FAA8F;IAC9F,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAA;IAEvC,WAAW,GAAG,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ;QAEb,CAAC,CAAC,SAAS,CAAC;YACX,GAAG;YACH,IAAI,CAAC,QAAQ;SACb,CAAC;KACF,CAAA;IAED,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CACxB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAClC,CAAA;IAED,
|
|
1
|
+
{"version":3,"file":"RegExpGrammar.js","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,MAAM,OAAO,aAAa;IACzB,8FAA8F;IAC9F,yBAAyB;IACzB,8FAA8F;IAC9F,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAA;IAEvC,qBAAqB,GAAG,GAAG,EAAE,CAAC;QAC7B,CAAC,CAAC,KAAK,CACN,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,CACb;KACD,CAAA;IAED,WAAW,GAAG,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ;QAEb,CAAC,CAAC,SAAS,CAAC;YACX,GAAG;YACH,IAAI,CAAC,QAAQ;SACb,CAAC;KACF,CAAA;IAED,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CACxB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAClC,CAAA;IAED,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAC9B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,sBAAsB,CAC3B,CAAA;IAED,8FAA8F;IAC9F,0BAA0B;IAC1B,8FAA8F;IAC9F,sBAAsB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CACtC,CAAC,CAAC,KAAK,CACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,oBAAoB,CACzB,CACD,CAAA;IAED,oBAAoB,GAAG,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB;QAC3B,IAAI,CAAC,UAAU;KACf,CAAA;IAED,8FAA8F;IAC9F,yBAAyB;IACzB,8FAA8F;IAC9F,cAAc,GAAG,GAAG,EAAE,CAAC;QACtB,GAAG;QACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACpC,CAAA;IAED,cAAc,GAAG,GAAG,EAAE,CAAC;QACtB,GAAG;QACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACpC,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE,CAAC;QAC1B,GAAG;QACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACpC,CAAA;IAED,oBAAoB,GAAG,GAAG,EAAE,CAAC;QAC5B,CAAC,CAAC,OAAO,CAAC;YACT,GAAG;YACH,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAClB;YACD,GAAG;SACH,CAAC;QACF,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACpC,CAAA;IAED,oBAAoB,GAAG,GAAG,EAAE,CAAC;QAC5B,CAAC,CAAC,OAAO,CAAC;YACT,GAAG;YACH,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAClB;YACD,GAAG;YACH,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAC3B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACnB;YACD,GAAG;SACH,CAAC;QACF,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACpC,CAAA;IAED,mBAAmB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;IAE/B,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACzB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,oBAAoB,CACzB,CAAA;IAED,8FAA8F;IAC9F,oBAAoB;IACpB,8FAA8F;IAC9F,eAAe,GAAG,GAAG,EAAE,CAAC;QACvB,KAAK;QACL,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,iBAAiB,GAAG,GAAG,EAAE,CAAC;QACzB,KAAK;QACL,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAC3B,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAC5B;QACD,GAAG;QACH,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,mBAAmB,GAAG,GAAG,EAAE,CAAC;QAC3B,GAAG;QACH,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACpB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,mBAAmB,CACxB,CAAA;IAED,8FAA8F;IAC9F,iBAAiB;IACjB,8FAA8F;IAC9F,oBAAoB,GAAG,GAAG,EAAE,CAC3B,CAAC,CAAC,OAAO,CAAC;QACT,IAAI;QACJ,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,KAAK,CACL;KACD,CAAC,CAAA;IAEH,kBAAkB,GAAG,GAAG,EAAE,CACzB,CAAC,CAAC,OAAO,CAAC;QACT,MAAM;QACN,CAAC,CAAC,SAAS,CAAC,MAAM,EACjB,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAC3B;QACD,GAAG;KACH,CAAC,CAAA;IAEH,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAC5B,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,kBAAkB,CACvB,CAAA;IAED,8FAA8F;IAC9F,uCAAuC;IACvC,8FAA8F;IAC9F,iBAAiB,GAAG,GAAG,EAAE,CAAC;QACzB,KAAK;QACL,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,iBAAiB,GAAG,GAAG,EAAE,CAAC;QACzB,KAAK;QACL,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE,CAAC;QAC1B,MAAM;QACN,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE,CAAC;QAC1B,MAAM;QACN,IAAI,CAAC,qBAAqB;QAC1B,GAAG;KACH,CAAA;IAED,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACzB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,kBAAkB,CACvB,CAAA;IAED,8FAA8F;IAC9F,+BAA+B;IAC/B,8FAA8F;IAC9F,oBAAoB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACnC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,qBAAqB,CAC1B,CAAA;IAED,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CACtC,CAAC,CAAC,SAAS,CAAC,MAAM,EACjB,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CACtF,CACD,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACpC,IAAI;QACJ,CAAC,CAAC,SAAS,CAAC,MAAM,EACjB,CAAC,CAAC,OAAO,CACT;KACD,CAAC,CAAA;IAEF,WAAW,GAAG,GAAG,EAAE,CAClB,CAAC,CAAC,OAAO,CAAC;QACT,KAAK;QACL,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CACvB;KACD,CAAC,CAAA;IAEH,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,KAAK;QACL,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACrD;KACD,CAAC,CAAA;IAEF,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAErC,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACxB,CAAC,CAAC,OAAO,CAAC;QACT,KAAK;QACL,GAAG;QACH,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAC5B;QACD,GAAG;KACH,CAAC,EACF,CAAC,CAAC,OAAO,CAAC;QACT,KAAK;QACL,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CACvB;KACD,CAAC,CACF,CAAA;IAED,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAChC,KAAK;QACL,GAAG;QACH,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CACrB;QACD,GAAG;QACH,CAAC,CAAC,SAAS,CAAC,KAAK,EAChB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CACrB;QACD,GAAG;KACH,CAAC,CAAA;IAEF,eAAe,GAAG,GAAG,EAAE,CAAC;QACvB,KAAK;QACL,IAAI,CAAC,0BAA0B;KAC/B,CAAA;IAED,kBAAkB,GAAG,GAAG,EAAE,CAAC;QAC1B,KAAK;QACL,IAAI,CAAC,0BAA0B;KAC/B,CAAA;IAED,0BAA0B,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,GAAG;QACH,CAAC,CAAC,SAAS,CAAC,UAAU,EACrB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAC7C;QACD,CAAC,CAAC,QAAQ,CAAC;YACV,GAAG;YACH,CAAC,CAAC,SAAS,CAAC,OAAO,EAClB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAC7C;SACD,CAAC;QACF,GAAG;KACH,CAAC,CAAA;IAEF,SAAS,GAAG,GAAG,EAAE,CAAC;QACjB,GAAG;QACH,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACjC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,gBAAgB,CACrB,CAAC;QACF,GAAG;KACH,CAAA;IAED,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACpC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,kBAAkB,CACvB,CAAA;IAED,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CACjC,CAAC,CAAC,SAAS,CAAC,MAAM,EACjB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CACpB,CACD,CAAA;IAED,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAC/B,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,gBAAgB,CACrB,CAAA;IAED,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAA;IAC5C,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAA;IAE1C,SAAS,GAAG,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,cAAc;QACnB,GAAG;QACH,IAAI,CAAC,YAAY;KACjB,CAAA;IAED,8FAA8F;IAC9F,kBAAkB;IAClB,8FAA8F;IAC9F,gBAAgB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;IAE5B,gBAAgB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;IAC5B,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;IAE1B,eAAe,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;IAE3B,MAAM,GAAG,GAAG,EAAE,CACb,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IAEpD,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC9C,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EAClD,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,CAAC,aAAa,CAAC,EACxD,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,EACxC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9C,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,EACtC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,EAC5C,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,EACtD,CAAC,CAAC,SAAS,CAAC,iBAAiB,EAAE,YAAY,CAAC,eAAe,CAAC,EAC5D,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9C,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,YAAY,CAAC,cAAc,CAAC,EAC1D,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9C,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,EACpC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,WAAW,CAAC,EACpD,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,CAAC,aAAa,CAAC,CACxD,CAAC,CAAA;CACF;AAED,8FAA8F;AAC9F,6BAA6B;AAC7B,8FAA8F;AAC9F,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACnC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACpE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AAC7E,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEvD,8FAA8F;AAC9F,4BAA4B;AAC5B,8FAA8F;AAC9F,MAAM,YAAY,GAAG;IACpB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,MAAM;CACrB,CAAA;AAED,8FAA8F;AAC9F,4BAA4B;AAC5B,8FAA8F;AAC9F,MAAM,CAAC,MAAM,sCAAsC,GAA6C;IAC/F,uBAAuB;IACvB,OAAO;IACP,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,oBAAoB;IACpB,4BAA4B;IAC5B,uBAAuB;IACvB,kBAAkB;IAClB,QAAQ;IACR,wBAAwB;IACxB,iBAAiB;CACjB,CAAA"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as G from '../../exports/Exports.js';
|
|
2
2
|
export declare class XmlGrammar {
|
|
3
3
|
document: () => G.Repetition[];
|
|
4
|
-
textFragment: G.PatternTerminal;
|
|
5
|
-
openingTag: () => (G.
|
|
6
|
-
openingTagStart: G.PatternTerminal;
|
|
7
|
-
tagEnd: G.PatternTerminal;
|
|
8
|
-
attribute: G.PatternTerminal;
|
|
9
|
-
closingTag: G.PatternTerminal;
|
|
10
|
-
declarationTag: () => (G.
|
|
11
|
-
declarationTagOpening: G.PatternTerminal;
|
|
12
|
-
declarationTagAttribute: G.PatternTerminal;
|
|
13
|
-
comment: G.PatternTerminal;
|
|
4
|
+
textFragment: () => G.PatternTerminal;
|
|
5
|
+
openingTag: () => (G.Repetition | (() => G.PatternTerminal))[];
|
|
6
|
+
openingTagStart: () => G.PatternTerminal;
|
|
7
|
+
tagEnd: () => G.PatternTerminal;
|
|
8
|
+
attribute: () => G.PatternTerminal;
|
|
9
|
+
closingTag: () => G.PatternTerminal;
|
|
10
|
+
declarationTag: () => (G.Repetition | (() => G.PatternTerminal))[];
|
|
11
|
+
declarationTagOpening: () => G.PatternTerminal;
|
|
12
|
+
declarationTagAttribute: () => G.PatternTerminal;
|
|
13
|
+
comment: () => G.PatternTerminal;
|
|
14
14
|
}
|
|
15
|
+
export declare const xmlGrammarUnwrappedNonterminalNames: G.GrammarNonterminalNames<XmlGrammar>;
|
|
15
16
|
//# sourceMappingURL=XmlGrammar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,UAAU;IACtB,QAAQ,uBAUP;IAED,YAAY,
|
|
1
|
+
{"version":3,"file":"XmlGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,UAAU;IACtB,QAAQ,uBAUP;IAED,YAAY,0BAEV;IAEF,UAAU,qDAMT;IAED,eAAe,0BAUb;IAEF,MAAM,0BAMJ;IAEF,SAAS,0BAkBP;IAEF,UAAU,0BAYR;IAEF,cAAc,qDAMb;IAED,qBAAqB,0BAQnB;IAEF,uBAAuB,0BAYrB;IAEF,OAAO,0BAQL;CACF;AAyBD,eAAO,MAAM,mCAAmC,EAAE,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAIrF,CAAA"}
|
|
@@ -4,7 +4,7 @@ export class XmlGrammar {
|
|
|
4
4
|
document = () => [
|
|
5
5
|
G.zeroOrMore(G.anyOf(this.textFragment, this.openingTag, this.closingTag, this.comment, this.declarationTag))
|
|
6
6
|
];
|
|
7
|
-
textFragment = G.pattern([
|
|
7
|
+
textFragment = () => G.pattern([
|
|
8
8
|
R.oneOrMore(R.notAnyOfChars('<'))
|
|
9
9
|
]);
|
|
10
10
|
openingTag = () => [
|
|
@@ -12,18 +12,18 @@ export class XmlGrammar {
|
|
|
12
12
|
G.zeroOrMore(this.attribute),
|
|
13
13
|
this.tagEnd
|
|
14
14
|
];
|
|
15
|
-
openingTagStart = G.pattern([
|
|
15
|
+
openingTagStart = () => G.pattern([
|
|
16
16
|
'<',
|
|
17
17
|
R.possibly('?'),
|
|
18
18
|
R.captureAs('tagName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '?', '!', '/', '>'))),
|
|
19
19
|
R.zeroOrMore(R.whitespace),
|
|
20
20
|
]);
|
|
21
|
-
tagEnd = G.pattern([
|
|
21
|
+
tagEnd = () => G.pattern([
|
|
22
22
|
R.zeroOrMore(R.whitespace),
|
|
23
23
|
R.possibly(R.anyOf('/', '?')),
|
|
24
24
|
'>'
|
|
25
25
|
]);
|
|
26
|
-
attribute = G.pattern([
|
|
26
|
+
attribute = () => G.pattern([
|
|
27
27
|
R.zeroOrMore(R.whitespace),
|
|
28
28
|
R.captureAs('attributeName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '=', '"', "'", '?', '/', '>'))),
|
|
29
29
|
R.zeroOrMore(R.whitespace),
|
|
@@ -34,7 +34,7 @@ export class XmlGrammar {
|
|
|
34
34
|
R.zeroOrMore(R.whitespace),
|
|
35
35
|
])
|
|
36
36
|
]);
|
|
37
|
-
closingTag = G.pattern([
|
|
37
|
+
closingTag = () => G.pattern([
|
|
38
38
|
'</',
|
|
39
39
|
R.zeroOrMore(R.whitespace),
|
|
40
40
|
R.captureAs('tagName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '/', '>'))),
|
|
@@ -46,22 +46,25 @@ export class XmlGrammar {
|
|
|
46
46
|
G.zeroOrMore(this.declarationTagAttribute),
|
|
47
47
|
this.tagEnd
|
|
48
48
|
];
|
|
49
|
-
declarationTagOpening = G.pattern([
|
|
49
|
+
declarationTagOpening = () => G.pattern([
|
|
50
50
|
'<!',
|
|
51
51
|
R.captureAs('tagName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '/', '>'))),
|
|
52
52
|
R.zeroOrMore(R.whitespace)
|
|
53
53
|
]);
|
|
54
|
-
declarationTagAttribute = G.pattern([
|
|
54
|
+
declarationTagAttribute = () => G.pattern([
|
|
55
55
|
R.zeroOrMore(R.whitespace),
|
|
56
56
|
R.anyOf(R.captureAs('attributeName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '/', '!', '?', '>'))), quotedString),
|
|
57
57
|
R.zeroOrMore(R.whitespace),
|
|
58
58
|
]);
|
|
59
|
-
comment = G.pattern([
|
|
59
|
+
comment = () => G.pattern([
|
|
60
60
|
'<!--',
|
|
61
61
|
R.captureAs('commentBody', R.zeroOrMoreNonGreedy(R.anyChar)),
|
|
62
62
|
'-->'
|
|
63
63
|
]);
|
|
64
64
|
}
|
|
65
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
66
|
+
// Helper regular expressions
|
|
67
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
65
68
|
const quotedString = R.anyOf([
|
|
66
69
|
'"',
|
|
67
70
|
R.captureAs('doubleQuotedStringContent', R.zeroOrMore(R.notAnyOfChars('"'))),
|
|
@@ -71,4 +74,12 @@ const quotedString = R.anyOf([
|
|
|
71
74
|
R.captureAs('singleQuotedStringContent', R.zeroOrMore(R.notAnyOfChars("'"))),
|
|
72
75
|
"'"
|
|
73
76
|
]);
|
|
77
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
78
|
+
// Wrapped nonterminal names
|
|
79
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
80
|
+
export const xmlGrammarUnwrappedNonterminalNames = [
|
|
81
|
+
'openingTagStart',
|
|
82
|
+
'tagEnd',
|
|
83
|
+
'declarationTagOpening',
|
|
84
|
+
];
|
|
74
85
|
//# sourceMappingURL=XmlGrammar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,MAAM,OAAO,UAAU;IACtB,QAAQ,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,UAAU,CACX,CAAC,CAAC,KAAK,CACN,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,CACnB,CACD;KACD,CAAA;IAED,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"XmlGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function getLineAndColumn(input: string, offset: number): {
|
|
2
|
+
line: number;
|
|
3
|
+
column: number;
|
|
4
|
+
};
|
|
5
|
+
export declare function expandTabs(text: string): string;
|
|
6
|
+
export declare function buildCaretSpacing(text: string, caretColumn: number): string;
|
|
7
|
+
//# sourceMappingURL=LineAndColumn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineAndColumn.d.ts","sourceRoot":"","sources":["../../src/utilities/LineAndColumn.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAehG;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB/C;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAmB3E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
// Position helpers
|
|
3
|
+
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
export function getLineAndColumn(input, offset) {
|
|
5
|
+
let line = 1;
|
|
6
|
+
let lineStartOffset = 0;
|
|
7
|
+
for (let i = 0; i < offset && i < input.length; i++) {
|
|
8
|
+
if (input[i] === '\n') {
|
|
9
|
+
line += 1;
|
|
10
|
+
lineStartOffset = i + 1;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
line,
|
|
15
|
+
column: offset - lineStartOffset + 1
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const tabSize = 4;
|
|
19
|
+
export function expandTabs(text) {
|
|
20
|
+
let result = '';
|
|
21
|
+
let column = 0;
|
|
22
|
+
for (const char of text) {
|
|
23
|
+
if (char === '\t') {
|
|
24
|
+
const spacesToNextTabStop = tabSize - (column % tabSize);
|
|
25
|
+
result += ' '.repeat(spacesToNextTabStop);
|
|
26
|
+
column += spacesToNextTabStop;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
result += char;
|
|
30
|
+
column += 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
export function buildCaretSpacing(text, caretColumn) {
|
|
36
|
+
let spacing = '';
|
|
37
|
+
let column = 0;
|
|
38
|
+
for (let i = 0; i < caretColumn - 1 && i < text.length; i++) {
|
|
39
|
+
const char = text[i];
|
|
40
|
+
if (char === '\t') {
|
|
41
|
+
const spacesToNextTabStop = tabSize - (column % tabSize);
|
|
42
|
+
spacing += ' '.repeat(spacesToNextTabStop);
|
|
43
|
+
column += spacesToNextTabStop;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
spacing += ' ';
|
|
47
|
+
column += 1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return spacing;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=LineAndColumn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineAndColumn.js","sourceRoot":"","sources":["../../src/utilities/LineAndColumn.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,mBAAmB;AACnB,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAc;IAC7D,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,eAAe,GAAG,CAAC,CAAA;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,CAAA;YACT,eAAe,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI;QACJ,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,CAAC;KACpC,CAAA;AACF,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,CAAA;AAEjB,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;YACzC,MAAM,IAAI,mBAAmB,CAAA;QAC9B,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,IAAI,CAAA;YACd,MAAM,IAAI,CAAC,CAAA;QACZ,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,WAAmB;IAClE,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAEpB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,mBAAmB,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAA;YAExD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC1C,MAAM,IAAI,mBAAmB,CAAA;QAC9B,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,GAAG,CAAA;YACd,MAAM,IAAI,CAAC,CAAA;QACZ,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare class Timer {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
private readonly logger;
|
|
3
|
+
private startTime;
|
|
4
|
+
constructor(logger?: TimerLogger);
|
|
4
5
|
restart(): void;
|
|
5
6
|
get elapsedTime(): number;
|
|
6
7
|
get elapsedTimeSeconds(): number;
|
|
@@ -8,7 +9,10 @@ export declare class Timer {
|
|
|
8
9
|
logAndRestart(title: string, timePrecision?: number): number;
|
|
9
10
|
static get currentTime(): number;
|
|
10
11
|
static get microsecondTimestamp(): number;
|
|
11
|
-
private static createGlobalTimestampFunction;
|
|
12
12
|
private static timestampFunc;
|
|
13
|
+
private static createTimestampFunction;
|
|
13
14
|
}
|
|
15
|
+
export declare function roundToDigits(value: number, digits: number): number;
|
|
16
|
+
type TimerLogger = (msg: string) => void;
|
|
17
|
+
export {};
|
|
14
18
|
//# sourceMappingURL=Timer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/utilities/Timer.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,OAAO,CAAC,SAAS,CAAI;IAErB,YAAY,MAAM,CAAC,EAAE,WAAW,EAQ/B;IAGD,OAAO,IAAI,IAAI,CAEd;IAGD,IAAI,WAAW,IAAI,MAAM,CAExB;IAGD,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAGD,wBAAwB,IAAI,MAAM,CAKjC;IAGD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,MAAM,CAMtD;IAGD,MAAM,KAAK,WAAW,IAAI,MAAM,CAE/B;IAGD,MAAM,KAAK,oBAAoB,IAAI,MAAM,CAExC;IAGD,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgD;IAE5E,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA4BtC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA"}
|