UNPKG

derw

Version:

An Elm-inspired language that transpiles to TypeScript

52 lines (44 loc) 986 B
import { ArrowToken, CloseBracketToken, IdentifierToken, OpenBracketToken, StringToken, } from "./Tokens"; export type TypeTokenRaw = | IdentifierToken | ArrowToken | OpenBracketToken | CloseBracketToken | StringToken; export type TypeToken = | IdentifierToken | ArrowToken | OpenBracketToken | CloseBracketToken | StringToken | BaseTypeToken | FunctionTypeToken; export type BaseTypeToken = { kind: "BaseTypeToken"; body: TypeToken[]; }; export function BaseTypeToken(args: { body: TypeToken[] }): BaseTypeToken { return { kind: "BaseTypeToken", ...args, }; } export type FunctionTypeToken = { kind: "FunctionTypeToken"; body: TypeToken[]; }; export function FunctionTypeToken(args: { body: TypeToken[]; }): FunctionTypeToken { return { kind: "FunctionTypeToken", ...args, }; } export type RootTypeTokens = BaseTypeToken | FunctionTypeToken;