grammar-composer 0.2.4 → 0.3.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.
Files changed (80) hide show
  1. package/README.md +2 -2
  2. package/dist/exports/Exports.d.ts +2 -0
  3. package/dist/exports/Exports.d.ts.map +1 -0
  4. package/dist/exports/Exports.js +2 -0
  5. package/dist/exports/Exports.js.map +1 -0
  6. package/dist/{GrammarComposer.d.ts → parser-generator/Grammar.d.ts} +2 -1
  7. package/dist/parser-generator/Grammar.d.ts.map +1 -0
  8. package/dist/{GrammarComposer.js → parser-generator/Grammar.js} +84 -27
  9. package/dist/parser-generator/Grammar.js.map +1 -0
  10. package/dist/{TopDownParser.d.ts → parser-generator/TopDownParser.d.ts} +3 -2
  11. package/dist/parser-generator/TopDownParser.d.ts.map +1 -0
  12. package/dist/{TopDownParser.js → parser-generator/TopDownParser.js} +13 -8
  13. package/dist/parser-generator/TopDownParser.js.map +1 -0
  14. package/dist/tests/Test.d.ts +2 -0
  15. package/dist/tests/Test.d.ts.map +1 -0
  16. package/dist/{Test.js → tests/Test.js} +6 -6
  17. package/dist/tests/Test.js.map +1 -0
  18. package/dist/{test-data → tests/test-data}/TestData.d.ts +1 -0
  19. package/dist/tests/test-data/TestData.d.ts.map +1 -0
  20. package/dist/tests/test-data/TestData.js.map +1 -0
  21. package/dist/{test-grammars → tests/test-grammars}/JsonGrammar.d.ts +2 -1
  22. package/dist/tests/test-grammars/JsonGrammar.d.ts.map +1 -0
  23. package/dist/{test-grammars → tests/test-grammars}/JsonGrammar.js +1 -1
  24. package/dist/tests/test-grammars/JsonGrammar.js.map +1 -0
  25. package/dist/{test-grammars → tests/test-grammars}/RegExpGrammar.d.ts +2 -1
  26. package/dist/tests/test-grammars/RegExpGrammar.d.ts.map +1 -0
  27. package/dist/{test-grammars → tests/test-grammars}/RegExpGrammar.js +1 -1
  28. package/dist/tests/test-grammars/RegExpGrammar.js.map +1 -0
  29. package/dist/{test-grammars → tests/test-grammars}/XmlGrammar.d.ts +2 -1
  30. package/dist/tests/test-grammars/XmlGrammar.d.ts.map +1 -0
  31. package/dist/{test-grammars → tests/test-grammars}/XmlGrammar.js +1 -1
  32. package/dist/tests/test-grammars/XmlGrammar.js.map +1 -0
  33. package/dist/utilities/Timer.d.ts +1 -0
  34. package/dist/utilities/Timer.d.ts.map +1 -0
  35. package/dist/utilities/Timer.js +1 -1
  36. package/dist/utilities/{utilities.d.ts → Utilities.d.ts} +1 -0
  37. package/dist/utilities/Utilities.d.ts.map +1 -0
  38. package/package.json +5 -5
  39. package/src/exports/Exports.ts +1 -0
  40. package/src/{GrammarComposer.ts → parser-generator/Grammar.ts} +94 -30
  41. package/src/{TopDownParser.ts → parser-generator/TopDownParser.ts} +15 -12
  42. package/src/{Test.ts → tests/Test.ts} +6 -6
  43. package/src/{test-grammars → tests/test-grammars}/JsonGrammar.ts +1 -1
  44. package/src/{test-grammars → tests/test-grammars}/RegExpGrammar.ts +1 -1
  45. package/src/{test-grammars → tests/test-grammars}/XmlGrammar.ts +1 -1
  46. package/src/utilities/Timer.ts +1 -1
  47. package/tsconfig.json +53 -103
  48. package/dist/Exports.d.ts +0 -1
  49. package/dist/Exports.js +0 -2
  50. package/dist/Exports.js.map +0 -1
  51. package/dist/Grammar.d.ts +0 -62
  52. package/dist/Grammar.js +0 -376
  53. package/dist/Grammar.js.map +0 -1
  54. package/dist/GrammarComposer.js.map +0 -1
  55. package/dist/Grammars/JsonGrammar.d.ts +0 -16
  56. package/dist/Grammars/JsonGrammar.js +0 -74
  57. package/dist/Grammars/JsonGrammar.js.map +0 -1
  58. package/dist/Grammars/XmlGrammar.d.ts +0 -13
  59. package/dist/Grammars/XmlGrammar.js +0 -74
  60. package/dist/Grammars/XmlGrammar.js.map +0 -1
  61. package/dist/ParserTest.d.ts +0 -1
  62. package/dist/ParserTest.js +0 -37
  63. package/dist/ParserTest.js.map +0 -1
  64. package/dist/Test.d.ts +0 -1
  65. package/dist/Test.js.map +0 -1
  66. package/dist/TestData.d.ts +0 -5
  67. package/dist/TestData.js +0 -466
  68. package/dist/TestData.js.map +0 -1
  69. package/dist/TopDownParser.js.map +0 -1
  70. package/dist/data/TestData.d.ts +0 -5
  71. package/dist/data/TestData.js +0 -466
  72. package/dist/data/TestData.js.map +0 -1
  73. package/dist/test-data/TestData.js.map +0 -1
  74. package/dist/test-grammars/JsonGrammar.js.map +0 -1
  75. package/dist/test-grammars/RegExpGrammar.js.map +0 -1
  76. package/dist/test-grammars/XmlGrammar.js.map +0 -1
  77. /package/dist/{test-data → tests/test-data}/TestData.js +0 -0
  78. /package/dist/utilities/{utilities.js → Utilities.js} +0 -0
  79. /package/dist/utilities/{utilities.js.map → Utilities.js.map} +0 -0
  80. /package/src/{test-data → tests/test-data}/TestData.ts +0 -0
