grammar-composer 0.2.4 → 0.3.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.
Files changed (81) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +4 -3
  3. package/dist/exports/Exports.d.ts +2 -0
  4. package/dist/exports/Exports.d.ts.map +1 -0
  5. package/dist/exports/Exports.js +2 -0
  6. package/dist/exports/Exports.js.map +1 -0
  7. package/dist/{GrammarComposer.d.ts → parser-generator/Grammar.d.ts} +2 -1
  8. package/dist/parser-generator/Grammar.d.ts.map +1 -0
  9. package/dist/{GrammarComposer.js → parser-generator/Grammar.js} +84 -27
  10. package/dist/parser-generator/Grammar.js.map +1 -0
  11. package/dist/{TopDownParser.d.ts → parser-generator/TopDownParser.d.ts} +3 -2
  12. package/dist/parser-generator/TopDownParser.d.ts.map +1 -0
  13. package/dist/{TopDownParser.js → parser-generator/TopDownParser.js} +13 -8
  14. package/dist/parser-generator/TopDownParser.js.map +1 -0
  15. package/dist/tests/Test.d.ts +2 -0
  16. package/dist/tests/Test.d.ts.map +1 -0
  17. package/dist/{Test.js → tests/Test.js} +6 -6
  18. package/dist/tests/Test.js.map +1 -0
  19. package/dist/{test-data → tests/test-data}/TestData.d.ts +1 -0
  20. package/dist/tests/test-data/TestData.d.ts.map +1 -0
  21. package/dist/tests/test-data/TestData.js.map +1 -0
  22. package/dist/{test-grammars → tests/test-grammars}/JsonGrammar.d.ts +2 -1
  23. package/dist/tests/test-grammars/JsonGrammar.d.ts.map +1 -0
  24. package/dist/{test-grammars → tests/test-grammars}/JsonGrammar.js +1 -1
  25. package/dist/tests/test-grammars/JsonGrammar.js.map +1 -0
  26. package/dist/{test-grammars → tests/test-grammars}/RegExpGrammar.d.ts +4 -2
  27. package/dist/tests/test-grammars/RegExpGrammar.d.ts.map +1 -0
  28. package/dist/{test-grammars → tests/test-grammars}/RegExpGrammar.js +26 -19
  29. package/dist/tests/test-grammars/RegExpGrammar.js.map +1 -0
  30. package/dist/{test-grammars → tests/test-grammars}/XmlGrammar.d.ts +2 -1
  31. package/dist/tests/test-grammars/XmlGrammar.d.ts.map +1 -0
  32. package/dist/{test-grammars → tests/test-grammars}/XmlGrammar.js +1 -1
  33. package/dist/tests/test-grammars/XmlGrammar.js.map +1 -0
  34. package/dist/utilities/Timer.d.ts +1 -0
  35. package/dist/utilities/Timer.d.ts.map +1 -0
  36. package/dist/utilities/Timer.js +1 -1
  37. package/dist/utilities/{utilities.d.ts → Utilities.d.ts} +1 -0
  38. package/dist/utilities/Utilities.d.ts.map +1 -0
  39. package/package.json +5 -5
  40. package/src/exports/Exports.ts +1 -0
  41. package/src/{GrammarComposer.ts → parser-generator/Grammar.ts} +94 -30
  42. package/src/{TopDownParser.ts → parser-generator/TopDownParser.ts} +15 -12
  43. package/src/{Test.ts → tests/Test.ts} +6 -6
  44. package/src/{test-grammars → tests/test-grammars}/JsonGrammar.ts +1 -1
  45. package/src/{test-grammars → tests/test-grammars}/RegExpGrammar.ts +34 -20
  46. package/src/{test-grammars → tests/test-grammars}/XmlGrammar.ts +1 -1
  47. package/src/utilities/Timer.ts +1 -1
  48. package/tsconfig.json +53 -103
  49. package/dist/Exports.d.ts +0 -1
  50. package/dist/Exports.js +0 -2
  51. package/dist/Exports.js.map +0 -1
  52. package/dist/Grammar.d.ts +0 -62
  53. package/dist/Grammar.js +0 -376
  54. package/dist/Grammar.js.map +0 -1
  55. package/dist/GrammarComposer.js.map +0 -1
  56. package/dist/Grammars/JsonGrammar.d.ts +0 -16
  57. package/dist/Grammars/JsonGrammar.js +0 -74
  58. package/dist/Grammars/JsonGrammar.js.map +0 -1
  59. package/dist/Grammars/XmlGrammar.d.ts +0 -13
  60. package/dist/Grammars/XmlGrammar.js +0 -74
  61. package/dist/Grammars/XmlGrammar.js.map +0 -1
  62. package/dist/ParserTest.d.ts +0 -1
  63. package/dist/ParserTest.js +0 -37
  64. package/dist/ParserTest.js.map +0 -1
  65. package/dist/Test.d.ts +0 -1
  66. package/dist/Test.js.map +0 -1
  67. package/dist/TestData.d.ts +0 -5
  68. package/dist/TestData.js +0 -466
  69. package/dist/TestData.js.map +0 -1
  70. package/dist/TopDownParser.js.map +0 -1
  71. package/dist/data/TestData.d.ts +0 -5
  72. package/dist/data/TestData.js +0 -466
  73. package/dist/data/TestData.js.map +0 -1
  74. package/dist/test-data/TestData.js.map +0 -1
  75. package/dist/test-grammars/JsonGrammar.js.map +0 -1
  76. package/dist/test-grammars/RegExpGrammar.js.map +0 -1
  77. package/dist/test-grammars/XmlGrammar.js.map +0 -1
  78. /package/dist/{test-data → tests/test-data}/TestData.js +0 -0
  79. /package/dist/utilities/{utilities.js → Utilities.js} +0 -0
  80. /package/dist/utilities/{utilities.js.map → Utilities.js.map} +0 -0
  81. /package/src/{test-data → tests/test-data}/TestData.ts +0 -0
