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.
- package/dist/Cursor.js +105 -0
- package/dist/Cursor.js.map +1 -0
- package/dist/CursorHistory.js +104 -0
- package/dist/CursorHistory.js.map +1 -0
- package/dist/Permutor.js +52 -0
- package/dist/Permutor.js.map +1 -0
- package/dist/TextSuggester.js +223 -0
- package/dist/TextSuggester.js.map +1 -0
- package/dist/ast/CompositeNode.js +17 -0
- package/dist/ast/CompositeNode.js.map +1 -0
- package/dist/ast/Node.js +16 -0
- package/dist/ast/Node.js.map +1 -0
- package/dist/ast/ValueNode.js +14 -0
- package/dist/ast/ValueNode.js.map +1 -0
- package/dist/ast/Visitor.d.ts +2 -2
- package/dist/ast/Visitor.js +209 -0
- package/dist/ast/Visitor.js.map +1 -0
- package/dist/index.browser.js +38 -32
- package/dist/index.browser.js.map +1 -1
- package/dist/index.esm.js +38 -32
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +38 -32
- package/dist/index.js.map +1 -1
- package/dist/patterns/ParseError.js +9 -0
- package/dist/patterns/ParseError.js.map +1 -0
- package/dist/patterns/Pattern.js +127 -0
- package/dist/patterns/Pattern.js.map +1 -0
- package/dist/patterns/RecursivePattern.js +65 -0
- package/dist/patterns/RecursivePattern.js.map +1 -0
- package/dist/patterns/composite/AndComposite.js +117 -0
- package/dist/patterns/composite/AndComposite.js.map +1 -0
- package/dist/patterns/composite/CompositePattern.js +7 -0
- package/dist/patterns/composite/CompositePattern.js.map +1 -0
- package/dist/patterns/composite/OptionalComposite.js +29 -0
- package/dist/patterns/composite/OptionalComposite.js.map +1 -0
- package/dist/patterns/composite/OrComposite.js +69 -0
- package/dist/patterns/composite/OrComposite.js.map +1 -0
- package/dist/patterns/composite/RepeatComposite.js +83 -0
- package/dist/patterns/composite/RepeatComposite.js.map +1 -0
- package/dist/patterns/value/AndValue.js +118 -0
- package/dist/patterns/value/AndValue.js.map +1 -0
- package/dist/patterns/value/AnyOfThese.js +59 -0
- package/dist/patterns/value/AnyOfThese.js.map +1 -0
- package/dist/patterns/value/Literal.js +63 -0
- package/dist/patterns/value/Literal.js.map +1 -0
- package/dist/patterns/value/NotValue.js +70 -0
- package/dist/patterns/value/NotValue.js.map +1 -0
- package/dist/patterns/value/OptionalValue.js +32 -0
- package/dist/patterns/value/OptionalValue.js.map +1 -0
- package/dist/patterns/value/OrValue.js +73 -0
- package/dist/patterns/value/OrValue.js.map +1 -0
- package/dist/patterns/value/RegexValue.js +69 -0
- package/dist/patterns/value/RegexValue.js.map +1 -0
- package/dist/patterns/value/RepeatValue.js +84 -0
- package/dist/patterns/value/RepeatValue.js.map +1 -0
- package/dist/patterns/value/ValuePattern.js +7 -0
- package/dist/patterns/value/ValuePattern.js.map +1 -0
- package/package.json +1 -1
- package/src/TextSuggester.ts +15 -7
- package/src/ast/Visitor.ts +40 -40
- package/src/tests/TextSuggester.test.ts +15 -0
- 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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"}
|
package/dist/index.browser.js
CHANGED
|
@@ -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
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|