@tabnas/transduce 0.1.0
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/LICENSE +21 -0
- package/dist/capability.d.ts +6 -0
- package/dist/capability.js +52 -0
- package/dist/capability.js.map +1 -0
- package/dist/datum.d.ts +64 -0
- package/dist/datum.js +391 -0
- package/dist/datum.js.map +1 -0
- package/dist/error.d.ts +43 -0
- package/dist/error.js +169 -0
- package/dist/error.js.map +1 -0
- package/dist/event.d.ts +56 -0
- package/dist/event.js +101 -0
- package/dist/event.js.map +1 -0
- package/dist/guard.d.ts +20 -0
- package/dist/guard.js +90 -0
- package/dist/guard.js.map +1 -0
- package/dist/json.d.ts +4 -0
- package/dist/json.js +92 -0
- package/dist/json.js.map +1 -0
- package/dist/limits.d.ts +36 -0
- package/dist/limits.js +133 -0
- package/dist/limits.js.map +1 -0
- package/dist/lines.d.ts +39 -0
- package/dist/lines.js +1139 -0
- package/dist/lines.js.map +1 -0
- package/dist/matcher.d.ts +26 -0
- package/dist/matcher.js +245 -0
- package/dist/matcher.js.map +1 -0
- package/dist/parser-source.d.ts +27 -0
- package/dist/parser-source.js +194 -0
- package/dist/parser-source.js.map +1 -0
- package/dist/route.d.ts +61 -0
- package/dist/route.js +197 -0
- package/dist/route.js.map +1 -0
- package/dist/rule-events.d.ts +58 -0
- package/dist/rule-events.js +598 -0
- package/dist/rule-events.js.map +1 -0
- package/dist/scan.d.ts +19 -0
- package/dist/scan.js +70 -0
- package/dist/scan.js.map +1 -0
- package/dist/selector.d.ts +40 -0
- package/dist/selector.js +154 -0
- package/dist/selector.js.map +1 -0
- package/dist/sink.d.ts +29 -0
- package/dist/sink.js +184 -0
- package/dist/sink.js.map +1 -0
- package/dist/source.d.ts +37 -0
- package/dist/source.js +113 -0
- package/dist/source.js.map +1 -0
- package/dist/table-from-json.d.ts +12 -0
- package/dist/table-from-json.js +217 -0
- package/dist/table-from-json.js.map +1 -0
- package/dist/table.d.ts +81 -0
- package/dist/table.js +141 -0
- package/dist/table.js.map +1 -0
- package/dist/transduce.d.ts +28 -0
- package/dist/transduce.js +109 -0
- package/dist/transduce.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/value.d.ts +16 -0
- package/dist/value.js +96 -0
- package/dist/value.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../src/lines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { JsonEvent } from './event';
|
|
2
|
+
import { Path, Selector } from './selector';
|
|
3
|
+
export type CaptureId = number;
|
|
4
|
+
export type HitKind = 'key' | 'start' | 'scalar' | 'close' | 'end';
|
|
5
|
+
export type Hit = {
|
|
6
|
+
kind: HitKind;
|
|
7
|
+
begins: number;
|
|
8
|
+
depth: number;
|
|
9
|
+
};
|
|
10
|
+
export declare class Matcher {
|
|
11
|
+
private nodes;
|
|
12
|
+
private levels;
|
|
13
|
+
private open;
|
|
14
|
+
private nodeStack;
|
|
15
|
+
private begun;
|
|
16
|
+
private rootDone;
|
|
17
|
+
private isEnded;
|
|
18
|
+
constructor(selectors: readonly Selector[]);
|
|
19
|
+
depth(): number;
|
|
20
|
+
ended(): boolean;
|
|
21
|
+
path(depth: number): Path;
|
|
22
|
+
begins(): readonly CaptureId[];
|
|
23
|
+
event(ev: JsonEvent): Hit;
|
|
24
|
+
private beginValue;
|
|
25
|
+
private completeValue;
|
|
26
|
+
}
|
package/dist/matcher.js
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2026 tabnas, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Matcher = void 0;
|
|
5
|
+
// Shared-prefix matching of many selectors in one pass.
|
|
6
|
+
//
|
|
7
|
+
// The router has to recognize every capture's selector over one event
|
|
8
|
+
// stream, and a document can be hundreds of megabytes, so the matcher
|
|
9
|
+
// never spells out a path per event: the selectors are compiled into one
|
|
10
|
+
// trie of steps, and the matcher walks the document with a stack of open
|
|
11
|
+
// containers (a level per container: its kind, how many values it has
|
|
12
|
+
// started, the current member's key) and, per level, the trie nodes that
|
|
13
|
+
// named that container, kept on one flat stack.
|
|
14
|
+
//
|
|
15
|
+
// The matcher also validates the protocol as it goes, because it holds the
|
|
16
|
+
// state that makes a malformed stream visible (a key outside an object, an
|
|
17
|
+
// array ending an object, a value after the root). Every stage downstream
|
|
18
|
+
// of it can therefore trust the sequence. A concrete `Path` is built only
|
|
19
|
+
// on request, for a delivered match or a failure.
|
|
20
|
+
const error_1 = require("./error");
|
|
21
|
+
const selector_1 = require("./selector");
|
|
22
|
+
const ROOT = 0;
|
|
23
|
+
function newNode() {
|
|
24
|
+
return {
|
|
25
|
+
properties: new Map(),
|
|
26
|
+
indexes: new Map(),
|
|
27
|
+
eachIndex: -1,
|
|
28
|
+
eachMember: -1,
|
|
29
|
+
terminals: [],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// Recognizes every selector of a set over one event stream.
|
|
33
|
+
class Matcher {
|
|
34
|
+
// Compile the selectors; their positions are the capture ids.
|
|
35
|
+
constructor(selectors) {
|
|
36
|
+
this.nodes = [newNode()];
|
|
37
|
+
this.levels = [];
|
|
38
|
+
this.open = 0;
|
|
39
|
+
this.nodeStack = [];
|
|
40
|
+
this.begun = [];
|
|
41
|
+
this.rootDone = false;
|
|
42
|
+
this.isEnded = false;
|
|
43
|
+
selectors.forEach((selector, id) => {
|
|
44
|
+
let at = ROOT;
|
|
45
|
+
for (const step of selector.steps) {
|
|
46
|
+
const node = this.nodes[at];
|
|
47
|
+
let next;
|
|
48
|
+
switch (step.type) {
|
|
49
|
+
case 'property':
|
|
50
|
+
next = node.properties.get(step.name);
|
|
51
|
+
break;
|
|
52
|
+
case 'index':
|
|
53
|
+
next = node.indexes.get(step.index);
|
|
54
|
+
break;
|
|
55
|
+
case 'each_index':
|
|
56
|
+
next = node.eachIndex < 0 ? undefined : node.eachIndex;
|
|
57
|
+
break;
|
|
58
|
+
case 'each_member':
|
|
59
|
+
next = node.eachMember < 0 ? undefined : node.eachMember;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
if (undefined === next) {
|
|
63
|
+
next = this.nodes.length;
|
|
64
|
+
this.nodes.push(newNode());
|
|
65
|
+
switch (step.type) {
|
|
66
|
+
case 'property':
|
|
67
|
+
node.properties.set(step.name, next);
|
|
68
|
+
break;
|
|
69
|
+
case 'index':
|
|
70
|
+
node.indexes.set(step.index, next);
|
|
71
|
+
break;
|
|
72
|
+
case 'each_index':
|
|
73
|
+
node.eachIndex = next;
|
|
74
|
+
break;
|
|
75
|
+
case 'each_member':
|
|
76
|
+
node.eachMember = next;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
at = next;
|
|
81
|
+
}
|
|
82
|
+
this.nodes[at].terminals.push(id);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// Open containers right now.
|
|
86
|
+
depth() {
|
|
87
|
+
return this.open;
|
|
88
|
+
}
|
|
89
|
+
// Whether `end` has been seen.
|
|
90
|
+
ended() {
|
|
91
|
+
return this.isEnded;
|
|
92
|
+
}
|
|
93
|
+
// The concrete path of the value at `depth` enclosing containers. Asked
|
|
94
|
+
// at a `start` or `scalar` hit it names the value; asked at a `close`
|
|
95
|
+
// hit it names the container that closed.
|
|
96
|
+
path(depth) {
|
|
97
|
+
const segments = [];
|
|
98
|
+
const n = Math.min(depth, this.open);
|
|
99
|
+
for (let i = 0; i < n; i++) {
|
|
100
|
+
const level = this.levels[i];
|
|
101
|
+
segments.push(level.array ? Math.max(0, level.started - 1) : level.key);
|
|
102
|
+
}
|
|
103
|
+
return new selector_1.Path(segments);
|
|
104
|
+
}
|
|
105
|
+
// The captures that began with the last event, in id order.
|
|
106
|
+
begins() {
|
|
107
|
+
return this.begun;
|
|
108
|
+
}
|
|
109
|
+
// One event. A malformed sequence is a `PROTOCOL_ORDER_ERROR`.
|
|
110
|
+
event(ev) {
|
|
111
|
+
if (this.isEnded) {
|
|
112
|
+
throw error_1.Fail.protocol('an event arrived after the document ended');
|
|
113
|
+
}
|
|
114
|
+
switch (ev.type) {
|
|
115
|
+
case 'key': {
|
|
116
|
+
const level = 0 < this.open ? this.levels[this.open - 1] : undefined;
|
|
117
|
+
if (undefined === level || level.array) {
|
|
118
|
+
throw error_1.Fail.protocol('a key arrived outside an object');
|
|
119
|
+
}
|
|
120
|
+
if (level.inValue) {
|
|
121
|
+
throw error_1.Fail.protocol('a key arrived where a value was expected');
|
|
122
|
+
}
|
|
123
|
+
level.key = ev.key;
|
|
124
|
+
level.inValue = true;
|
|
125
|
+
this.begun.length = 0;
|
|
126
|
+
return { kind: 'key', begins: 0, depth: this.open };
|
|
127
|
+
}
|
|
128
|
+
case 'object_start':
|
|
129
|
+
case 'array_start': {
|
|
130
|
+
const depth = this.open;
|
|
131
|
+
const start = this.beginValue();
|
|
132
|
+
const end = this.nodeStack.length;
|
|
133
|
+
const array = 'array_start' === ev.type;
|
|
134
|
+
const level = {
|
|
135
|
+
array,
|
|
136
|
+
started: 0,
|
|
137
|
+
key: '',
|
|
138
|
+
inValue: false,
|
|
139
|
+
start,
|
|
140
|
+
end,
|
|
141
|
+
};
|
|
142
|
+
if (depth === this.levels.length)
|
|
143
|
+
this.levels.push(level);
|
|
144
|
+
else
|
|
145
|
+
this.levels[depth] = level;
|
|
146
|
+
this.open++;
|
|
147
|
+
return { kind: 'start', begins: this.begun.length, depth };
|
|
148
|
+
}
|
|
149
|
+
case 'object_end':
|
|
150
|
+
case 'array_end': {
|
|
151
|
+
const wantArray = 'array_end' === ev.type;
|
|
152
|
+
const level = 0 < this.open ? this.levels[this.open - 1] : undefined;
|
|
153
|
+
if (undefined === level) {
|
|
154
|
+
throw error_1.Fail.protocol('a container ended that had not started');
|
|
155
|
+
}
|
|
156
|
+
if (level.array !== wantArray) {
|
|
157
|
+
throw error_1.Fail.protocol(wantArray ? 'an array ended inside an object' : 'an object ended inside an array');
|
|
158
|
+
}
|
|
159
|
+
if (level.inValue) {
|
|
160
|
+
throw error_1.Fail.protocol('an object ended after a key without its value');
|
|
161
|
+
}
|
|
162
|
+
this.open--;
|
|
163
|
+
this.nodeStack.length = level.start;
|
|
164
|
+
this.completeValue();
|
|
165
|
+
this.begun.length = 0;
|
|
166
|
+
return { kind: 'close', begins: 0, depth: this.open };
|
|
167
|
+
}
|
|
168
|
+
case 'end':
|
|
169
|
+
if (0 < this.open) {
|
|
170
|
+
throw error_1.Fail.protocol('the document ended inside a container');
|
|
171
|
+
}
|
|
172
|
+
if (!this.rootDone) {
|
|
173
|
+
throw error_1.Fail.protocol('the document ended before its root value');
|
|
174
|
+
}
|
|
175
|
+
this.isEnded = true;
|
|
176
|
+
this.begun.length = 0;
|
|
177
|
+
return { kind: 'end', begins: 0, depth: 0 };
|
|
178
|
+
default: {
|
|
179
|
+
const depth = this.open;
|
|
180
|
+
const start = this.beginValue();
|
|
181
|
+
this.nodeStack.length = start;
|
|
182
|
+
this.completeValue();
|
|
183
|
+
return { kind: 'scalar', begins: this.begun.length, depth };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// A value begins at the current position: check that one is allowed
|
|
188
|
+
// here, push the trie nodes naming it onto the node stack, and fill
|
|
189
|
+
// `begun`. Returns where on the node stack the value's nodes start.
|
|
190
|
+
beginValue() {
|
|
191
|
+
let base;
|
|
192
|
+
if (0 === this.open) {
|
|
193
|
+
if (this.rootDone)
|
|
194
|
+
throw error_1.Fail.protocol('a second root value arrived');
|
|
195
|
+
this.nodeStack.length = 0;
|
|
196
|
+
this.nodeStack.push(ROOT);
|
|
197
|
+
base = 0;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
const level = this.levels[this.open - 1];
|
|
201
|
+
if (!level.array && !level.inValue) {
|
|
202
|
+
throw error_1.Fail.protocol('a value arrived inside an object without a key');
|
|
203
|
+
}
|
|
204
|
+
const index = level.started;
|
|
205
|
+
level.started++;
|
|
206
|
+
this.nodeStack.length = level.end;
|
|
207
|
+
for (let at = level.start; at < level.end; at++) {
|
|
208
|
+
const node = this.nodes[this.nodeStack[at]];
|
|
209
|
+
if (level.array) {
|
|
210
|
+
if (0 <= node.eachIndex)
|
|
211
|
+
this.nodeStack.push(node.eachIndex);
|
|
212
|
+
const c = node.indexes.get(index);
|
|
213
|
+
if (undefined !== c)
|
|
214
|
+
this.nodeStack.push(c);
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
if (0 <= node.eachMember)
|
|
218
|
+
this.nodeStack.push(node.eachMember);
|
|
219
|
+
const c = node.properties.get(level.key);
|
|
220
|
+
if (undefined !== c)
|
|
221
|
+
this.nodeStack.push(c);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
base = level.end;
|
|
225
|
+
}
|
|
226
|
+
this.begun.length = 0;
|
|
227
|
+
for (let i = base; i < this.nodeStack.length; i++) {
|
|
228
|
+
const terminals = this.nodes[this.nodeStack[i]].terminals;
|
|
229
|
+
for (const t of terminals)
|
|
230
|
+
this.begun.push(t);
|
|
231
|
+
}
|
|
232
|
+
if (this.begun.length > 1)
|
|
233
|
+
this.begun.sort((a, b) => a - b);
|
|
234
|
+
return base;
|
|
235
|
+
}
|
|
236
|
+
// The value at the current position is complete.
|
|
237
|
+
completeValue() {
|
|
238
|
+
if (0 === this.open)
|
|
239
|
+
this.rootDone = true;
|
|
240
|
+
else
|
|
241
|
+
this.levels[this.open - 1].inValue = false;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
exports.Matcher = Matcher;
|
|
245
|
+
//# sourceMappingURL=matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AbortFlag, Limits, Metrics } from './limits';
|
|
2
|
+
import { Flow, Sink } from './sink';
|
|
3
|
+
import { Source, SourceMode } from './source';
|
|
4
|
+
export declare class ParserSource implements Source {
|
|
5
|
+
private parser;
|
|
6
|
+
private text;
|
|
7
|
+
private sourceMode;
|
|
8
|
+
private sourceLimits;
|
|
9
|
+
private abortFlag;
|
|
10
|
+
private sourceMetrics;
|
|
11
|
+
private grammarName;
|
|
12
|
+
private isUnverified;
|
|
13
|
+
private used;
|
|
14
|
+
constructor(parser: any, text: string);
|
|
15
|
+
mode(mode: SourceMode): this;
|
|
16
|
+
grammar(name: string): this;
|
|
17
|
+
unverified(): this;
|
|
18
|
+
limits(limits: Limits): this;
|
|
19
|
+
abort(abort: AbortFlag): this;
|
|
20
|
+
metrics(metrics: Metrics): this;
|
|
21
|
+
private gate;
|
|
22
|
+
run(sink: Sink): Flow;
|
|
23
|
+
runWithValue(sink: Sink): {
|
|
24
|
+
flow: Flow;
|
|
25
|
+
value: unknown;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2026 tabnas, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ParserSource = void 0;
|
|
5
|
+
// `ParserSource`: `JsonEvents/1` from a tabnas parse of one text.
|
|
6
|
+
//
|
|
7
|
+
// Two modes. `materialize` parses, then walks the value: always sound, and
|
|
8
|
+
// retains the whole value. `incremental` installs the rule-event adapter
|
|
9
|
+
// so events leave the parse as containers open and entries land, and
|
|
10
|
+
// optionally prunes streamed array elements from the engine's tree. It is
|
|
11
|
+
// sound for the grammars `capability.incremental` lists, which the
|
|
12
|
+
// differential suite verifies in this runtime, and for no other: an
|
|
13
|
+
// imperative grammar's rule events give a well-formed stream of the wrong
|
|
14
|
+
// shape or a malformed one, and the run would still return. So the
|
|
15
|
+
// incremental path is gated on the list, by the grammar's name, which the
|
|
16
|
+
// source cannot learn from the `Tabnas` and so must be told (`grammar`);
|
|
17
|
+
// without a listed name it fails with `STREAMABILITY_UNKNOWN` before the
|
|
18
|
+
// parse, having emitted nothing. `unverified()` lifts the gate for the
|
|
19
|
+
// differential suite that maintains the list.
|
|
20
|
+
//
|
|
21
|
+
// The parser is the source's: the source subscribes to its rule events and
|
|
22
|
+
// sets its parse budget (the engine has no way to take either back), so a
|
|
23
|
+
// parser is given to one source and not reused afterwards, and a source
|
|
24
|
+
// runs once (a second run is `STREAM_REUSED`).
|
|
25
|
+
//
|
|
26
|
+
// Failure mapping, in this order: a sink failure is thrown as it was; a
|
|
27
|
+
// sink that stopped is `'stop'`; a parse cancelled through the caller's
|
|
28
|
+
// `AbortFlag` is `ABORTED`; any other engine error is `INPUT_INVALID`
|
|
29
|
+
// with the engine's code and position; a grammar's own guard cancelling
|
|
30
|
+
// the parse is `INPUT_INVALID` too, with a message that names the
|
|
31
|
+
// grammar's guard. An incremental parse that returned without one rule
|
|
32
|
+
// event the adapter could turn into a value (YAML's empty document is
|
|
33
|
+
// `null`) has its value walked instead.
|
|
34
|
+
const capability_1 = require("./capability");
|
|
35
|
+
const error_1 = require("./error");
|
|
36
|
+
const event_1 = require("./event");
|
|
37
|
+
const guard_1 = require("./guard");
|
|
38
|
+
const limits_1 = require("./limits");
|
|
39
|
+
const rule_events_1 = require("./rule-events");
|
|
40
|
+
const source_1 = require("./source");
|
|
41
|
+
// A tabnas parser applied to one text, as a source.
|
|
42
|
+
class ParserSource {
|
|
43
|
+
// A source in materialize mode with default limits, its own abort flag
|
|
44
|
+
// and fresh metrics; the builder methods change each.
|
|
45
|
+
constructor(parser, text) {
|
|
46
|
+
this.sourceMode = source_1.SourceMode.materialize();
|
|
47
|
+
this.sourceLimits = limits_1.Limits.default();
|
|
48
|
+
this.abortFlag = new limits_1.AbortFlag();
|
|
49
|
+
this.sourceMetrics = new limits_1.Metrics();
|
|
50
|
+
this.grammarName = null;
|
|
51
|
+
this.isUnverified = false;
|
|
52
|
+
this.used = false;
|
|
53
|
+
this.parser = parser;
|
|
54
|
+
this.text = text;
|
|
55
|
+
}
|
|
56
|
+
mode(mode) {
|
|
57
|
+
this.sourceMode = mode;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
// The grammar the parser implements, by its package's name (`json` for
|
|
61
|
+
// `@tabnas/json`). Incremental mode runs only for a name
|
|
62
|
+
// `capability.incremental` lists.
|
|
63
|
+
grammar(name) {
|
|
64
|
+
this.grammarName = name;
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
// Run incremental mode whatever the verified list says. This exists for
|
|
68
|
+
// the differential suite that maintains the list and for nothing else.
|
|
69
|
+
unverified() {
|
|
70
|
+
this.isUnverified = true;
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
limits(limits) {
|
|
74
|
+
this.sourceLimits = limits;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
abort(abort) {
|
|
78
|
+
this.abortFlag = abort;
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
metrics(metrics) {
|
|
82
|
+
this.sourceMetrics = metrics;
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
// Why the incremental path may not run, when it may not.
|
|
86
|
+
gate() {
|
|
87
|
+
if (this.isUnverified)
|
|
88
|
+
return null;
|
|
89
|
+
const name = this.grammarName;
|
|
90
|
+
if (null !== name && (0, capability_1.isIncremental)(name))
|
|
91
|
+
return null;
|
|
92
|
+
if (null !== name) {
|
|
93
|
+
return new error_1.Fail('STREAMABILITY_UNKNOWN', `grammar ${JSON.stringify(name)} is not in capability.incremental: the differential ` +
|
|
94
|
+
'suite has not verified that its rule events stream as the walk does; run it with ' +
|
|
95
|
+
'SourceMode.materialize');
|
|
96
|
+
}
|
|
97
|
+
return new error_1.Fail('STREAMABILITY_UNKNOWN', "SourceMode.incremental needs the grammar's name (ParserSource.grammar) to check " +
|
|
98
|
+
'capability.incremental; without one, run SourceMode.materialize');
|
|
99
|
+
}
|
|
100
|
+
// Run in the configured mode.
|
|
101
|
+
run(sink) {
|
|
102
|
+
return this.runWithValue(sink).flow;
|
|
103
|
+
}
|
|
104
|
+
// `run`, also handing back the value the engine returned. In materialize
|
|
105
|
+
// mode that is the grammar's value. In incremental mode it is the
|
|
106
|
+
// engine's tree AFTER pruning, which is neither the grammar's value nor
|
|
107
|
+
// the run's result (the events are): it exists so a test can measure
|
|
108
|
+
// what pruning left in the tree, and nothing else should read it.
|
|
109
|
+
runWithValue(sink) {
|
|
110
|
+
if (this.used) {
|
|
111
|
+
throw new error_1.Fail('STREAM_REUSED', 'a ParserSource runs once: its parser carries the run\'s subscriber and budget; ' +
|
|
112
|
+
'make a new source, with a new parser, for another run');
|
|
113
|
+
}
|
|
114
|
+
this.used = true;
|
|
115
|
+
const mode = this.sourceMode;
|
|
116
|
+
if ('materialize' === mode.type) {
|
|
117
|
+
const guarded = new guard_1.Guarded(sink, this.sourceLimits, this.abortFlag, this.sourceMetrics);
|
|
118
|
+
try {
|
|
119
|
+
return materialize(this.parser, this.text, this.abortFlag, guarded);
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
guarded.flush();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const refused = this.gate();
|
|
126
|
+
if (null !== refused)
|
|
127
|
+
throw refused;
|
|
128
|
+
return incremental(this.parser, this.text, this.sourceLimits, this.abortFlag, this.sourceMetrics, mode.prune, sink);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.ParserSource = ParserSource;
|
|
132
|
+
// Parse, then walk; the grammar's value comes back beside the outcome.
|
|
133
|
+
function materialize(parser, text, abort, guarded) {
|
|
134
|
+
(0, rule_events_1.prepare)(parser, () => !abort.isAborted());
|
|
135
|
+
let value;
|
|
136
|
+
try {
|
|
137
|
+
value = parser.parse(text);
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
throw (0, source_1.engineFailure)(err, abort);
|
|
141
|
+
}
|
|
142
|
+
let flow = (0, source_1.walkValue)(value, guarded);
|
|
143
|
+
if ('continue' === flow)
|
|
144
|
+
flow = guarded.event(event_1.Ev.end);
|
|
145
|
+
return { flow, value };
|
|
146
|
+
}
|
|
147
|
+
function incremental(parser, text, limits, abort, metrics, prune, sink) {
|
|
148
|
+
const stop = new limits_1.AbortFlag();
|
|
149
|
+
const adapter = new rule_events_1.Adapter(sink, limits, abort, metrics, prune, stop);
|
|
150
|
+
(0, rule_events_1.prepare)(parser, () => !abort.isAborted() && !stop.isAborted(), (rule, done) => adapter.onDone(rule, done));
|
|
151
|
+
let parsed;
|
|
152
|
+
try {
|
|
153
|
+
parsed = { ok: true, value: parser.parse(text) };
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
parsed = { ok: false, error };
|
|
157
|
+
}
|
|
158
|
+
let outcome = { flow: 'continue' };
|
|
159
|
+
try {
|
|
160
|
+
if ('running' === adapter.status.type) {
|
|
161
|
+
if (parsed.ok && adapter.complete()) {
|
|
162
|
+
outcome = { flow: adapter.send(event_1.Ev.end) };
|
|
163
|
+
}
|
|
164
|
+
else if (parsed.ok && adapter.idle()) {
|
|
165
|
+
let flow = adapter.walkWhole(parsed.value);
|
|
166
|
+
if ('continue' === flow)
|
|
167
|
+
flow = adapter.send(event_1.Ev.end);
|
|
168
|
+
outcome = { flow };
|
|
169
|
+
}
|
|
170
|
+
else if (parsed.ok) {
|
|
171
|
+
outcome = { error: (0, rule_events_1.notStreamable)() };
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
outcome = { error: (0, source_1.engineFailure)(parsed.error, abort) };
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
outcome = { error };
|
|
180
|
+
}
|
|
181
|
+
finally {
|
|
182
|
+
adapter.sink.flush();
|
|
183
|
+
}
|
|
184
|
+
const value = parsed.ok ? parsed.value : undefined;
|
|
185
|
+
const status = adapter.status;
|
|
186
|
+
if ('failed' === status.type)
|
|
187
|
+
throw status.error;
|
|
188
|
+
if ('stopped' === status.type)
|
|
189
|
+
return { flow: 'stop', value };
|
|
190
|
+
if ('error' in outcome)
|
|
191
|
+
throw outcome.error;
|
|
192
|
+
return { flow: outcome.flow, value };
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=parser-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-source.js","sourceRoot":"","sources":["../src/parser-source.ts"],"names":[],"mappings":"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"}
|