///|
let keyword_table : @hashmap.HashMap[String, Token] = [
("as", AS),
("else", ELSE),
("extern", EXTERN),
("fn", FN),
("fnalias", FNALIAS),
("if", IF),
("let", LET),
("proof_assert", PROOF_ASSERT),
("proof_let", PROOF_LET),
("const", CONST),
("match", MATCH),
("using", USING),
("mut", MUTABLE),
("type", TYPE),
("typealias", TYPEALIAS),
("struct", STRUCT),
("enum", ENUM),
("extenum", EXTENUM),
("trait", TRAIT),
("traitalias", TRAITALIAS),
("derive", DERIVE),
("while", WHILE),
("break", BREAK),
("continue", CONTINUE),
("import", IMPORT),
("return", RETURN),
("throw", THROW),
("raise", RAISE),
("try", TRY),
("catch", CATCH),
("pub", PUB),
("priv", PRIV),
("readonly", READONLY),
("true", TRUE),
("false", FALSE),
("_", UNDERSCORE),
("test", TEST),
("loop", LOOP),
("for", FOR),
("in", IN),
("impl", IMPL),
("with", WITH),
("guard", GUARD),
("async", ASYNC),
("is", IS),
("suberror", SUBERROR),
("and", AND),
("letrec", LETREC),
("enumview", ENUMVIEW),
("extend", EXTEND),
("noraise", NORAISE),
("defer", DEFER),
("lexmatch", LEXMATCH),
("lexscan", LEXSCAN),
("where", WHERE),
("declare", DECLARE),
("nobreak", NOBREAK),
("package", PACKAGE),
]
|> @hashmap.from_array()
///|
let reserved_keyword_table : @hashset.HashSet[String] = [
"module", "move", "ref", "static", "super", "unsafe", "use", "await", "dyn",
"abstract", "do", "final", "macro", "override", "typeof", "virtual", "yield",
"local", "method", "alias", "assert",
]
|> @hashset.from_array()