clarity-pattern-parser 3.0.7 → 3.0.9

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 (62) hide show
  1. package/dist/Cursor.js +105 -0
  2. package/dist/Cursor.js.map +1 -0
  3. package/dist/CursorHistory.js +104 -0
  4. package/dist/CursorHistory.js.map +1 -0
  5. package/dist/Permutor.js +52 -0
  6. package/dist/Permutor.js.map +1 -0
  7. package/dist/TextSuggester.js +223 -0
  8. package/dist/TextSuggester.js.map +1 -0
  9. package/dist/ast/CompositeNode.js +17 -0
  10. package/dist/ast/CompositeNode.js.map +1 -0
  11. package/dist/ast/Node.js +16 -0
  12. package/dist/ast/Node.js.map +1 -0
  13. package/dist/ast/ValueNode.js +14 -0
  14. package/dist/ast/ValueNode.js.map +1 -0
  15. package/dist/ast/Visitor.d.ts +2 -2
  16. package/dist/ast/Visitor.js +209 -0
  17. package/dist/ast/Visitor.js.map +1 -0
  18. package/dist/index.browser.js +38 -32
  19. package/dist/index.browser.js.map +1 -1
  20. package/dist/index.esm.js +38 -32
  21. package/dist/index.esm.js.map +1 -1
  22. package/dist/index.js +38 -32
  23. package/dist/index.js.map +1 -1
  24. package/dist/patterns/ParseError.js +9 -0
  25. package/dist/patterns/ParseError.js.map +1 -0
  26. package/dist/patterns/Pattern.js +127 -0
  27. package/dist/patterns/Pattern.js.map +1 -0
  28. package/dist/patterns/RecursivePattern.js +65 -0
  29. package/dist/patterns/RecursivePattern.js.map +1 -0
  30. package/dist/patterns/composite/AndComposite.js +117 -0
  31. package/dist/patterns/composite/AndComposite.js.map +1 -0
  32. package/dist/patterns/composite/CompositePattern.js +7 -0
  33. package/dist/patterns/composite/CompositePattern.js.map +1 -0
  34. package/dist/patterns/composite/OptionalComposite.js +29 -0
  35. package/dist/patterns/composite/OptionalComposite.js.map +1 -0
  36. package/dist/patterns/composite/OrComposite.js +69 -0
  37. package/dist/patterns/composite/OrComposite.js.map +1 -0
  38. package/dist/patterns/composite/RepeatComposite.js +83 -0
  39. package/dist/patterns/composite/RepeatComposite.js.map +1 -0
  40. package/dist/patterns/value/AndValue.js +118 -0
  41. package/dist/patterns/value/AndValue.js.map +1 -0
  42. package/dist/patterns/value/AnyOfThese.js +59 -0
  43. package/dist/patterns/value/AnyOfThese.js.map +1 -0
  44. package/dist/patterns/value/Literal.js +63 -0
  45. package/dist/patterns/value/Literal.js.map +1 -0
  46. package/dist/patterns/value/NotValue.js +70 -0
  47. package/dist/patterns/value/NotValue.js.map +1 -0
  48. package/dist/patterns/value/OptionalValue.js +32 -0
  49. package/dist/patterns/value/OptionalValue.js.map +1 -0
  50. package/dist/patterns/value/OrValue.js +73 -0
  51. package/dist/patterns/value/OrValue.js.map +1 -0
  52. package/dist/patterns/value/RegexValue.js +69 -0
  53. package/dist/patterns/value/RegexValue.js.map +1 -0
  54. package/dist/patterns/value/RepeatValue.js +84 -0
  55. package/dist/patterns/value/RepeatValue.js.map +1 -0
  56. package/dist/patterns/value/ValuePattern.js +7 -0
  57. package/dist/patterns/value/ValuePattern.js.map +1 -0
  58. package/package.json +1 -1
  59. package/src/TextSuggester.ts +15 -7
  60. package/src/ast/Visitor.ts +40 -40
  61. package/src/tests/TextSuggester.test.ts +15 -0
  62. package/src/tests/javascriptPatterns/json.ts +1 -0