package/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2024 Rotem Dan
1
+ Copyright (c) 2026 Rotem Dan
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
 
package/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  A library to define, build and efficiently parse context-free grammars.
4
4
 
5
5
  * Grammars are defined using TypeScript class declarations
6
- * No need for separate tokenization step. Tokenization is defined as part of the grammar via embedded `Pattern` objects that are internally processed through the [`regexp-composer`](https://github.com/rotemdan/regexp-composer) regular expression library
7
- * The generated parser accepts raw characters as input, meaning it's a form of lexer-free, or hybrid parser, supporting contextual tokenization - that is, low-level character patterns can be specialized to different high-level parser contexts, and sub-patterns captured in the low-level regular expressions are directly embedded as part of the resulting parse tree
6
+ * No tokenization stage. The generated parser accepts raw characters as input, meaning it's a form of lexer-free, or hybrid parser, supporting contextual tokenization - that is, low-level character patterns can be specialized to different high-level parser contexts, and sub-patterns captured in the low-level regular expressions are directly embedded as part of the resulting parse tree
7
+ * Raw character parsing is defined as part of the grammar via embedded `Pattern` objects that are internally processed through the [`regexp-composer`](https://github.com/rotemdan/regexp-composer) regular expression library. This means that any subset of the grammar that can be stated as a regular expression can be moved to be parsed using the highly optimized native JavaScript RegExp engine, instead of being parsed via the slower context-free parser
8
8
  * Top-down parsing (roughly equivalent to PEG parsing), with optional "packrat" caching that can be enabled or disabled for individual productions
9
9
  * Supports right-recursion, but will currently error when left-recursion is detected
10
10
  * Uses sophisticated static analysis to automatically identify and annotate optional productions
@@ -29,6 +29,7 @@ The grammar is defined within a container class `XmlGrammar`. It contains a mixt
29
29
  * Regular expression productions are defined by `pattern(...)`
30
30
 
31
31
  In this example, context-free operators are prefixed with `G`, and regular expression operators are prefixed with `R`, to avoid confusion between similarly named operators:
32
+
32
33
  ```ts
33
34
  import * as G from 'grammar-composer'
34
35
  import * as R from 'regexp-composer'
@@ -173,7 +174,7 @@ const quotedString = R.anyOf(
173
174
  )
174
175
  ```
175
176
 
176
- Building and parsing using the XML grammar:
177
+ ### Building and parsing using the XML grammar
177
178
 
178
179
  ```ts
179
180
  import { buildGrammar } from 'grammar-composer'
@@ -0,0 +1,2 @@
1
+ export * from '../parser-generator/Grammar.js';
2
+ //# sourceMappingURL=Exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Exports.d.ts","sourceRoot":"","sources":["../../src/exports/Exports.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from '../parser-generator/Grammar.js';
2
+ //# sourceMappingURL=Exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Exports.js","sourceRoot":"","sources":["../../src/exports/Exports.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -15,7 +15,7 @@ export declare class Grammar<T> {
15
15
  readonly startProductionName: keyof T;
16
16
  readonly maxElementId: number;
17
17
  constructor(productions: Record<keyof T, any>, startProductionName: keyof T, maxElementId: number);
18
- parse(text: string): import("./TopDownParser.js").ParseTreeNode[] | undefined;
18
+ parse(text: string): import("./TopDownParser.js").ParseTreeNode[];
19
19
  get rootElement(): any;
20
20
  }
21
21
  export type Production = string | GrammarElement | (() => Production) | Production[];
@@ -59,3 +59,4 @@ export interface NonterminalReference extends GrammarElementBase {
59
59
  reference: Function;
60
60
  }
61
61
  export {};
62
+ //# sourceMappingURL=Grammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grammar.d.ts","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { buildRegExp, inputStart, isPatternOptional } from 'regexp-composer';
2
- import { isArray, isBoolean, isFunction, isString } from "./utilities/Utilities.js";
2
+ import { isArray, isBoolean, isFunction, isString } from '../utilities/Utilities.js';
3
3
  import { parse } from './TopDownParser.js';
4
4
  /////////////////////////////////////////////////////////////////////////////////////////////////
5
5
  // Grammar builder method
@@ -17,7 +17,7 @@ export function buildGrammar(obj, startProductionName) {
17
17
  if (!isFunction(objectProperty)) {
18
18
  continue;
19
19
  }
20
- const productionContent = objectProperty();
20
+ const productionContent = objectProperty.call(obj);
21
21
  const normalizedProduction = productionToGrammarElement(productionContent);
22
22
  const newNonterminal = nonterminal(key, normalizedProduction);
23
23
  const newOptionalNonterminal = { ...newNonterminal, optional: true };
@@ -87,6 +87,14 @@ function prepareGrammarElement(rootElement, nonterminalLookup, optionalNontermin
87
87
  if (!nonterminal) {
88
88
  throw new Error(`Couldn't resolve function reference in grammar element: ${JSON.stringify(element)}`);
89
89
  }
90
+ if (element.cached !== undefined || element.uniqueId !== undefined) {
91
+ const clonedNonterminal = { ...nonterminal };
92
+ if (element.cached !== undefined) {
93
+ clonedNonterminal.cached = element.cached;
94
+ }
95
+ clonedNonterminal.uniqueId = getUniqueId();
96
+ return clonedNonterminal;
97
+ }
90
98
  if (nonterminal.uniqueId === undefined) {
91
99
  nonterminal.uniqueId = getUniqueId();
92
100
  }
@@ -126,19 +134,49 @@ function detectAndAnnotateOptionalNodes(rootNode) {
126
134
  return result;
127
135
  }
128
136
  else {
129
- unresolvedNodes.set(node, new Set([node.content]));
137
+ unresolvedNodes.set(node, { dependencies: new Set([node.content]), isChoice: false });
138
+ return undefined;
139
+ }
140
+ }
141
+ case 'Sequence': {
142
+ const dependencies = new Set();
143
+ let hasNonOptionalResolvedMember = false;
144
+ for (const element of node.members) {
145
+ const result = processDepthFirst(element);
146
+ if (isBoolean(result)) {
147
+ if (result === false) {
148
+ hasNonOptionalResolvedMember = true;
149
+ }
150
+ }
151
+ else {
152
+ dependencies.add(element);
153
+ }
154
+ }
155
+ if (node.optional == true) {
156
+ resolvedNodes.set(node, true);
157
+ return true;
158
+ }
159
+ else if (hasNonOptionalResolvedMember) {
160
+ resolvedNodes.set(node, false);
161
+ return false;
162
+ }
163
+ else if (dependencies.size == 0) {
164
+ resolvedNodes.set(node, true);
165
+ return true;
166
+ }
167
+ else {
168
+ unresolvedNodes.set(node, { dependencies, isChoice: false });
130
169
  return undefined;
131
170
  }
132
171
  }
