clarity-pattern-parser 3.0.14 → 3.0.15
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/TextSuggester.js +33 -12
- package/dist/TextSuggester.js.map +1 -1
- package/dist/index.browser.js +8 -3
- package/dist/index.browser.js.map +1 -1
- package/dist/index.esm.js +8 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/patterns/Pattern.js +1 -1
- package/dist/patterns/Pattern.js.map +1 -1
- package/dist/patterns/composite/RepeatComposite.js +6 -1
- package/dist/patterns/composite/RepeatComposite.js.map +1 -1
- package/dist/patterns/value/RepeatValue.js +6 -1
- package/dist/patterns/value/RepeatValue.js.map +1 -1
- package/package.json +1 -1
- package/src/TextSuggester.ts +2 -1
- package/src/patterns/composite/RepeatComposite.ts +4 -1
- package/src/patterns/value/RepeatValue.ts +4 -1
- package/src/tests/TextSuggester.test.ts +15 -0
- package/src/tests/javascriptPatterns/json.ts +0 -1
package/dist/TextSuggester.js
CHANGED
|
@@ -131,29 +131,37 @@ export default class TextSuggester {
|
|
|
131
131
|
}
|
|
132
132
|
saveNextToken() {
|
|
133
133
|
var _a, _b, _c, _d;
|
|
134
|
-
|
|
135
|
-
((_b = this.cursor) === null || _b === void 0 ? void 0 : _b.didSuccessfullyParse())
|
|
134
|
+
const isCompleteMatch = ((_a = this.patternMatch) === null || _a === void 0 ? void 0 : _a.pattern) === this.rootPattern &&
|
|
135
|
+
((_b = this.cursor) === null || _b === void 0 ? void 0 : _b.didSuccessfullyParse());
|
|
136
|
+
const noMatch = ((_c = this.patternMatch) === null || _c === void 0 ? void 0 : _c.astNode) == null;
|
|
137
|
+
if (isCompleteMatch) {
|
|
136
138
|
this.tokens = null;
|
|
137
139
|
return;
|
|
138
140
|
}
|
|
139
|
-
if (
|
|
141
|
+
if (noMatch) {
|
|
140
142
|
let options = (_d = this.rootPattern) === null || _d === void 0 ? void 0 : _d.getTokens();
|
|
141
|
-
const parts = this.text.split(" ").filter((part) => {
|
|
142
|
-
return part.length > 0;
|
|
143
|
-
});
|
|
144
143
|
options = options === null || options === void 0 ? void 0 : options.filter((option) => {
|
|
145
|
-
return
|
|
146
|
-
return option.indexOf(part) > -1;
|
|
147
|
-
});
|
|
144
|
+
return option.indexOf(this.text) > -1;
|
|
148
145
|
});
|
|
149
146
|
if ((options === null || options === void 0 ? void 0 : options.length) === 0) {
|
|
150
147
|
this.tokens = null;
|
|
151
148
|
return;
|
|
152
149
|
}
|
|
150
|
+
const values = options === null || options === void 0 ? void 0 : options.map((option) => {
|
|
151
|
+
const parts = option.split(this.text);
|
|
152
|
+
return parts[1];
|
|
153
|
+
});
|
|
153
154
|
this.tokens = {
|
|
154
155
|
startIndex: 0,
|
|
155
|
-
values:
|
|
156
|
+
values: values || [],
|
|
157
|
+
};
|
|
158
|
+
this.matchedText = this.text;
|
|
159
|
+
this.match = {
|
|
160
|
+
text: this.text,
|
|
161
|
+
startIndex: 0,
|
|
162
|
+
endIndex: this.text.length - 1,
|
|
156
163
|
};
|
|
164
|
+
this.error = null;
|
|
157
165
|
return;
|
|
158
166
|
}
|
|
159
167
|
const options = this.options;
|
|
@@ -194,8 +202,21 @@ export default class TextSuggester {
|
|
|
194
202
|
};
|
|
195
203
|
}
|
|
196
204
|
saveOptions() {
|
|
197
|
-
|
|
198
|
-
const
|
|
205
|
+
const parents = new Map();
|
|
206
|
+
const cursor = this.cursor;
|
|
207
|
+
if (cursor == null) {
|
|
208
|
+
this.options = [];
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const furthestMatches = cursor.history.astNodes.reduce((acc, node, index) => {
|
|
212
|
+
const pattern = cursor.history.patterns[index];
|
|
213
|
+
const parent = pattern.parent;
|
|
214
|
+
if (parent != null) {
|
|
215
|
+
parents.set(parent, parent);
|
|
216
|
+
}
|
|
217
|
+
if (parents.has(pattern)) {
|
|
218
|
+
return acc;
|
|
219
|
+
}
|
|
199
220
|
if (node.endIndex === acc.furthestTextIndex) {
|
|
200
221
|
acc.nodeIndexes.push(index);
|
|
201
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextSuggester.js","sourceRoot":"","sources":["../src/TextSuggester.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,UAAU,CAAC;AA+B9B,MAAM,CAAC,OAAO,OAAO,aAAa;IAAlC;QACU,WAAM,GAAkB,IAAI,CAAC;QAC7B,WAAM,GAAgB,IAAI,CAAC;QAC3B,SAAI,GAAW,EAAE,CAAC;QAClB,UAAK,GAA2B,IAAI,CAAC;QACrC,UAAK,GAA2B,IAAI,CAAC;QACrC,iBAAY,GAAiB,IAAI,CAAC;QAClC,gBAAW,GAAW,EAAE,CAAC;QACzB,gBAAW,GAAmB,IAAI,CAAC;QACnC,WAAM,GAAiB;YAC7B,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,EAAE;SACX,CAAC;QACM,YAAO,GAAa,EAAE,CAAC;QACvB,eAAU,GAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"TextSuggester.js","sourceRoot":"","sources":["../src/TextSuggester.ts"],"names":[],"mappings":"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"}
|
package/dist/index.browser.js
CHANGED
|
@@ -920,8 +920,10 @@
|
|
|
920
920
|
}
|
|
921
921
|
_processMatch() {
|
|
922
922
|
const endsOnDivider = this.nodes.length % 2 === 0;
|
|
923
|
+
const noMatch = this.nodes.length === 0;
|
|
924
|
+
const hasDivider = this._divider != null;
|
|
923
925
|
this.cursor.resolveError();
|
|
924
|
-
if (endsOnDivider) {
|
|
926
|
+
if ((hasDivider && endsOnDivider) || noMatch) {
|
|
925
927
|
const parseError = new ParseError(`Did not find a repeating match of ${this.name}.`, this.mark, this);
|
|
926
928
|
this.cursor.throwError(parseError);
|
|
927
929
|
this.node = null;
|
|
@@ -1217,8 +1219,10 @@
|
|
|
1217
1219
|
}
|
|
1218
1220
|
_processMatch() {
|
|
1219
1221
|
const endsOnDivider = this.nodes.length % 2 === 0;
|
|
1222
|
+
const noMatch = this.nodes.length === 0;
|
|
1223
|
+
const hasDivider = this._divider != null;
|
|
1220
1224
|
this.cursor.resolveError();
|
|
1221
|
-
if (endsOnDivider) {
|
|
1225
|
+
if ((hasDivider && endsOnDivider) || noMatch) {
|
|
1222
1226
|
this.cursor.throwError(new ParseError(`Did not find a repeating match of ${this.name}.`, this.mark, this));
|
|
1223
1227
|
this.node = null;
|
|
1224
1228
|
}
|
|
@@ -1438,7 +1442,8 @@
|
|
|
1438
1442
|
const isCompleteMatch = ((_a = this.patternMatch) === null || _a === void 0 ? void 0 : _a.pattern) === this.rootPattern &&
|
|
1439
1443
|
((_b = this.cursor) === null || _b === void 0 ? void 0 : _b.didSuccessfullyParse());
|
|
1440
1444
|
const noMatch = ((_c = this.patternMatch) === null || _c === void 0 ? void 0 : _c.astNode) == null;
|
|
1441
|
-
|
|
1445
|
+
const noOptions = this.options.length === 0;
|
|
1446
|
+
if (isCompleteMatch && noOptions) {
|
|
1442
1447
|
this.tokens = null;
|
|
1443
1448
|
return;
|
|
1444
1449
|
}
|