@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
102 lines (101 loc) • 3.05 kB
TypeScript
import type { BinaryExpressionOperator, UnaryOperator } from "../lexer/types.js";
interface BaseNode {
start: number;
end: number;
}
export interface NumberLiteral extends BaseNode {
type: "NumberLiteral";
value: number;
}
export interface StringLiteral extends BaseNode {
type: "StringLiteral";
value: string;
}
export interface BooleanLiteral extends BaseNode {
type: "BooleanLiteral";
value: boolean;
}
export interface NullLiteral extends BaseNode {
type: "NullLiteral";
value: null;
}
export interface UndefinedLiteral extends BaseNode {
type: "UndefinedLiteral";
value: undefined;
}
export interface Identifier extends BaseNode {
type: "Identifier";
name: string;
}
export interface BinaryExpression extends BaseNode {
type: "BinaryExpression";
operator: BinaryExpressionOperator;
left: ASTNode;
right: ASTNode;
}
export interface UnaryExpression extends BaseNode {
type: "UnaryExpression";
operator: UnaryOperator;
operand: ASTNode;
}
export interface ConditionalExpression extends BaseNode {
type: "ConditionalExpression";
test: ASTNode;
consequent: ASTNode;
alternate: ASTNode;
}
export interface MemberExpression extends BaseNode {
type: "MemberExpression";
object: ASTNode;
property: ASTNode;
computed: boolean;
}
export interface OptionalMemberExpression extends BaseNode {
type: "OptionalMemberExpression";
object: ASTNode;
property: ASTNode;
computed: boolean;
}
export interface ArrayLiteral extends BaseNode {
type: "ArrayLiteral";
readonly elements: readonly (ASTNode | SpreadElement)[];
}
export interface ObjectLiteral extends BaseNode {
type: "ObjectLiteral";
readonly properties: readonly ObjectProperty[];
}
export interface ObjectProperty extends BaseNode {
type: "ObjectProperty";
key: ASTNode;
value: ASTNode;
computed: boolean;
}
export interface CallExpression extends BaseNode {
type: "CallExpression";
callee: ASTNode;
readonly args: readonly ASTNode[];
}
export interface PipeExpression extends BaseNode {
type: "PipeExpression";
input: ASTNode;
transform: ASTNode;
}
export interface TemplateLiteral extends BaseNode {
type: "TemplateLiteral";
readonly parts: readonly (StringLiteral | ASTNode)[];
}
export interface SpreadElement extends BaseNode {
type: "SpreadElement";
argument: ASTNode;
}
export interface ArrowFunctionExpression extends BaseNode {
type: "ArrowFunctionExpression";
params: string[];
body: ASTNode;
}
export interface DateLiteralNode extends BaseNode {
type: "DateLiteralNode";
value: string;
}
export type ASTNode = NumberLiteral | StringLiteral | BooleanLiteral | NullLiteral | UndefinedLiteral | Identifier | BinaryExpression | UnaryExpression | ConditionalExpression | MemberExpression | OptionalMemberExpression | ArrayLiteral | ObjectLiteral | CallExpression | PipeExpression | TemplateLiteral | SpreadElement | ArrowFunctionExpression | DateLiteralNode;
export {};