@@ -0,0 +1,209 @@
1
+ export default class Visitor {
2
+ constructor(root = null, selectedNodes = []) {
3
+ this.root = root;
4
+ this.selectedNodes = selectedNodes;
5
+ }
6
+ flatten() {
7
+ this.selectedNodes.forEach((node) => {
8
+ if (node.isComposite) {
9
+ const children = [];
10
+ Visitor.walkUp(node, (descendant) => {
11
+ if (!descendant.isComposite) {
12
+ children.push(descendant);
13
+ }
14
+ });
15
+ node.children = children;
16
+ }
17
+ });
18
+ return this;
19
+ }
20
+ remove() {
21
+ if (this.root == null) {
22
+ return this;
23
+ }
24
+ this.recursiveRemove(this.root);
25
+ return this;
26
+ }
27
+ recursiveRemove(node) {
28
+ const nodesToRemove = this.selectedNodes;
29
+ if (node.isComposite && Array.isArray(node.children)) {
30
+ for (let x = 0; x < node.children.length; x++) {
31
+ if (nodesToRemove.indexOf(node.children[x]) > -1) {
32
+ node.children.splice(x, 1);
33
+ x--;
34
+ }
35
+ else {
36
+ this.recursiveRemove(node.children[x]);
37
+ }
38
+ }
39
+ }
40
+ }
41
+ wrap(callback) {
42
+ const visitor = new Visitor(this.root);
43
+ visitor.selectRoot().transform((node) => {
44
+ if (this.selectedNodes.includes(node)) {
45
+ return callback(node);
46
+ }
47
+ return node;
48
+ });
49
+ return this;
50
+ }
51
+ unwrap() {
52
+ if (this.root == null) {
53
+ return this;
54
+ }
55
+ Visitor.walkDown(this.root, (node, stack) => {
56
+ if (this.selectedNodes.includes(node)) {
57
+ const parent = stack[stack.length - 1];
58
+ const grandParent = stack[stack.length - 2];
59
+ if (parent != null && grandParent != null) {
60
+ const index = grandParent.children.indexOf(parent);
61
+ if (index > -1) {
62
+ grandParent.children.splice(index, 1, ...parent.children);
63
+ }
64
+ }
65
+ }
66
+ });
67
+ return this;
68
+ }
69
+ prepend(callback) {
70
+ if (this.root == null) {
71
+ return this;
72
+ }
73
+ Visitor.walkUp(this.root, (node, stack) => {
74
+ if (this.selectedNodes.includes(node)) {
75
+ const parent = stack[stack.length - 1];
76
+ if (parent != null) {
77
+ const index = parent.children.indexOf(node);
78
+ if (index > -1) {
79
+ parent.children.splice(index, 0, callback(node));
80
+ }
81
+ }
82
+ }
83
+ });
84
+ return this;
85
+ }
86
+ append(callback) {
87
+ if (this.root == null) {
88
+ return this;
89
+ }
90
+ Visitor.walkDown(this.root, (node, stack) => {
91
+ if (this.selectedNodes.includes(node)) {
92
+ const parent = stack[stack.length - 1];
93
+ if (parent != null) {
94
+ const index = parent.children.indexOf(node);
95
+ if (index > -1) {
96
+ parent.children.splice(index + 1, 0, callback(node));
97
+ }
98
+ }
99
+ }
100
+ });
101
+ return this;
102
+ }
103
+ transform(callback) {
104
+ this.selectedNodes.forEach((node) => {
105
+ return this.recursiveTransform(node, callback);
106
+ });
107
+ return this;
108
+ }
109
+ recursiveTransform(node, callback) {
110
+ if (node.isComposite && Array.isArray(node.children)) {
111
+ const length = node.children.length;
112
+ for (let x = 0; x < length; x++) {
113
+ node.children[x] = this.recursiveTransform(node.children[x], callback);
114
+ }
115
+ }
116
+ return callback(node);
117
+ }
118
+ selectAll() {
119
+ return this.select((n) => true);
120
+ }
121
+ selectNode(node) {
122
+ return new Visitor(this.root, [...this.selectedNodes, node]);
123
+ }
124
+ deselectNode(node) {
125
+ const visitor = new Visitor(this.root, this.selectedNodes.slice());
126
+ return visitor.filter((n) => n !== node);
127
+ }
128
+ select(callback) {
129
+ if (this.root == null) {
130
+ return this;
131
+ }
132
+ const node = this.root;
133
+ const selectedNodes = [];
134
+ if (node.isComposite) {
135
+ Visitor.walkDown(node, (descendant) => {
136
+ if (callback(descendant)) {
137
+ selectedNodes.push(descendant);
138
+ }
139
+ });
140
+ }
141
+ return new Visitor(this.root, selectedNodes);
142
+ }
143
+ forEach(callback) {
144
+ this.selectedNodes.forEach(callback);
145
+ return this;
146
+ }
147
+ filter(callback) {
148
+ return new Visitor(this.root, this.selectedNodes.filter(callback));
149
+ }
150
+ map(callback) {
151
+ return new Visitor(this.root, this.selectedNodes.map(callback));
152
+ }
153
+ selectRoot() {
154
+ if (this.root == null) {
155
+ return this;
156
+ }
157
+ return new Visitor(this.root, [this.root]);
158
+ }
159
+ first() {
160
+ return this.get(0);
161
+ }
162
+ last() {
163
+ return this.get(this.selectedNodes.length - 1);
164
+ }
165
+ get(index) {
166
+ const node = this.selectedNodes[index];
167
+ if (node == null) {
168
+ throw new Error(`Couldn't find node at index: ${index}, out of ${this.selectedNodes.length}.`);
169
+ }
170
+ return new Visitor(node, []);
171
+ }
172
+ clear() {
173
+ this.selectedNodes = [];
174
+ return this;
175
+ }
176
+ setRoot(root) {
177
+ this.root = root;
178
+ return this;
179
+ }
180
+ static select(root, callback) {
181
+ if (callback != null) {
182
+ return new Visitor(root).select(callback);
183
+ }
184
+ else {
185
+ return new Visitor(root);
186
+ }
187
+ }
188
+ static walkUp(node, callback, ancestors = []) {
189
+ ancestors.push(node);
190
+ if (node.isComposite && Array.isArray(node.children)) {
191
+ const children = node.children.slice();
192
+ children.forEach((c) => this.walkUp(c, callback, ancestors));
193
+ }
194
+ ancestors.pop();
195
+ callback(node, ancestors);
196
+ return this;
197
+ }
198
+ static walkDown(node, callback, ancestors = []) {
199
+ callback(node, ancestors);
200
+ ancestors.push(node);
201
+ if (node.isComposite && Array.isArray(node.children)) {
202
+ const children = node.children.slice();
203
+ children.forEach((c) => this.walkDown(c, callback, ancestors));
204
+ }
205
+ ancestors.pop();
206
+ return this;
207
+ }
208
+ }
209
+ //# sourceMappingURL=Visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/ast/Visitor.ts"],"names":[],"mappings":"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"}
@@ -1432,22 +1432,28 @@
1432
1432
  }
