export enum TokenKind { AND = "AND", AS = "AS", BACKTICK = "BACKTICK", COMMA = "COMMA", DOT = "DOT", EOF = "EOF", EQUALS = "EQUALS", FROM = "FROM", IDENTIFIER = "IDENTIFIER", LPAREN = "LPAREN", MINUS = "MINUS", NUMBER = "NUMBER", OR = "OR", PLUS = "PLUS", RPAREN = "RPAREN", SELECT = "SELECT", SEMICOLON = "SEMICOLON", SLASH = "SLASH", STAR = "STAR", WHERE = "WHERE", } export default class Token { public kind: TokenKind; public value: string | null; public line: number; constructor(kind: TokenKind, value: string | null, line: number) { this.kind = kind; this.value = value; this.line = line; } public repr(): string { return `{ kind: ${this.kind}${this.value ? `, value: ${this.value} }` : " }"}`; } }