crafting-interpreters/src/keywords.rs

26 lines
894 B
Rust

use crate::token::TokenType::{self, *};
use lazy_static::lazy_static;
use std::collections::HashMap;
lazy_static! {
/// Mapping of reserved keywords to their respective TokenType.
pub static ref KEYWORDS: HashMap<std::string::String, TokenType> = {
let mut m = HashMap::new();
m.insert("and".into(), And);
m.insert("class".into(), Class);
m.insert("else".into(), Else);
m.insert("false".into(), False);
m.insert("for".into(), For);
m.insert("fun".into(), Fun);
m.insert("if".into(), If);
m.insert("nil".into(), Nil);
m.insert("or".into(), Or);
m.insert("print".into(), Print);
m.insert("return".into(), Return);
m.insert("super".into(), Super);
m.insert("true".into(), True);
m.insert("var".into(), Var);
m.insert("while".into(), While);
m
};
}