1433
1433
  if (((_c = this.patternMatch) === null || _c === void 0 ? void 0 : _c.astNode) == null) {
1434
1434
  let options = (_d = this.rootPattern) === null || _d === void 0 ? void 0 : _d.getTokens();
1435
- const parts = this.text.split(" ").filter((part) => {
1436
- return part.length > 0;
1437
- });
1438
1435
  options = options === null || options === void 0 ? void 0 : options.filter((option) => {
1439
- return parts.some((part) => {
1440
- return option.indexOf(part) > -1;
1441
- });
1436
+ return option.indexOf(this.text) > -1;
1442
1437
  });
1443
1438
  if ((options === null || options === void 0 ? void 0 : options.length) === 0) {
1444
1439
  this.tokens = null;
1445
1440
  return;
1446
1441
  }
1442
+ const values = options === null || options === void 0 ? void 0 : options.map((option) => {
1443
+ const parts = option.split(this.text);
1444
+ return parts[1];
1445
+ });
1447
1446
  this.tokens = {
1448
1447
  startIndex: 0,
1449
- values: options || [],
1448
+ values: values || [],
1450
1449
  };
1450
+ this.matchedText = this.text;
1451
+ this.match = {
1452
+ text: this.text,
1453
+ startIndex: 0,
1454
+ endIndex: this.text.length - 1,
1455
+ };
1456
+ this.error = null;
1451
1457
  return;
1452
1458
  }
1453
1459
  const options = this.options;
