use crate::js::lexer::token::TokenKind;
pub fn is_keyword(word: &str) -> bool {
keyword_to_token(word).is_some()
}
pub fn keyword_to_token(word: &str) -> Option<TokenKind> {
Some(match word {
"abstract" => TokenKind::Abstract,
"accessor" => TokenKind::Accessor,
"any" => TokenKind::Any,
"as" => TokenKind::As,
"assert" => TokenKind::Assert,
"async" => TokenKind::Async,
"await" => TokenKind::Await,
"boolean" => TokenKind::Boolean,
"break" => TokenKind::Break,
"case" => TokenKind::Case,
"catch" => TokenKind::Catch,
"class" => TokenKind::Class,
"const" => TokenKind::Const,
"constructor" => TokenKind::Constructor,
"continue" => TokenKind::Continue,
"debugger" => TokenKind::Debugger,
"declare" => TokenKind::Declare,
"default" => TokenKind::Default,
"delete" => TokenKind::Delete,
"do" => TokenKind::Do,
"else" => TokenKind::Else,
"enum" => TokenKind::Enum,
"export" => TokenKind::Export,
"extends" => TokenKind::Extends,
"false" => TokenKind::False,
"finally" => TokenKind::Finally,
"for" => TokenKind::For,
"from" => TokenKind::From,
"function" => TokenKind::Function,
"get" => TokenKind::Get,
"if" => TokenKind::If,
"implements" => TokenKind::Implements,
"import" => TokenKind::Import,
"in" => TokenKind::In,
"infer" => TokenKind::Infer,
"instanceof" => TokenKind::Instanceof,
"interface" => TokenKind::Interface,
"keyof" => TokenKind::KeyOf,
"let" => TokenKind::Let,
"module" => TokenKind::Module,
"namespace" => TokenKind::Namespace,
"never" => TokenKind::Never,
"new" => TokenKind::New,
"null" => TokenKind::Null,
"number" => TokenKind::Number,
"of" => TokenKind::Of,
"package" => TokenKind::Package,
"private" => TokenKind::Private,
"protected" => TokenKind::Protected,
"public" => TokenKind::Public,
"readonly" => TokenKind::Readonly,
"return" => TokenKind::Return,
"satisfies" => TokenKind::Satisfies,
"set" => TokenKind::Set,
"static" => TokenKind::Static,
"string" => TokenKind::String,
"symbol" => TokenKind::Symbol,
"super" => TokenKind::Super,
"switch" => TokenKind::Switch,
"this" => TokenKind::This,
"throw" => TokenKind::Throw,
"true" => TokenKind::True,
"try" => TokenKind::Try,
"type" => TokenKind::Type,
"typeof" => TokenKind::Typeof,
"undefined" => TokenKind::Undefined,
"unique" => TokenKind::Unique,
"unknown" => TokenKind::Unknown,
"using" => TokenKind::Using,
"var" => TokenKind::Var,
"void" => TokenKind::Void,
"while" => TokenKind::While,
"with" => TokenKind::With,
"yield" => TokenKind::Yield,
_ => return None,
})
}