Files
languageservices/expressions/src/data/expressiondata.ts
T

52 lines
976 B
TypeScript
Raw Normal View History

2023-01-09 19:02:19 -05:00
import {Dictionary} from "./dictionary";
import {Null} from "./null";
import {Array} from "./array";
import {StringData} from "./string";
import {NumberData} from "./number";
import {BooleanData} from "./boolean";
export enum Kind {
String = 0,
Array,
Dictionary,
Boolean,
Number,
CaseSensitiveDictionary,
2023-01-09 19:02:19 -05:00
Null
}
export function kindStr(k: Kind): string {
switch (k) {
case Kind.Array:
return "Array";
case Kind.Boolean:
return "Boolean";
case Kind.Null:
return "Null";
case Kind.Number:
return "Number";
case Kind.Dictionary:
return "Object";
case Kind.String:
return "String";
}
return "unknown";
}
export interface ExpressionDataInterface {
kind: Kind;
primitive: boolean;
coerceString(): string;
number(): number;
}
2023-01-09 19:02:19 -05:00
export type ExpressionData = Array | Dictionary | StringData | BooleanData | NumberData | Null;
export type Pair = {
key: string;
value: ExpressionData;
};