package/dist/Grammar.js DELETED
@@ -1,376 +0,0 @@
1
- import { buildRegExp, inputStart, isPatternOptional } from 'regexp-composer';
2
- import { isArray, isBoolean, isFunction, isString } from "./utilities/Utilities.js";
3
- /////////////////////////////////////////////////////////////////////////////////////////////////
4
- // Grammar builder functions:
5
- /////////////////////////////////////////////////////////////////////////////////////////////////
6
- export function buildGrammar(obj, startProductionName) {
7
- if (isFunction(obj)) {
8
- obj = new obj();
9
- }
10
- const nameLookup = new Map();
11
- const nonterminalLookup = new Map();
12
- const optionalNonterminalLookup = new Map();
13
- for (const key in obj) {
14
- const objectProperty = obj[key];
15
- nameLookup.set(objectProperty, key);
16
- if (!isFunction(objectProperty)) {
17
- continue;
18
- }
19
- const productionContent = objectProperty();
20
- const normalizedProduction = productionToGrammarElement(productionContent);
21
- const newNonterminal = nonterminal(key, normalizedProduction);
22
- const newOptionalNonterminal = { ...newNonterminal, optional: true };
23
- nonterminalLookup.set(objectProperty, newNonterminal);
24
- optionalNonterminalLookup.set(objectProperty, newOptionalNonterminal);
25
- }
26
- let uniqueIdCounter = 0;
27
- const uniqueIdSource = () => uniqueIdCounter++;
28
- for (const [func, nonterminal] of nonterminalLookup) {
29
- const preparedContent = prepareGrammarElement(nonterminal.content, nameLookup, nonterminalLookup, optionalNonterminalLookup, uniqueIdSource);
30
- nonterminal.content = preparedContent;
31
- const optionalNonterminal = optionalNonterminalLookup.get(func);
32
- optionalNonterminal.content = preparedContent;
33
- }
34
- let startNonterminal = nonterminalLookup.get(obj[startProductionName]);
35
- if (!startNonterminal) {
36
- throw new Error(`Couldn't find a start production named '${startProductionName}'.`);
37
- }
38
- detectAndAnnotateOptionalNodes(startNonterminal);
39
- detectAndErrorOnLeftRecursion(startNonterminal);
40
- const nonterminals = {};
41
- for (const [key, nonterminal] of nonterminalLookup) {
42
- nonterminals[nameLookup.get(key)] = nonterminal;
43
- }
44
- return {
45
- rootElement: nonterminals[startProductionName],
46
- productions: nonterminals,
47
- maxElementId: uniqueIdCounter
48
- };
49
- }
50
- function prepareGrammarElement(rootElement, nameLookup, nonterminalLookup, optionalNonterminalLookup, getUniqueId) {
51
- function prepare(element) {
52
- switch (element.type) {
53
- case 'StringTerminal':
54
- case 'Nonterminal': {
55
- if (element.uniqueId === undefined) {
56
- element.uniqueId = getUniqueId();
57
- }
58
- return element;
59
- }
60
- case 'PatternTerminal': {
61
- return {
62
- ...element,
63
- name: nameLookup.get(element) ?? '',
64
- uniqueId: getUniqueId()
65
- };
66
- }
67
- case 'Repetition': {
68
- return {
69
- ...element,
70
- content: prepare(element.content),
71
- uniqueId: getUniqueId()
72
- };
73
- }
74
- case 'Sequence':
75
- case 'Choice': {
76
- return {
77
- ...element,
78
- members: element.members.map(element => prepare(element)),
79
- uniqueId: getUniqueId()
80
- };
81
- }
82
- case 'NonterminalReference': {
83
- const reference = element.reference;
84
- let nonterminal;
85
- if (element.optional) {
86
- nonterminal = optionalNonterminalLookup.get(reference);
87
- }
88
- else {
89
- nonterminal = nonterminalLookup.get(reference);
90
- }
91
- if (!nonterminal) {
92
- throw new Error(`Couldn't resolve function reference in grammar element: ${JSON.stringify(element)}`);
93
- }
94
- if (nonterminal.uniqueId === undefined) {
95
- nonterminal.uniqueId = getUniqueId();
96
- }
97
- return nonterminal;
98
- }
99
- }
100
- }
101
- return prepare(rootElement);
102
- }
103
- function detectAndAnnotateOptionalNodes(rootNode) {
104
- const visitedNodes = new Set();
105
- const resolvedNodes = new Map();
106
- const unresolvedNodes = new Map();
107
- function processDepthFirst(node) {
108
- if (visitedNodes.has(node)) {
109
- return resolvedNodes.get(node);
110
- }
111
- visitedNodes.add(node);
112
- switch (node.type) {
113
- case 'StringTerminal':
114
- case 'PatternTerminal': {
115
- resolvedNodes.set(node, node.optional);
116
- return node.optional;
117
- }
118
- case 'Nonterminal':
119
- case 'Repetition': {
120
- const result = processDepthFirst(node.content);
121
- if (node.optional) {
122
- resolvedNodes.set(node, true);
123
- return true;
124
- }
125
- else if (isBoolean(result)) {
126
- resolvedNodes.set(node, result);
127
- return result;
128
- }
129
- else {
130
- unresolvedNodes.set(node, new Set([node.content]));
131
- return undefined;
132
- }
133
- }
134
- case 'Sequence':
135
- case 'Choice': {
136
- const dependencies = new Set();
137
- let allResolvedElementsAreOptional = true;
138
- for (const element of node.members) {
139
- const result = processDepthFirst(element);
140
- if (isBoolean(result)) {
141
- if (result == false) {
142
- allResolvedElementsAreOptional = false;
143
- }
144
- }
145
- else {
146
- dependencies.add(element);
147
- }
148
- }
149
- if (node.optional == true) {
150
- resolvedNodes.set(node, true);
151
- return true;
152
- }
153
- else if (dependencies.size == 0 || !allResolvedElementsAreOptional) {
154
- resolvedNodes.set(node, allResolvedElementsAreOptional);
155
- return allResolvedElementsAreOptional;
156
- }
157
- else {
158
- unresolvedNodes.set(node, dependencies);
159
- return undefined;
160
- }
161
- }
162
- }
163
- return undefined;
164
- }
165
- // Process depth first to resolve the easy cases, for productions that contain
166
- // no cyclic references:
167
- processDepthFirst(rootNode);
168
- // Now the remainder consists of nodes containing cyclic references that have not yet been resolved.
169
- // Use a form of iterative elimination and substitution to resolve them:
170
- while (unresolvedNodes.size > 0) {
171
- // This variable tracks whether at least one dependency was resolved, in any node.
172
- // If it stays false, it means that no improvement was made during the iteration,
173
- // and we should exit the loop.
174
- let atLastOneDependencyResolvedInAnyNode = false;
175
- // Scan the unresolved nodes to locate any new resolved dependencies
176
- for (const [node, dependencies] of unresolvedNodes) {
177
- let nonOptionalDependencyFound = false;
178
- // Iterate over all unresolved dependencies for the node
179
- for (const dependency of dependencies) {
180
- // Check if the dependency has been resolved
181
- const value = resolvedNodes.get(dependency);
182
- if (value !== undefined) {
183
- // If it did, record that some dependencies were resolved
184
- atLastOneDependencyResolvedInAnyNode = true;
185
- if (value === false) {
186
- // If the value was false, then the entire target node must not be optional
187
- nonOptionalDependencyFound = true;
188
- break;
189
- }
190
- else {
191
- // If the result was true, remove the dependency from the set
192
- dependencies.delete(dependency);
193
- }
194
- }
195
- }
196
- // If either a non-optional dependency was found, or all dependencies were resolved,
197
- // resolve the target node:
198
- if (nonOptionalDependencyFound || dependencies.size === 0) {
199
- const isOptional = !nonOptionalDependencyFound;
200
- resolvedNodes.set(node, isOptional);
201
- unresolvedNodes.delete(node);
202
- }
203
- }
204
- // If not even one dependency was eliminated for any node,
205
- // it means that only mutually cyclic nodes are left unresolved, so exit the loop.
206
- if (!atLastOneDependencyResolvedInAnyNode) {
207
- break;
208
- }
209
- }
210
- // All remaining unresolved nodes must now be optional,
211
- // since they are all mutually cyclic and all their non-cyclic grammar elements are known to be optional.
212
- for (const node of unresolvedNodes.keys()) {
213
- resolvedNodes.set(node, true);
214
- unresolvedNodes.delete(node);
215
- }
216
- // Finally set the 'optional' property of all nodes based on the detected values.
217
- for (const [node, isOptional] of resolvedNodes) {
218
- node.optional = isOptional;
219
- }
220
- }
221
- export function detectAndErrorOnLeftRecursion(rootNode) {
222
- const currentlyIteratedNodes = new Set();
223
- function detect(node) {
224
- if (currentlyIteratedNodes.has(node)) {
225
- if (node.type === 'Nonterminal') {
226
- throw new Error(`Detected left recursion for nonterminal '${node.name}'.`);
227
- }
228
- else {
229
- throw new Error(`Detected left recursion for node: ${JSON.stringify(node, undefined, 4)}`);
230
- }
231
- }
232
- currentlyIteratedNodes.add(node);
233
- switch (node.type) {
234
- case 'Nonterminal':
235
- case 'Repetition': {
236
- detect(node.content);
237
- break;
238
- }
239
- case 'Sequence': {
240
- for (const member of node.members) {
241
- detect(member);
242
- if (!member.optional) {
243
- break;
244
- }
245
- }
246
- break;
247
- }
248
- case 'Choice': {
249
- for (const member of node.members) {
250
- detect(member);
251
- }
252
- break;
253
- }
254
- }
255
- currentlyIteratedNodes.delete(node);
256
- }
257
- detect(rootNode);
258
- }
259
- /////////////////////////////////////////////////////////////////////////////////////////////////
260
- // Builder interface functions:
261
- /////////////////////////////////////////////////////////////////////////////////////////////////
262
- export function oneOrMore(content) {
263
- return {
264
- type: 'Repetition',
265
- content: productionToGrammarElement(content),
266
- optional: false
267
- };
268
- }
269
- export function zeroOrMore(content) {
270
- return {
271
- type: 'Repetition',
272
- content: productionToGrammarElement(content),
273
- optional: true
274
- };
275
- }
276
- export function anyOf(...members) {
277
- if (members.length == 0) {
278
- throw new Error(`'anyOf' requires at least one member.`);
279
- }
280
- const normalizedMembers = members.map(member => productionToGrammarElement(member));
281
- return {
282
- type: 'Choice',
283
- members: normalizedMembers,
284
- optional: false,
285
- exhaustive: false
286
- };
287
- }
288
- export function bestOf(...members) {
289
- if (members.length == 0) {
290
- throw new Error(`'bestOf' requires at least one member.`);
291
- }
292
- const normalizedMembers = members.map(member => productionToGrammarElement(member));
293
- return {
294
- type: 'Choice',
295
- members: normalizedMembers,
296
- optional: false,
297
- exhaustive: true
298
- };
299
- }
300
- export function possibly(content) {
301
- return { ...productionToGrammarElement(content), optional: true };
302
- }
303
- export function cached(content) {
304
- return { ...productionToGrammarElement(content), cached: true };
305
- }
306
- export function uncached(content) {
307
- return { ...productionToGrammarElement(content), cached: false };
308
- }
309
- export function pattern(pattern) {
310
- if (isArray(pattern)) {
311
- pattern = [inputStart, ...pattern];
312
- }
313
- else {
314
- pattern = [inputStart, pattern];
315
- }
316
- const regExp = buildRegExp(pattern);
317
- const optional = isPatternOptional(pattern);
318
- return {
319
- type: 'PatternTerminal',
320
- name: '[Pattern]',
321
- pattern,
322
- regExp,
323
- optional,
324
- };
325
- }
326
- function stringTerminal(content) {
327
- if (content.length < 1) {
328
- throw new Error(`A string terminal must have a length of at least 1 character`);
329
- }
330
- return {
331
- type: 'StringTerminal',
332
- content,
333
- optional: false
334
- };
335
- }
336
- function nonterminal(name, content) {
337
- if (name.length < 1) {
338
- throw new Error(`A nonterminal name must include at least 1 character.`);
339
- }
340
- return {
341
- type: 'Nonterminal',
342
- name,
343
- content,
344
- optional: false,
345
- };
346
- }
347
- function sequence(members) {
348
- return {
349
- type: 'Sequence',
350
- members,
351
- optional: false
352
- };
353
- }
354
- function unresolvedReference(reference) {
355
- return {
356
- type: 'NonterminalReference',
357
- reference,
358
- optional: false
359
- };
360
- }
361
- function productionToGrammarElement(production) {
362
- if (isString(production)) {
363
- return stringTerminal(production);
364
- }
365
- else if (isArray(production)) {
366
- const normalizedMembers = production.map(element => productionToGrammarElement(element));
367
- return sequence(normalizedMembers);
368
- }
369
- else if (isFunction(production)) {
370
- return unresolvedReference(production);
371
- }
372
- else {
373
- return production;
374
- }
375
- }
376
- //# sourceMappingURL=Grammar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../src/Grammar.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrammarComposer.js","sourceRoot":"","sources":["../src/GrammarComposer.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- export declare class JsonGrammar {
2
- expression: () => import("../Grammar.js").Choice;
3
- objectExpression: () => import("../Grammar.js").Production[];
4
- objectPropertyExpression: () => ((() => import("../Grammar.js").Choice) | import("../Grammar.js").PatternTerminal)[];
5
- arrayExpression: () => import("../Grammar.js").Production[];
6
- openingCurlyBrace: import("../Grammar.js").PatternTerminal;
7
- closingCurlyBrace: import("../Grammar.js").PatternTerminal;
8
- openingSquareBracket: import("../Grammar.js").PatternTerminal;
9
- closingSquareBracket: import("../Grammar.js").PatternTerminal;
10
- comma: import("../Grammar.js").PatternTerminal;
11
- colons: import("../Grammar.js").PatternTerminal;
12
- stringLiteral: import("../Grammar.js").PatternTerminal;
13
- numberLiteral: import("../Grammar.js").PatternTerminal;
14
- booleanLiteral: import("../Grammar.js").PatternTerminal;
15
- nullLiteral: import("../Grammar.js").PatternTerminal;
16
- }
@@ -1,74 +0,0 @@
1
- import { anyOf, pattern, possibly, zeroOrMore } from "../Grammar.js";
2
- import * as R from 'regexp-composer';
3
- export class JsonGrammar {
4
- expression = () => anyOf(this.stringLiteral, this.numberLiteral, this.booleanLiteral, this.nullLiteral, this.objectExpression, this.arrayExpression);
5
- objectExpression = () => [
6
- this.openingCurlyBrace,
7
- possibly([
8
- this.objectPropertyExpression,
9
- zeroOrMore([this.comma, this.objectPropertyExpression])
10
- ]),
11
- this.closingCurlyBrace,
12
- ];
13
- objectPropertyExpression = () => [
14
- this.stringLiteral,
15
- this.colons,
16
- this.expression,
17
- ];
18
- arrayExpression = () => [
19
- this.openingSquareBracket,
20
- possibly([
21
- this.expression,
22
- zeroOrMore([this.comma, this.expression])
23
- ]),
24
- this.closingSquareBracket
25
- ];
26
- openingCurlyBrace = createPatternWithClearedWhitespace('{');
27
- closingCurlyBrace = createPatternWithClearedWhitespace('}');
28
- openingSquareBracket = createPatternWithClearedWhitespace('[');
29
- closingSquareBracket = createPatternWithClearedWhitespace(']');
30
- comma = createPatternWithClearedWhitespace(',');
31
- colons = createPatternWithClearedWhitespace(':');
32
- stringLiteral = pattern([
33
- zeroOrMoreWhitespace,
34
- '"',
35
- R.matches(R.capture(R.zeroOrMoreNonGreedy(R.anyChar)), {
36
- ifNotPrecededBy: '\\'
37
- }),
38
- '"',
39
- zeroOrMoreWhitespace,
40
- ]);
41
- numberLiteral = pattern([
42
- zeroOrMoreWhitespace,
43
- R.capture([
44
- R.possibly('-'), // Sign
45
- R.anyOf('0', // Zero only
46
- [
47
- R.charRange('1', '9'), // First digit
48
- R.zeroOrMore(R.digit), // Next digits
49
- ]),
50
- R.possibly(['.', R.oneOrMore(R.digit)]), // Decimal value
51
- R.possibly([R.anyOf('e', 'E'), R.anyOf('+', '-'), R.oneOrMore(R.digit)]), // Exponent
52
- ]),
53
- zeroOrMoreWhitespace,
54
- ]);
55
- booleanLiteral = pattern([
56
- zeroOrMoreWhitespace,
57
- R.capture(R.anyOf('true', 'false')),
58
- zeroOrMoreWhitespace,
59
- ]);
60
- nullLiteral = pattern([
61
- zeroOrMoreWhitespace,
62
- 'null',
63
- zeroOrMoreWhitespace,
64
- ]);
65
- }
66
- function createPatternWithClearedWhitespace(str) {
67
- return pattern([
68
- zeroOrMoreWhitespace,
69
- str,
70
- zeroOrMoreWhitespace
71
- ]);
72
- }
73
- const zeroOrMoreWhitespace = R.zeroOrMore(R.whitespace);
74
- //# sourceMappingURL=JsonGrammar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonGrammar.js","sourceRoot":"","sources":["../../src/grammars/JsonGrammar.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- export declare class XmlGrammar {
2
- document: () => import("../Grammar.js").Repetition[];
3
- textFragment: import("../Grammar.js").PatternTerminal;
4
- openingTag: () => (import("../Grammar.js").PatternTerminal | import("../Grammar.js").Repetition)[];
5
- openingTagStart: import("../Grammar.js").PatternTerminal;
6
- tagEnd: import("../Grammar.js").PatternTerminal;
7
- attribute: import("../Grammar.js").PatternTerminal;
8
- closingTag: import("../Grammar.js").PatternTerminal;
9
- declarationTag: () => (import("../Grammar.js").PatternTerminal | import("../Grammar.js").Repetition)[];
10
- declarationTagOpening: import("../Grammar.js").PatternTerminal;
11
- declarationTagAttribute: import("../Grammar.js").PatternTerminal;
12
- comment: import("../Grammar.js").PatternTerminal;
13
- }
@@ -1,74 +0,0 @@
1
- import { anyOf, pattern, zeroOrMore } from "../Grammar.js";
2
- import * as R from 'regexp-composer';
3
- export class XmlGrammar {
4
- document = () => [
5
- zeroOrMore(anyOf(this.textFragment, this.openingTag, this.closingTag, this.comment, this.declarationTag))
6
- ];
7
- textFragment = pattern([
8
- R.capture(R.oneOrMore(R.notAnyOfChars('<')))
9
- ]);
10
- openingTag = () => [
11
- this.openingTagStart,
12
- zeroOrMore(this.attribute),
13
- this.tagEnd
14
- ];
15
- openingTagStart = pattern([
16
- '<',
17
- R.possibly('?'),
18
- R.capture(R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '?', '!', '/', '>'))),
19
- R.zeroOrMore(R.whitespace),
20
- ]);
21
- tagEnd = pattern([
22
- R.zeroOrMore(R.whitespace),
23
- R.possibly(R.anyOf('/', '?')),
24
- '>'
25
- ]);
26
- attribute = pattern([
27
- R.zeroOrMore(R.whitespace),
28
- R.capture(R.oneOrMore(R.notAnyOfChars(R.whitespace, '=', '"', "'", '?', '/', '>'))),
29
- R.zeroOrMore(R.whitespace),
30
- R.possibly([
31
- '=',
32
- R.zeroOrMore(R.whitespace),
33
- quotedString,
34
- R.zeroOrMore(R.whitespace),
35
- ])
36
- ]);
37
- closingTag = pattern([
38
- '</',
39
- R.zeroOrMore(R.whitespace),
40
- R.capture(R.oneOrMore(R.notAnyOfChars(R.whitespace, '/', '>'))),
41
- R.zeroOrMore(R.whitespace),
42
- '>'
43
- ]);
44
- declarationTag = () => [
45
- this.declarationTagOpening,
46
- zeroOrMore(this.declarationTagAttribute),
47
- this.tagEnd
48
- ];
49
- declarationTagOpening = pattern([
50
- '<!',
51
- R.capture(R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '/', '>'))),
52
- R.zeroOrMore(R.whitespace)
53
- ]);
54
- declarationTagAttribute = pattern([
55
- R.zeroOrMore(R.whitespace),
56
- R.anyOf(R.capture(R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '/', '!', '?', '>'))), quotedString),
57
- R.zeroOrMore(R.whitespace),
58
- ]);
59
- comment = pattern([
60
- '<!--',
61
- R.capture(R.zeroOrMoreNonGreedy(R.anyChar)),
62
- '-->'
63
- ]);
64
- }
65
- const quotedString = R.anyOf([
66
- '"',
67
- R.capture(R.zeroOrMore(R.notAnyOfChars('"'))),
68
- '"'
69
- ], [
70
- "'",
71
- R.capture(R.zeroOrMore(R.notAnyOfChars("'"))),
72
- "'"
73
- ]);
74
- //# sourceMappingURL=XmlGrammar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XmlGrammar.js","sourceRoot":"","sources":["../../src/grammars/XmlGrammar.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,37 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { buildGrammar } from "./GrammarComposer.js";
3
- import { parseString } from "./TopDownParser.js";
4
- import { Timer } from "./utilities/Timer.js";
5
- import { xmlSample3 } from "./test-data/TestData.js";
6
- import { JsonGrammar } from "./test-grammars/JsonGrammar.js";
7
- import { XmlGrammar } from './test-grammars/XmlGrammar.js';
8
- async function testJsonParser() {
9
- const jsonData = await readFile('./test-data/heteronyms.en.json', { encoding: 'utf-8' });
10
- const grammar = buildGrammar(JsonGrammar, 'expression');
11
- function run() {
12
- const timer = new Timer();
13
- const result1 = parseString(jsonData, grammar);
14
- timer.logAndRestart('Parse');
15
- const result2 = JSON.parse(jsonData);
16
- timer.logAndRestart('JSON.Parse');
17
- console.log(JSON.stringify(result2, undefined, 4));
18
- }
19
- for (let i = 0; i < 20; i++) {
20
- run();
21
- }
22
- }
23
- async function testXmlParser() {
24
- const xmlData = xmlSample3;
25
- const grammar = buildGrammar(XmlGrammar, 'document');
26
- function run() {
27
- const timer = new Timer();
28
- const result1 = parseString(xmlData, grammar);
29
- timer.logAndRestart('Parse');
30
- //console.log(JSON.stringify(result1, undefined, 4))
31
- }
32
- for (let i = 0; i < 20; i++) {
33
- run();
34
- }
35
- }
36
- testJsonParser();
37
- //# sourceMappingURL=ParserTest.js.map