@@ -1524,7 +1530,7 @@
1524
1530
  this.selectedNodes.forEach((node) => {
1525
1531
  if (node.isComposite) {
1526
1532
  const children = [];
1527
- this.walkUp(node, (descendant) => {
1533
+ Visitor.walkUp(node, (descendant) => {
1528
1534
  if (!descendant.isComposite) {
1529
1535
  children.push(descendant);
1530
1536
  }
@@ -1569,7 +1575,7 @@
1569
1575
  if (this.root == null) {
1570
1576
  return this;
1571
1577
  }
1572
- this.walkDown(this.root, (node, stack) => {
1578
+ Visitor.walkDown(this.root, (node, stack) => {
1573
1579
  if (this.selectedNodes.includes(node)) {
1574
1580
  const parent = stack[stack.length - 1];
1575
1581
  const grandParent = stack[stack.length - 2];
@@ -1587,7 +1593,7 @@
1587
1593
  if (this.root == null) {
1588
1594
  return this;
1589
1595
  }
1590
- this.walkUp(this.root, (node, stack) => {
1596
+ Visitor.walkUp(this.root, (node, stack) => {
1591
1597
  if (this.selectedNodes.includes(node)) {
1592
1598
  const parent = stack[stack.length - 1];
1593
1599
  if (parent != null) {
@@ -1604,7 +1610,7 @@
1604
1610
  if (this.root == null) {
1605
1611
  return this;
1606
1612
  }
1607
- this.walkDown(this.root, (node, stack) => {
1613
+ Visitor.walkDown(this.root, (node, stack) => {
1608
1614
  if (this.selectedNodes.includes(node)) {
1609
1615
  const parent = stack[stack.length - 1];
1610
1616
  if (parent != null) {
@@ -1632,26 +1638,6 @@
1632
1638
  }
1633
1639
  return callback(node);
1634
1640
  }
1635
- walkUp(node, callback, ancestors = []) {
1636
- ancestors.push(node);
1637
- if (node.isComposite && Array.isArray(node.children)) {
1638
- const children = node.children.slice();
1639
- children.forEach((c) => this.walkUp(c, callback, ancestors));
1640
- }
1641
- ancestors.pop();
1642
- callback(node, ancestors);
1643
- return this;
1644
- }
1645
- walkDown(node, callback, ancestors = []) {
1646
- callback(node, ancestors);
1647
- ancestors.push(node);
1648
- if (node.isComposite && Array.isArray(node.children)) {
1649
- const children = node.children.slice();
1650
- children.forEach((c) => this.walkDown(c, callback, ancestors));
1651
- }
1652
- ancestors.pop();
1653
- return this;
1654
- }
1655
1641
  selectAll() {
1656
1642
  return this.select((n) => true);
1657
1643
  }
@@ -1669,7 +1655,7 @@
1669
1655
  const node = this.root;
1670
1656
  const selectedNodes = [];
1671
1657
  if (node.isComposite) {
1672
- this.walkDown(node, (descendant) => {
1658
+ Visitor.walkDown(node, (descendant) => {
1673
1659
  if (callback(descendant)) {
1674
1660
  selectedNodes.push(descendant);
1675
1661
  }
@@ -1722,6 +1708,26 @@
1722
1708
  return new Visitor(root);
1723
1709
  }
1724
1710
  }
1711
+ static walkUp(node, callback, ancestors = []) {
1712
+ ancestors.push(node);
1713
+ if (node.isComposite && Array.isArray(node.children)) {
1714
+ const children = node.children.slice();
1715
+ children.forEach((c) => this.walkUp(c, callback, ancestors));
1716
+ }
1717
+ ancestors.pop();
1718
+ callback(node, ancestors);
1719
+ return this;
1720
+ }
1721
+ static walkDown(node, callback, ancestors = []) {
1722
+ callback(node, ancestors);
1723
+ ancestors.push(node);
1724
+ if (node.isComposite && Array.isArray(node.children)) {
1725
+ const children = node.children.slice();
1726
+ children.forEach((c) => this.walkDown(c, callback, ancestors));
1727
+ }
1728
+ ancestors.pop();
1729
+ return this;
1730
+ }
1725
1731
  }
1726
1732
 
1727
1733
  exports.AndComposite = AndComposite;