133
- case 'Sequence':
134
172
  case 'Choice': {
135
173
  const dependencies = new Set();
136
- let allResolvedElementsAreOptional = true;
174
+ let hasOptionalResolvedMember = false;
137
175
  for (const element of node.members) {
138
176
  const result = processDepthFirst(element);
139
177
  if (isBoolean(result)) {
140
- if (result == false) {
141
- allResolvedElementsAreOptional = false;
178
+ if (result === true) {
179
+ hasOptionalResolvedMember = true;
142
180
  }
143
181
  }
144
182
  else {
@@ -149,12 +187,16 @@ function detectAndAnnotateOptionalNodes(rootNode) {
149
187
  resolvedNodes.set(node, true);
150
188
  return true;
151
189
  }
152
- else if (dependencies.size == 0 || !allResolvedElementsAreOptional) {
153
- resolvedNodes.set(node, allResolvedElementsAreOptional);
154
- return allResolvedElementsAreOptional;
190
+ else if (hasOptionalResolvedMember) {
191
+ resolvedNodes.set(node, true);
192
+ return true;
193
+ }
194
+ else if (dependencies.size == 0) {
195
+ resolvedNodes.set(node, false);
196
+ return false;
155
197
  }
156
198
  else {
157
- unresolvedNodes.set(node, dependencies);
199
+ unresolvedNodes.set(node, { dependencies, isChoice: true });
158
200
  return undefined;
159
201
  }
160
202
  }
@@ -171,34 +213,49 @@ function detectAndAnnotateOptionalNodes(rootNode) {
171
213
  // If it stays false, it means that no improvement was made during the iteration,
172
214
  // and we should exit the loop.
173
215
  let atLastOneDependencyResolvedInAnyNode = false;
216
+ const nodesToDelete = [];
174
217
  // Scan the unresolved nodes to locate any new resolved dependencies
175
- for (const [node, dependencies] of unresolvedNodes) {
176
- let nonOptionalDependencyFound = false;
218
+ for (const [node, { dependencies, isChoice }] of unresolvedNodes) {
219
+ let nodeResolved = false;
177
220
  // Iterate over all unresolved dependencies for the node
178
- for (const dependency of dependencies) {
221
+ for (const dependency of Array.from(dependencies)) {
179
222
  // Check if the dependency has been resolved
180
223
  const value = resolvedNodes.get(dependency);
181
224
  if (value !== undefined) {
182
225
  // If it did, record that some dependencies were resolved
183
226
  atLastOneDependencyResolvedInAnyNode = true;
184
- if (value === false) {
185
- // If the value was false, then the entire target node must not be optional
186
- nonOptionalDependencyFound = true;
187
- break;
227
+ if (isChoice) {
228
+ if (value === true) {
229
+ resolvedNodes.set(node, true);
230
+ nodeResolved = true;
231
+ break;
232
+ }
188
233
  }
189
234
  else {
190
- // If the result was true, remove the dependency from the set
191
- dependencies.delete(dependency);
235
+ if (value === false) {
236
+ resolvedNodes.set(node, false);
237
+ nodeResolved = true;
238
+ break;
239
+ }
192
240
  }
241
+ dependencies.delete(dependency);
193
242
  }
194
243
  }
195
- // If either a non-optional dependency was found, or all dependencies were resolved,
196
- // resolve the target node:
197
- if (nonOptionalDependencyFound || dependencies.size === 0) {
198
- const isOptional = !nonOptionalDependencyFound;
199
- resolvedNodes.set(node, isOptional);
200
- unresolvedNodes.delete(node);
244
+ if (nodeResolved) {
245
+ nodesToDelete.push(node);
201
246
  }
247
+ else if (dependencies.size === 0) {
248
+ if (isChoice) {
249
+ resolvedNodes.set(node, false);
250
+ }
251
+ else {
252
+ resolvedNodes.set(node, true);
253
+ }
254
+ nodesToDelete.push(node);
255
+ }
256
+ }
257
+ for (const node of nodesToDelete) {
258
+ unresolvedNodes.delete(node);
202
259
  }
203
260
  // If not even one dependency was eliminated for any node,
204
261
  // it means that only mutually cyclic nodes are left unresolved, so exit the loop.
@@ -393,4 +450,4 @@ export class Grammar {
393
450
  return this.productions[this.startProductionName];
394
451
  }
395
452
  }
396
- //# sourceMappingURL=GrammarComposer.js.map
453
+ //# sourceMappingURL=Grammar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grammar.js","sourceRoot":"","sources":["../../src/parser-generator/Grammar.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Grammar } from "./GrammarComposer.js";
2
- export declare function parse(inputString: string, grammar: Grammar<any>): ParseTreeNode[] | undefined;
1
+ import { Grammar } from './Grammar.js';
2
+ export declare function parse(inputString: string, grammar: Grammar<any>): ParseTreeNode[];
3
3
  export interface ParseResult {
4
4
  endOffset: number;
5
5
  nodes: ParseTreeNode[] | undefined;
@@ -11,3 +11,4 @@ export interface ParseTreeNode {
11
11
  sourceText: string;
12
12
  children: ParseTreeNode[] | undefined;
13
13
  }
14
+ //# sourceMappingURL=TopDownParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopDownParser.d.ts","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA4B,MAAM,cAAc,CAAA;AAEhE,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBA8R/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"}
@@ -60,10 +60,6 @@ export function parse(inputString, grammar) {
60
60
  }
61
61
  }
62
62
  case 'PatternTerminal': {
63
- if (startOffset >= inputLength) {
64
- updateBestFailedMatchesIfNeeded(grammarElement, startOffset);
65
- return null;
66
- }
67
63
  const substringToMatch = inputString.substring(startOffset);
68
64
  const matchResults = grammarElement.regExp.exec(substringToMatch);
69
65
  if (matchResults === null) {
@@ -156,6 +152,9 @@ export function parse(inputString, grammar) {
156
152
  if (result === null) {
157
153
  break;
158
154
  }
155
+ if (result.endOffset === readOffset) {
156
+ break;
157
+ }
159
158
  if (result.nodes !== undefined) {
160
159
  nodes.push(...result.nodes);
161
160
  }
@@ -167,6 +166,12 @@ export function parse(inputString, grammar) {
167
166
  nodes: nodes.length > 0 ? nodes : undefined
168
167
  };
169
168
  }
169
+ else if (grammarElement.optional === true) {
170
+ return {
171
+ endOffset: startOffset,
172
+ nodes: undefined
173
+ };
174
+ }
170
175
  else {
171
176
  return null;
172
177
  }
@@ -190,9 +195,8 @@ export function parse(inputString, grammar) {
190
195
  }
191
196
  }
192
197
  const result = tryParse(grammar.rootElement, 0);
193
- const lastNode = result?.nodes?.[result.nodes.length - 1];
194
- if (lastNode && lastNode.endOffset >= inputLength) {
195
- return result.nodes;
198
+ if (result && result.endOffset >= inputLength) {
199
+ return result.nodes ?? [];
196
200
  }
197
201
  else {
198
202
  if (bestFailedMatches.length > 0) {
@@ -218,7 +222,8 @@ export function parse(inputString, grammar) {
218
222
  throw new Error(`Failed parsing the input text. Expected ${possibleMatchesString} at position ${bestFailedMatchesOffset}.`);
219
223
  }
220
224
  else {
221
- throw new Error(`Failed parsing the input text. Parsed length was ${lastNode?.endOffset ?? 0}. Input length was ${inputLength}.`);
225
+ const lastNode = result?.nodes?.[result.nodes.length - 1];
226
+ throw new Error(`Failed parsing the input text. Parsed length was ${lastNode?.endOffset ?? result?.endOffset ?? 0}. Input length was ${inputLength}.`);
222
227
  }
223
228
  }
224
229
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopDownParser.js","sourceRoot":"","sources":["../../src/parser-generator/TopDownParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":""}
@@ -1,9 +1,9 @@
1
- import { Timer } from "./utilities/Timer.js";
2
- import { jsonSample1 } from "./test-data/TestData.js";
3
- import { anyOf, buildGrammar } from "./GrammarComposer.js";
4
- import { JsonGrammar } from "./test-grammars/JsonGrammar.js";
5
- import { XmlGrammar } from "./test-grammars/XmlGrammar.js";
6
- import { RegExpGrammar } from "./test-grammars/RegExpGrammar.js";
1
+ import { Timer } from '../utilities/Timer.js';
2
+ import { jsonSample1 } from './test-data/TestData.js';
3
+ import { anyOf, buildGrammar } from '../exports/Exports.js';
4
+ import { JsonGrammar } from './test-grammars/JsonGrammar.js';
5
+ import { XmlGrammar } from './test-grammars/XmlGrammar.js';
6
+ import { RegExpGrammar } from './test-grammars/RegExpGrammar.js';
7
7
  const log = console.log;
8
8
  function testBasic() {
9
9
  class MyGrammar {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.js","sourceRoot":"","sources":["../../src/tests/Test.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export declare const jsonSample2: string;
3
3
  export declare const xmlSample1 = "\n\n<menu>\n <popup>\n \t<test value='New'>\n <!--<menuitem value=\"New\" onclick=\"CreateNewDoc()\" />-->\n <menuitem value=\"Open\" onclick=\"OpenDoc()\" />\n <menuitem value=\"Close\" onclick=\"CloseDoc()\" />\n </popup>\n</menu>";
4
4
  export declare const xmlSample2 = "\n<!DOCTYPE web-app\n PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN\"\n \"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd\">\n\n<menu>\n <header>Adobe SVG Viewer</header>\n <item action=\"Open\" id=\"Open\">Open</item>\n <item action=\"OpenNew\" id=\"OpenNew\">Open New</item>\n <separator/>\n <item action=\"ZoomIn\" id=\"ZoomIn\">Zoom In</item>\n <item action=\"ZoomOut\" id=\"ZoomOut\">Zoom Out</item>\n <item action=\"OriginalView\" id=\"OriginalView\">Original View</item>\n <separator/>\n <item action=\"Quality\" id=\"Quality\">Quality</item>\n <item action=\"Pause\" id=\"Pause\">Pause</item>\n <item action=\"Mute\" id=\"Mute\">Mute</item>\n <separator/>\n <item action=\"Find\" id=\"Find\">Find...</item>\n <item action=\"FindAgain\" id=\"FindAgain\">Find Again</item>\n <item action=\"Copy\" id=\"Copy\">Copy</item>\n <item action=\"CopyAgain\" id=\"CopyAgain\">Copy Again</item>\n <item action=\"CopySVG\" id=\"CopySVG\">Copy SVG</item>\n <item action=\"ViewSVG\" id=\"ViewSVG\">View SVG</item>\n <item action=\"ViewSource\" id=\"ViewSource\">View Source</item>\n <item action=\"SaveAs\" id=\"SaveAs\">Save As</item>\n <separator/>\n <item action=\"Help\" id=\"Help\">Help</item>\n <item action=\"About\" id=\"About\">About Adobe CVG Viewer...</item>\n</menu>";
5
5
  export declare const xmlSample3 = "\n<!DOCTYPE web-app\n PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN\"\n \"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd\">\n<web-app>\n\t<servlet>\n\t\t<servlet-name>\n cofaxCDS\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.CDSServlet\n </servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:installationAt</param-name>\n\t\t\t<param-value>Philadelphia, PA</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:adminEmail</param-name>\n\t\t\t<param-value>ksm@pobox.com</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:poweredBy</param-name>\n\t\t\t<param-value>Cofax</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:poweredByIcon</param-name>\n\t\t\t<param-value>/images/cofax.gif</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>configGlossary:staticPath</param-name>\n\t\t\t<param-value>/content/static</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templateProcessorClass</param-name>\n\t\t\t<param-value>org.cofax.WysiwygTemplate</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templateLoaderClass</param-name>\n\t\t\t<param-value>org.cofax.FilesTemplateLoader</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templatePath</param-name>\n\t\t\t<param-value>templates</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>templateOverridePath</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>defaultListTemplate</param-name>\n\t\t\t<param-value>listTemplate.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>defaultFileTemplate</param-name>\n\t\t\t<param-value>articleTemplate.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>useJSP</param-name>\n\t\t\t<param-value>false</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>jspListTemplate</param-name>\n\t\t\t<param-value>listTemplate.jsp</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>jspFileTemplate</param-name>\n\t\t\t<param-value>articleTemplate.jsp</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePackageTagsTrack</param-name>\n\t\t\t<param-value>200</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePackageTagsStore</param-name>\n\t\t\t<param-value>200</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePackageTagsRefresh</param-name>\n\t\t\t<param-value>60</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cacheTemplatesTrack</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cacheTemplatesStore</param-name>\n\t\t\t<param-value>50</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cacheTemplatesRefresh</param-name>\n\t\t\t<param-value>15</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesTrack</param-name>\n\t\t\t<param-value>200</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesStore</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesRefresh</param-name>\n\t\t\t<param-value>10</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>cachePagesDirtyRead</param-name>\n\t\t\t<param-value>10</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>searchEngineListTemplate</param-name>\n\t\t\t<param-value>forSearchEnginesList.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>searchEngineFileTemplate</param-name>\n\t\t\t<param-value>forSearchEngines.htm</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>searchEngineRobotsDb</param-name>\n\t\t\t<param-value>WEB-INF/robots.db</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>useDataStore</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreClass</param-name>\n\t\t\t<param-value>org.cofax.SqlDataStore</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>redirectionClass</param-name>\n\t\t\t<param-value>org.cofax.SqlRedirection</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreName</param-name>\n\t\t\t<param-value>cofax</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreDriver</param-name>\n\t\t\t<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreUrl</param-name>\n\t\t\t<param-value>jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreUser</param-name>\n\t\t\t<param-value>sa</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStorePassword</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreTestQuery</param-name>\n\t\t\t<param-value>SET NOCOUNT ON;select test='test';</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreLogFile</param-name>\n\t\t\t<param-value>/usr/local/tomcat/logs/datastore.log</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreInitConns</param-name>\n\t\t\t<param-value>10</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreMaxConns</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreConnUsageLimit</param-name>\n\t\t\t<param-value>100</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataStoreLogLevel</param-name>\n\t\t\t<param-value>debug</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>maxUrlLength</param-name>\n\t\t\t<param-value>500</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n cofaxEmail\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.EmailServlet\n </servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>mailHost</param-name>\n\t\t\t<param-value>mail1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>mailHostOverride</param-name>\n\t\t\t<param-value>mail2</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n cofaxAdmin\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.AdminServlet\n </servlet-class>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n fileServlet\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cds.FileServlet\n </servlet-class>\n\t</servlet>\n\t<servlet>\n\t\t<servlet-name>\n cofaxTools\n </servlet-name>\n\t\t<servlet-class>\n org.cofax.cms.CofaxToolsServlet\n </servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>templatePath</param-name>\n\t\t\t<param-value>toolstemplates/</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>log</param-name>\n\t\t\t<param-value>1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>logLocation</param-name>\n\t\t\t<param-value>/usr/local/tomcat/logs/CofaxTools.log</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>logMaxSize</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataLog</param-name>\n\t\t\t<param-value>1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataLogLocation</param-name>\n\t\t\t<param-value>/usr/local/tomcat/logs/dataLog.log</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>dataLogMaxSize</param-name>\n\t\t\t<param-value></param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>removePageCache</param-name>\n\t\t\t<param-value>/content/admin/remove?cache=pages&id=</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>removeTemplateCache</param-name>\n\t\t\t<param-value>/content/admin/remove?cache=templates&id=</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>fileTransferFolder</param-name>\n\t\t\t<param-value>/usr/local/tomcat/webapps/content/fileTransferFolder</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>lookInContext</param-name>\n\t\t\t<param-value>1</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>adminGroupID</param-name>\n\t\t\t<param-value>4</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>betaServer</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxCDS\n </servlet-name>\n\t\t<url-pattern>\n /\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxEmail\n </servlet-name>\n\t\t<url-pattern>\n /cofaxutil/aemail/*\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxAdmin\n </servlet-name>\n\t\t<url-pattern>\n /admin/*\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n fileServlet\n </servlet-name>\n\t\t<url-pattern>\n /static/*\n </url-pattern>\n\t</servlet-mapping>\n\t<servlet-mapping>\n\t\t<servlet-name>\n cofaxTools\n </servlet-name>\n\t\t<url-pattern>\n /tools/*\n </url-pattern>\n\t</servlet-mapping>\n\t<taglib>\n\t\t<taglib-uri>cofax.tld</taglib-uri>\n\t\t<taglib-location>/WEB-INF/tlds/cofax.tld</taglib-location>\n\t</taglib>\n</web-app>\n";
6
+ //# sourceMappingURL=TestData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestData.d.ts","sourceRoot":"","sources":["../../../src/tests/test-data/TestData.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAKR,CAAA;AAEhB,eAAO,MAAM,WAAW,QAoGR,CAAA;AAEhB,eAAO,MAAM,UAAU,yPASf,CAAA;AAER,eAAO,MAAM,UAAU,u1CA6Bf,CAAA;AAER,eAAO,MAAM,UAAU,yhTA8TtB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestData.js","sourceRoot":"","sources":["../../../src/tests/test-data/TestData.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as G from "../GrammarComposer.js";
1
+ import * as G from '../../exports/Exports.js';
2
2
  export declare class JsonGrammar {
3
3
  expression: () => G.Choice;
4
4
  stringLiteral: G.PatternTerminal;
@@ -15,3 +15,4 @@ export declare class JsonGrammar {
15
15
  comma: G.PatternTerminal;
16
16
  colons: G.PatternTerminal;
17
17
  }
18
+ //# sourceMappingURL=JsonGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/JsonGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,WAAW;IACvB,UAAU,iBAOT;IAED,aAAa,oBAcX;IAEF,aAAa,oBAiBX;IAEF,cAAc,oBAQZ;IAEF,WAAW,oBAMT;IAEF,gBAAgB,uBASf;IAED,wBAAwB,iDAIvB;IAED,eAAe,uBASd;IAED,iBAAiB,oBAA0C;IAC3D,iBAAiB,oBAA0C;IAE3D,oBAAoB,oBAA0C;IAC9D,oBAAoB,oBAA0C;IAE9D,KAAK,oBAA0C;IAC/C,MAAM,oBAA0C;CAChD"}
@@ -1,4 +1,4 @@
1
- import * as G from "../GrammarComposer.js";
1
+ import * as G from '../../exports/Exports.js';
2
2
  import * as R from 'regexp-composer';
3
3
  export class JsonGrammar {
4
4
  expression = () => G.anyOf(this.stringLiteral, this.numberLiteral, this.booleanLiteral, this.nullLiteral, this.objectExpression, this.arrayExpression);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/JsonGrammar.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as G from '../GrammarComposer.js';
1
+ import * as G from '../../exports/Exports.js';
2
2
  import * as R from 'regexp-composer';
3
3
  export declare class RegExpGrammar {
4
4
  disjunction: () => G.Production[];
@@ -24,7 +24,8 @@ export declare class RegExpGrammar {
24
24
  escapedCharLiteral: () => G.PatternTerminal;
25
25
  hexCharcode: () => G.PatternTerminal;
26
26
  controlCharcode: () => G.PatternTerminal;
27
- codepoint: () => G.PatternTerminal;
27
+ nullCharcode: () => G.PatternTerminal;
28
+ codepoint: () => G.Choice;
28
29
  codepointRange: () => G.PatternTerminal;
29
30
  unicodeProperty: () => G.PatternTerminal;
30
31
  notUnicodeProperty: () => G.PatternTerminal;
@@ -45,3 +46,4 @@ export declare class RegExpGrammar {
45
46
  anchor: G.Choice;
46
47
  escapedCharacterClass: () => G.PatternTerminal;
47
48
  }
49
+ //# sourceMappingURL=RegExpGrammar.d.ts.map
@@ -0,0 +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,uBAOV;IAED,QAAQ,qBAAmC;IAE3C,OAAO,iBAIN;IAKD,4BAA4B,uBAe3B;IAED,oBAAoB,0BAIlB;IAEF,oBAAoB,0BAMlB;IAKF,KAAK,iBAIJ;IAED,eAAe,4CAId;IAED,iBAAiB,gEAMhB;IAED,mBAAmB,4CAIlB;IAKD,oBAAoB,0BAIjB;IAEH,kBAAkB,0BAKf;IAEH,aAAa,WAGZ;IAKD,iBAAiB,4CAIhB;IAED,iBAAiB,4CAIhB;IAED,kBAAkB,4CAIjB;IAED,kBAAkB,4CAIjB;IAED,UAAU,WAKT;IAKD,oBAAoB,iBAQnB;IAED,qBAAqB,0BAEpB;IAED,kBAAkB,0BAGhB;IAEF,WAAW,0BAKR;IAEH,eAAe,0BAGb;IAEF,YAAY,0BAAyB;IAErC,SAAS,iBAcR;IAED,cAAc,0BAOZ;IAEF,eAAe,0BAGb;IAEF,kBAAkB,0BAGhB;IAEF,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAQpC;IAED,aAAa,0BAAwC;IAErD,SAAS,uBAaR;IAED,qBAAqB,WAKpB;IAED,gBAAgB,WAGf;IAED,SAAS,8BAIR;IAKD,cAAc,eAAY;IAC1B,cAAc,eAAY;IAC1B,mBAAmB,eAAY;IAE/B,gBAAgB,eAAY;IAE5B,gBAAgB,eAAY;IAC5B,cAAc,eAAY;IAE1B,eAAe,eAAY;IAE3B,oBAAoB,eAAY;IAEhC,MAAM,WAAsD;IAE5D,qBAAqB,0BAenB;CACF"}