@tsukiroku/tiny
Version:
Tiny interpreter
68 lines (67 loc) • 1.38 kB
TypeScript
import * as Tiny from '../../index';
declare enum TokenType {
ILLEGAL = "ILLEGAL",
EOF = "EOF",
IDENT = "IDENT",
NUMBER = "NUMBER",
STRING = "STRING",
TRUE = "TRUE",
FALSE = "FALSE",
NULL = "NULL",
FUNCTION = "FUNCTION",
COMMENT = "COMMENT",
ELEMENT = "ELEMENT",
NULLISH = "NULLISH",
ASSIGN = "=",
PLUS = "+",
MINUS = "-",
BANG = "!",
ASTERISK = "*",
SLASH = "/",
PERCENT = "%",
QUESTION = "?",
AT = "@",
QUOTE = "\"",
SINGLE_QUOTE = "'",
LT = "<",
GT = ">",
LTE = "<=",
GTE = ">=",
EQUAL = "==",
NOT_EQUAL = "!=",
AND = "&&",
OR = "||",
COMMA = ",",
COLON = ":",
SEMICOLON = ";",
LPAREN = "(",
RPAREN = ")",
LBRACE = "{",
RBRACE = "}",
LBRACKET = "[",
RBRACKET = "]",
LET = "LET",
IF = "IF",
ELSE = "ELSE",
RETURN = "RETURN",
WHILE = "WHILE",
IN = "IN",
TYPEOF = "TYPEOF",
THROW = "THROW",
DELETE = "DELETE",
USE = "USE",
VOID = "VOID",
EXPR = "EXPR",
CLASS = "CLASS",
FOR = "FOR",
CONST = "CONST"
}
interface Token {
type: TokenType;
literal: string;
line: number;
column: number;
}
declare const tokens: Array<Tiny.TokenCheck>;
declare const fromLiteral: (literal: string) => TokenType;
export { TokenType, Token, tokens, fromLiteral };