@plurnk/plurnk-grammar 0.74.32 → 0.74.34
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/src/PlurnkErrorStrategy.d.ts.map +1 -1
- package/dist/src/PlurnkErrorStrategy.js +14 -11
- package/dist/src/PlurnkErrorStrategy.js.map +1 -1
- package/dist/src/PlurnkParseError.d.ts +4 -1
- package/dist/src/PlurnkParseError.d.ts.map +1 -1
- package/dist/src/PlurnkParseError.js +6 -3
- package/dist/src/PlurnkParseError.js.map +1 -1
- package/dist/src/PlurnkParser.d.ts.map +1 -1
- package/dist/src/PlurnkParser.js +103 -8
- package/dist/src/PlurnkParser.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlurnkErrorStrategy.d.ts","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIpB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,oBAAoB;;IAyCjE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"PlurnkErrorStrategy.d.ts","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAIpB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAC5B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,oBAAoB;;IAyCjE,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAyC7D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAiB9D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmB5C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAoBhE"}
|
|
@@ -67,9 +67,12 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
|
|
|
67
67
|
const types = expected.toArray();
|
|
68
68
|
if (types.length === 0)
|
|
69
69
|
return null;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
// Every OPEN_<OP> token maps to the same canon name (`open tag <<OPsuffix`), so a
|
|
71
|
+
// statement-position expected-set yields that phrase 10+ times. Dedup to one entry —
|
|
72
|
+
// the model needs the distinct options, not the alternation count.
|
|
73
|
+
const names = [...new Set(types
|
|
74
|
+
.map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
|
|
75
|
+
.filter((s) => Boolean(s)))];
|
|
73
76
|
if (names.length === 0)
|
|
74
77
|
return null;
|
|
75
78
|
if (names.length === 1)
|
|
@@ -99,10 +102,10 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
|
|
|
99
102
|
this.beginErrorCondition(recognizer);
|
|
100
103
|
const tok = recognizer.getCurrentToken();
|
|
101
104
|
const expectedTokens = this.getExpectedTokens(recognizer);
|
|
102
|
-
const expectedNames = expectedTokens
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
const expectedNames = [...new Set(expectedTokens
|
|
106
|
+
.toArray()
|
|
107
|
+
.map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
|
|
108
|
+
.filter((s) => Boolean(s)))];
|
|
106
109
|
const expected = expectedNames.length > 0
|
|
107
110
|
? (expectedNames.length === 1 ? expectedNames[0] : expectedNames.join(" or "))
|
|
108
111
|
: "more input";
|
|
@@ -117,10 +120,10 @@ export default class PlurnkErrorStrategy extends DefaultErrorStrategy {
|
|
|
117
120
|
const tok = recognizer.getCurrentToken();
|
|
118
121
|
const got = PlurnkErrorStrategy.#describeToken(tok);
|
|
119
122
|
const expectedTokens = this.getExpectedTokens(recognizer);
|
|
120
|
-
const expectedNames = expectedTokens
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
const expectedNames = [...new Set(expectedTokens
|
|
124
|
+
.toArray()
|
|
125
|
+
.map((t) => PlurnkErrorStrategy.#SLOT_BY_TOKEN[t])
|
|
126
|
+
.filter((s) => Boolean(s)))];
|
|
124
127
|
const expected = expectedNames.length > 0
|
|
125
128
|
? (expectedNames.length === 1 ? expectedNames[0] : expectedNames.join(" or "))
|
|
126
129
|
: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlurnkErrorStrategy.js","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PlurnkErrorStrategy.js","sourceRoot":"","sources":["../../src/PlurnkErrorStrategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import type { TelemetryEvent } from "./types.generated.ts";
|
|
2
2
|
export type ErrorSource = "lexer" | "parser" | "visitor";
|
|
3
|
+
export type Severity = "error" | "warning";
|
|
3
4
|
export default class PlurnkParseError extends Error {
|
|
4
5
|
readonly line: number;
|
|
5
6
|
readonly column: number;
|
|
6
7
|
readonly source: ErrorSource;
|
|
7
|
-
|
|
8
|
+
readonly severity: Severity;
|
|
9
|
+
constructor(line: number, column: number, source: ErrorSource, message: string, severity?: Severity);
|
|
8
10
|
toJSON(): {
|
|
9
11
|
line: number;
|
|
10
12
|
column: number;
|
|
11
13
|
source: ErrorSource;
|
|
14
|
+
severity: Severity;
|
|
12
15
|
message: string;
|
|
13
16
|
};
|
|
14
17
|
toTelemetryEvent(): TelemetryEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlurnkParseError.d.ts","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"PlurnkParseError.d.ts","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAEhB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAkB;IAS5G,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAUpG,gBAAgB,IAAI,cAAc;CAarC"}
|
|
@@ -2,18 +2,21 @@ export default class PlurnkParseError extends Error {
|
|
|
2
2
|
line;
|
|
3
3
|
column;
|
|
4
4
|
source;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
severity;
|
|
6
|
+
constructor(line, column, source, message, severity = "error") {
|
|
7
|
+
super(`Plurnk ${source} ${severity} at line ${line}:${column} - ${message}`);
|
|
7
8
|
this.name = "PlurnkParseError";
|
|
8
9
|
this.line = line;
|
|
9
10
|
this.column = column;
|
|
10
11
|
this.source = source;
|
|
12
|
+
this.severity = severity;
|
|
11
13
|
}
|
|
12
14
|
toJSON() {
|
|
13
15
|
return {
|
|
14
16
|
line: this.line,
|
|
15
17
|
column: this.column,
|
|
16
18
|
source: this.source,
|
|
19
|
+
severity: this.severity,
|
|
17
20
|
message: this.message,
|
|
18
21
|
};
|
|
19
22
|
}
|
|
@@ -21,7 +24,7 @@ export default class PlurnkParseError extends Error {
|
|
|
21
24
|
return {
|
|
22
25
|
source: "grammar",
|
|
23
26
|
kind: `parse_error:${this.source}`,
|
|
24
|
-
level: "error",
|
|
27
|
+
level: this.severity === "warning" ? "warn" : "error",
|
|
25
28
|
message: this.message,
|
|
26
29
|
position: {
|
|
27
30
|
type: "content-offset",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlurnkParseError.js","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlurnkParseError.js","sourceRoot":"","sources":["../../src/PlurnkParseError.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK;IACtC,IAAI,CAAS;IACb,MAAM,CAAS;IACf,MAAM,CAAc;IACpB,QAAQ,CAAW;IAE5B,YAAY,IAAY,EAAE,MAAc,EAAE,MAAmB,EAAE,OAAe,EAAE,WAAqB,OAAO;QACxG,KAAK,CAAC,UAAU,MAAM,IAAI,QAAQ,YAAY,IAAI,IAAI,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;IACN,CAAC;IAED,gBAAgB;QACZ,OAAO;YACH,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,eAAe,IAAI,CAAC,MAAM,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YACrD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE;gBACN,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB;SACJ,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,WAAW,EAA6B,MAAM,YAAY,CAAC;AAsBrG,MAAM,CAAC,OAAO,OAAO,YAAY;;IAO7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"PlurnkParser.d.ts","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,WAAW,EAA6B,MAAM,YAAY,CAAC;AAsBrG,MAAM,CAAC,OAAO,OAAO,YAAY;;IAO7B,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAmGxC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAQlD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAO3C,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;CAmHlE"}
|
package/dist/src/PlurnkParser.js
CHANGED
|
@@ -31,7 +31,95 @@ export default class PlurnkParser {
|
|
|
31
31
|
// Script that prose is the comment mechanism. The GBNF rail already requires PLAN, so the
|
|
32
32
|
// rail and the parser agree (prose tolerance is the only place the parser stays lenient).
|
|
33
33
|
static parse(input) {
|
|
34
|
-
|
|
34
|
+
const result = PlurnkParser.#run(input, (parser) => parser.document());
|
|
35
|
+
// Value-adds layered on ANTLR's own diagnostics (we own syntax errors end to end):
|
|
36
|
+
// near-miss op advisories on swallowed prose, then turn-shape imperatives. Both only
|
|
37
|
+
// refine the model-facing message set; neither changes what parsed.
|
|
38
|
+
PlurnkParser.#flagNearMissOps(result.items);
|
|
39
|
+
PlurnkParser.#imperativeTurnShape(result.items);
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
// Curated op-name confusions (semantic + dead-verb), NOT edit-distance — a full
|
|
43
|
+
// `<<Word…:Word` heredoc carrying one of these is unambiguously an intended op, so the
|
|
44
|
+
// false-positive rate is ~0. Bodies are never scanned (only DEFAULT-mode text items), so
|
|
45
|
+
// the model's legitimate suffixed/embedded code is immune by construction.
|
|
46
|
+
static #OP_CONFUSABLES = {
|
|
47
|
+
CLOSE: "`<<FOLD`", HIDE: "`<<FOLD`", COLLAPSE: "`<<FOLD`",
|
|
48
|
+
SHOW: "`<<OPEN`", EXPAND: "`<<OPEN`",
|
|
49
|
+
DELETE: "`<<KILL`", REMOVE: "`<<KILL`", DROP: "`<<KILL`",
|
|
50
|
+
GET: "`<<READ`", FETCH: "`<<READ`", CAT: "`<<READ`",
|
|
51
|
+
WRITE: "`<<EDIT`", CREATE: "`<<EDIT`", UPDATE: "`<<EDIT`", SET: "`<<EDIT`",
|
|
52
|
+
LIST: "`<<FIND`", SEARCH: "`<<FIND`", GREP: "`<<FIND`", QUERY: "`<<FIND`",
|
|
53
|
+
RUN: "`<<EXEC`", SHELL: "`<<EXEC`",
|
|
54
|
+
SPAWN: "`<<EDIT(run://name)` to spawn a run", FORK: "`<<COPY(run://self)` to fork the run",
|
|
55
|
+
};
|
|
56
|
+
// Surface near-miss ops that the forgiving parser swallowed as prose: a `<<Word…:Word`
|
|
57
|
+
// heredoc whose keyword is a known confusion (`<<CLOSE`, `<<DELETE`, …). Emits a WARNING
|
|
58
|
+
// (never an error — the input parsed), so a silent swallow becomes a steer toward canon.
|
|
59
|
+
static #flagNearMissOps(items) {
|
|
60
|
+
const additions = [];
|
|
61
|
+
items.forEach((item, idx) => {
|
|
62
|
+
if (item.kind !== "text")
|
|
63
|
+
return;
|
|
64
|
+
const text = item.text;
|
|
65
|
+
const opener = /<<([A-Za-z]+)/g;
|
|
66
|
+
let m;
|
|
67
|
+
while ((m = opener.exec(text)) !== null) {
|
|
68
|
+
const suggestion = PlurnkParser.#OP_CONFUSABLES[m[1].toUpperCase()];
|
|
69
|
+
if (!suggestion)
|
|
70
|
+
continue;
|
|
71
|
+
// Op-shape gate: require a matching close `:Word` in the same run, so a bare
|
|
72
|
+
// prose mention without a heredoc close is never flagged.
|
|
73
|
+
if (!new RegExp(":" + m[1] + "\\b").test(text))
|
|
74
|
+
continue;
|
|
75
|
+
const before = text.slice(0, m.index);
|
|
76
|
+
const nl = before.split("\n").length - 1;
|
|
77
|
+
const line = item.position.line + nl;
|
|
78
|
+
const column = nl === 0 ? item.position.column + m.index : m.index - before.lastIndexOf("\n") - 1;
|
|
79
|
+
additions.push({
|
|
80
|
+
at: idx,
|
|
81
|
+
item: {
|
|
82
|
+
kind: "error",
|
|
83
|
+
error: new PlurnkParseError(line, column, "parser", `\`<<${m[1]}\` is not a Plurnk operation, so it was read as text; did you mean ${suggestion}?`, "warning"),
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
// Insert each advisory right after its text item (reverse order keeps indices valid).
|
|
89
|
+
for (const { at, item } of additions.reverse())
|
|
90
|
+
items.splice(at + 1, 0, item);
|
|
91
|
+
}
|
|
92
|
+
// Replace ANTLR's generic structure errors with the turn-shape imperative when the
|
|
93
|
+
// PLAN-anchored sandwich is broken. PLAN-first takes precedence: with no PLAN we cannot
|
|
94
|
+
// judge the terminal SEND (it never reached statement position), so we only direct the
|
|
95
|
+
// model to the anchor; a present-PLAN, absent-SEND turn gets the terminator imperative.
|
|
96
|
+
static #imperativeTurnShape(items) {
|
|
97
|
+
const ops = items.filter((i) => i.kind === "statement").map((i) => i.statement.op);
|
|
98
|
+
const hasPlan = ops.includes("PLAN");
|
|
99
|
+
const hasSend = ops.includes("SEND");
|
|
100
|
+
if (hasPlan && hasSend)
|
|
101
|
+
return;
|
|
102
|
+
const isStructErr = (i) => i.kind === "error" && i.error.source === "parser" && i.error.severity === "error";
|
|
103
|
+
const structErrors = items.filter(isStructErr);
|
|
104
|
+
if (structErrors.length === 0)
|
|
105
|
+
return;
|
|
106
|
+
const anchor = structErrors[0].error;
|
|
107
|
+
// Drop the generic parser structure errors (downstream noise from the broken shape);
|
|
108
|
+
// keep statements, text, near-miss warnings, and lexer/visitor errors.
|
|
109
|
+
const kept = items.filter((i) => !isStructErr(i));
|
|
110
|
+
items.length = 0;
|
|
111
|
+
items.push(...kept);
|
|
112
|
+
// Only add the anchor imperative when the shape is CLEANLY incomplete. If a lexer or
|
|
113
|
+
// visitor error is present, the turn derailed mid-op (e.g. an unclosed target), so the
|
|
114
|
+
// missing PLAN/SEND is a parse artifact, not the real fix — that specific error plus the
|
|
115
|
+
// unparsedTail is the actionable guidance, and an imperative would mislead.
|
|
116
|
+
const hasSpecificError = items.some((i) => i.kind === "error" && i.error.severity === "error" && i.error.source !== "parser");
|
|
117
|
+
if (hasSpecificError)
|
|
118
|
+
return;
|
|
119
|
+
const fix = !hasPlan
|
|
120
|
+
? "a turn must begin with `<<PLAN:…:PLAN` (the required first operation)"
|
|
121
|
+
: "a turn must end with a terminal `<<SEND[code]:…:SEND` carrying the loop status";
|
|
122
|
+
items.push({ kind: "error", error: new PlurnkParseError(anchor.line, anchor.column, "parser", fix) });
|
|
35
123
|
}
|
|
36
124
|
// Parse a bare sequence of statements — teaching-example collections, single ops,
|
|
37
125
|
// documentation snippets. Strict: statements only (whitespace is hidden), no prose,
|
|
@@ -104,18 +192,25 @@ export default class PlurnkParser {
|
|
|
104
192
|
consumedErrors.add(errForStatement);
|
|
105
193
|
items.push({ kind: "error", error: errForStatement });
|
|
106
194
|
}
|
|
195
|
+
else if ((c.getChildCount?.() ?? 0) === 0) {
|
|
196
|
+
// A phantom statement context synthesized during error recovery (e.g. a
|
|
197
|
+
// PLAN slot the parser opened then failed to fill on bare text): zero tokens
|
|
198
|
+
// matched, so its OPEN terminal is null and building it would null-deref.
|
|
199
|
+
// The real failure is already a recorded grammar error; skip the phantom so
|
|
200
|
+
// an internal crash never leaks as a spurious parse-error item (#45).
|
|
201
|
+
}
|
|
107
202
|
else {
|
|
108
203
|
try {
|
|
109
204
|
items.push({ kind: "statement", statement: buildFn(c) });
|
|
110
205
|
}
|
|
111
206
|
catch (e) {
|
|
112
|
-
// A
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
items.push({ kind: "error", error:
|
|
207
|
+
// A genuine visitor contract violation (e.g. a malformed URI) is a
|
|
208
|
+
// PlurnkParseError — surface it as an error item. Anything else is an
|
|
209
|
+
// internal bug, not a parse error: let it crash rather than masquerade
|
|
210
|
+
// as a model-facing parse-error item (#45).
|
|
211
|
+
if (!(e instanceof PlurnkParseError))
|
|
212
|
+
throw e;
|
|
213
|
+
items.push({ kind: "error", error: e });
|
|
119
214
|
}
|
|
120
215
|
}
|
|
121
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlurnkParser.js","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAA0B,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAA+B,MAAM,6BAA6B,CAAC;AACxF,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAGvD,8FAA8F;AAC9F,8FAA8F;AAC9F,4FAA4F;AAC5F,eAAe;AACf,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACpC,YAAY,CAAC,cAAc;IAC3B,YAAY,CAAC,iBAAiB;IAC9B,YAAY,CAAC,kBAAkB;IAC/B,YAAY,CAAC,kBAAkB;IAC/B,YAAY,CAAC,oBAAoB;CACpC,CAAC,CAAC;AAEH,0FAA0F;AAC1F,8FAA8F;AAC9F,8FAA8F;AAC9F,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACpC,YAAY,CAAC,gBAAgB;IAC7B,YAAY,CAAC,kBAAkB;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,YAAY;IAC7B,qFAAqF;IACrF,2FAA2F;IAC3F,qFAAqF;IACrF,yFAAyF;IACzF,0FAA0F;IAC1F,0FAA0F;IAC1F,MAAM,CAAC,KAAK,CAAC,KAAa;QACtB,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"PlurnkParser.js","sourceRoot":"","sources":["../../src/PlurnkParser.ts"],"names":[],"mappings":"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"}
|