@malloydata/malloy 0.0.96-dev231025212541 → 0.0.96-dev231025215824
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/lang/ast/types/malloy-element.d.ts +13 -0
- package/dist/lang/ast/types/malloy-element.js +31 -1
- package/dist/lang/lib/Malloy/MalloyParser.d.ts +15 -0
- package/dist/lang/lib/Malloy/MalloyParser.js +1414 -1388
- package/dist/lang/lib/Malloy/MalloyParserListener.d.ts +11 -0
- package/dist/lang/lib/Malloy/MalloyParserVisitor.d.ts +7 -0
- package/dist/lang/malloy-to-ast.d.ts +3 -1
- package/dist/lang/malloy-to-ast.js +14 -2
- package/dist/lang/parse-malloy.d.ts +2 -1
- package/dist/lang/parse-malloy.js +12 -3
- package/dist/lang/test/parse.spec.js +12 -0
- package/dist/malloy.d.ts +19 -15
- package/dist/malloy.js +17 -3
- package/dist/runtime_types.d.ts +9 -5
- package/dist/tags.d.ts +4 -2
- package/dist/tags.js +10 -2
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Annotation, DocumentLocation, DocumentReference, ModelDef, ModelAnnotation, NamedModelObject, Note, Query, SQLBlockStructDef, StructDef } from '../../../model/malloy_types';
|
|
2
|
+
import { Tag } from '../../../tags';
|
|
2
3
|
import { LogSeverity, MessageLogger } from '../../parse-log';
|
|
3
4
|
import { MalloyTranslation } from '../../parse-malloy';
|
|
4
5
|
import { ModelDataRequest } from '../../translate-response';
|
|
@@ -28,6 +29,10 @@ export declare abstract class MalloyElement {
|
|
|
28
29
|
protected namespace(): NameSpace | undefined;
|
|
29
30
|
modelEntry(reference: string | ModelEntryReference): ModelEntry | undefined;
|
|
30
31
|
private xlate?;
|
|
32
|
+
/**
|
|
33
|
+
* @returns The eldest of them all
|
|
34
|
+
*/
|
|
35
|
+
kupuna(): MalloyElement;
|
|
31
36
|
translator(): MalloyTranslation | undefined;
|
|
32
37
|
setTranslator(x: MalloyTranslation): void;
|
|
33
38
|
addReference(reference: DocumentReference): void;
|
|
@@ -48,6 +53,7 @@ export declare abstract class MalloyElement {
|
|
|
48
53
|
private varInfo;
|
|
49
54
|
protected internalError(msg: string): Error;
|
|
50
55
|
needs(doc: Document): ModelDataRequest | undefined;
|
|
56
|
+
inExperiment(experimentID: string): boolean;
|
|
51
57
|
}
|
|
52
58
|
export declare class Unimplemented extends MalloyElement {
|
|
53
59
|
elementType: string;
|
|
@@ -66,6 +72,12 @@ export declare class ModelEntryReference extends MalloyElement {
|
|
|
66
72
|
export interface DocStatement extends MalloyElement {
|
|
67
73
|
execute(doc: Document): void;
|
|
68
74
|
}
|
|
75
|
+
export declare class ExperimentalExperiment extends MalloyElement implements DocStatement {
|
|
76
|
+
readonly id: string;
|
|
77
|
+
elementType: string;
|
|
78
|
+
constructor(id: string);
|
|
79
|
+
execute(_doc: Document): void;
|
|
80
|
+
}
|
|
69
81
|
export declare function isDocStatement(e: MalloyElement): e is DocStatement;
|
|
70
82
|
export declare function isDocStatementOrDocStatementList(el: MalloyElement): el is DocStatement | DocStatementList;
|
|
71
83
|
export declare abstract class ListOf<ET extends MalloyElement> extends MalloyElement {
|
|
@@ -109,6 +121,7 @@ export declare class Document extends MalloyElement implements NameSpace {
|
|
|
109
121
|
statements: DocStatementList;
|
|
110
122
|
didInitModel: boolean;
|
|
111
123
|
notes: Note[];
|
|
124
|
+
experiments: Tag;
|
|
112
125
|
constructor(statements: (DocStatement | DocStatementList)[]);
|
|
113
126
|
initModelDef(extendingModelDef: ModelDef | undefined): void;
|
|
114
127
|
compile(): DocumentCompileResult;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Document = exports.DocStatementList = exports.ListOf = exports.isDocStatementOrDocStatementList = exports.isDocStatement = exports.ModelEntryReference = exports.Unimplemented = exports.MalloyElement = void 0;
|
|
6
|
+
exports.Document = exports.DocStatementList = exports.ListOf = exports.isDocStatementOrDocStatementList = exports.isDocStatement = exports.ExperimentalExperiment = exports.ModelEntryReference = exports.Unimplemented = exports.MalloyElement = void 0;
|
|
7
7
|
/*
|
|
8
8
|
* Copyright 2023 Google LLC
|
|
9
9
|
*
|
|
@@ -28,6 +28,7 @@ exports.Document = exports.DocStatementList = exports.ListOf = exports.isDocStat
|
|
|
28
28
|
*/
|
|
29
29
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
30
30
|
const malloy_types_1 = require("../../../model/malloy_types");
|
|
31
|
+
const tags_1 = require("../../../tags");
|
|
31
32
|
const global_name_space_1 = require("./global-name-space");
|
|
32
33
|
const noteable_1 = require("./noteable");
|
|
33
34
|
const uuid_1 = require("uuid");
|
|
@@ -136,6 +137,13 @@ class MalloyElement {
|
|
|
136
137
|
}
|
|
137
138
|
return result;
|
|
138
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* @returns The eldest of them all
|
|
142
|
+
*/
|
|
143
|
+
kupuna() {
|
|
144
|
+
var _a;
|
|
145
|
+
return ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.kupuna()) || this;
|
|
146
|
+
}
|
|
139
147
|
translator() {
|
|
140
148
|
if (this.xlate) {
|
|
141
149
|
return this.xlate;
|
|
@@ -254,6 +262,16 @@ class MalloyElement {
|
|
|
254
262
|
return childNeeds;
|
|
255
263
|
}
|
|
256
264
|
}
|
|
265
|
+
inExperiment(experimentID) {
|
|
266
|
+
var _a;
|
|
267
|
+
const experimental = (_a = this.translator()) === null || _a === void 0 ? void 0 : _a.compilerFlags.tag('experimental');
|
|
268
|
+
const enabled = experimental && (experimental.bare() || experimental.has(experimentID));
|
|
269
|
+
if (enabled) {
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
this.log(`Experimental flag '${experimentID}' is not set, feature not available`);
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
257
275
|
}
|
|
258
276
|
exports.MalloyElement = MalloyElement;
|
|
259
277
|
class Unimplemented extends MalloyElement {
|
|
@@ -282,6 +300,17 @@ class ModelEntryReference extends MalloyElement {
|
|
|
282
300
|
}
|
|
283
301
|
}
|
|
284
302
|
exports.ModelEntryReference = ModelEntryReference;
|
|
303
|
+
class ExperimentalExperiment extends MalloyElement {
|
|
304
|
+
constructor(id) {
|
|
305
|
+
super();
|
|
306
|
+
this.id = id;
|
|
307
|
+
this.elementType = 'experimentalExperiment';
|
|
308
|
+
}
|
|
309
|
+
execute(_doc) {
|
|
310
|
+
this.inExperiment(this.id);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
exports.ExperimentalExperiment = ExperimentalExperiment;
|
|
285
314
|
function isDocStatement(e) {
|
|
286
315
|
return e.execute !== undefined;
|
|
287
316
|
}
|
|
@@ -404,6 +433,7 @@ class Document extends MalloyElement {
|
|
|
404
433
|
this.sqlBlocks = [];
|
|
405
434
|
this.didInitModel = false;
|
|
406
435
|
this.notes = [];
|
|
436
|
+
this.experiments = new tags_1.Tag({});
|
|
407
437
|
this.modelAnnotationTodoList = [];
|
|
408
438
|
this.statements = new DocStatementList(statements);
|
|
409
439
|
this.has({ statements: statements });
|
|
@@ -289,6 +289,7 @@ export declare class MalloyParser extends Parser {
|
|
|
289
289
|
static readonly RULE_sqlExploreNameRef = 126;
|
|
290
290
|
static readonly RULE_nameSQLBlock = 127;
|
|
291
291
|
static readonly RULE_connectionName = 128;
|
|
292
|
+
static readonly RULE_experimentalStatementForTesting = 129;
|
|
292
293
|
static readonly ruleNames: string[];
|
|
293
294
|
private static readonly _LITERAL_NAMES;
|
|
294
295
|
private static readonly _SYMBOLIC_NAMES;
|
|
@@ -430,6 +431,7 @@ export declare class MalloyParser extends Parser {
|
|
|
430
431
|
sqlExploreNameRef(): SqlExploreNameRefContext;
|
|
431
432
|
nameSQLBlock(): NameSQLBlockContext;
|
|
432
433
|
connectionName(): ConnectionNameContext;
|
|
434
|
+
experimentalStatementForTesting(): ExperimentalStatementForTestingContext;
|
|
433
435
|
sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean;
|
|
434
436
|
private sqExpr_sempred;
|
|
435
437
|
private fieldExpr_sempred;
|
|
@@ -461,6 +463,7 @@ export declare class MalloyStatementContext extends ParserRuleContext {
|
|
|
461
463
|
runStatement(): RunStatementContext | undefined;
|
|
462
464
|
docAnnotations(): DocAnnotationsContext | undefined;
|
|
463
465
|
ignoredObjectAnnotations(): IgnoredObjectAnnotationsContext | undefined;
|
|
466
|
+
experimentalStatementForTesting(): ExperimentalStatementForTestingContext | undefined;
|
|
464
467
|
constructor(parent: ParserRuleContext | undefined, invokingState: number);
|
|
465
468
|
get ruleIndex(): number;
|
|
466
469
|
enterRule(listener: MalloyParserListener): void;
|
|
@@ -2389,3 +2392,15 @@ export declare class ConnectionNameContext extends ParserRuleContext {
|
|
|
2389
2392
|
exitRule(listener: MalloyParserListener): void;
|
|
2390
2393
|
accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
|
|
2391
2394
|
}
|
|
2395
|
+
export declare class ExperimentalStatementForTestingContext extends ParserRuleContext {
|
|
2396
|
+
SEMI(): TerminalNode[];
|
|
2397
|
+
SEMI(i: number): TerminalNode;
|
|
2398
|
+
OBRACK(): TerminalNode;
|
|
2399
|
+
string(): StringContext;
|
|
2400
|
+
CBRACK(): TerminalNode;
|
|
2401
|
+
constructor(parent: ParserRuleContext | undefined, invokingState: number);
|
|
2402
|
+
get ruleIndex(): number;
|
|
2403
|
+
enterRule(listener: MalloyParserListener): void;
|
|
2404
|
+
exitRule(listener: MalloyParserListener): void;
|
|
2405
|
+
accept<Result>(visitor: MalloyParserVisitor<Result>): Result;
|
|
2406
|
+
}
|