UNPKG

derw

Version:

An Elm-inspired language that transpiles to TypeScript

150 lines (149 loc) 4.21 kB
import { TypeToken, BaseTypeToken, FunctionTypeToken, RootTypeTokens } from "./Tokens_types_kernel"; export { StringToken }; export { FormatStringToken }; export { KeywordToken }; export { IdentifierToken }; export { LiteralToken }; export { ColonToken }; export { ArrowToken }; export { CommentToken }; export { MultilineCommentToken }; export { AssignToken }; export { CommaToken }; export { OpenCurlyBracesToken }; export { CloseCurlyBracesToken }; export { OpenBracketToken }; export { CloseBracketToken }; export { PipeToken }; export { OperatorToken }; export { WhitespaceToken }; export { Token }; export { RootTypeTokens }; export { BaseTypeToken }; export { FunctionTypeToken }; export { TypeToken }; export { checkKeywordToken }; export { tokenize }; export { tokenizeType }; export { tokensToString }; export { rootTypeTokensToString }; type MultilineCommentBody = "{-" | "-}"; type StringToken = { kind: "StringToken"; body: string; }; declare function StringToken(args: { body: string; }): StringToken; type FormatStringToken = { kind: "FormatStringToken"; body: string; indentLevel: number; }; declare function FormatStringToken(args: { body: string; indentLevel: number; }): FormatStringToken; type KeywordToken = { kind: "KeywordToken"; body: string; }; declare function KeywordToken(args: { body: string; }): KeywordToken; type IdentifierToken = { kind: "IdentifierToken"; body: string; }; declare function IdentifierToken(args: { body: string; }): IdentifierToken; type LiteralToken = { kind: "LiteralToken"; body: string; }; declare function LiteralToken(args: { body: string; }): LiteralToken; type ColonToken = { kind: "ColonToken"; }; declare function ColonToken(args: {}): ColonToken; type ArrowToken = { kind: "ArrowToken"; }; declare function ArrowToken(args: {}): ArrowToken; type CommentToken = { kind: "CommentToken"; }; declare function CommentToken(args: {}): CommentToken; type MultilineCommentToken = { kind: "MultilineCommentToken"; body: MultilineCommentBody; }; declare function MultilineCommentToken(args: { body: MultilineCommentBody; }): MultilineCommentToken; type AssignToken = { kind: "AssignToken"; }; declare function AssignToken(args: {}): AssignToken; type CommaToken = { kind: "CommaToken"; }; declare function CommaToken(args: {}): CommaToken; type OpenCurlyBracesToken = { kind: "OpenCurlyBracesToken"; }; declare function OpenCurlyBracesToken(args: {}): OpenCurlyBracesToken; type CloseCurlyBracesToken = { kind: "CloseCurlyBracesToken"; }; declare function CloseCurlyBracesToken(args: {}): CloseCurlyBracesToken; type OpenBracketToken = { kind: "OpenBracketToken"; }; declare function OpenBracketToken(args: {}): OpenBracketToken; type CloseBracketToken = { kind: "CloseBracketToken"; }; declare function CloseBracketToken(args: {}): CloseBracketToken; type PipeToken = { kind: "PipeToken"; }; declare function PipeToken(args: {}): PipeToken; type OperatorToken = { kind: "OperatorToken"; body: string; }; declare function OperatorToken(args: { body: string; }): OperatorToken; type WhitespaceToken = { kind: "WhitespaceToken"; body: string; }; declare function WhitespaceToken(args: { body: string; }): WhitespaceToken; type Token = StringToken | FormatStringToken | KeywordToken | IdentifierToken | LiteralToken | ColonToken | ArrowToken | CommentToken | MultilineCommentToken | AssignToken | CommaToken | OpenCurlyBracesToken | CloseCurlyBracesToken | OpenBracketToken | CloseBracketToken | PipeToken | OperatorToken | WhitespaceToken; declare function checkKeywordToken(currentToken: string): Token[]; declare function tokenize(body: string): Token[]; declare function tokensToString(tokens: Token[]): string; type Ok<b> = { kind: "Ok"; value: b; }; declare function Ok<b>(args: { value: b; }): Ok<b>; type Err<a> = { kind: "Err"; error: a; }; declare function Err<a>(args: { error: a; }): Err<a>; type Result<a, b> = Ok<b> | Err<a>; declare function tokenizeType(tokens: Token[]): Result<string, RootTypeTokens[]>; declare function rootTypeTokensToString(tokens: RootTypeTokens[]): string;