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.
@@ -131,29 +131,37 @@ export default class TextSuggester {
131
131
  }
132
132
  saveNextToken() {
133
133
  var _a, _b, _c, _d;
134
- if (((_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())) {
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 (((_c = this.patternMatch) === null || _c === void 0 ? void 0 : _c.astNode) == null) {
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 parts.some((part) => {
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: options || [],
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
- var _a;
198
- const furthestMatches = (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.history.astNodes.reduce((acc, node, index) => {
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":"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"}
1
+ {"version":3,"file":"TextSuggester.js","sourceRoot":"","sources":["../src/TextSuggester.ts"],"names":[],"mappings":"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"}
@@ -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
- if (isCompleteMatch) {
1445
+ const noOptions = this.options.length === 0;
1446
+ if (isCompleteMatch && noOptions) {
1442
1447
  this.tokens = null;
1443
1448
  return;
1444
1449
  }