cordbuilder
Version:
Simple dsl to create discord builders simple.
36 lines (35 loc) • 1.14 kB
TypeScript
import { Identifier } from "../structs/Expressions";
import Token from "../structs/Token";
import { ExpressionKind } from "./ast";
export declare abstract class Expression {
kind: ExpressionKind;
}
export interface StringExpressionProps extends Expression {
kind: ExpressionKind.StringExpression;
value: string;
}
export interface BooleanExpressionProps extends Expression {
kind: ExpressionKind.BooleanExpression;
value: boolean;
}
export interface ParenthesizedExpressionProps extends Expression {
kind: ExpressionKind.ParenthesizedExpression;
parens: [open: Token, close: Token];
expression: Expression;
}
export interface IdentifierProps extends Expression {
kind: ExpressionKind.Identifier;
token: Token;
name: string;
}
export interface ArgumentsExpressionProps extends Expression {
kind: ExpressionKind.ArgumentsExpression;
brackets: [open: Token, close: Token];
args: Expression[];
}
export interface SubPropertyDeclarationProps extends Expression {
kind: ExpressionKind.SubPropertyDeclaration;
identifier: Identifier;
expression: Expression;
colon: Token;
}