@malloydata/malloy-tag 0.0.335 → 0.0.336
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/CONTEXT.md +83 -9
- package/dist/index.d.ts +3 -0
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/peggy/dist/peg-tag-parser.d.ts +11 -0
- package/dist/peggy/dist/peg-tag-parser.js +3130 -0
- package/dist/peggy/dist/peg-tag-parser.js.map +1 -0
- package/dist/peggy/index.d.ts +13 -0
- package/dist/peggy/index.js +117 -0
- package/dist/peggy/index.js.map +1 -0
- package/dist/peggy/interpreter.d.ts +32 -0
- package/dist/peggy/interpreter.js +208 -0
- package/dist/peggy/interpreter.js.map +1 -0
- package/dist/peggy/statements.d.ts +51 -0
- package/dist/peggy/statements.js +7 -0
- package/dist/peggy/statements.js.map +1 -0
- package/dist/schema.d.ts +41 -0
- package/dist/schema.js +573 -0
- package/dist/schema.js.map +1 -0
- package/dist/schema.spec.d.ts +1 -0
- package/dist/schema.spec.js +980 -0
- package/dist/schema.spec.js.map +1 -0
- package/dist/tags.d.ts +144 -37
- package/dist/tags.js +535 -344
- package/dist/tags.js.map +1 -1
- package/dist/tags.spec.js +524 -45
- package/dist/tags.spec.js.map +1 -1
- package/package.json +6 -8
- package/src/index.ts +3 -0
- package/src/motly-schema.motly +52 -0
- package/src/peggy/dist/peg-tag-parser.js +2790 -0
- package/src/peggy/index.ts +89 -0
- package/src/peggy/interpreter.ts +265 -0
- package/src/peggy/malloy-tag.peggy +224 -0
- package/src/peggy/statements.ts +49 -0
- package/src/schema.spec.ts +1280 -0
- package/src/schema.ts +852 -0
- package/src/tags.spec.ts +591 -46
- package/src/tags.ts +597 -398
- package/tsconfig.json +3 -2
- package/dist/lib/Malloy/MalloyTagLexer.d.ts +0 -42
- package/dist/lib/Malloy/MalloyTagLexer.js +0 -395
- package/dist/lib/Malloy/MalloyTagLexer.js.map +0 -1
- package/dist/lib/Malloy/MalloyTagParser.d.ts +0 -180
- package/dist/lib/Malloy/MalloyTagParser.js +0 -1077
- package/dist/lib/Malloy/MalloyTagParser.js.map +0 -1
- package/dist/lib/Malloy/MalloyTagVisitor.d.ts +0 -120
- package/dist/lib/Malloy/MalloyTagVisitor.js +0 -4
- package/dist/lib/Malloy/MalloyTagVisitor.js.map +0 -1
- package/scripts/build_parser.js +0 -98
- package/src/MalloyTag.g4 +0 -104
- package/src/lib/Malloy/MalloyTag.interp +0 -61
- package/src/lib/Malloy/MalloyTag.tokens +0 -32
- package/src/lib/Malloy/MalloyTagLexer.interp +0 -85
- package/src/lib/Malloy/MalloyTagLexer.tokens +0 -32
- package/src/lib/Malloy/MalloyTagLexer.ts +0 -386
- package/src/lib/Malloy/MalloyTagParser.ts +0 -1065
- package/src/lib/Malloy/MalloyTagVisitor.ts +0 -141
- package/src/lib/Malloy/_BUILD_DIGEST_ +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peg-tag-parser.js","sourceRoot":"","sources":["../../../src/peggy/dist/peg-tag-parser.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TagParse } from '../tags';
|
|
2
|
+
import { Tag } from '../tags';
|
|
3
|
+
/**
|
|
4
|
+
* Parse Malloy tag language into a Tag which can be queried.
|
|
5
|
+
*
|
|
6
|
+
* @param source - A single string or array of strings to parse. If a string
|
|
7
|
+
* starts with #, all characters up to the first space are skipped.
|
|
8
|
+
* When an array is provided, strings are parsed sequentially and merged.
|
|
9
|
+
* @param extending - A tag which this parse will extend
|
|
10
|
+
* @returns TagParse with the resulting tag and any errors. For arrays,
|
|
11
|
+
* error line numbers indicate the index in the array where the error occurred.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseTag(source: string | string[], extending?: Tag): TagParse;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright Contributors to the Malloy project
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.parseTag = parseTag;
|
|
41
|
+
const tags_1 = require("../tags");
|
|
42
|
+
const interpreter_1 = require("./interpreter");
|
|
43
|
+
const parser = __importStar(require("./dist/peg-tag-parser"));
|
|
44
|
+
/**
|
|
45
|
+
* Parse a single line of Malloy tag language into a Tag.
|
|
46
|
+
* Internal helper - use parseTag() as the public API.
|
|
47
|
+
*/
|
|
48
|
+
function parseTagLine(source, extending) {
|
|
49
|
+
var _a;
|
|
50
|
+
// Skip the prefix if present (e.g., "# " or "#(docs) ")
|
|
51
|
+
if (source[0] === '#') {
|
|
52
|
+
const skipTo = source.indexOf(' ');
|
|
53
|
+
if (skipTo > 0) {
|
|
54
|
+
source = source.slice(skipTo);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
source = '';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const errors = [];
|
|
61
|
+
let statements = [];
|
|
62
|
+
try {
|
|
63
|
+
statements = parser.parse(source);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e && typeof e === 'object' && 'location' in e && 'message' in e) {
|
|
67
|
+
const peggyError = e;
|
|
68
|
+
// Return 0-based line and offset within the input string
|
|
69
|
+
errors.push({
|
|
70
|
+
code: 'tag-parse-syntax-error',
|
|
71
|
+
message: peggyError.message,
|
|
72
|
+
line: peggyError.location.start.line - 1,
|
|
73
|
+
offset: peggyError.location.start.column - 1,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
errors.push({
|
|
78
|
+
code: 'tag-parse-syntax-error',
|
|
79
|
+
message: String(e),
|
|
80
|
+
line: 0,
|
|
81
|
+
offset: 0,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return { tag: (_a = extending === null || extending === void 0 ? void 0 : extending.clone()) !== null && _a !== void 0 ? _a : new tags_1.Tag({}), log: errors };
|
|
85
|
+
}
|
|
86
|
+
const interpreter = new interpreter_1.Interpreter();
|
|
87
|
+
const tag = interpreter.execute(statements, extending);
|
|
88
|
+
return { tag, log: errors };
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Parse Malloy tag language into a Tag which can be queried.
|
|
92
|
+
*
|
|
93
|
+
* @param source - A single string or array of strings to parse. If a string
|
|
94
|
+
* starts with #, all characters up to the first space are skipped.
|
|
95
|
+
* When an array is provided, strings are parsed sequentially and merged.
|
|
96
|
+
* @param extending - A tag which this parse will extend
|
|
97
|
+
* @returns TagParse with the resulting tag and any errors. For arrays,
|
|
98
|
+
* error line numbers indicate the index in the array where the error occurred.
|
|
99
|
+
*/
|
|
100
|
+
function parseTag(source, extending) {
|
|
101
|
+
if (typeof source === 'string') {
|
|
102
|
+
return parseTagLine(source, extending);
|
|
103
|
+
}
|
|
104
|
+
const allErrs = [];
|
|
105
|
+
let current = extending !== null && extending !== void 0 ? extending : new tags_1.Tag({});
|
|
106
|
+
for (let i = 0; i < source.length; i++) {
|
|
107
|
+
const text = source[i];
|
|
108
|
+
const noteParse = parseTagLine(text, current);
|
|
109
|
+
current = noteParse.tag;
|
|
110
|
+
// Adjust error line to be the index in the array
|
|
111
|
+
for (const err of noteParse.log) {
|
|
112
|
+
allErrs.push({ ...err, line: i + err.line });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return { tag: current, log: allErrs };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/peggy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Tag } from '../tags';
|
|
2
|
+
import type { TagStatement } from './statements';
|
|
3
|
+
/**
|
|
4
|
+
* Executes TagStatements to build a Tag object.
|
|
5
|
+
*/
|
|
6
|
+
export declare class Interpreter {
|
|
7
|
+
execute(statements: TagStatement[], extending?: Tag): Tag;
|
|
8
|
+
private executeStatement;
|
|
9
|
+
private executeSetEq;
|
|
10
|
+
private executeReplaceProperties;
|
|
11
|
+
private executeUpdateProperties;
|
|
12
|
+
private executeDefine;
|
|
13
|
+
/**
|
|
14
|
+
* Navigate to the parent of the final path segment, creating intermediate
|
|
15
|
+
* tags as needed. Returns [finalKey, parentDict, parentTag] so caller can write to it.
|
|
16
|
+
*/
|
|
17
|
+
private buildAccessPath;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve array elements to Tag[] with proper parent links.
|
|
20
|
+
*/
|
|
21
|
+
private resolveArrayWithParent;
|
|
22
|
+
/**
|
|
23
|
+
* Update an existing tag's value in place, preserving its properties.
|
|
24
|
+
* Note: References must be handled separately since they require a RefTag.
|
|
25
|
+
*/
|
|
26
|
+
private setTagValue;
|
|
27
|
+
/**
|
|
28
|
+
* Create a Tag with value, resolving arrays with proper parent links.
|
|
29
|
+
* Returns a RefTag for reference values.
|
|
30
|
+
*/
|
|
31
|
+
private createTagWithValue;
|
|
32
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright Contributors to the Malloy project
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.Interpreter = void 0;
|
|
8
|
+
const tags_1 = require("../tags");
|
|
9
|
+
/**
|
|
10
|
+
* Executes TagStatements to build a Tag object.
|
|
11
|
+
*/
|
|
12
|
+
class Interpreter {
|
|
13
|
+
execute(statements, extending) {
|
|
14
|
+
var _a;
|
|
15
|
+
// Root tag has no parent
|
|
16
|
+
const tag = (_a = extending === null || extending === void 0 ? void 0 : extending.clone()) !== null && _a !== void 0 ? _a : new tags_1.Tag({});
|
|
17
|
+
for (const stmt of statements) {
|
|
18
|
+
this.executeStatement(stmt, tag);
|
|
19
|
+
}
|
|
20
|
+
return tag;
|
|
21
|
+
}
|
|
22
|
+
executeStatement(stmt, tag) {
|
|
23
|
+
switch (stmt.kind) {
|
|
24
|
+
case 'setEq':
|
|
25
|
+
this.executeSetEq(stmt, tag);
|
|
26
|
+
break;
|
|
27
|
+
case 'replaceProperties':
|
|
28
|
+
this.executeReplaceProperties(stmt, tag);
|
|
29
|
+
break;
|
|
30
|
+
case 'updateProperties':
|
|
31
|
+
this.executeUpdateProperties(stmt, tag);
|
|
32
|
+
break;
|
|
33
|
+
case 'define':
|
|
34
|
+
this.executeDefine(stmt, tag);
|
|
35
|
+
break;
|
|
36
|
+
case 'clearAll':
|
|
37
|
+
tag.properties = {};
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
executeSetEq(stmt, tag) {
|
|
42
|
+
const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
|
|
43
|
+
if (stmt.properties) {
|
|
44
|
+
// name = value { new_properties } - replace properties with new ones
|
|
45
|
+
const resultTag = this.createTagWithValue(stmt.value, parentTag);
|
|
46
|
+
for (const propStmt of stmt.properties) {
|
|
47
|
+
this.executeStatement(propStmt, resultTag);
|
|
48
|
+
}
|
|
49
|
+
writeInto[writeKey] = resultTag;
|
|
50
|
+
}
|
|
51
|
+
else if (stmt.preserveProperties) {
|
|
52
|
+
// name = value { ... } - preserve existing properties, update value
|
|
53
|
+
const existing = writeInto[writeKey];
|
|
54
|
+
if (existing && stmt.value.kind !== 'reference') {
|
|
55
|
+
// Update value in place, preserving properties and parent chains
|
|
56
|
+
this.setTagValue(existing, stmt.value);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// No existing tag, or reference value (which requires a RefTag)
|
|
60
|
+
const resultTag = this.createTagWithValue(stmt.value, parentTag);
|
|
61
|
+
if (existing === null || existing === void 0 ? void 0 : existing.properties) {
|
|
62
|
+
// Clone properties with correct parent to preserve parent chains
|
|
63
|
+
resultTag.properties = {};
|
|
64
|
+
for (const [key, val] of Object.entries(existing.properties)) {
|
|
65
|
+
resultTag.properties[key] = val.clone(resultTag);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
writeInto[writeKey] = resultTag;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// name = value - simple assignment
|
|
73
|
+
writeInto[writeKey] = this.createTagWithValue(stmt.value, parentTag);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
executeReplaceProperties(stmt, tag) {
|
|
77
|
+
const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
|
|
78
|
+
if (stmt.preserveValue) {
|
|
79
|
+
// name = ... { properties } - preserve value, replace properties
|
|
80
|
+
const existing = writeInto[writeKey];
|
|
81
|
+
const resultTag = new tags_1.Tag({}, parentTag);
|
|
82
|
+
if (existing) {
|
|
83
|
+
resultTag.eq = existing.eq;
|
|
84
|
+
}
|
|
85
|
+
for (const propStmt of stmt.properties) {
|
|
86
|
+
this.executeStatement(propStmt, resultTag);
|
|
87
|
+
}
|
|
88
|
+
writeInto[writeKey] = resultTag;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// name = { properties } - no value, replace properties
|
|
92
|
+
const resultTag = new tags_1.Tag({}, parentTag);
|
|
93
|
+
for (const propStmt of stmt.properties) {
|
|
94
|
+
this.executeStatement(propStmt, resultTag);
|
|
95
|
+
}
|
|
96
|
+
writeInto[writeKey] = resultTag;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
executeUpdateProperties(stmt, tag) {
|
|
100
|
+
var _a;
|
|
101
|
+
const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
|
|
102
|
+
// Create or reuse the result tag - this is the tag that will be stored
|
|
103
|
+
// and that child tags will have as their parent
|
|
104
|
+
const resultTag = (_a = writeInto[writeKey]) !== null && _a !== void 0 ? _a : new tags_1.Tag({}, parentTag);
|
|
105
|
+
// Execute nested statements in the context of the result tag
|
|
106
|
+
for (const propStmt of stmt.properties) {
|
|
107
|
+
this.executeStatement(propStmt, resultTag);
|
|
108
|
+
}
|
|
109
|
+
writeInto[writeKey] = resultTag;
|
|
110
|
+
}
|
|
111
|
+
executeDefine(stmt, tag) {
|
|
112
|
+
const [writeKey, writeInto, parentTag] = this.buildAccessPath(tag, stmt.path);
|
|
113
|
+
if (stmt.deleted) {
|
|
114
|
+
writeInto[writeKey] = new tags_1.Tag({ deleted: true }, parentTag);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
writeInto[writeKey] = new tags_1.Tag({}, parentTag);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Navigate to the parent of the final path segment, creating intermediate
|
|
122
|
+
* tags as needed. Returns [finalKey, parentDict, parentTag] so caller can write to it.
|
|
123
|
+
*/
|
|
124
|
+
buildAccessPath(tag, path) {
|
|
125
|
+
var _a;
|
|
126
|
+
var _b;
|
|
127
|
+
if (path.length === 0) {
|
|
128
|
+
throw new Error('INTERNAL ERROR: buildAccessPath called with empty path');
|
|
129
|
+
}
|
|
130
|
+
let currentTag = tag;
|
|
131
|
+
let parentDict = tag.getProperties();
|
|
132
|
+
for (const segment of path.slice(0, -1)) {
|
|
133
|
+
let next;
|
|
134
|
+
if (parentDict[segment] === undefined) {
|
|
135
|
+
next = new tags_1.Tag({}, currentTag);
|
|
136
|
+
parentDict[segment] = next;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Ensure properties exists on this intermediate tag
|
|
140
|
+
(_a = (_b = parentDict[segment]).properties) !== null && _a !== void 0 ? _a : (_b.properties = {});
|
|
141
|
+
next = parentDict[segment];
|
|
142
|
+
}
|
|
143
|
+
currentTag = next;
|
|
144
|
+
parentDict = next.getProperties();
|
|
145
|
+
}
|
|
146
|
+
return [path[path.length - 1], parentDict, currentTag];
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resolve array elements to Tag[] with proper parent links.
|
|
150
|
+
*/
|
|
151
|
+
resolveArrayWithParent(elements, parent) {
|
|
152
|
+
return elements.map(el => {
|
|
153
|
+
var _a;
|
|
154
|
+
// Reference without properties becomes a RefTag
|
|
155
|
+
if (((_a = el.value) === null || _a === void 0 ? void 0 : _a.kind) === 'reference' && !el.properties) {
|
|
156
|
+
return new tags_1.RefTag(el.value.ups, el.value.path, parent);
|
|
157
|
+
}
|
|
158
|
+
const resultTag = new tags_1.Tag({}, parent);
|
|
159
|
+
if (el.value) {
|
|
160
|
+
if (el.value.kind === 'array') {
|
|
161
|
+
// Nested array
|
|
162
|
+
resultTag.eq = this.resolveArrayWithParent(el.value.elements, resultTag);
|
|
163
|
+
}
|
|
164
|
+
else if (el.value.kind !== 'reference') {
|
|
165
|
+
resultTag.eq = el.value.value;
|
|
166
|
+
}
|
|
167
|
+
// References with properties are ignored (just the properties are kept)
|
|
168
|
+
}
|
|
169
|
+
if (el.properties) {
|
|
170
|
+
for (const stmt of el.properties) {
|
|
171
|
+
this.executeStatement(stmt, resultTag);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return resultTag;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Update an existing tag's value in place, preserving its properties.
|
|
179
|
+
* Note: References must be handled separately since they require a RefTag.
|
|
180
|
+
*/
|
|
181
|
+
setTagValue(tag, valueData) {
|
|
182
|
+
if (valueData.kind === 'array') {
|
|
183
|
+
tag.eq = this.resolveArrayWithParent(valueData.elements, tag);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
tag.eq = valueData.value;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Create a Tag with value, resolving arrays with proper parent links.
|
|
191
|
+
* Returns a RefTag for reference values.
|
|
192
|
+
*/
|
|
193
|
+
createTagWithValue(valueData, parent) {
|
|
194
|
+
if (valueData.kind === 'reference') {
|
|
195
|
+
return new tags_1.RefTag(valueData.ups, valueData.path, parent);
|
|
196
|
+
}
|
|
197
|
+
const resultTag = new tags_1.Tag({}, parent);
|
|
198
|
+
if (valueData.kind === 'array') {
|
|
199
|
+
resultTag.eq = this.resolveArrayWithParent(valueData.elements, resultTag);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
resultTag.eq = valueData.value;
|
|
203
|
+
}
|
|
204
|
+
return resultTag;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
exports.Interpreter = Interpreter;
|
|
208
|
+
//# sourceMappingURL=interpreter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/peggy/interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intermediate representation for tag statements.
|
|
3
|
+
* The Peggy parser outputs these, and the interpreter executes them to build a Tag.
|
|
4
|
+
*/
|
|
5
|
+
export type ScalarValue = {
|
|
6
|
+
kind: 'string';
|
|
7
|
+
value: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'number';
|
|
10
|
+
value: number;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'boolean';
|
|
13
|
+
value: boolean;
|
|
14
|
+
} | {
|
|
15
|
+
kind: 'date';
|
|
16
|
+
value: Date;
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'reference';
|
|
19
|
+
ups: number;
|
|
20
|
+
path: (string | number)[];
|
|
21
|
+
};
|
|
22
|
+
export type TagValue = ScalarValue | {
|
|
23
|
+
kind: 'array';
|
|
24
|
+
elements: ArrayElement[];
|
|
25
|
+
};
|
|
26
|
+
export type ArrayElement = {
|
|
27
|
+
value?: TagValue;
|
|
28
|
+
properties?: TagStatement[];
|
|
29
|
+
};
|
|
30
|
+
export type TagStatement = {
|
|
31
|
+
kind: 'setEq';
|
|
32
|
+
path: string[];
|
|
33
|
+
value: TagValue;
|
|
34
|
+
properties?: TagStatement[];
|
|
35
|
+
preserveProperties?: boolean;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'replaceProperties';
|
|
38
|
+
path: string[];
|
|
39
|
+
properties: TagStatement[];
|
|
40
|
+
preserveValue: boolean;
|
|
41
|
+
} | {
|
|
42
|
+
kind: 'updateProperties';
|
|
43
|
+
path: string[];
|
|
44
|
+
properties: TagStatement[];
|
|
45
|
+
} | {
|
|
46
|
+
kind: 'define';
|
|
47
|
+
path: string[];
|
|
48
|
+
deleted: boolean;
|
|
49
|
+
} | {
|
|
50
|
+
kind: 'clearAll';
|
|
51
|
+
};
|